public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-db/percona-server/, dev-db/percona-server/files/
@ 2018-02-12 23:32 Thomas Deutschmann
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Deutschmann @ 2018-02-12 23:32 UTC (permalink / raw
  To: gentoo-commits

commit:     82385c4238c856a79ceab0b1532cb742cc923695
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 12 23:32:14 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon Feb 12 23:32:30 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=82385c42

dev-db/percona-server: Cleanup old

Package-Manager: Portage-2.3.24, Repoman-2.3.6

 dev-db/percona-server/Manifest                     |   2 -
 dev-db/percona-server/files/my.cnf-5.5             | 148 ------------
 .../percona-server-5.6.37.82.2-r2.ebuild           | 253 ---------------------
 .../percona-server-5.6.38.83.0.ebuild              | 243 --------------------
 4 files changed, 646 deletions(-)

diff --git a/dev-db/percona-server/Manifest b/dev-db/percona-server/Manifest
index 807a4cd5c18..13b910881d3 100644
--- a/dev-db/percona-server/Manifest
+++ b/dev-db/percona-server/Manifest
@@ -1,4 +1,2 @@
 DIST mysql-extras-20171121-1518Z.tar.bz2 313539 BLAKE2B c397fdf7ffb3fcbcecda20933e18234062a9500dcf4031e9b17131e2a1f23dca7535ed33ff541fc075eb9995c67a9a8fd7261d7524dd42d8d333543c368b4c15 SHA512 dd0d4a00c0ed710e786d157a73f02c6f555ab7a68e57014d958627096a4245a0b45d22ec860dc5389002d106554e80166661c0b6ddcadff1f737e3fa195badda
-DIST percona-server-5.6.37-82.2.tar.gz 56296960 BLAKE2B 70d0c40c96be3c3f674466d2406b5622a7a37cc59d9daee7f0315ce6dd2ce13751f48d440646a0f377ca86aecd6bc749d050ab4f58bfa7400bcd35167ab8d480 SHA512 38905c2429bee6e6ba9c35b232c87c27c414726b349ff5a878cc94bbc4a333bbf76019478f8e82a10274ffeea5ac71c4520ff534cc434c4844b496b48801ea4e
-DIST percona-server-5.6.38-83.0.tar.gz 56390422 BLAKE2B 2c5ae8c021c95da210402b79314698b7286ca7791c35f059260537b19660e33bd6a06701f24f121b7b051faab38b41b037ea3d1305d281abaadd07c3c432a13d SHA512 25b3dbee188e0608f3783acdf70eb3ded276ff25dae3ee879a70e3eefc8df5ac15e3b5fbe310537f84ccde9434de51ac5927322de13f6b89e0530ebbd7d36f6d
 DIST percona-server-5.6.39-83.1.tar.gz 56307662 BLAKE2B 474e497a83e7a8f7bf628b2622a0bfeead0f5003ed87dd4228e85a8b1c75bfdfc40f75604e9ed621f6d143d69bcada29163bf140b765951cf0b23e5660623e52 SHA512 d014bc0ebf8d8f1842b4a79eb0a868e3c9e0e33d3eb3cbf301b5504dcb341e1f2a0d6c2c4003666f59fbf75eb274356ee6b059ff2cddf2b457143ee5e1aba471

diff --git a/dev-db/percona-server/files/my.cnf-5.5 b/dev-db/percona-server/files/my.cnf-5.5
deleted file mode 100644
index d48f6c4e688..00000000000
--- a/dev-db/percona-server/files/my.cnf-5.5
+++ /dev/null
@@ -1,148 +0,0 @@
-# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/my.cnf: The global mysql configuration file.
-
-# 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/percona-server/percona-server-5.6.37.82.2-r2.ebuild b/dev-db/percona-server/percona-server-5.6.37.82.2-r2.ebuild
deleted file mode 100644
index 27c8676451e..00000000000
--- a/dev-db/percona-server/percona-server-5.6.37.82.2-r2.ebuild
+++ /dev/null
@@ -1,253 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20171121-1518Z"
-SUBSLOT="18"
-PYTHON_COMPAT=( python2_7 )
-# Build fails with ninja
-CMAKE_MAKEFILE_GENERATOR="emake"
-inherit linux-info python-any-r1 mysql-multilib-r1 toolchain-funcs
-
-IUSE="numa pam tokudb tokudb-backup-plugin"
-
-# REMEMBER: also update eclass/mysql*.eclass before committing!
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-linux"
-HOMEPAGE="http://www.percona.com/software/percona-server"
-DESCRIPTION="An enhanced, drop-in replacement for MySQL from the Percona team"
-
-# When MY_EXTRAS is bumped, the index should be revised to exclude these.
-EPATCH_EXCLUDE=''
-
-COMMON_DEPEND="numa? ( sys-process/numactl:= )
-	server? ( pam? ( virtual/pam:0= ) )
-	tokudb? ( app-arch/snappy )
-	tokudb-backup-plugin? ( dev-util/valgrind )
-	"
-
-DEPEND="${COMMON_DEPEND}
-	|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
-	test? (
-		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
-		dev-perl/JSON
-	)"
-RDEPEND="${COMMON_DEPEND}"
-
-REQUIRED_USE="tokudb-backup-plugin? ( tokudb ) tokudb? ( jemalloc !tcmalloc )"
-
-MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-
-PATCHES=(
-	"${MY_PATCH_DIR}"/01050_all_mysql_config_cleanup-5.6.patch
-	"${MY_PATCH_DIR}"/02040_all_embedded-library-shared-5.5.10.patch
-	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.6.20.patch
-	"${MY_PATCH_DIR}"/20006_all_cmake_elib-percona-5.6.34.patch
-	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.6.22.patch
-	"${MY_PATCH_DIR}"/20008_all_mysql-tzinfo-symlink-5.6.37.patch
-	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.6.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.6.25-without-clientlibs-tools.patch
-	"${MY_PATCH_DIR}"/20028_all_mysql-5.6-gcc7.patch
-)
-
-# 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
-
-pkg_pretend() {
-	mysql-multilib-r1_pkg_pretend
-
-	if [[ ${MERGE_TYPE} != binary && tc-is-gcc ]]; then
-		if [[ $(gcc-major-version) -gt 6 ]]; then
-			# https://bugs.gentoo.org/639936
-			eerror "${P} is incompatible with >gcc-6.x."
-			eerror "Please use gcc-config or package.env file to switch to <gcc-7.x for this package."
-			die
-		fi
-	fi
-
-	if use numa; then
-		local CONFIG_CHECK="~NUMA"
-
-		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
-		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
-		check_extra_config
-	fi
-}
-
-python_check_deps() {
-	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-src_prepare() {
-	mysql-multilib-r1_src_prepare
-	if use libressl ; then
-		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-			"${S}/cmake/ssl.cmake" || die
-	fi
-}
-
-src_configure() {
-	local MYSQL_CMAKE_NATIVE_DEFINES=( -DWITH_NUMA=$(usex numa)
-			-DWITH_PAM=$(usex pam)
-			$(mysql-cmake_use_plugin tokudb TOKUDB)
-	)
-	if use tokudb ; then
-		# TokuDB Backup plugin requires valgrind unconditionally
-		MYSQL_CMAKE_NATIVE_DEFINES+=(
-			$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
-		)
-	fi
-	mysql-multilib-r1_src_configure
-}
-
-# Official test instructions:
-# USE='extraengine perl openssl static-libs' \
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-multilib_src_test() {
-
-	if ! multilib_is_native_abi ; then
-		einfo "Server tests not available on non-native abi".
-		return 0;
-	fi
-
-	if ! use server ; then
-		einfo "Skipping server tests due to minimal build."
-		return 0
-	fi
-
-	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 [[ $UID -eq 0 ]]; then
-		die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
-	fi
-
-	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
-	# 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))"
-	# Enable parallel testing, auto will try to detect number of cores
-	# You may set this by hand.
-	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
-	# create directories because mysqladmin might right out of order
-	mkdir -p "${T}"/var-tests{,/log}
-
-	# These are failing in Percona 5.6 for now and are believed to be
-	# false positives:
-	#
-	# main.information_schema, binlog.binlog_statement_insert_delayed,
-	# main.mysqld--help-notwin, binlog.binlog_mysqlbinlog_filter
-	# perfschema.binlog_edge_mix, perfschema.binlog_edge_stmt
-	# funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers
-	# engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate
-	# engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8
-	# engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate
-	# fails due to USE=-latin1 / utf8 default
-	#
-	# main.mysql_client_test:
-	# segfaults at random under Portage only, suspect resource limits.
-	#
-	# main.percona_bug1289599
-	# Looks to be a syntax error in the test file itself
-	#
-	# main.variables main.myisam main.merge_recover
-	# fails due to ulimit not able to open enough files (needs 5000)
-	#
-	# main.mysqlhotcopy_archive main.mysqlhotcopy_myisam
-	# Called with bad parameters should be reported upstream
-	#
-
-	local t
-
-	for t in main.mysql_client_test \
-		binlog.binlog_statement_insert_delayed main.information_schema \
-		main.mysqld--help-notwin binlog.binlog_mysqlbinlog_filter \
-		perfschema.binlog_edge_mix perfschema.binlog_edge_stmt \
-		funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers \
-		main.variables main.myisam main.merge_recover \
-		engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate \
-		engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8 \
-		engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate \
-		main.percona_bug1289599 main.mysqlhotcopy_archive main.mysqlhotcopy_myisam ; do
-			mysql-multilib-r1_disable_test  "$t" "False positives in Gentoo"
-	done
-
-	if use numa && use kernel_linux ; then
-		# bug 584880
-		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
-			for t in sys_vars.innodb_buffer_pool_populate_basic ; do
-				mysql-multilib-r1_disable_test "$t" "Test $t requires system with NUMA support"
-			done
-		fi
-	fi
-
-	if ! use extraengine ; then
-		# bug 401673, 530766
-		for t in federated.federated_plugin ; do
-			mysql-multilib-r1_disable_test "$t" "Test $t requires USE=extraengine (Need federated engine)"
-		done
-	fi
-
-	# Run mysql tests
-	pushd "${TESTDIR}" || die
-
-	# Set file limits higher so tests run
-	if ! ulimit -n 16500 1>/dev/null 2>&1; then
-		# Upper limit comes from parts.partition_* tests
-		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
-		if ! ulimit -n 4162 1>/dev/null 2>&1; then
-			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
-			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
-			if ! ulimit -n 3000 1>/dev/null 2>&1; then
-				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
-			else
-				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
-			fi
-		else
-			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
-		fi
-	else
-		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
-	fi
-
-	python_setup
-	# run mysql-test tests
-	perl mysql-test-run.pl --force --vardir="${T}/var-tests" \
-		--testcase-timeout=30 --reorder
-	retstatus_tests=$?
-	[[ $retstatus_tests -eq 0 ]] || eerror "tests failed"
-
-	popd || die
-
-	# 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"
-
-	if [[ -n "$failures" ]]; then
-		has usersandbox $FEATURES && eerror "Some tests may have failed due to FEATURES=usersandbox"
-		die "Test failures: $failures"
-	fi
-
-	einfo "Tests successfully completed"
-}

diff --git a/dev-db/percona-server/percona-server-5.6.38.83.0.ebuild b/dev-db/percona-server/percona-server-5.6.38.83.0.ebuild
deleted file mode 100644
index 2e7499a7dc6..00000000000
--- a/dev-db/percona-server/percona-server-5.6.38.83.0.ebuild
+++ /dev/null
@@ -1,243 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20171121-1518Z"
-SUBSLOT="18"
-PYTHON_COMPAT=( python2_7 )
-# Build fails with ninja
-CMAKE_MAKEFILE_GENERATOR="emake"
-inherit linux-info python-any-r1 mysql-multilib-r1 toolchain-funcs
-
-IUSE="numa pam tokudb tokudb-backup-plugin"
-
-# REMEMBER: also update eclass/mysql*.eclass before committing!
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-linux"
-HOMEPAGE="https://www.percona.com/software/percona-server"
-DESCRIPTION="An enhanced, drop-in replacement for MySQL from the Percona team"
-
-# When MY_EXTRAS is bumped, the index should be revised to exclude these.
-EPATCH_EXCLUDE=''
-
-COMMON_DEPEND="numa? ( sys-process/numactl:= )
-	server? ( pam? ( virtual/pam:0= ) )
-	tokudb? ( app-arch/snappy )
-	tokudb-backup-plugin? ( dev-util/valgrind )
-	"
-
-DEPEND="${COMMON_DEPEND}
-	|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
-	test? (
-		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
-		dev-perl/JSON
-	)"
-RDEPEND="${COMMON_DEPEND}"
-
-REQUIRED_USE="tokudb-backup-plugin? ( tokudb ) tokudb? ( jemalloc !tcmalloc )"
-
-MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-
-PATCHES=(
-	"${MY_PATCH_DIR}"/01050_all_mysql_config_cleanup-5.6.patch
-	"${MY_PATCH_DIR}"/02040_all_embedded-library-shared-5.5.10.patch
-	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.6.20.patch
-	"${MY_PATCH_DIR}"/20006_all_cmake_elib-percona-5.6.34.patch
-	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.6.22.patch
-	"${MY_PATCH_DIR}"/20008_all_mysql-tzinfo-symlink-5.6.37.patch
-	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.6.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.6.25-without-clientlibs-tools.patch
-)
-
-# 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
-
-pkg_pretend() {
-	mysql-multilib-r1_pkg_pretend
-
-	if use numa; then
-		local CONFIG_CHECK="~NUMA"
-
-		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
-		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
-		check_extra_config
-	fi
-}
-
-python_check_deps() {
-	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-src_prepare() {
-	mysql-multilib-r1_src_prepare
-	if use libressl ; then
-		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-			"${S}/cmake/ssl.cmake" || die
-	fi
-}
-
-src_configure() {
-	local MYSQL_CMAKE_NATIVE_DEFINES=( -DWITH_NUMA=$(usex numa)
-			-DWITH_PAM=$(usex pam)
-			$(mysql-cmake_use_plugin tokudb TOKUDB)
-	)
-	if use tokudb ; then
-		# TokuDB Backup plugin requires valgrind unconditionally
-		MYSQL_CMAKE_NATIVE_DEFINES+=(
-			$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
-		)
-	fi
-	mysql-multilib-r1_src_configure
-}
-
-# Official test instructions:
-# USE='extraengine perl openssl static-libs' \
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-multilib_src_test() {
-
-	if ! multilib_is_native_abi ; then
-		einfo "Server tests not available on non-native abi".
-		return 0;
-	fi
-
-	if ! use server ; then
-		einfo "Skipping server tests due to minimal build."
-		return 0
-	fi
-
-	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 [[ $UID -eq 0 ]]; then
-		die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
-	fi
-
-	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
-	# 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))"
-	# Enable parallel testing, auto will try to detect number of cores
-	# You may set this by hand.
-	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
-	# create directories because mysqladmin might right out of order
-	mkdir -p "${T}"/var-tests{,/log}
-
-	# These are failing in Percona 5.6 for now and are believed to be
-	# false positives:
-	#
-	# main.information_schema, binlog.binlog_statement_insert_delayed,
-	# main.mysqld--help-notwin, binlog.binlog_mysqlbinlog_filter
-	# perfschema.binlog_edge_mix, perfschema.binlog_edge_stmt
-	# funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers
-	# engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate
-	# engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8
-	# engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate
-	# fails due to USE=-latin1 / utf8 default
-	#
-	# main.mysql_client_test:
-	# segfaults at random under Portage only, suspect resource limits.
-	#
-	# main.percona_bug1289599
-	# Looks to be a syntax error in the test file itself
-	#
-	# main.variables main.myisam main.merge_recover
-	# fails due to ulimit not able to open enough files (needs 5000)
-	#
-	# main.mysqlhotcopy_archive main.mysqlhotcopy_myisam
-	# Called with bad parameters should be reported upstream
-	#
-
-	local t
-
-	for t in main.mysql_client_test \
-		binlog.binlog_statement_insert_delayed main.information_schema \
-		main.mysqld--help-notwin binlog.binlog_mysqlbinlog_filter \
-		perfschema.binlog_edge_mix perfschema.binlog_edge_stmt \
-		funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers \
-		main.variables main.myisam main.merge_recover \
-		engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate \
-		engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8 \
-		engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate \
-		main.percona_bug1289599 main.mysqlhotcopy_archive main.mysqlhotcopy_myisam ; do
-			mysql-multilib-r1_disable_test  "$t" "False positives in Gentoo"
-	done
-
-	if use numa && use kernel_linux ; then
-		# bug 584880
-		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
-			for t in sys_vars.innodb_buffer_pool_populate_basic ; do
-				mysql-multilib-r1_disable_test "$t" "Test $t requires system with NUMA support"
-			done
-		fi
-	fi
-
-	if ! use extraengine ; then
-		# bug 401673, 530766
-		for t in federated.federated_plugin ; do
-			mysql-multilib-r1_disable_test "$t" "Test $t requires USE=extraengine (Need federated engine)"
-		done
-	fi
-
-	# Run mysql tests
-	pushd "${TESTDIR}" || die
-
-	# Set file limits higher so tests run
-	if ! ulimit -n 16500 1>/dev/null 2>&1; then
-		# Upper limit comes from parts.partition_* tests
-		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
-		if ! ulimit -n 4162 1>/dev/null 2>&1; then
-			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
-			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
-			if ! ulimit -n 3000 1>/dev/null 2>&1; then
-				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
-			else
-				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
-			fi
-		else
-			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
-		fi
-	else
-		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
-	fi
-
-	python_setup
-	# run mysql-test tests
-	perl mysql-test-run.pl --force --vardir="${T}/var-tests" \
-		--testcase-timeout=30 --reorder
-	retstatus_tests=$?
-	[[ $retstatus_tests -eq 0 ]] || eerror "tests failed"
-
-	popd || die
-
-	# 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"
-
-	if [[ -n "$failures" ]]; then
-		has usersandbox $FEATURES && eerror "Some tests may have failed due to FEATURES=usersandbox"
-		die "Test failures: $failures"
-	fi
-
-	einfo "Tests successfully completed"
-}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-db/percona-server/, dev-db/percona-server/files/
@ 2018-10-15  1:29 Thomas Deutschmann
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Deutschmann @ 2018-10-15  1:29 UTC (permalink / raw
  To: gentoo-commits

commit:     ab9bd9d38d16f125b7b3f3b443e89589e42e1933
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 15 01:17:06 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon Oct 15 01:29:43 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab9bd9d3

dev-db/percona-server: bump to v5.7.23-23

- Add CJK support for InnoDB full-text search via USE=cjk

- Beginning with {mysql,percona-server}-5.7, we are moving configuration
  from a single my.cnf to several files in /etc/mysql/mysql.d.

Closes: https://bugs.gentoo.org/611060
Package-Manager: Portage-2.3.50, Repoman-2.3.11
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 dev-db/percona-server/Manifest                     |    3 +
 dev-db/percona-server/files/my.cnf-5.7             |    3 +
 dev-db/percona-server/files/my.cnf.distro-client   |   21 +
 dev-db/percona-server/files/my.cnf.distro-server   |   28 +
 dev-db/percona-server/metadata.xml                 |    2 +
 .../percona-server/percona-server-5.7.23.23.ebuild | 1049 ++++++++++++++++++++
 6 files changed, 1106 insertions(+)

diff --git a/dev-db/percona-server/Manifest b/dev-db/percona-server/Manifest
index a46d86613b8..7d72c5c2537 100644
--- a/dev-db/percona-server/Manifest
+++ b/dev-db/percona-server/Manifest
@@ -1,3 +1,6 @@
+DIST boost_1_59_0.tar.gz 83709983 BLAKE2B 8c6676fa05fa401a6ecb3b890d95aceb4421ec48dd0eab38ce8d170c618e177c82dc67a165938f6be1a01daab24ce41888f5442dbc19ad3dd41368a01a6f89e4 SHA512 05fdbe5637543defdbc630b921515425885593d16db14534ed7b9aa60925ade8fb598d50cb894aed6dae688e789047216daa1bf03fa1aeb6b531060d9dae52ae
 DIST mysql-extras-20180628-0201Z.tar.bz2 322141 BLAKE2B fce35cfea4ffa9860908fcdf440cd0d714c402c42ee2afb22cec9e727971c216310c7db561ca1b37deebb2cea5137fe24f19b491ad500949e3170ccec3de0b13 SHA512 71a3800ec091b41e41d25536199149eb714c0bbfc0f6fc478e8e4dcaf4cf87a7e4d49c513da3c9badc0de810d7d78c05ad91dd898e45005b42136346237de42a
+DIST mysql-extras-20181014-2320Z.tar.bz2 327547 BLAKE2B 8d7d77de0fb92ca4b9a980eec5e2e6a2a68427da67d67e734509f96e05d9dd29daa1a702b3bf2d4313c0a4ff8318a69a70cb24cbd9bb0f3cfb15811e06b25d76 SHA512 5b97aa3c1fc42e3c87aa458a43bdeb1c86194026c7ee5ff7ad64c140e97a77685836971b7f2b3fb02fac440680e62507f96b428d8dc96c75f6358191a3e3084a
 DIST percona-server-5.6.40-84.0.tar.gz 52684007 BLAKE2B 11658be2319880f7e8815c7b620b7d460dd7a559316ca96905573b0fa2d7180b084ed425f76f6d850f06862e424b5a8d6ced8356f9075826b77e89e86095eb40 SHA512 b1075933bdf1afb726acd799e834cb45a1d2a15d3f37f313da71f8da03a7b9480d7ccfb4cb6a820fb6ccf58851d8c9473bce975203cd6bc007a2b74b36a1127f
 DIST percona-server-5.6.41-84.1.tar.gz 52736448 BLAKE2B 1ec5e17f08274caa3882f829f25bbf74a3b37d2ba208f62376106f0d89e5470f461f7852e365d5da9503d5500702e28f08461e5aa0c5ae6b1a30a0e98dbb426b SHA512 60783154f9ab097083a484c34e584b396eeba4aa53dc8616c467ca9c85cc626be08e3165740703453cc4fb35f3af94ac34260f1e2bb133d60f832661251cbb3c
+DIST percona-server-5.7.23-23.tar.gz 79165468 BLAKE2B a460ac88886fa2be65abb0520d541db54413274599e02d8de3a01a68f8c3da431bfe819eb32bf80518fdff69bbcfae90ee089d2a096ee6210f9e4efe60dbab25 SHA512 351d40d3f7c3fe72f733443a6ef3902e1455390835e52e73d7eb48698ac6f2363e07811d40b22af5b1c7607622017d613279581940522c5e99660fac89d4d4c6

diff --git a/dev-db/percona-server/files/my.cnf-5.7 b/dev-db/percona-server/files/my.cnf-5.7
new file mode 100644
index 00000000000..571ebf07a76
--- /dev/null
+++ b/dev-db/percona-server/files/my.cnf-5.7
@@ -0,0 +1,3 @@
+# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/my.cnf: The global mysql configuration file.
+
+!includedir @GENTOO_PORTAGE_EPREFIX@/etc/mysql/mysql.d

diff --git a/dev-db/percona-server/files/my.cnf.distro-client b/dev-db/percona-server/files/my.cnf.distro-client
new file mode 100644
index 00000000000..8bf18363430
--- /dev/null
+++ b/dev-db/percona-server/files/my.cnf.distro-client
@@ -0,0 +1,21 @@
+# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/50-distro-client.cnf: The global mysql configuration file.
+
+# The following options will be passed to all MySQL clients
+[client]
+socket						= @GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock
+character-sets-dir				= @GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+default-character-set=utf8
+
+[mysql]
+# uncomment the next directive if you are not familiar with SQL
+#safe-updates
+
+[mysqldump]
+quick
+max_allowed_packet			= 16M
+
+[myisamchk]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+
+[myisampack]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets

diff --git a/dev-db/percona-server/files/my.cnf.distro-server b/dev-db/percona-server/files/my.cnf.distro-server
new file mode 100644
index 00000000000..d4ed30c1f08
--- /dev/null
+++ b/dev-db/percona-server/files/my.cnf.distro-server
@@ -0,0 +1,28 @@
+# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/50-distro-server.cnf: The global mysql configuration file.
+
+# 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/mysql.pid
+log-error					= @GENTOO_PORTAGE_EPREFIX@/var/log/mysql/mysqld.err
+basedir						= @GENTOO_PORTAGE_EPREFIX@/usr
+datadir						= @DATADIR@
+skip-external-locking
+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

diff --git a/dev-db/percona-server/metadata.xml b/dev-db/percona-server/metadata.xml
index f3ddb7484a2..622134f1058 100644
--- a/dev-db/percona-server/metadata.xml
+++ b/dev-db/percona-server/metadata.xml
@@ -6,7 +6,9 @@
     <name>MySQL</name>
   </maintainer>
 <use>
+  <flag name="cjk">Add CJK support for InnoDB fulltext search using <pkg>app-text/mecab</pkg></flag>
   <flag name="client-libs">Build the libmysqlclient libraries</flag>
+  <flag name="experimental">Build experimental features aka "rapid" plugins</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="libressl">Enable SSL connections and crypto functions using <pkg>dev-libs/libressl</pkg></flag>

diff --git a/dev-db/percona-server/percona-server-5.7.23.23.ebuild b/dev-db/percona-server/percona-server-5.7.23.23.ebuild
new file mode 100644
index 00000000000..d87397f9aea
--- /dev/null
+++ b/dev-db/percona-server/percona-server-5.7.23.23.ebuild
@@ -0,0 +1,1049 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+MY_EXTRAS_VER="20181014-2320Z"
+
+CMAKE_MAKEFILE_GENERATOR=emake
+
+# Python2 required for innodb_stress.innodb_stress{,_blob,_crash} test
+PYTHON_COMPAT=( python2_7 )
+
+# Keeping eutils in EAPI=6 for emktemp in pkg_config
+
+inherit eapi7-ver cmake-utils eutils flag-o-matic linux-info \
+	prefix python-any-r1 toolchain-funcs user multilib-minimal
+
+MY_PV=$(ver_rs 3 '-')
+MY_PN="Percona-Server"
+MY_P="${PN}-${MY_PV}"
+MY_MAJOR_PV=$(ver_cut 1-2)
+MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.7/release-notes/release-notes_index.html"
+
+SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz
+	mirror://sourceforge/boost/boost_1_59_0.tar.gz
+"
+
+# Gentoo patches to MySQL
+if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]] ; then
+	SRC_URI="${SRC_URI}
+		mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
+		https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
+fi
+
+HOMEPAGE="https://www.percona.com/software/mysql-database/percona-server"
+DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
+LICENSE="GPL-2"
+SLOT="0/18"
+IUSE="cjk client-libs cracklib debug experimental jemalloc latin1 libressl numa pam +perl profiling rocksdb
+	selinux +server static static-libs systemtap tcmalloc test tokudb tokudb-backup-plugin yassl"
+
+# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
+RESTRICT="libressl? ( test )"
+
+REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )"
+
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+
+# 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"
+
+if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
+	inherit git-r3
+	EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git"
+	EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras"
+	EGIT_CLONE_TYPE=shallow
+	MY_PATCH_DIR="${WORKDIR}/mysql-extras"
+else
+	MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
+fi
+
+PATCHES=(
+	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.7.patch
+	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.7.patch
+	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.7.10.patch
+	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-without-clientlibs-tools.patch
+	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-libressl-support.patch
+	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-add-missing-gcc-8-fix.patch
+	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-grant_user_lock-a-root.patch
+	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-round-off-test-values-for-same-output-on-all-architectures.patch
+	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-mips-ASM.patch
+	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-rocksdb-use-system-libs.patch
+)
+
+# Be warned, *DEPEND are version-dependant
+# These are used for both runtime and compiletime
+# MULTILIB_USEDEP only set for libraries used by the client library
+COMMON_DEPEND="net-misc/curl:=
+	>=sys-apps/sed-4
+	>=sys-apps/texinfo-4.7-r1
+	sys-libs/ncurses:0=
+	client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] )
+	!client-libs? (
+		dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?]
+		>=sys-libs/zlib-1.2.3:0=
+	)
+	jemalloc? ( dev-libs/jemalloc:0= )
+	kernel_linux? (
+		dev-libs/libaio:0=
+		sys-process/procps:0=
+	)
+	server? (
+		>=app-arch/lz4-0_p131:=
+		cjk? ( app-text/mecab:= )
+		numa? ( sys-process/numactl )
+		pam? ( virtual/pam:0= )
+		experimental? (
+			dev-libs/libevent:=
+			dev-libs/protobuf:=
+			net-libs/libtirpc:=
+		)
+		rocksdb? ( app-arch/zstd:= )
+		tokudb? (
+			app-arch/snappy:=
+			app-arch/xz-utils:=
+		)
+		tokudb-backup-plugin? ( dev-util/valgrind )
+	)
+	systemtap? ( >=dev-util/systemtap-1.3:0= )
+	tcmalloc? ( dev-util/google-perftools:0= )
+	!yassl? (
+		client-libs? (
+			!libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] )
+			libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] )
+		)
+		!client-libs? (
+			!libressl? ( >=dev-libs/openssl-1.0.0:0= )
+			libressl? ( dev-libs/libressl:0= )
+		)
+	)
+"
+DEPEND="${COMMON_DEPEND}
+	|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
+	virtual/yacc
+	server? (
+		experimental? ( net-libs/rpcsvc-proto )
+	)
+	static? ( sys-libs/ncurses[static-libs] )
+	test? (
+		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
+		dev-perl/JSON
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	!dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster
+	client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c dev-libs/protobuf:= )
+	selinux? ( sec-policy/selinux-mysql )
+	server? ( !prefix? ( dev-db/mysql-init-scripts ) )
+"
+# For other stuff to bring us in
+# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
+PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
+
+python_check_deps() {
+	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
+}
+
+mysql_init_vars() {
+	MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"}
+	MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX%/}/etc/mysql"}
+	MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX%/}/var/lib/mysql"}
+	MY_LOGDIR=${MY_LOGDIR="${EPREFIX%/}/var/log/mysql"}
+
+	if [[ -z "${MY_DATADIR}" ]] ; then
+		MY_DATADIR=""
+		if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
+			MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
+				| sed -ne '/datadir/s|^--datadir=||p' \
+				| tail -n1`
+			if [[ -z "${MY_DATADIR}" ]] ; then
+				MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
+				| sed -e 's/.*=\s*//' \
+				| tail -n1`
+			fi
+		fi
+		if [[ -z "${MY_DATADIR}" ]] ; then
+			MY_DATADIR="${MY_LOCALSTATEDIR}"
+			einfo "Using default MY_DATADIR"
+		fi
+		elog "MySQL MY_DATADIR is ${MY_DATADIR}"
+
+		if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
+			if [[ -e "${MY_DATADIR}" ]] ; then
+				# If you get this and you're wondering about it, see bug #207636
+				elog "MySQL datadir found in ${MY_DATADIR}"
+				elog "A new one will not be created."
+				PREVIOUS_DATADIR="yes"
+			else
+				PREVIOUS_DATADIR="no"
+			fi
+			export PREVIOUS_DATADIR
+		fi
+	else
+		if [[ ${EBUILD_PHASE} == "config" ]] ; then
+			local new_MY_DATADIR
+			new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
+				| sed -ne '/datadir/s|^--datadir=||p' \
+				| tail -n1`
+
+			if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]] ; then
+				ewarn "MySQL MY_DATADIR has changed"
+				ewarn "from ${MY_DATADIR}"
+				ewarn "to ${new_MY_DATADIR}"
+				MY_DATADIR="${new_MY_DATADIR}"
+			fi
+		fi
+	fi
+
+	export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+	export MY_LOCALSTATEDIR MY_LOGDIR
+	export MY_DATADIR
+}
+
+pkg_pretend() {
+	if use numa ; then
+		local CONFIG_CHECK="~NUMA"
+
+		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
+		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
+
+		check_extra_config
+	fi
+}
+
+pkg_setup() {
+	if [[ ${MERGE_TYPE} != binary ]] ; then
+		local GCC_MAJOR_SET=$(gcc-major-version)
+		local GCC_MINOR_SET=$(gcc-minor-version)
+		# Bug 565584: InnoDB now requires atomic functions introduced with gcc-4.7 on
+		# non x86{,_64} arches
+		if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
+			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
+			eerror "${PN} needs to be built with gcc-4.7 or later."
+			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
+			die
+		fi
+
+		use test && python-any-r1_pkg_setup
+	fi
+
+	if has test ${FEATURES} && \
+		use server && ! has userpriv ${FEATURES} ; then
+			eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+	fi
+
+	# This should come after all of the die statements
+	enewgroup mysql 60 || die "problem adding 'mysql' group"
+	enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
+}
+
+pkg_preinst() {
+	# Here we need to see if the implementation switched client libraries
+	# We check if this is a new instance of the package and a client library already exists
+	local SHOW_ABI_MESSAGE libpath
+	if use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so" ]] ; then
+		libpath=$(readlink "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so")
+		elog "Due to ABI changes when switching between different client libraries,"
+		elog "revdep-rebuild must find and rebuild all packages linking to libperconaserverclient."
+		elog "Please run: revdep-rebuild --library ${libpath}"
+		ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
+	fi
+}
+
+pkg_postinst() {
+	# Make sure the vars are correctly initialized
+	mysql_init_vars
+
+	# Create log directory securely if it does not exist
+	[[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
+
+	if use server ; then
+		if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+			einfo
+			elog "You might want to run:"
+			elog "\"emerge --config =${CATEGORY}/${PF}\""
+			elog "if this is a new install."
+			elog
+			elog "If you are switching server implentations, you should run the"
+			elog "mysql_upgrade tool."
+			einfo
+		else
+			einfo
+			elog "If you are upgrading major versions, you should run the"
+			elog "mysql_upgrade tool."
+			einfo
+		fi
+	fi
+
+	# Note about configuration change
+	einfo
+	elog "This version of ${PN} reorganizes the configuration from a single my.cnf"
+	elog "to several files in /etc/mysql/${PN}.d."
+	elog "Please backup any changes you made to /etc/mysql/my.cnf"
+	elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension."
+	elog "You may have as many files as needed and they are read alphabetically."
+	elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
+	einfo
+}
+
+src_unpack() {
+	unpack ${A}
+	# Grab the patches
+	[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack
+
+	mv -f "${WORKDIR}/${MY_P}" "${S}" || die
+}
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	if use jemalloc ; then
+		echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die
+	fi
+
+	if use tcmalloc ; then
+		echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die
+	fi
+
+	# Don't build bundled xz-utils
+	if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then
+		echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
+		sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
+	elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then
+		echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
+		sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
+		sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
+	fi
+
+	if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then
+		 rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die
+	fi
+
+	# Remove bundled libs so we cannot accidentally use them
+	# We keep extra/lz4 directory because we use extra/lz4/xxhash.c via sql/CMakeLists.txt:394
+	rm -rv \
+		"${S}"/libevent \
+		"${S}"/zlib \
+		"${S}"/extra/protobuf \
+		"${S}"/storage/rocksdb/third_party \
+		"${S}"/storage/tokudb/PerconaFT/third_party \
+		|| die
+
+	# Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
+	if [[ -d "${S}/support-files/SELinux" ]] ; then
+		echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
+	fi
+
+	if use libressl ; then
+		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
+			"${S}/cmake/ssl.cmake" || die
+	fi
+
+	sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die
+}
+
+src_configure(){
+	# Bug #114895, bug #110149
+	filter-flags "-O" "-O[01]"
+
+	append-cxxflags -felide-constructors
+
+	# bug #283926, with GCC4.4, this is required to get correct behavior.
+	append-flags -fno-strict-aliasing
+
+	if use tokudb ; then
+		# https://jira.percona.com/browse/PS-4399
+		append-cxxflags -Wno-error=shadow
+	fi
+
+	if use client-libs ; then
+		multilib-minimal_src_configure
+	else
+		multilib_src_configure
+	fi
+}
+
+multilib_src_configure() {
+	debug-print-function ${FUNCNAME} "$@"
+
+	if ! multilib_is_native_abi && ! use client-libs ; then
+		return
+	fi
+
+	CMAKE_BUILD_TYPE="RelWithDebInfo"
+
+	# debug hack wrt #497532
+	mycmakeargs=(
+		-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
+		-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
+		-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
+		-DMYSQL_DATADIR="${EPREFIX%/}/var/lib/mysql"
+		-DSYSCONFDIR="${EPREFIX%/}/etc/mysql"
+		-DINSTALL_BINDIR=bin
+		-DINSTALL_DOCDIR=share/doc/${PF}
+		-DINSTALL_DOCREADMEDIR=share/doc/${PF}
+		-DINSTALL_INCLUDEDIR=include/mysql
+		-DINSTALL_INFODIR=share/info
+		-DINSTALL_LIBDIR=$(get_libdir)
+		-DINSTALL_MANDIR=share/man
+		-DINSTALL_MYSQLSHAREDIR=share/mysql
+		-DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
+		-DINSTALL_SCRIPTDIR=share/mysql/scripts
+		-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
+		-DINSTALL_SBINDIR=sbin
+		-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql"
+		-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
+		-DWITH_UNIT_TESTS=$(usex test ON OFF)
+		### TODO: make this system but issues with UTF-8 prevent it
+		-DWITH_EDITLINE=bundled
+		-DWITH_ZLIB=system
+		-DWITH_LIBWRAP=0
+		-DENABLED_LOCAL_INFILE=1
+		-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
+		-DWITH_DEFAULT_COMPILER_OPTIONS=0
+		-DWITH_DEFAULT_FEATURE_SET=0
+		# The build forces this to be defined when cross-compiling. We pass it
+		# all the time for simplicity and to make sure it is actually correct.
+		-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
+		-DWITH_CURL=system
+		-DWITH_BOOST="${WORKDIR}/boost_1_59_0"
+		-DWITH_PROTOBUF=system
+	)
+
+	if use test ; then
+		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
+	else
+		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+	fi
+
+	if ! use yassl ; then
+		mycmakeargs+=( -DWITH_SSL=system )
+	else
+		mycmakeargs+=( -DWITH_SSL=bundled )
+	fi
+
+	if ! use client-libs ; then
+		mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
+	fi
+
+	# bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
+	# systemtap only works on native ABI, bug 530132
+	if multilib_is_native_abi ; then
+		mycmakeargs+=(
+			-DENABLE_DTRACE=$(usex systemtap)
+		)
+	else
+		mycmakeargs+=(
+			-DWITHOUT_TOOLS=1
+			-DWITH_READLINE=1
+			-DENABLE_DTRACE=0
+		)
+	fi
+
+	if multilib_is_native_abi && use server ; then
+		mycmakeargs+=(
+			-DWITH_LIBEVENT=system
+			-DWITH_LZ4=system
+			-DWITH_MECAB=$(usex cjk system OFF)
+			-DWITH_NUMA=$(usex numa ON OFF)
+			-DWITH_RAPID=$(usex experimental ON OFF)
+		)
+
+		if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then
+			ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
+			ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
+			ewarn "You MUST file bugs without these variables set."
+
+			mycmakeargs+=(
+				-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
+				-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
+			)
+		elif ! use latin1 ; then
+			mycmakeargs+=(
+				-DDEFAULT_CHARSET=utf8
+				-DDEFAULT_COLLATION=utf8_general_ci
+			)
+		else
+			mycmakeargs+=(
+				-DDEFAULT_CHARSET=latin1
+				-DDEFAULT_COLLATION=latin1_swedish_ci
+			)
+		fi
+
+		mycmakeargs+=(
+			-DEXTRA_CHARSETS=all
+			-DDISABLE_SHARED=$(usex static YES NO)
+			-DWITH_DEBUG=$(usex debug)
+			-DWITH_EMBEDDED_SERVER=OFF
+		)
+
+		if use profiling ; then
+			# Setting to OFF doesn't work: Once set, profiling options will be added
+			# to `mysqld --help` output via sql/sys_vars.cc causing
+			# "main.mysqld--help-notwin" test to fail
+			mycmakeargs+=( -DENABLED_PROFILING=ON )
+		fi
+
+		if use static ; then
+			mycmakeargs+=( -DWITH_PIC=1 )
+		fi
+
+		# Storage engines
+		mycmakeargs+=(
+			-DWITH_EXAMPLE_STORAGE_ENGINE=0
+			-DWITH_ARCHIVE_STORAGE_ENGINE=1
+			-DWITH_BLACKHOLE_STORAGE_ENGINE=1
+			-DWITH_CSV_STORAGE_ENGINE=1
+			-DWITH_FEDERATED_STORAGE_ENGINE=1
+			-DWITH_HEAP_STORAGE_ENGINE=1
+			-DWITH_INNOBASE_STORAGE_ENGINE=1
+			-DWITH_INNODB_MEMCACHED=0
+			-DWITH_MYISAMMRG_STORAGE_ENGINE=1
+			-DWITH_MYISAM_STORAGE_ENGINE=1
+			-DWITH_PARTITION_STORAGE_ENGINE=1
+			-DWITH_ROCKSDB=$(usex rocksdb 1 0)
+			$(usex tokudb '' -DWITHOUT_TOKUDB=1)
+		)
+
+		if use tokudb ; then
+			# TokuDB Backup plugin requires valgrind unconditionally
+			mycmakeargs+=(
+				$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
+			)
+		fi
+
+	else
+		mycmakeargs+=(
+			-DWITHOUT_SERVER=1
+			-DWITH_EMBEDDED_SERVER=OFF
+			-DEXTRA_CHARSETS=none
+		)
+	fi
+
+	cmake-utils_src_configure
+}
+
+src_compile() {
+	if use client-libs ; then
+		multilib-minimal_src_compile
+	else
+		multilib_src_compile
+	fi
+}
+
+multilib_src_compile() {
+	cmake-utils_src_compile
+}
+
+# Official test instructions:
+# ulimit -n 16500 && \
+# USE='latin1 perl server' \
+# FEATURES='test userpriv -usersandbox' \
+# ebuild percona-server-X.X.XX.ebuild \
+# digest clean package
+src_test() {
+	_disable_test() {
+		local rawtestname reason
+		rawtestname="${1}" ; shift
+		reason="${@}"
+		ewarn "test '${rawtestname}' disabled: '${reason}'"
+		echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
+	}
+
+	local TESTDIR="${BUILD_DIR}/mysql-test"
+	local retstatus_unit
+	local retstatus_tests
+
+	if ! use server ; then
+		einfo "Skipping server tests due to minimal build."
+		return 0
+	fi
+
+	# 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 [[ $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 && ewarn "Some tests may fail with FEATURES=usersandbox"
+
+	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
+
+	# Run CTest (test-units)
+	cmake-utils_src_test
+	retstatus_unit=$?
+
+	# Ensure that parallel runs don't die
+	export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+	# Enable parallel testing, auto will try to detect number of cores
+	# You may set this by hand.
+	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
+	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
+
+	# create directories because mysqladmin might run out of order
+	mkdir -p "${T}"/var-tests{,/log} || die
+
+	# Run mysql tests
+	pushd "${TESTDIR}" &>/dev/null || die
+
+	touch "${T}/disabled.def"
+	# These are failing in Percona-Server 5.7 for now and are believed to be
+	# false positives or are known to fail:
+	#
+	# group_replication.gr_communication_configuration: requires a valid local network address
+	#                                                   which clashes with FEATURES=network-sandbox
+	# main.percona_bug1289599:                          https://jira.percona.com/browse/PS-2072
+	# main.percona_log_slow_innodb:                     https://jira.percona.com/browse/PS-4930
+	# keyring_vault.keyring_vault_timeout:              requires network access to vault.public-ci.percona.com
+	#                                                   which clashes with FEATURES=network-sandbox
+	#
+	local t
+
+	for t in \
+		group_replication.gr_communication_configuration \
+		main.percona_bug1289599 \
+		main.percona_log_slow_innodb \
+		keyring_vault.keyring_vault_timeout \
+	; do
+			_disable_test "$t" "False positives in Gentoo / Known bug"
+	done
+
+	if use numa && use kernel_linux ; then
+		# bug 584880
+		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
+			for t in sys_vars.innodb_numa_interleave_basic ; do
+				_disable_test "$t" "Test $t requires system with NUMA support"
+			done
+		fi
+	fi
+
+	if use tokudb ; then
+		if [[ -f "/sys/kernel/mm/transparent_hugepage/enabled" ]] ; then
+			if grep -q -E "\[always\]" /sys/kernel/mm/transparent_hugepage/enabled &>/dev/null ; then
+				# TokuDB refuses to start when transparent hugepages are enabled
+				for t in \
+					tokudb.rows-32m-rand-insert \
+					tokudb.savepoint-2 \
+					tokudb.savepoint-3 \
+					tokudb.savepoint-4 \
+					tokudb.savepoint-1078 \
+					tokudb.savepoint-1078-2 \
+					tokudb.savepoint-1078-3 \
+					tokudb.savepoint-1078-4 \
+				; do
+						_disable_test "$t" "TokuDB will not work with transparent hugepages enabled"
+				done
+			fi
+		else
+			einfo "Cannot determine transparent hugepage status."
+			einfo "Please note that TokuDB refuses to start when transparent hugepages are enabled!"
+		fi
+	fi
+
+	if ! use latin1 ; then
+		# The following tests will fail if DEFAULT_CHARSET
+		# isn't set to latin1:
+		for t in \
+			binlog.binlog_mysqlbinlog_filter \
+			binlog.binlog_xa_prepared_disconnect \
+			funcs_1.is_columns_mysql \
+			funcs_1.is_tables_mysql \
+			funcs_1.is_triggers \
+			innodb.innodb_pagesize_max_recordsize \
+			innodb.innodb-system-table-view \
+			innodb.mysqldump_max_recordsize \
+			main.mysql_client_test \
+			main.mysqld--help-notwin \
+			main.type_string \
+			main.information_schema \
+			perfschema.binlog_edge_mix \
+			perfschema.binlog_edge_stmt \
+			rpl.rpl_xa_survive_disconnect \
+			rpl.rpl_xa_survive_disconnect_lsu_off \
+			rpl.rpl_xa_survive_disconnect_table \
+		; do
+				_disable_test "$t" "requires DEFAULT_CHARSET=latin1 but USE=-latin1 is set"
+		done
+	fi
+
+	# Try to increase file limits to increase test coverage
+	if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
+		# Upper limit comes from parts.partition_* tests
+		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
+
+		if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
+			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
+			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
+
+			if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
+				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
+			else
+				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
+			fi
+		else
+			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
+		fi
+	else
+		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
+	fi
+
+	# run mysql-test tests
+	perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def"
+	retstatus_tests=$?
+
+	popd &>/dev/null || die
+
+	# Cleanup is important for these testcases.
+	pkill -9 -f "${S}/ndb" 2>/dev/null
+	pkill -9 -f "${S}/sql" 2>/dev/null
+
+	local failures=""
+	[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
+	[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
+
+	[[ -z "$failures" ]] || die "Test failures: $failures"
+	einfo "Tests successfully completed"
+}
+
+src_install() {
+	local MULTILIB_WRAPPED_HEADERS
+	local MULTILIB_CHOST_TOOLS
+	if use client-libs ; then
+		# headers with ABI specific data
+		MULTILIB_WRAPPED_HEADERS=(
+			/usr/include/mysql/server/my_config.h
+			/usr/include/mysql/server/mysql_version.h )
+
+		# wrap the config scripts
+		MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
+		multilib-minimal_src_install
+	else
+		multilib_src_install
+		multilib_src_install_all
+	fi
+}
+
+# Intentionally override eclass function
+multilib_src_install() {
+
+	cmake-utils_src_install
+
+	# Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them.
+	find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
+}
+
+multilib_src_install_all() {
+	# Make sure the vars are correctly initialized
+	mysql_init_vars
+
+	# Convenience links
+	einfo "Making Convenience links for mysqlcheck multi-call binary"
+	dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
+	dosym "mysqlcheck" "/usr/bin/mysqlrepair"
+	dosym "mysqlcheck" "/usr/bin/mysqloptimize"
+
+	# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
+	if [[ -d "${ED}/usr/data" ]] ; then
+		rm -Rf "${ED}/usr/data" || die
+	fi
+
+	# Unless they explicitly specific USE=test, then do not install the
+	# testsuite. It DOES have a use to be installed, esp. when you want to do a
+	# validation of your database configuration after tuning it.
+	if ! use test ; then
+		rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
+	fi
+
+	# Configuration stuff
+	einfo "Building default configuration ..."
+	insinto "${MY_SYSCONFDIR#${EPREFIX}}"
+	[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
+	cp "${FILESDIR}/my.cnf-5.7" "${TMPDIR}/my.cnf" || die
+	eprefixify "${TMPDIR}/my.cnf"
+	doins "${TMPDIR}/my.cnf"
+	insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.d"
+	cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
+	eprefixify "${TMPDIR}/50-distro-client.cnf"
+	doins "${TMPDIR}/50-distro-client.cnf"
+
+	if use server ; then
+		mycnf_src="my.cnf.distro-server"
+		sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
+			"${FILESDIR}/${mycnf_src}" \
+			> "${TMPDIR}/my.cnf.ok" || die
+		if use prefix ; then
+			sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
+				"${TMPDIR}/my.cnf.ok" || die
+		fi
+		if use latin1 ; then
+			sed -i \
+				-e "/character-set/s|utf8|latin1|g" \
+				"${TMPDIR}/my.cnf.ok" || die
+		fi
+		eprefixify "${TMPDIR}/my.cnf.ok"
+		newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
+
+		einfo "Including support files and sample configurations"
+		docinto "support-files"
+		local script
+		for script in \
+			"${S}"/support-files/magic
+		do
+			[[ -f "$script" ]] && dodoc "${script}"
+		done
+
+		docinto "scripts"
+		for script in "${S}"/scripts/mysql* ; do
+			[[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}"
+		done
+
+		if use tokudb ; then
+			# Remove some unwanted files
+			rm -fv \
+				"${ED%/}"/usr/COPYING.AGPLv3 \
+				"${ED%/}"/usr/COPYING.GPLv2 \
+				"${ED%/}"/usr/PATENTS \
+				"${ED%/}"/usr/README.md \
+				|| die
+		fi
+	fi
+
+	if ! use client-libs ; then
+		rm -rv \
+			"${ED%/}"/usr/$(get_libdir)/pkgconfig \
+			|| die
+	fi
+
+	#Remove mytop if perl is not selected
+	[[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
+}
+
+pkg_config() {
+	_getoptval() {
+		local mypd="${EROOT%/}"/usr/bin/my_print_defaults
+		local section="$1"
+		local flag="--${2}="
+		local extra_options="${3}"
+		"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
+	}
+	local old_MY_DATADIR="${MY_DATADIR}"
+	local old_HOME="${HOME}"
+	# my_print_defaults needs to read stuff in $HOME/.my.cnf
+	export HOME=${EPREFIX%/}/root
+
+	# Make sure the vars are correctly initialized
+	mysql_init_vars
+
+	[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
+	if [[ ! -x "${EROOT%/}/usr/sbin/mysqld" ]] ; then
+		die "Minimal builds do NOT include the MySQL server"
+	fi
+
+	if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]] ; then
+		local MY_DATADIR_s="${ROOT%/}/${MY_DATADIR}"
+		MY_DATADIR_s="${MY_DATADIR_s%%/}"
+		local old_MY_DATADIR_s="${ROOT%/}/${old_MY_DATADIR}"
+		old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"
+
+		if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]] ; then
+			if [[ -d "${MY_DATADIR_s}" ]] ; then
+				ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
+				ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
+			else
+				elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
+				mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
+				|| die "Moving MY_DATADIR failed"
+			fi
+		else
+			ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
+			if [[ -d "${MY_DATADIR_s}" ]] ; then
+				ewarn "Attempting to use ${MY_DATADIR_s}"
+			else
+				eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
+				die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
+			fi
+		fi
+	fi
+
+	local pwd1="a"
+	local pwd2="b"
+	local maxtry=15
+
+	if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+		local tmp_mysqld_password_source=
+
+		for tmp_mysqld_password_source in mysql client ; do
+			einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
+			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
+			if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
+				if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
+					ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
+					MYSQL_ROOT_PASSWORD=
+					continue
+				fi
+
+				einfo "Found password in '${tmp_mysqld_password_source}' section!"
+				break
+			fi
+		done
+
+		# Sometimes --show is required to display passwords in some implementations of my_print_defaults
+		if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
+			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
+		fi
+
+		unset tmp_mysqld_password_source
+	fi
+	MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)"
+	# These are dir+prefix
+	MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log)"
+	MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
+	MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)"
+	MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
+
+	if [[ ! -d "${EROOT%/}/$MYSQL_TMPDIR" ]] ; then
+		einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
+		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_TMPDIR"
+	fi
+
+	if [[ ! -d "${EROOT%/}/$MYSQL_LOG_BIN" ]] ; then
+		einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
+		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_LOG_BIN"
+	fi
+
+	if [[ ! -d "${EROOT%/}/$MYSQL_RELAY_LOG" ]] ; then
+		einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
+		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_RELAY_LOG"
+	fi
+
+	if [[ -d "${ROOT%/}/${MY_DATADIR}/mysql" ]] ; then
+		ewarn "You have already a MySQL database in place."
+		ewarn "(${ROOT%/}/${MY_DATADIR}/*)"
+		ewarn "Please rename or delete it if you wish to replace it."
+		die "MySQL database already exists!"
+	fi
+
+	# 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 [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+
+		einfo "Please provide a password for the mysql 'root' user now"
+		einfo "or through the ${HOME}/.my.cnf file."
+		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
+		MYSQL_ROOT_PASSWORD="${pwd1}"
+		unset pwd1 pwd2
+	fi
+
+	local options
+	local sqltmp="$(emktemp)"
+
+	# Fix bug 446200. Don't reference host my.cnf, needs to come first,
+	# see http://bugs.mysql.com/bug.php?id=31312
+	use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'"
+
+	# Figure out which options we need to disable to do the setup
+	local helpfile="${TMPDIR%/}/mysqld-help"
+	"${EROOT%/}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
+	for opt in host-cache name-resolve networking slave-start \
+		federated ssl log-bin relay-log slow-query-log external-locking \
+		log-slave-updates \
+		; do
+		optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
+		egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
+	done
+
+	einfo "Creating the mysql database and setting proper permissions on it ..."
+
+	# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
+	PID_DIR="${EROOT%/}/var/run/mysqld"
+	if [[ ! -d "${PID_DIR}" ]] ; then
+		install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
+	fi
+
+	if [[ ! -d "${MY_DATADIR}" ]] ; then
+		install -d -m 750 -o mysql -g mysql "${MY_DATADIR}" || die "Could not create data directory"
+	fi
+
+	pushd "${TMPDIR}" &>/dev/null || die
+
+	# Filling timezones, see
+	# http://dev.mysql.com/doc/mysql/en/time-zone-support.html
+	echo "USE mysql;" >"${sqltmp}"
+	"${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" >> "${sqltmp}" 2>/dev/null
+	chown mysql "${sqltmp}" || die
+
+	# --initialize-insecure will not set root password
+	# --initialize would set a random one in the log which we don't need as we set it ourselves
+	local cmd=( "${EROOT%/}/usr/sbin/mysqld" "--initialize-insecure" "--init-file='${sqltmp}'" )
+	cmd+=( "--basedir=${EPREFIX%/}/usr" ${options} "--datadir=${ROOT%/}${MY_DATADIR}" "--tmpdir=${ROOT%/}${MYSQL_TMPDIR}" )
+	einfo "Command: ${cmd[*]}"
+	su -s /bin/sh -c "${cmd[*]}" mysql \
+		>"${TMPDIR%/}"/mysql_install_db.log 2>&1
+	if [[ $? -ne 0 ]] ; then
+		grep -B5 -A999 -i "ERROR" "${TMPDIR%/}"/mysql_install_db.log 1>&2
+		die "Failed to initialize mysqld. Please review ${EPREFIX%/}/var/log/mysql/mysqld.err AND ${TMPDIR%/}/mysql_install_db.log"
+	fi
+	popd &>/dev/null || die
+	[[ -f "${ROOT%/}/${MY_DATADIR}/mysql/user.frm" ]] \
+	|| die "MySQL databases not installed"
+
+	use prefix || options="${options} --user=mysql"
+
+	local socket="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.sock"
+	local pidfile="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.pid"
+	local mysqld="${EROOT%/}/usr/sbin/mysqld \
+		${options} \
+		$(use prefix || echo --user=mysql) \
+		--log-warnings=0 \
+		--basedir=${EROOT%/}/usr \
+		--datadir=${ROOT%/}/${MY_DATADIR} \
+		--max_allowed_packet=8M \
+		--net_buffer_length=16K \
+		--socket=${socket} \
+		--pid-file=${pidfile}
+		--tmpdir=${ROOT}/${MYSQL_TMPDIR}"
+	#einfo "About to start mysqld: ${mysqld}"
+	ebegin "Starting mysqld"
+	einfo "Command ${mysqld}"
+	${mysqld} &
+	rc=$?
+	while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
+		maxtry=$((${maxtry}-1))
+		echo -n "."
+		sleep 1
+	done
+	eend $rc
+
+	if ! [[ -S "${socket}" ]] ; then
+		die "Completely failed to start up mysqld with: ${mysqld}"
+	fi
+
+	ebegin "Setting root password"
+	# Do this from memory, as we don't want clear text passwords in temp files
+	local sql="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}'"
+	"${EROOT%/}/usr/bin/mysql" \
+		--no-defaults \
+		"--socket=${socket}" \
+		-hlocalhost \
+		-e "${sql}"
+	eend $?
+
+	# Stop the server and cleanup
+	einfo "Stopping the server ..."
+	kill $(< "${pidfile}" )
+	rm -f "${sqltmp}"
+	wait %1
+	einfo "Done"
+}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-db/percona-server/, dev-db/percona-server/files/
@ 2018-12-29 20:19 Thomas Deutschmann
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Deutschmann @ 2018-12-29 20:19 UTC (permalink / raw
  To: gentoo-commits

commit:     c0a34f0628ff67e3d2d9089b145b5bb2263e9f28
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 29 20:18:47 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sat Dec 29 20:19:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c0a34f06

dev-db/percona-server: drop old

Package-Manager: Portage-2.3.53, Repoman-2.3.12
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 dev-db/percona-server/Manifest                     |    6 -
 dev-db/percona-server/files/my.cnf-5.6             |  140 ---
 dev-db/percona-server/metadata.xml                 |    1 -
 .../percona-server-5.6.40.84.0.ebuild              |  944 -----------------
 .../percona-server-5.6.41.84.1.ebuild              |  944 -----------------
 .../percona-server-5.7.23.23-r1.ebuild             | 1038 -------------------
 .../percona-server/percona-server-5.7.23.24.ebuild | 1066 --------------------
 .../percona-server/percona-server-5.7.23.25.ebuild | 1066 --------------------
 8 files changed, 5205 deletions(-)

diff --git a/dev-db/percona-server/Manifest b/dev-db/percona-server/Manifest
index c00c6e6cf18..e532723c966 100644
--- a/dev-db/percona-server/Manifest
+++ b/dev-db/percona-server/Manifest
@@ -1,9 +1,3 @@
 DIST boost_1_59_0.tar.gz 83709983 BLAKE2B 8c6676fa05fa401a6ecb3b890d95aceb4421ec48dd0eab38ce8d170c618e177c82dc67a165938f6be1a01daab24ce41888f5442dbc19ad3dd41368a01a6f89e4 SHA512 05fdbe5637543defdbc630b921515425885593d16db14534ed7b9aa60925ade8fb598d50cb894aed6dae688e789047216daa1bf03fa1aeb6b531060d9dae52ae
-DIST mysql-extras-20180628-0201Z.tar.bz2 322141 BLAKE2B fce35cfea4ffa9860908fcdf440cd0d714c402c42ee2afb22cec9e727971c216310c7db561ca1b37deebb2cea5137fe24f19b491ad500949e3170ccec3de0b13 SHA512 71a3800ec091b41e41d25536199149eb714c0bbfc0f6fc478e8e4dcaf4cf87a7e4d49c513da3c9badc0de810d7d78c05ad91dd898e45005b42136346237de42a
 DIST mysql-extras-20181017-2201Z.tar.bz2 328311 BLAKE2B f1b179e0f2d63105f03ba238125e6cfa2c0cbf2084251b6c344bd02517899322bd161470eddab28c514349caac6401c35909b2f37264fdaf2dc196a309d3cc27 SHA512 26e26a3ad926bc9267d89f0bc34b030bc6292f21d3007185c4c1155beaa608566b4268f93edb64fd6156dbae80ac4f2817e78c1e92e90985e2675c2b1f97854e
-DIST percona-server-5.6.40-84.0.tar.gz 52684007 BLAKE2B 11658be2319880f7e8815c7b620b7d460dd7a559316ca96905573b0fa2d7180b084ed425f76f6d850f06862e424b5a8d6ced8356f9075826b77e89e86095eb40 SHA512 b1075933bdf1afb726acd799e834cb45a1d2a15d3f37f313da71f8da03a7b9480d7ccfb4cb6a820fb6ccf58851d8c9473bce975203cd6bc007a2b74b36a1127f
-DIST percona-server-5.6.41-84.1.tar.gz 52736448 BLAKE2B 1ec5e17f08274caa3882f829f25bbf74a3b37d2ba208f62376106f0d89e5470f461f7852e365d5da9503d5500702e28f08461e5aa0c5ae6b1a30a0e98dbb426b SHA512 60783154f9ab097083a484c34e584b396eeba4aa53dc8616c467ca9c85cc626be08e3165740703453cc4fb35f3af94ac34260f1e2bb133d60f832661251cbb3c
-DIST percona-server-5.7.23-23.tar.gz 79165468 BLAKE2B a460ac88886fa2be65abb0520d541db54413274599e02d8de3a01a68f8c3da431bfe819eb32bf80518fdff69bbcfae90ee089d2a096ee6210f9e4efe60dbab25 SHA512 351d40d3f7c3fe72f733443a6ef3902e1455390835e52e73d7eb48698ac6f2363e07811d40b22af5b1c7607622017d613279581940522c5e99660fac89d4d4c6
-DIST percona-server-5.7.23-24.tar.gz 81641623 BLAKE2B f23e8787f7c3b38517e22b8b12da38f549b03343091cdb7ff17b0b719036a10aa954f30162fdf032fa4813f6ee59881fa9334f7ce6d1a646fa2c338b4bf3f2cb SHA512 9449cf4f5e6b9abb062b17652a258ddf99397d82efd89c9b0c1b20ddfef3d3531c2c1b71cb91664ea6ee897c136310af58fcc900d5f80d37e8eb73a2a616fa41
-DIST percona-server-5.7.23-25.tar.gz 81600024 BLAKE2B 5db3f3abe5a88b4178bb7f93801a8169994a75caa3677e7653a169e380c221a9bd8c390254207b0104e3b74bd751476720ba25f65cd965d7e4b0ad86174f749d SHA512 1ce27b4a08f1e882e8635c688d44f593d95bfe30dc0678a0e6779381e80c081bf147047b40d990613893cfcb5e0d870ac3fcec1f24cd52b64efd0ed78ed05ccb
 DIST percona-server-5.7.24-27.tar.gz 81757023 BLAKE2B 80c28ca3195874133b127ba7268aa6a6af89f4d1a38ee34f0a761e8c35b8da2c8a94781e7672e241164b9887549846875fc294e36e4229f8e2c4d3f65562350e SHA512 f2a5af3c75577da911bcee5bf962e5b6d723ede1a21f19f9211cda1a7e37a3523d904ea0af6fa9787418959c8824c0cf48726b8b0a426b81df01e5a51214b70d

diff --git a/dev-db/percona-server/files/my.cnf-5.6 b/dev-db/percona-server/files/my.cnf-5.6
deleted file mode 100644
index 047c8d79be4..00000000000
--- a/dev-db/percona-server/files/my.cnf-5.6
+++ /dev/null
@@ -1,140 +0,0 @@
-# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/my.cnf: The global mysql configuration file.
-
-# 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 			= 4M
-table_open_cache 			= 400
-sort_buffer_size 			= 512K
-net_buffer_length 			= 16K
-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 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 = 128M
-#
-# 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 = 48M
-# 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/percona-server/metadata.xml b/dev-db/percona-server/metadata.xml
index 6cc220d337d..01da26f9882 100644
--- a/dev-db/percona-server/metadata.xml
+++ b/dev-db/percona-server/metadata.xml
@@ -16,7 +16,6 @@
   <flag name="rocksdb">Add support for RocksDB; a key/value, LSM database optimized for flash storage</flag>
   <flag name="server">Build the server program</flag>
   <flag name="systemtap">Build support for profiling and tracing using <pkg>dev-util/systemtap</pkg></flag>
-  <flag name="test-suite">Install upstream testsuites for end use.</flag>
   <flag name="tokudb">Add support for TokuDB storage engine</flag>
   <flag name="tokudb-backup-plugin">Builds the TokuDB backup plugin</flag>
   <flag name="yassl">Enable SSL connections and crypto functions using the bundled yaSSL</flag>

diff --git a/dev-db/percona-server/percona-server-5.6.40.84.0.ebuild b/dev-db/percona-server/percona-server-5.6.40.84.0.ebuild
deleted file mode 100644
index 2e7c3b95a1f..00000000000
--- a/dev-db/percona-server/percona-server-5.6.40.84.0.ebuild
+++ /dev/null
@@ -1,944 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20180628-0201Z"
-PYTHON_COMPAT=( python2_7 )
-CMAKE_MAKEFILE_GENERATOR=emake
-
-# Keeping eutils in EAPI=6 for emktemp in pkg_config
-
-inherit linux-info python-any-r1 eutils flag-o-matic prefix toolchain-funcs \
-	eapi7-ver user cmake-utils multilib-minimal
-
-MY_PV=$(ver_rs 3 '-')
-MY_PN="Percona-Server"
-MY_MAJOR_PV=$(ver_cut 1-2)
-MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.6/release-notes/release-notes_index.html"
-SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz"
-
-# Gentoo patches to MySQL
-if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then
-	SRC_URI="${SRC_URI}
-		mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://dev.gentoo.org/~grknight/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
-fi
-
-HOMEPAGE="https://www.percona.com/software/percona-server"
-DESCRIPTION="An enhanced, drop-in replacement for MySQL from the Percona team"
-LICENSE="GPL-2"
-SLOT="0/18"
-IUSE="-client-libs cracklib debug jemalloc latin1 libressl numa pam +perl profiling rocksdb selinux
-	+server static static-libs systemtap tcmalloc test test-suite tokudb tokudb-backup-plugin yassl"
-
-# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
-RESTRICT="libressl? ( test )"
-
-REQUIRED_USE="tokudb-backup-plugin? ( tokudb ) tokudb? ( jemalloc !tcmalloc ) ?? ( tcmalloc jemalloc ) static? ( yassl )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
-
-# 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"
-
-if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
-	inherit git-r3
-	EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git"
-	EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras"
-	EGIT_CLONE_TYPE=shallow
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras"
-else
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-fi
-
-PATCHES=(
-	"${MY_PATCH_DIR}"/01050_all_mysql_config_cleanup-5.6.patch
-	"${MY_PATCH_DIR}"/02040_all_embedded-library-shared-5.5.10.patch
-	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.6.20.patch
-	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.6.22.patch
-	"${MY_PATCH_DIR}"/20008_all_mysql-tzinfo-symlink-5.6.37.patch
-	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.6.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.6.39-without-clientlibs-tools.patch
-)
-
-# Be warned, *DEPEND are version-dependant
-# These are used for both runtime and compiletime
-# MULTILIB_USEDEP only set for libraries used by the client library
-COMMON_DEPEND="
-	kernel_linux? (
-		sys-process/procps:0=
-		dev-libs/libaio:0=
-	)
-	>=sys-apps/sed-4
-	>=sys-apps/texinfo-4.7-r1
-	jemalloc? ( dev-libs/jemalloc:0= )
-	tcmalloc? ( dev-util/google-perftools:0= )
-	systemtap? ( >=dev-util/systemtap-1.3:0= )
-	!yassl? (
-		client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] )
-			libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] )
-		)
-		!client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0= )
-			libressl? ( dev-libs/libressl:0= )
-		)
-	)
-	client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] )
-	!client-libs? ( >=sys-libs/zlib-1.2.3:0= )
-	sys-libs/ncurses:0=
-	server? (
-		>=dev-libs/boost-1.65.0:=
-		numa? ( sys-process/numactl )
-		pam? ( virtual/pam:0= )
-		tokudb? ( app-arch/snappy )
-		tokudb-backup-plugin? ( dev-util/valgrind )
-	)
-	!client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] )
-"
-DEPEND="virtual/yacc
-	static? ( sys-libs/ncurses[static-libs] )
-	test? (
-		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
-		dev-perl/JSON
-	)
-	${COMMON_DEPEND}"
-RDEPEND="selinux? ( sec-policy/selinux-mysql )
-	abi_x86_32? ( !app-emulation/emul-linux-x86-db[-abi_x86_32(-)] )
-	client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c )
-	!dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster
-	server? ( !prefix? ( dev-db/mysql-init-scripts ) )
-	${COMMON_DEPEND}
-"
-# For other stuff to bring us in
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-python_check_deps() {
-	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-mysql_init_vars() {
-	MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"}
-	MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX%/}/etc/mysql"}
-	MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX%/}/var/lib/mysql"}
-	MY_LOGDIR=${MY_LOGDIR="${EPREFIX%/}/var/log/mysql"}
-
-	if [[ -z "${MY_DATADIR}" ]] ; then
-		MY_DATADIR=""
-		if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
-			MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-			if [[ -z "${MY_DATADIR}" ]] ; then
-				MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
-				| sed -e 's/.*=\s*//' \
-				| tail -n1`
-			fi
-		fi
-		if [[ -z "${MY_DATADIR}" ]] ; then
-			MY_DATADIR="${MY_LOCALSTATEDIR}"
-			einfo "Using default MY_DATADIR"
-		fi
-		elog "MySQL MY_DATADIR is ${MY_DATADIR}"
-
-		if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
-			if [[ -e "${MY_DATADIR}" ]] ; then
-				# If you get this and you're wondering about it, see bug #207636
-				elog "MySQL datadir found in ${MY_DATADIR}"
-				elog "A new one will not be created."
-				PREVIOUS_DATADIR="yes"
-			else
-				PREVIOUS_DATADIR="no"
-			fi
-			export PREVIOUS_DATADIR
-		fi
-	else
-		if [[ ${EBUILD_PHASE} == "config" ]] ; then
-			local new_MY_DATADIR
-			new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-
-			if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]] ; then
-				ewarn "MySQL MY_DATADIR has changed"
-				ewarn "from ${MY_DATADIR}"
-				ewarn "to ${new_MY_DATADIR}"
-				MY_DATADIR="${new_MY_DATADIR}"
-			fi
-		fi
-	fi
-
-	export MY_SHAREDSTATEDIR MY_SYSCONFDIR
-	export MY_LOCALSTATEDIR MY_LOGDIR
-	export MY_DATADIR
-}
-
-pkg_pretend() {
-	if use numa; then
-		local CONFIG_CHECK="~NUMA"
-
-		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
-		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
-		check_extra_config
-	fi
-}
-
-pkg_setup() {
-	if [[ ${MERGE_TYPE} != binary ]] ; then
-		local GCC_MAJOR_SET=$(gcc-major-version)
-		local GCC_MINOR_SET=$(gcc-minor-version)
-		if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \
-			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
-			eerror "${PN} with tokudb needs to be built with gcc-4.7 or later."
-			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-			die
-		fi
-		# Bug 565584.  InnoDB now requires atomic functions introduced with gcc-4.7 on
-		# non x86{,_64} arches
-		if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
-			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
-			eerror "${PN} needs to be built with gcc-4.7 or later."
-			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-			die
-		fi
-	fi
-	if has test ${FEATURES} && \
-		use server && ! has userpriv ${FEATURES} ; then
-			eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
-	fi
-
-	# This should come after all of the die statements
-	enewgroup mysql 60 || die "problem adding 'mysql' group"
-	enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
-}
-
-src_unpack() {
-	unpack ${A}
-
-	# Grab the patches
-	[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack
-
-	mv -f "${WORKDIR}/${PN}-${MY_PV}" "${S}" || die
-}
-
-src_prepare() {
-	if use jemalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	elif use tcmalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	# Don't build bundled xz-utils
-	if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then
-		echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
-	elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then
-		echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
-		sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
-	fi
-
-	if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then
-		 rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die
-	fi
-
-	# Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
-	if [[ -d "${S}/support-files/SELinux" ]] ; then
-		echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
-	fi
-
-	if use libressl ; then
-		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-			"${S}/cmake/ssl.cmake" || die
-	fi
-
-	cmake-utils_src_prepare
-}
-
-src_configure() {
-	# bug 508724 mariadb cannot use ld.gold
-	tc-ld-disable-gold
-
-	# Bug #114895, bug #110149
-	filter-flags "-O" "-O[01]"
-
-	append-cxxflags -felide-constructors
-
-	# bug #283926, with GCC4.4, this is required to get correct behavior.
-	append-flags -fno-strict-aliasing
-
-	if use client-libs ; then
-		multilib-minimal_src_configure
-	else
-		multilib_src_configure
-	fi
-}
-
-multilib_src_configure() {
-	debug-print-function ${FUNCNAME} "$@"
-
-	if ! multilib_is_native_abi && ! use client-libs ; then
-		return
-	fi
-
-	CMAKE_BUILD_TYPE="RelWithDebInfo"
-
-	# debug hack wrt #497532
-	mycmakeargs=(
-		-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
-		-DMYSQL_DATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DSYSCONFDIR="${EPREFIX%/}/etc/mysql"
-		-DINSTALL_BINDIR=bin
-		-DINSTALL_DOCDIR=share/doc/${PF}
-		-DINSTALL_DOCREADMEDIR=share/doc/${PF}
-		-DINSTALL_INCLUDEDIR=include/mysql
-		-DINSTALL_INFODIR=share/info
-		-DINSTALL_LIBDIR=$(get_libdir)
-		-DINSTALL_MANDIR=share/man
-		-DINSTALL_MYSQLSHAREDIR=share/mysql
-		-DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
-		-DINSTALL_SCRIPTDIR=share/mysql/scripts
-		-DINSTALL_SQLBENCHDIR=NO
-		-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DINSTALL_SBINDIR=sbin
-		-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql"
-		-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
-		-DWITH_UNIT_TESTS=$(usex test ON OFF)
-		### TODO: make this system but issues with UTF-8 prevent it
-		-DWITH_EDITLINE=bundled
-		-DWITH_ZLIB=system
-		-DWITH_LIBWRAP=0
-		-DENABLED_LOCAL_INFILE=1
-		-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-		-DWITH_DEFAULT_COMPILER_OPTIONS=0
-		-DWITH_DEFAULT_FEATURE_SET=0
-		# The build forces this to be defined when cross-compiling.  We pass it
-		# all the time for simplicity and to make sure it is actually correct.
-		-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-		-DWITH_LIBEVENT=NO
-	)
-	if use test || use test-suite ; then
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
-	else
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
-	fi
-
-	if ! use yassl ; then
-		mycmakeargs+=( -DWITH_SSL=system )
-	else
-		mycmakeargs+=( -DWITH_SSL=bundled )
-	fi
-
-	if ! use client-libs ; then
-		mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
-	fi
-
-	# bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
-	# systemtap only works on native ABI  bug 530132
-	if multilib_is_native_abi; then
-		mycmakeargs+=(
-			-DENABLE_DTRACE=$(usex systemtap)
-		)
-	else
-		mycmakeargs+=(
-			-DWITHOUT_TOOLS=1
-			-DWITH_READLINE=1
-			-DENABLE_DTRACE=0
-		)
-	fi
-
-	if multilib_is_native_abi && use server ; then
-		mycmakeargs+=(
-			-DWITH_PAM=$(usex pam)
-			-DWITH_NUMA=$(usex numa ON OFF)
-		)
-
-		if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then
-			ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
-			ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
-			ewarn "You MUST file bugs without these variables set."
-
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
-				-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
-			)
-
-		elif ! use latin1 ; then
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=utf8
-				-DDEFAULT_COLLATION=utf8_general_ci
-			)
-		else
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=latin1
-				-DDEFAULT_COLLATION=latin1_swedish_ci
-			)
-		fi
-		mycmakeargs+=(
-			-DEXTRA_CHARSETS=all
-			-DDISABLE_SHARED=$(usex static YES NO)
-			-DWITH_DEBUG=$(usex debug)
-			-DWITH_EMBEDDED_SERVER=OFF
-			-DENABLED_PROFILING=$(usex profiling)
-		)
-
-		if use static; then
-			mycmakeargs+=( -DWITH_PIC=1 )
-		fi
-
-		# Storage engines
-		mycmakeargs+=(
-			-DWITH_EXAMPLE_STORAGE_ENGINE=0
-			-DWITH_ARCHIVE_STORAGE_ENGINE=1
-			-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-			-DWITH_CSV_STORAGE_ENGINE=1
-			-DWITH_HEAP_STORAGE_ENGINE=1
-			-DWITH_INNOBASE_STORAGE_ENGINE=1
-			-DWITH_MYISAMMRG_STORAGE_ENGINE=1
-			-DWITH_MYISAM_STORAGE_ENGINE=1
-			-DWITH_PARTITION_STORAGE_ENGINE=1
-			-DWITH_FEDERATED_STORAGE_ENGINE=1
-			-DWITH_INNODB_MEMCACHED=0
-			-DWITH_ROCKSDB=$(usex rocksdb 1 0)
-			$(usex tokudb '' -DWITHOUT_TOKUDB=1)
-		)
-
-		if use tokudb ; then
-			# TokuDB Backup plugin requires valgrind unconditionally
-			mycmakeargs+=(
-				$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
-			)
-		fi
-
-	else
-		mycmakeargs+=(
-			-DWITHOUT_SERVER=1
-			-DWITH_EMBEDDED_SERVER=OFF
-			-DEXTRA_CHARSETS=none
-		)
-	fi
-
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	if use client-libs ; then
-		multilib-minimal_src_compile
-	else
-		multilib_src_compile
-	fi
-}
-
-multilib_src_compile() {
-	cmake-utils_src_compile
-}
-
-# Official test instructions:
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-src_test() {
-	_disable_test() {
-		local rawtestname reason
-		rawtestname="${1}" ; shift
-		reason="${@}"
-		ewarn "test '${rawtestname}' disabled: '${reason}'"
-		echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
-	}
-
-	local TESTDIR="${BUILD_DIR}/mysql-test"
-	local retstatus_unit
-	local retstatus_tests
-
-	if ! use server ; then
-		einfo "Skipping server tests due to minimal build."
-		return 0
-	fi
-
-	# 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"
-
-	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
-	# Run CTest (test-units)
-	cmake-utils_src_test
-	retstatus_unit=$?
-
-	# Ensure that parallel runs don't die
-	export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
-	# Enable parallel testing, auto will try to detect number of cores
-	# You may set this by hand.
-	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
-	# create directories because mysqladmin might run out of order
-	mkdir -p "${T}"/var-tests{,/log} || die "Failed to create \"${T}/var-tests{,/log}\""
-
-	# Run mysql tests
-	pushd "${TESTDIR}" > /dev/null || die "Failed to chdir into \"${TESTDIR}\""
-
-	touch "${T}/disabled.def"
-	# These are failing in MySQL 5.6 for now and are believed to be
-	# false positives:
-
-	local t
-	for t in main.mysql_client_test \
-		binlog.binlog_statement_insert_delayed main.information_schema \
-		main.mysqld--help-notwin binlog.binlog_mysqlbinlog_filter \
-		perfschema.binlog_edge_mix perfschema.binlog_edge_stmt \
-		funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers \
-		main.variables main.myisam main.merge_recover \
-		engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate \
-		engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8 \
-		engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate \
-		main.percona_bug1289599 main.mysqlhotcopy_archive main.mysqlhotcopy_myisam ; do
-			_disable_test  "$t" "False positives in Gentoo"
-	done
-
-	if use numa && use kernel_linux ; then
-		# bug 584880
-		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
-			for t in sys_vars.innodb_buffer_pool_populate_basic ; do
-				_disable_test "$t" "Test $t requires system with NUMA support"
-			done
-		fi
-	fi
-
-	# Set file limits higher so tests run
-	if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
-		# Upper limit comes from parts.partition_* tests
-		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
-		if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
-			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
-			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
-			if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
-				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
-			else
-				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
-			fi
-		else
-			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
-		fi
-	else
-		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
-	fi
-
-	python_setup
-	# run mysql-test tests
-	perl mysql-test-run.pl --force --vardir="${T}/var-tests" \
-		--testcase-timeout=30 --reorder --skip-test-list="${T}/disabled.def"
-	retstatus_tests=$?
-
-	popd > /dev/null || die
-
-	# Cleanup is important for these testcases.
-	pkill -9 -f "${S}/ndb" 2>/dev/null
-	pkill -9 -f "${S}/sql" 2>/dev/null
-
-	local failures=""
-	[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
-	[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
-
-	if [[ -n "$failures" ]] ; then
-		if has usersandbox ${FEATURES}; then
-			ewarn "Some tests may have failed due to FEATURES=usersandbox"
-			ewarn "Please confirm test failure with FEATURES=-usersandbox before reporting a bug."
-		fi
-
-		die "Test failures: $failures"
-	fi
-
-	einfo "Tests successfully completed"
-}
-
-src_install() {
-	local MULTILIB_WRAPPED_HEADERS
-	local MULTILIB_CHOST_TOOLS
-	if use client-libs ; then
-		# headers with ABI specific data
-		MULTILIB_WRAPPED_HEADERS=(
-			/usr/include/mysql/server/my_config.h
-			/usr/include/mysql/server/mysql_version.h )
-
-		# wrap the config scripts
-		MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
-		multilib-minimal_src_install
-	else
-		multilib_src_install
-		multilib_src_install_all
-	fi
-}
-
-# Intentionally override eclass function
-multilib_src_install() {
-	cmake-utils_src_install
-
-	# Kill old libmysqclient_r symlinks if they exist.  Time to fix what depends on them.
-	find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
-}
-
-multilib_src_install_all() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Convenience links
-	einfo "Making Convenience links for mysqlcheck multi-call binary"
-	dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
-	dosym "mysqlcheck" "/usr/bin/mysqlrepair"
-	dosym "mysqlcheck" "/usr/bin/mysqloptimize"
-
-	# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
-	if [[ -d "${ED}/usr/data" ]] ; then
-		rm -rf "${ED%/}/usr/data" || die
-	fi
-
-	# Unless they explicitly specific USE=test, then do not install the
-	# testsuite. It DOES have a use to be installed, esp. when you want to do a
-	# validation of your database configuration after tuning it.
-	if ! use test-suite ; then
-		rm -rf "${D%/}/${MY_SHAREDSTATEDIR#/}/mysql-test" || die
-	fi
-
-	# Configuration stuff
-	einfo "Building default configuration ..."
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}"
-	[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
-	mycnf_src="my.cnf-5.6"
-	sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
-		"${FILESDIR}/${mycnf_src}" \
-		> "${TMPDIR}/my.cnf.ok" || die
-	use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR}/my.cnf.ok"
-	if use latin1 ; then
-		sed -i \
-			-e "/character-set/s|utf8|latin1|g" \
-			"${TMPDIR}/my.cnf.ok" || die
-	fi
-	eprefixify "${TMPDIR}/my.cnf.ok"
-	newins "${TMPDIR}/my.cnf.ok" my.cnf
-
-	if use server ; then
-		einfo "Including support files and sample configurations"
-		docinto "support-files"
-		for script in \
-			"${S}"/support-files/my-*.cnf.sh \
-			"${S}"/support-files/magic \
-			"${S}"/support-files/ndb-config-2-node.ini.sh
-		do
-			[[ -f $script ]] && dodoc "${script}"
-		done
-
-		docinto "scripts"
-		for script in "${S}"/scripts/mysql* ; do
-			[[ ( -f $script ) && ( ${script%.sh} == ${script} ) ]] && dodoc "${script}"
-		done
-	fi
-
-	#Remove mytop if perl is not selected
-	[[ -e "${ED%/}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
-}
-
-pkg_preinst() {
-	# Here we need to see if the implementation switched client libraries
-	# We check if this is a new instance of the package and a client library already exists
-	local SHOW_ABI_MESSAGE libpath
-	if use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT}usr/$(get_libdir)/libmysqlclient.so" ]] ; then
-		libpath=$(readlink "${EROOT}usr/$(get_libdir)/libmysqlclient.so")
-		elog "Due to ABI changes when switching between different client libraries,"
-		elog "revdep-rebuild must find and rebuild all packages linking to libmysqlclient."
-		elog "Please run: revdep-rebuild --library ${libpath}"
-		ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
-	fi
-}
-
-pkg_postinst() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Create log directory securely if it does not exist
-	[[ -d "${EROOT%/}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${EROOT%/}${MY_LOGDIR}"
-
-	if use server ; then
-		if [[ -z "${REPLACING_VERSIONS}" ]] ; then
-			einfo
-			elog "You might want to run:"
-			elog "  \"emerge --config =${CATEGORY}/${PF}\""
-			elog "if this is a new install."
-			elog
-			elog "If you are switching server implentations, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		else
-			local _replacing_version=
-			local _new_version_branch=$(ver_cut 1-3 "${PV}")
-			for _replacing_version in ${REPLACING_VERSIONS}; do
-				local _replacing_version_branch=$(ver_cut 1-3 "${_replacing_version}")
-				debug-print "Updating an existing installation (v${_replacing_version}; branch '${_replacing_version_branch}') ..."
-
-				if ver_test "${_new_version_branch}" -gt "${_replacing_version_branch}"; then
-					debug-print "Upgrading from v${_replacing_version_branch} to v${_new_version_branch} ..."
-					# https://www.percona.com/blog/2014/09/19/mysql-upgrade-best-practices/
-
-					einfo
-					elog "You are upgrading an existing ${PN} installation, you should review"
-					elog "release notes at ${MY_RELEASE_NOTES_URI}"
-					elog "and run the mysql_upgrade tool."
-					einfo
-
-					// Break loop - we only want to show this hint once
-					break
-				fi
-			done
-		fi
-
-		elog "Since ${PN}-5.6.39.83.1-r1 we no longer provide client libs."
-		elog "Applications depending on client libs should migrate to virtual/libmysqlclient"
-		elog "which will pull-in dev-db/mysql-connector-c as their new client lib provider."
-		einfo
-	fi
-}
-
-pkg_config() {
-	_getoptval() {
-		local mypd="${EROOT%/}"/usr/bin/my_print_defaults
-		local section="${1}"
-		local flag="--${2}="
-		local extra_options="${3}"
-		"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
-	}
-
-	# 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"
-
-	local old_MY_DATADIR="${MY_DATADIR}"
-	local old_HOME="${HOME}"
-	# my_print_defaults needs to read stuff in $HOME/.my.cnf
-	export HOME=${EPREFIX%/}/root
-
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
-	if [[ ! -x "${EROOT%/}/usr/sbin/mysqld" ]] ; then
-		die "Minimal builds do NOT include the MySQL server"
-	fi
-
-	if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]] ; then
-		local MY_DATADIR_s="${EROOT%/}/${MY_DATADIR#/}"
-		MY_DATADIR_s="${MY_DATADIR_s%%/}"
-		local old_MY_DATADIR_s="${EROOT%/}/${old_MY_DATADIR#/}"
-		old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"
-
-		if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]] ; then
-			if [[ -d "${MY_DATADIR_s}" ]]; then
-				ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
-				ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
-			else
-				elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
-				mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
-				|| die "Moving MY_DATADIR failed"
-			fi
-		else
-			ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Attempting to use ${MY_DATADIR_s}"
-			else
-				eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
-				die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
-			fi
-		fi
-	fi
-
-	# These are dir+prefix
-	MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)"
-	MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log)"
-	MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
-	MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)"
-	MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
-
-	if [[ -d "${EROOT%/}/${MY_DATADIR#/}/mysql" ]] ; then
-		ewarn "You have already a MySQL database in place."
-		ewarn "(${EROOT%/}/${MY_DATADIR#/}/*)"
-		ewarn "Please rename or delete it if you wish to replace it."
-		die "MySQL database already exists!"
-	fi
-
-	if [[ ! -d "${EROOT%/}/${MYSQL_TMPDIR#/}" ]] ; then
-		einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/${MYSQL_TMPDIR#/}"
-	fi
-	if [[ ! -d "${EROOT%/}/${MYSQL_LOG_BIN#/}" ]] ; then
-		einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/${MYSQL_LOG_BIN#/}"
-	fi
-	if [[ ! -d "${EROOT%/}/${MYSQL_RELAY_LOG#/}" ]] ; then
-		einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/${MYSQL_RELAY_LOG#/}"
-	fi
-
-	local pwd1="a"
-	local pwd2="b"
-	local maxtry=15
-
-	if [ -z "${MYSQL_ROOT_PASSWORD}" ] ; then
-		local tmp_mysqld_password_source=
-
-		for tmp_mysqld_password_source in mysql client; do
-			einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
-			if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
-				if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
-					ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
-					MYSQL_ROOT_PASSWORD=
-					continue
-				fi
-
-				einfo "Found password in '${tmp_mysqld_password_source}' section!"
-				break
-			fi
-		done
-
-		# Sometimes --show is required to display passwords in some implementations of my_print_defaults
-		if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
-		fi
-
-		unset tmp_mysqld_password_source
-	fi
-
-	if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-		einfo "Please provide a password for the mysql 'root' user now"
-		einfo "or through the ${HOME}/.my.cnf file."
-		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
-		MYSQL_ROOT_PASSWORD="${pwd1}"
-		unset pwd1 pwd2
-	fi
-
-	local options
-	local sqltmp="$(emktemp)"
-
-	# Fix bug 446200. Don't reference host my.cnf, needs to come first,
-	# see http://bugs.mysql.com/bug.php?id=31312
-	use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR%/}/my.cnf'"
-
-	# Figure out which options we need to disable to do the setup
-	local helpfile="${TMPDIR%/}/mysqld-help"
-	"${EROOT%/}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
-	for opt in grant-tables host-cache name-resolve networking slave-start \
-		federated ssl log-bin relay-log slow-query-log external-locking \
-		log-slave-updates \
-		; do
-		optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
-		egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
-	done
-
-	einfo "Creating the mysql database and setting proper permissions on it ..."
-
-	# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
-	PID_DIR="${EROOT%/}/var/run/mysqld"
-	if [[ ! -d "${PID_DIR}" ]] ; then
-		install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
-	fi
-
-	if [[ ! -d "${EROOT%/}/${MY_DATADIR#/}" ]] ; then
-		install -d -m 750 -o mysql -g mysql "${EROOT%/}/${MY_DATADIR#/}" || die "Could not create data directory"
-	fi
-
-	pushd "${TMPDIR}" &>/dev/null || die
-
-	# Filling timezones, see
-	# http://dev.mysql.com/doc/mysql/en/time-zone-support.html
-	"${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
-
-	local cmd=( "${EROOT%/}/usr/share/mysql/scripts/mysql_install_db" )
-	[[ -f "${cmd}" ]] || cmd=( "${EROOT%/}/usr/bin/mysql_install_db" )
-	cmd+=( "--basedir=${EROOT%/}/usr" ${options} "--datadir=${EROOT%/}/${MY_DATADIR#/}" "--tmpdir=${EROOT%/}/${MYSQL_TMPDIR#/}" )
-	einfo "Command: ${cmd[*]}"
-	su -s /bin/sh -c "${cmd[*]}" mysql \
-		>"${TMPDIR%/}"/mysql_install_db.log 2>&1
-	if [[ $? -ne 0 ]] ; then
-		grep -B5 -A999 -i "ERROR" "${TMPDIR%/}"/mysql_install_db.log 1>&2
-		die "Failed to initialize mysqld. Please review ${EROOT%/}/var/log/mysql/mysqld.err AND ${TMPDIR%/}/mysql_install_db.log"
-	fi
-	popd &>/dev/null || die
-	[[ -f "${EROOT%/}/${MY_DATADIR#/}/mysql/user.frm" ]] \
-	|| die "MySQL databases not installed"
-
-	use prefix || options="${options} --user=mysql"
-
-	local socket="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.sock"
-	local pidfile="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.pid"
-	local mysqld="${EROOT%/}/usr/sbin/mysqld \
-		${options} \
-		--log-warnings=0 \
-		--basedir=${EROOT%/}/usr \
-		--datadir=${EROOT%/}/${MY_DATADIR#/} \
-		--max_allowed_packet=8M \
-		--net_buffer_length=16K \
-		--socket=${socket} \
-		--pid-file=${pidfile} \
-		--tmpdir=${EROOT%/}/${MYSQL_TMPDIR#/}"
-	#einfo "About to start mysqld: ${mysqld}"
-	ebegin "Starting mysqld"
-	einfo "Command ${mysqld}"
-	${mysqld} &
-	rc=$?
-	while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
-		maxtry=$((${maxtry}-1))
-		echo -n "."
-		sleep 1
-	done
-	eend $rc
-
-	if ! [[ -S "${socket}" ]] ; then
-		die "Completely failed to start up mysqld with: ${mysqld}"
-	fi
-
-	ebegin "Setting root password"
-	# Do this from memory, as we don't want clear text passwords in temp files
-	local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'; FLUSH PRIVILEGES"
-	"${EROOT%/}/usr/bin/mysql" \
-		"--socket=${socket}" \
-		-hlocalhost \
-		-e "${sql}"
-	eend $?
-
-	if [[ -n "${sqltmp}" ]] ; then
-		ebegin "Loading \"zoneinfo\", this step may require a few seconds"
-		"${EROOT%/}/usr/bin/mysql" \
-			"--socket=${socket}" \
-			-hlocalhost \
-			-uroot \
-			--password="${MYSQL_ROOT_PASSWORD}" \
-			mysql < "${sqltmp}"
-		rc=$?
-		eend $?
-		[[ $rc -ne 0 ]] && ewarn "Failed to load zoneinfo!"
-	fi
-
-	# Stop the server and cleanup
-	einfo "Stopping the server ..."
-	kill $(< "${pidfile}" )
-	rm -f "${sqltmp}"
-	wait %1
-	einfo "Done"
-}

diff --git a/dev-db/percona-server/percona-server-5.6.41.84.1.ebuild b/dev-db/percona-server/percona-server-5.6.41.84.1.ebuild
deleted file mode 100644
index 636f75b830f..00000000000
--- a/dev-db/percona-server/percona-server-5.6.41.84.1.ebuild
+++ /dev/null
@@ -1,944 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20180628-0201Z"
-PYTHON_COMPAT=( python2_7 )
-CMAKE_MAKEFILE_GENERATOR=emake
-
-# Keeping eutils in EAPI=6 for emktemp in pkg_config
-
-inherit linux-info python-any-r1 eutils flag-o-matic prefix toolchain-funcs \
-	eapi7-ver user cmake-utils multilib-minimal
-
-MY_PV=$(ver_rs 3 '-')
-MY_PN="Percona-Server"
-MY_MAJOR_PV=$(ver_cut 1-2)
-MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.6/release-notes/release-notes_index.html"
-SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz"
-
-# Gentoo patches to MySQL
-if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]]; then
-	SRC_URI="${SRC_URI}
-		mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://dev.gentoo.org/~grknight/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://dev.gentoo.org/~robbat2/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://dev.gentoo.org/~jmbsvicetto/distfiles/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
-fi
-
-HOMEPAGE="https://www.percona.com/software/percona-server"
-DESCRIPTION="An enhanced, drop-in replacement for MySQL from the Percona team"
-LICENSE="GPL-2"
-SLOT="0/18"
-IUSE="-client-libs cracklib debug jemalloc latin1 libressl numa pam +perl profiling rocksdb selinux
-	+server static static-libs systemtap tcmalloc test test-suite tokudb tokudb-backup-plugin yassl"
-
-# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
-RESTRICT="libressl? ( test )
-	!test? ( test )"
-
-REQUIRED_USE="tokudb-backup-plugin? ( tokudb ) tokudb? ( jemalloc !tcmalloc ) ?? ( tcmalloc jemalloc ) static? ( yassl )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
-
-# 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"
-
-if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
-	inherit git-r3
-	EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git"
-	EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras"
-	EGIT_CLONE_TYPE=shallow
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras"
-else
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-fi
-
-PATCHES=(
-	"${MY_PATCH_DIR}"/01050_all_mysql_config_cleanup-5.6.patch
-	"${MY_PATCH_DIR}"/02040_all_embedded-library-shared-5.5.10.patch
-	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.6.20.patch
-	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.6.22.patch
-	"${MY_PATCH_DIR}"/20008_all_mysql-tzinfo-symlink-5.6.37.patch
-	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.6.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.6.39-without-clientlibs-tools.patch
-)
-
-# Be warned, *DEPEND are version-dependant
-# These are used for both runtime and compiletime
-# MULTILIB_USEDEP only set for libraries used by the client library
-COMMON_DEPEND="
-	kernel_linux? (
-		sys-process/procps:0=
-		dev-libs/libaio:0=
-	)
-	>=sys-apps/sed-4
-	>=sys-apps/texinfo-4.7-r1
-	jemalloc? ( dev-libs/jemalloc:0= )
-	tcmalloc? ( dev-util/google-perftools:0= )
-	systemtap? ( >=dev-util/systemtap-1.3:0= )
-	!yassl? (
-		client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] )
-			libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] )
-		)
-		!client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0= )
-			libressl? ( dev-libs/libressl:0= )
-		)
-	)
-	client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] )
-	!client-libs? ( >=sys-libs/zlib-1.2.3:0= )
-	sys-libs/ncurses:0=
-	server? (
-		>=dev-libs/boost-1.65.0:=
-		numa? ( sys-process/numactl )
-		pam? ( virtual/pam:0= )
-		tokudb? ( app-arch/snappy )
-		tokudb-backup-plugin? ( dev-util/valgrind )
-	)
-	!client-libs? ( dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?] )
-"
-DEPEND="virtual/yacc
-	static? ( sys-libs/ncurses[static-libs] )
-	test? (
-		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
-		dev-perl/JSON
-	)
-	${COMMON_DEPEND}"
-RDEPEND="selinux? ( sec-policy/selinux-mysql )
-	abi_x86_32? ( !app-emulation/emul-linux-x86-db[-abi_x86_32(-)] )
-	client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c )
-	!dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster
-	server? ( !prefix? ( dev-db/mysql-init-scripts ) )
-	${COMMON_DEPEND}
-"
-# For other stuff to bring us in
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-python_check_deps() {
-	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-mysql_init_vars() {
-	MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"}
-	MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX%/}/etc/mysql"}
-	MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX%/}/var/lib/mysql"}
-	MY_LOGDIR=${MY_LOGDIR="${EPREFIX%/}/var/log/mysql"}
-
-	if [[ -z "${MY_DATADIR}" ]] ; then
-		MY_DATADIR=""
-		if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
-			MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-			if [[ -z "${MY_DATADIR}" ]] ; then
-				MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
-				| sed -e 's/.*=\s*//' \
-				| tail -n1`
-			fi
-		fi
-		if [[ -z "${MY_DATADIR}" ]] ; then
-			MY_DATADIR="${MY_LOCALSTATEDIR}"
-			einfo "Using default MY_DATADIR"
-		fi
-		elog "MySQL MY_DATADIR is ${MY_DATADIR}"
-
-		if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
-			if [[ -e "${MY_DATADIR}" ]] ; then
-				# If you get this and you're wondering about it, see bug #207636
-				elog "MySQL datadir found in ${MY_DATADIR}"
-				elog "A new one will not be created."
-				PREVIOUS_DATADIR="yes"
-			else
-				PREVIOUS_DATADIR="no"
-			fi
-			export PREVIOUS_DATADIR
-		fi
-	else
-		if [[ ${EBUILD_PHASE} == "config" ]] ; then
-			local new_MY_DATADIR
-			new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-
-			if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]] ; then
-				ewarn "MySQL MY_DATADIR has changed"
-				ewarn "from ${MY_DATADIR}"
-				ewarn "to ${new_MY_DATADIR}"
-				MY_DATADIR="${new_MY_DATADIR}"
-			fi
-		fi
-	fi
-
-	export MY_SHAREDSTATEDIR MY_SYSCONFDIR
-	export MY_LOCALSTATEDIR MY_LOGDIR
-	export MY_DATADIR
-}
-
-pkg_pretend() {
-	if use numa; then
-		local CONFIG_CHECK="~NUMA"
-
-		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
-		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
-		check_extra_config
-	fi
-}
-
-pkg_setup() {
-	if [[ ${MERGE_TYPE} != binary ]] ; then
-		local GCC_MAJOR_SET=$(gcc-major-version)
-		local GCC_MINOR_SET=$(gcc-minor-version)
-
-		if use tokudb && [[ ${GCC_MAJOR_SET} -lt 4 || \
-			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
-			eerror "${PN} with tokudb needs to be built with gcc-4.7 or later."
-			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-			die "Unsupported GCC version"
-		fi
-
-		# Bug 565584.  InnoDB now requires atomic functions introduced with gcc-4.7 on
-		# non x86{,_64} arches
-		if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
-			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
-			eerror "${PN} needs to be built with gcc-4.7 or later."
-			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-			die "Unsupported GCC version"
-		fi
-
-		use test && python-any-r1_pkg_setup
-	fi
-
-	# This should come after all of the die statements
-	enewgroup mysql 60 || die "problem adding 'mysql' group"
-	enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
-}
-
-src_unpack() {
-	unpack ${A}
-
-	# Grab the patches
-	[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack
-
-	mv -f "${WORKDIR}/${PN}-${MY_PV}" "${S}" || die
-}
-
-src_prepare() {
-	if use jemalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	elif use tcmalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	# Don't build bundled xz-utils
-	if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then
-		echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
-	elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then
-		echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
-		sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
-	fi
-
-	if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then
-		 rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die
-	fi
-
-	# Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
-	if [[ -d "${S}/support-files/SELinux" ]] ; then
-		echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
-	fi
-
-	if use libressl ; then
-		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-			"${S}/cmake/ssl.cmake" || die
-	fi
-
-	cmake-utils_src_prepare
-}
-
-src_configure() {
-	# bug 508724 mariadb cannot use ld.gold
-	tc-ld-disable-gold
-
-	# Bug #114895, bug #110149
-	filter-flags "-O" "-O[01]"
-
-	append-cxxflags -felide-constructors
-
-	# bug #283926, with GCC4.4, this is required to get correct behavior.
-	append-flags -fno-strict-aliasing
-
-	if use client-libs ; then
-		multilib-minimal_src_configure
-	else
-		multilib_src_configure
-	fi
-}
-
-multilib_src_configure() {
-	debug-print-function ${FUNCNAME} "$@"
-
-	if ! multilib_is_native_abi && ! use client-libs ; then
-		return
-	fi
-
-	CMAKE_BUILD_TYPE="RelWithDebInfo"
-
-	# debug hack wrt #497532
-	mycmakeargs=(
-		-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
-		-DMYSQL_DATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DSYSCONFDIR="${EPREFIX%/}/etc/mysql"
-		-DINSTALL_BINDIR=bin
-		-DINSTALL_DOCDIR=share/doc/${PF}
-		-DINSTALL_DOCREADMEDIR=share/doc/${PF}
-		-DINSTALL_INCLUDEDIR=include/mysql
-		-DINSTALL_INFODIR=share/info
-		-DINSTALL_LIBDIR=$(get_libdir)
-		-DINSTALL_MANDIR=share/man
-		-DINSTALL_MYSQLSHAREDIR=share/mysql
-		-DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
-		-DINSTALL_SCRIPTDIR=share/mysql/scripts
-		-DINSTALL_SQLBENCHDIR=NO
-		-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DINSTALL_SBINDIR=sbin
-		-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql"
-		-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
-		-DWITH_UNIT_TESTS=$(usex test ON OFF)
-		### TODO: make this system but issues with UTF-8 prevent it
-		-DWITH_EDITLINE=bundled
-		-DWITH_ZLIB=system
-		-DWITH_LIBWRAP=0
-		-DENABLED_LOCAL_INFILE=1
-		-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-		-DWITH_DEFAULT_COMPILER_OPTIONS=0
-		-DWITH_DEFAULT_FEATURE_SET=0
-		# The build forces this to be defined when cross-compiling.  We pass it
-		# all the time for simplicity and to make sure it is actually correct.
-		-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-		-DWITH_LIBEVENT=NO
-	)
-	if use test || use test-suite ; then
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
-	else
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
-	fi
-
-	if ! use yassl ; then
-		mycmakeargs+=( -DWITH_SSL=system )
-	else
-		mycmakeargs+=( -DWITH_SSL=bundled )
-	fi
-
-	if ! use client-libs ; then
-		mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
-	fi
-
-	# bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
-	# systemtap only works on native ABI  bug 530132
-	if multilib_is_native_abi; then
-		mycmakeargs+=(
-			-DENABLE_DTRACE=$(usex systemtap)
-		)
-	else
-		mycmakeargs+=(
-			-DWITHOUT_TOOLS=1
-			-DWITH_READLINE=1
-			-DENABLE_DTRACE=0
-		)
-	fi
-
-	if multilib_is_native_abi && use server ; then
-		mycmakeargs+=(
-			-DWITH_PAM=$(usex pam)
-			-DWITH_NUMA=$(usex numa ON OFF)
-		)
-
-		if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then
-			ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
-			ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
-			ewarn "You MUST file bugs without these variables set."
-
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
-				-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
-			)
-
-		elif ! use latin1 ; then
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=utf8
-				-DDEFAULT_COLLATION=utf8_general_ci
-			)
-		else
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=latin1
-				-DDEFAULT_COLLATION=latin1_swedish_ci
-			)
-		fi
-		mycmakeargs+=(
-			-DEXTRA_CHARSETS=all
-			-DDISABLE_SHARED=$(usex static YES NO)
-			-DWITH_DEBUG=$(usex debug)
-			-DWITH_EMBEDDED_SERVER=OFF
-			-DENABLED_PROFILING=$(usex profiling)
-		)
-
-		if use static; then
-			mycmakeargs+=( -DWITH_PIC=1 )
-		fi
-
-		# Storage engines
-		mycmakeargs+=(
-			-DWITH_EXAMPLE_STORAGE_ENGINE=0
-			-DWITH_ARCHIVE_STORAGE_ENGINE=1
-			-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-			-DWITH_CSV_STORAGE_ENGINE=1
-			-DWITH_HEAP_STORAGE_ENGINE=1
-			-DWITH_INNOBASE_STORAGE_ENGINE=1
-			-DWITH_MYISAMMRG_STORAGE_ENGINE=1
-			-DWITH_MYISAM_STORAGE_ENGINE=1
-			-DWITH_PARTITION_STORAGE_ENGINE=1
-			-DWITH_FEDERATED_STORAGE_ENGINE=1
-			-DWITH_INNODB_MEMCACHED=0
-			-DWITH_ROCKSDB=$(usex rocksdb 1 0)
-			$(usex tokudb '' -DWITHOUT_TOKUDB=1)
-		)
-
-		if use tokudb ; then
-			# TokuDB Backup plugin requires valgrind unconditionally
-			mycmakeargs+=(
-				$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
-			)
-		fi
-
-	else
-		mycmakeargs+=(
-			-DWITHOUT_SERVER=1
-			-DWITH_EMBEDDED_SERVER=OFF
-			-DEXTRA_CHARSETS=none
-		)
-	fi
-
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	if use client-libs ; then
-		multilib-minimal_src_compile
-	else
-		multilib_src_compile
-	fi
-}
-
-multilib_src_compile() {
-	cmake-utils_src_compile
-}
-
-# Official test instructions:
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-src_test() {
-	_disable_test() {
-		local rawtestname reason
-		rawtestname="${1}" ; shift
-		reason="${@}"
-		ewarn "test '${rawtestname}' disabled: '${reason}'"
-		echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
-	}
-
-	local TESTDIR="${BUILD_DIR}/mysql-test"
-	local retstatus_unit
-	local retstatus_tests
-
-	if ! use server ; then
-		einfo "Skipping server tests due to minimal build."
-		return 0
-	fi
-
-	# 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"
-
-	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
-	# Run CTest (test-units)
-	cmake-utils_src_test
-	retstatus_unit=$?
-
-	# Ensure that parallel runs don't die
-	export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
-	# Enable parallel testing, auto will try to detect number of cores
-	# You may set this by hand.
-	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
-	# create directories because mysqladmin might run out of order
-	mkdir -p "${T}"/var-tests{,/log} || die "Failed to create \"${T}/var-tests{,/log}\""
-
-	# Run mysql tests
-	pushd "${TESTDIR}" > /dev/null || die "Failed to chdir into \"${TESTDIR}\""
-
-	touch "${T}/disabled.def"
-	# These are failing in MySQL 5.6 for now and are believed to be
-	# false positives:
-
-	local t
-	for t in main.mysql_client_test \
-		binlog.binlog_statement_insert_delayed main.information_schema \
-		main.mysqld--help-notwin binlog.binlog_mysqlbinlog_filter \
-		perfschema.binlog_edge_mix perfschema.binlog_edge_stmt \
-		funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers \
-		main.variables main.myisam main.merge_recover \
-		engines/funcs.db_alter_character_set engines/funcs.db_alter_character_set_collate \
-		engines/funcs.db_alter_collate_ascii engines/funcs.db_alter_collate_utf8 \
-		engines/funcs.db_create_character_set engines/funcs.db_create_character_set_collate \
-		main.percona_bug1289599 main.mysqlhotcopy_archive main.mysqlhotcopy_myisam ; do
-			_disable_test  "$t" "False positives in Gentoo"
-	done
-
-	if use numa && use kernel_linux ; then
-		# bug 584880
-		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
-			for t in sys_vars.innodb_buffer_pool_populate_basic ; do
-				_disable_test "$t" "Test $t requires system with NUMA support"
-			done
-		fi
-	fi
-
-	# Set file limits higher so tests run
-	if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
-		# Upper limit comes from parts.partition_* tests
-		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
-		if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
-			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
-			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
-			if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
-				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
-			else
-				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
-			fi
-		else
-			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
-		fi
-	else
-		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
-	fi
-
-	# run mysql-test tests
-	perl mysql-test-run.pl --force --vardir="${T}/var-tests" \
-		--testcase-timeout=30 --reorder --skip-test-list="${T}/disabled.def"
-	retstatus_tests=$?
-
-	popd > /dev/null || die
-
-	# Cleanup is important for these testcases.
-	pkill -9 -f "${S}/ndb" 2>/dev/null
-	pkill -9 -f "${S}/sql" 2>/dev/null
-
-	local failures=""
-	[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
-	[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
-
-	if [[ -n "$failures" ]] ; then
-		if has usersandbox ${FEATURES}; then
-			ewarn "Some tests may have failed due to FEATURES=usersandbox"
-			ewarn "Please confirm test failure with FEATURES=-usersandbox before reporting a bug."
-		fi
-
-		die "Test failures: $failures"
-	fi
-
-	einfo "Tests successfully completed"
-}
-
-src_install() {
-	local MULTILIB_WRAPPED_HEADERS
-	local MULTILIB_CHOST_TOOLS
-	if use client-libs ; then
-		# headers with ABI specific data
-		MULTILIB_WRAPPED_HEADERS=(
-			/usr/include/mysql/server/my_config.h
-			/usr/include/mysql/server/mysql_version.h )
-
-		# wrap the config scripts
-		MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
-		multilib-minimal_src_install
-	else
-		multilib_src_install
-		multilib_src_install_all
-	fi
-}
-
-# Intentionally override eclass function
-multilib_src_install() {
-	cmake-utils_src_install
-
-	# Kill old libmysqclient_r symlinks if they exist.  Time to fix what depends on them.
-	find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
-}
-
-multilib_src_install_all() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Convenience links
-	einfo "Making Convenience links for mysqlcheck multi-call binary"
-	dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
-	dosym "mysqlcheck" "/usr/bin/mysqlrepair"
-	dosym "mysqlcheck" "/usr/bin/mysqloptimize"
-
-	# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
-	if [[ -d "${ED}/usr/data" ]] ; then
-		rm -rf "${ED%/}/usr/data" || die
-	fi
-
-	# Unless they explicitly specific USE=test, then do not install the
-	# testsuite. It DOES have a use to be installed, esp. when you want to do a
-	# validation of your database configuration after tuning it.
-	if ! use test-suite ; then
-		rm -rf "${D%/}/${MY_SHAREDSTATEDIR#/}/mysql-test" || die
-	fi
-
-	# Configuration stuff
-	einfo "Building default configuration ..."
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}"
-	[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
-	mycnf_src="my.cnf-5.6"
-	sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
-		"${FILESDIR}/${mycnf_src}" \
-		> "${TMPDIR}/my.cnf.ok" || die
-	use prefix && sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' "${TMPDIR}/my.cnf.ok"
-	if use latin1 ; then
-		sed -i \
-			-e "/character-set/s|utf8|latin1|g" \
-			"${TMPDIR}/my.cnf.ok" || die
-	fi
-	eprefixify "${TMPDIR}/my.cnf.ok"
-	newins "${TMPDIR}/my.cnf.ok" my.cnf
-
-	if use server ; then
-		einfo "Including support files and sample configurations"
-		docinto "support-files"
-		for script in \
-			"${S}"/support-files/my-*.cnf.sh \
-			"${S}"/support-files/magic \
-			"${S}"/support-files/ndb-config-2-node.ini.sh
-		do
-			[[ -f $script ]] && dodoc "${script}"
-		done
-
-		docinto "scripts"
-		for script in "${S}"/scripts/mysql* ; do
-			[[ ( -f $script ) && ( ${script%.sh} == ${script} ) ]] && dodoc "${script}"
-		done
-	fi
-
-	#Remove mytop if perl is not selected
-	[[ -e "${ED%/}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
-}
-
-pkg_preinst() {
-	# Here we need to see if the implementation switched client libraries
-	# We check if this is a new instance of the package and a client library already exists
-	local SHOW_ABI_MESSAGE libpath
-	if use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT}usr/$(get_libdir)/libmysqlclient.so" ]] ; then
-		libpath=$(readlink "${EROOT}usr/$(get_libdir)/libmysqlclient.so")
-		elog "Due to ABI changes when switching between different client libraries,"
-		elog "revdep-rebuild must find and rebuild all packages linking to libmysqlclient."
-		elog "Please run: revdep-rebuild --library ${libpath}"
-		ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
-	fi
-}
-
-pkg_postinst() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Create log directory securely if it does not exist
-	[[ -d "${EROOT%/}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${EROOT%/}${MY_LOGDIR}"
-
-	if use server ; then
-		if [[ -z "${REPLACING_VERSIONS}" ]] ; then
-			einfo
-			elog "You might want to run:"
-			elog "  \"emerge --config =${CATEGORY}/${PF}\""
-			elog "if this is a new install."
-			elog
-			elog "If you are switching server implentations, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		else
-			local _replacing_version=
-			local _new_version_branch=$(ver_cut 1-3 "${PV}")
-			for _replacing_version in ${REPLACING_VERSIONS}; do
-				local _replacing_version_branch=$(ver_cut 1-3 "${_replacing_version}")
-				debug-print "Updating an existing installation (v${_replacing_version}; branch '${_replacing_version_branch}') ..."
-
-				if ver_test "${_new_version_branch}" -gt "${_replacing_version_branch}"; then
-					debug-print "Upgrading from v${_replacing_version_branch} to v${_new_version_branch} ..."
-					# https://www.percona.com/blog/2014/09/19/mysql-upgrade-best-practices/
-
-					einfo
-					elog "You are upgrading an existing ${PN} installation, you should review"
-					elog "release notes at ${MY_RELEASE_NOTES_URI}"
-					elog "and run the mysql_upgrade tool."
-					einfo
-
-					// Break loop - we only want to show this hint once
-					break
-				fi
-			done
-		fi
-
-		elog "Since ${PN}-5.6.39.83.1-r1 we no longer provide client libs."
-		elog "Applications depending on client libs should migrate to virtual/libmysqlclient"
-		elog "which will pull-in dev-db/mysql-connector-c as their new client lib provider."
-		einfo
-	fi
-}
-
-pkg_config() {
-	_getoptval() {
-		local mypd="${EROOT%/}"/usr/bin/my_print_defaults
-		local section="${1}"
-		local flag="--${2}="
-		local extra_options="${3}"
-		"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
-	}
-
-	# 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"
-
-	local old_MY_DATADIR="${MY_DATADIR}"
-	local old_HOME="${HOME}"
-	# my_print_defaults needs to read stuff in $HOME/.my.cnf
-	export HOME=${EPREFIX%/}/root
-
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
-	if [[ ! -x "${EROOT%/}/usr/sbin/mysqld" ]] ; then
-		die "Minimal builds do NOT include the MySQL server"
-	fi
-
-	if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]] ; then
-		local MY_DATADIR_s="${EROOT%/}/${MY_DATADIR#/}"
-		MY_DATADIR_s="${MY_DATADIR_s%%/}"
-		local old_MY_DATADIR_s="${EROOT%/}/${old_MY_DATADIR#/}"
-		old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"
-
-		if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]] ; then
-			if [[ -d "${MY_DATADIR_s}" ]]; then
-				ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
-				ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
-			else
-				elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
-				mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
-				|| die "Moving MY_DATADIR failed"
-			fi
-		else
-			ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Attempting to use ${MY_DATADIR_s}"
-			else
-				eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
-				die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
-			fi
-		fi
-	fi
-
-	# These are dir+prefix
-	MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)"
-	MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log)"
-	MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
-	MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)"
-	MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
-
-	if [[ -d "${EROOT%/}/${MY_DATADIR#/}/mysql" ]] ; then
-		ewarn "You have already a MySQL database in place."
-		ewarn "(${EROOT%/}/${MY_DATADIR#/}/*)"
-		ewarn "Please rename or delete it if you wish to replace it."
-		die "MySQL database already exists!"
-	fi
-
-	if [[ ! -d "${EROOT%/}/${MYSQL_TMPDIR#/}" ]] ; then
-		einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/${MYSQL_TMPDIR#/}"
-	fi
-	if [[ ! -d "${EROOT%/}/${MYSQL_LOG_BIN#/}" ]] ; then
-		einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/${MYSQL_LOG_BIN#/}"
-	fi
-	if [[ ! -d "${EROOT%/}/${MYSQL_RELAY_LOG#/}" ]] ; then
-		einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/${MYSQL_RELAY_LOG#/}"
-	fi
-
-	local pwd1="a"
-	local pwd2="b"
-	local maxtry=15
-
-	if [ -z "${MYSQL_ROOT_PASSWORD}" ] ; then
-		local tmp_mysqld_password_source=
-
-		for tmp_mysqld_password_source in mysql client; do
-			einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
-			if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
-				if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
-					ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
-					MYSQL_ROOT_PASSWORD=
-					continue
-				fi
-
-				einfo "Found password in '${tmp_mysqld_password_source}' section!"
-				break
-			fi
-		done
-
-		# Sometimes --show is required to display passwords in some implementations of my_print_defaults
-		if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
-		fi
-
-		unset tmp_mysqld_password_source
-	fi
-
-	if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-		einfo "Please provide a password for the mysql 'root' user now"
-		einfo "or through the ${HOME}/.my.cnf file."
-		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
-		MYSQL_ROOT_PASSWORD="${pwd1}"
-		unset pwd1 pwd2
-	fi
-
-	local options
-	local sqltmp="$(emktemp)"
-
-	# Fix bug 446200. Don't reference host my.cnf, needs to come first,
-	# see http://bugs.mysql.com/bug.php?id=31312
-	use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR%/}/my.cnf'"
-
-	# Figure out which options we need to disable to do the setup
-	local helpfile="${TMPDIR%/}/mysqld-help"
-	"${EROOT%/}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
-	for opt in grant-tables host-cache name-resolve networking slave-start \
-		federated ssl log-bin relay-log slow-query-log external-locking \
-		log-slave-updates \
-		; do
-		optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
-		egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
-	done
-
-	einfo "Creating the mysql database and setting proper permissions on it ..."
-
-	# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
-	PID_DIR="${EROOT%/}/var/run/mysqld"
-	if [[ ! -d "${PID_DIR}" ]] ; then
-		install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
-	fi
-
-	if [[ ! -d "${EROOT%/}/${MY_DATADIR#/}" ]] ; then
-		install -d -m 750 -o mysql -g mysql "${EROOT%/}/${MY_DATADIR#/}" || die "Could not create data directory"
-	fi
-
-	pushd "${TMPDIR}" &>/dev/null || die
-
-	# Filling timezones, see
-	# http://dev.mysql.com/doc/mysql/en/time-zone-support.html
-	"${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" > "${sqltmp}" 2>/dev/null
-
-	local cmd=( "${EROOT%/}/usr/share/mysql/scripts/mysql_install_db" )
-	[[ -f "${cmd}" ]] || cmd=( "${EROOT%/}/usr/bin/mysql_install_db" )
-	cmd+=( "--basedir=${EROOT%/}/usr" ${options} "--datadir=${EROOT%/}/${MY_DATADIR#/}" "--tmpdir=${EROOT%/}/${MYSQL_TMPDIR#/}" )
-	einfo "Command: ${cmd[*]}"
-	su -s /bin/sh -c "${cmd[*]}" mysql \
-		>"${TMPDIR%/}"/mysql_install_db.log 2>&1
-	if [[ $? -ne 0 ]] ; then
-		grep -B5 -A999 -i "ERROR" "${TMPDIR%/}"/mysql_install_db.log 1>&2
-		die "Failed to initialize mysqld. Please review ${EROOT%/}/var/log/mysql/mysqld.err AND ${TMPDIR%/}/mysql_install_db.log"
-	fi
-	popd &>/dev/null || die
-	[[ -f "${EROOT%/}/${MY_DATADIR#/}/mysql/user.frm" ]] \
-	|| die "MySQL databases not installed"
-
-	use prefix || options="${options} --user=mysql"
-
-	local socket="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.sock"
-	local pidfile="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.pid"
-	local mysqld="${EROOT%/}/usr/sbin/mysqld \
-		${options} \
-		--log-warnings=0 \
-		--basedir=${EROOT%/}/usr \
-		--datadir=${EROOT%/}/${MY_DATADIR#/} \
-		--max_allowed_packet=8M \
-		--net_buffer_length=16K \
-		--socket=${socket} \
-		--pid-file=${pidfile} \
-		--tmpdir=${EROOT%/}/${MYSQL_TMPDIR#/}"
-	#einfo "About to start mysqld: ${mysqld}"
-	ebegin "Starting mysqld"
-	einfo "Command ${mysqld}"
-	${mysqld} &
-	rc=$?
-	while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
-		maxtry=$((${maxtry}-1))
-		echo -n "."
-		sleep 1
-	done
-	eend $rc
-
-	if ! [[ -S "${socket}" ]] ; then
-		die "Completely failed to start up mysqld with: ${mysqld}"
-	fi
-
-	ebegin "Setting root password"
-	# Do this from memory, as we don't want clear text passwords in temp files
-	local sql="UPDATE mysql.user SET Password = PASSWORD('${MYSQL_ROOT_PASSWORD}') WHERE USER='root'; FLUSH PRIVILEGES"
-	"${EROOT%/}/usr/bin/mysql" \
-		"--socket=${socket}" \
-		-hlocalhost \
-		-e "${sql}"
-	eend $?
-
-	if [[ -n "${sqltmp}" ]] ; then
-		ebegin "Loading \"zoneinfo\", this step may require a few seconds"
-		"${EROOT%/}/usr/bin/mysql" \
-			"--socket=${socket}" \
-			-hlocalhost \
-			-uroot \
-			--password="${MYSQL_ROOT_PASSWORD}" \
-			mysql < "${sqltmp}"
-		rc=$?
-		eend $?
-		[[ $rc -ne 0 ]] && ewarn "Failed to load zoneinfo!"
-	fi
-
-	# Stop the server and cleanup
-	einfo "Stopping the server ..."
-	kill $(< "${pidfile}" )
-	rm -f "${sqltmp}"
-	wait %1
-	einfo "Done"
-}

diff --git a/dev-db/percona-server/percona-server-5.7.23.23-r1.ebuild b/dev-db/percona-server/percona-server-5.7.23.23-r1.ebuild
deleted file mode 100644
index 4ef133731f5..00000000000
--- a/dev-db/percona-server/percona-server-5.7.23.23-r1.ebuild
+++ /dev/null
@@ -1,1038 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20181017-2201Z"
-
-CMAKE_MAKEFILE_GENERATOR=emake
-
-# Python2 required for innodb_stress.innodb_stress{,_blob,_crash} test
-PYTHON_COMPAT=( python2_7 )
-
-# Keeping eutils in EAPI=6 for emktemp in pkg_config
-
-inherit eapi7-ver cmake-utils eutils flag-o-matic linux-info \
-	prefix python-any-r1 toolchain-funcs user multilib-minimal
-
-MY_PV=$(ver_rs 3 '-')
-MY_PN="Percona-Server"
-MY_P="${PN}-${MY_PV}"
-MY_MAJOR_PV=$(ver_cut 1-2)
-MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.7/release-notes/release-notes_index.html"
-
-SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz
-	mirror://sourceforge/boost/boost_1_59_0.tar.gz
-"
-
-# Gentoo patches to MySQL
-if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]] ; then
-	SRC_URI="${SRC_URI}
-		mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
-fi
-
-HOMEPAGE="https://www.percona.com/software/mysql-database/percona-server"
-DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
-LICENSE="GPL-2"
-SLOT="0/18"
-IUSE="cjk client-libs cracklib debug experimental jemalloc latin1 libressl numa pam +perl profiling rocksdb
-	selinux +server static static-libs systemtap tcmalloc test tokudb tokudb-backup-plugin yassl"
-
-# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
-RESTRICT="libressl? ( test )"
-
-REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
-
-# 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"
-
-if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
-	inherit git-r3
-	EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git"
-	EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras"
-	EGIT_CLONE_TYPE=shallow
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras"
-else
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-fi
-
-PATCHES=(
-	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.7.patch
-	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.7.patch
-	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.7.10.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-without-clientlibs-tools.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-fix-libressl-support.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-add-missing-gcc-8-fix.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-grant_user_lock-a-root.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-round-off-test-values-for-same-output-on-all-architectures.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-mips-ASM.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-rocksdb-use-system-libs.patch
-)
-
-# Be warned, *DEPEND are version-dependant
-# These are used for both runtime and compiletime
-# MULTILIB_USEDEP only set for libraries used by the client library
-COMMON_DEPEND="net-misc/curl:=
-	>=sys-apps/sed-4
-	>=sys-apps/texinfo-4.7-r1
-	sys-libs/ncurses:0=
-	client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] )
-	!client-libs? (
-		dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?]
-		>=sys-libs/zlib-1.2.3:0=
-	)
-	jemalloc? ( dev-libs/jemalloc:0= )
-	kernel_linux? (
-		dev-libs/libaio:0=
-		sys-process/procps:0=
-	)
-	server? (
-		>=app-arch/lz4-0_p131:=
-		cjk? ( app-text/mecab:= )
-		experimental? (
-			dev-libs/libevent:=
-			dev-libs/protobuf:=
-			net-libs/libtirpc:=
-		)
-		numa? ( sys-process/numactl )
-		pam? ( virtual/pam:0= )
-		rocksdb? (
-			app-arch/zstd:=
-			dev-libs/protobuf:=
-		)
-		tokudb? (
-			app-arch/snappy:=
-			app-arch/xz-utils:=
-		)
-		tokudb-backup-plugin? ( dev-util/valgrind )
-	)
-	systemtap? ( >=dev-util/systemtap-1.3:0= )
-	tcmalloc? ( dev-util/google-perftools:0= )
-	!yassl? (
-		client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] )
-			libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] )
-		)
-		!client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0= )
-			libressl? ( dev-libs/libressl:0= )
-		)
-	)
-"
-DEPEND="${COMMON_DEPEND}
-	|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
-	dev-libs/protobuf
-	virtual/yacc
-	server? (
-		dev-libs/libevent
-		experimental? ( net-libs/rpcsvc-proto )
-	)
-	static? ( sys-libs/ncurses[static-libs] )
-	test? (
-		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
-		dev-perl/JSON
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster
-	client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c dev-libs/protobuf:= )
-	selinux? ( sec-policy/selinux-mysql )
-	server? ( !prefix? ( dev-db/mysql-init-scripts ) )
-"
-# For other stuff to bring us in
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-python_check_deps() {
-	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-mysql_init_vars() {
-	MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"}
-	MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX%/}/etc/mysql"}
-	MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX%/}/var/lib/mysql"}
-	MY_LOGDIR=${MY_LOGDIR="${EPREFIX%/}/var/log/mysql"}
-
-	if [[ -z "${MY_DATADIR}" ]] ; then
-		MY_DATADIR=""
-		if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
-			MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-			if [[ -z "${MY_DATADIR}" ]] ; then
-				MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
-				| sed -e 's/.*=\s*//' \
-				| tail -n1`
-			fi
-		fi
-		if [[ -z "${MY_DATADIR}" ]] ; then
-			MY_DATADIR="${MY_LOCALSTATEDIR}"
-			einfo "Using default MY_DATADIR"
-		fi
-		elog "MySQL MY_DATADIR is ${MY_DATADIR}"
-
-		if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
-			if [[ -e "${MY_DATADIR}" ]] ; then
-				# If you get this and you're wondering about it, see bug #207636
-				elog "MySQL datadir found in ${MY_DATADIR}"
-				elog "A new one will not be created."
-				PREVIOUS_DATADIR="yes"
-			else
-				PREVIOUS_DATADIR="no"
-			fi
-			export PREVIOUS_DATADIR
-		fi
-	else
-		if [[ ${EBUILD_PHASE} == "config" ]] ; then
-			local new_MY_DATADIR
-			new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-
-			if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]] ; then
-				ewarn "MySQL MY_DATADIR has changed"
-				ewarn "from ${MY_DATADIR}"
-				ewarn "to ${new_MY_DATADIR}"
-				MY_DATADIR="${new_MY_DATADIR}"
-			fi
-		fi
-	fi
-
-	export MY_SHAREDSTATEDIR MY_SYSCONFDIR
-	export MY_LOCALSTATEDIR MY_LOGDIR
-	export MY_DATADIR
-}
-
-pkg_pretend() {
-	if use numa ; then
-		local CONFIG_CHECK="~NUMA"
-
-		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
-		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
-		check_extra_config
-	fi
-}
-
-pkg_setup() {
-	if [[ ${MERGE_TYPE} != binary ]] ; then
-		local GCC_MAJOR_SET=$(gcc-major-version)
-		local GCC_MINOR_SET=$(gcc-minor-version)
-		# Bug 565584: InnoDB now requires atomic functions introduced with gcc-4.7 on
-		# non x86{,_64} arches
-		if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
-			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
-			eerror "${PN} needs to be built with gcc-4.7 or later."
-			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-			die
-		fi
-
-		use test && python-any-r1_pkg_setup
-	fi
-
-	if has test ${FEATURES} && \
-		use server && ! has userpriv ${FEATURES} ; then
-			eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
-	fi
-
-	# This should come after all of the die statements
-	enewgroup mysql 60 || die "problem adding 'mysql' group"
-	enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
-}
-
-pkg_preinst() {
-	# Here we need to see if the implementation switched client libraries
-	# We check if this is a new instance of the package and a client library already exists
-	local SHOW_ABI_MESSAGE libpath
-	if use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so" ]] ; then
-		libpath=$(readlink "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so")
-		elog "Due to ABI changes when switching between different client libraries,"
-		elog "revdep-rebuild must find and rebuild all packages linking to libperconaserverclient."
-		elog "Please run: revdep-rebuild --library ${libpath}"
-		ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
-	fi
-}
-
-pkg_postinst() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Create log directory securely if it does not exist
-	[[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
-
-	if use server ; then
-		if [[ -z "${REPLACING_VERSIONS}" ]] ; then
-			einfo
-			elog "You might want to run:"
-			elog "\"emerge --config =${CATEGORY}/${PF}\""
-			elog "if this is a new install."
-			elog
-			elog "If you are switching server implentations, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		else
-			einfo
-			elog "If you are upgrading major versions, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		fi
-	fi
-
-	# Note about configuration change
-	einfo
-	elog "This version of ${PN} reorganizes the configuration from a single my.cnf"
-	elog "to several files in /etc/mysql/mysql.d."
-	elog "Please backup any changes you made to /etc/mysql/my.cnf"
-	elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension."
-	elog "You may have as many files as needed and they are read alphabetically."
-	elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
-	einfo
-}
-
-src_unpack() {
-	unpack ${A}
-	# Grab the patches
-	[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack
-
-	mv -f "${WORKDIR}/${MY_P}" "${S}" || die
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	if use jemalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	if use tcmalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	# Don't build bundled xz-utils
-	if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then
-		echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
-	elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then
-		echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
-		sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
-	fi
-
-	if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then
-		 rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die
-	fi
-
-	# Remove bundled libs so we cannot accidentally use them
-	# We keep extra/lz4 directory because we use extra/lz4/xxhash.c via sql/CMakeLists.txt:394
-	rm -rv \
-		"${S}"/extra/protobuf \
-		"${S}"/libevent \
-		"${S}"/storage/rocksdb/third_party \
-		"${S}"/storage/tokudb/PerconaFT/third_party \
-		"${S}"/zlib \
-		|| die
-
-	# Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
-	if [[ -d "${S}/support-files/SELinux" ]] ; then
-		echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
-	fi
-
-	if use libressl ; then
-		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-			"${S}/cmake/ssl.cmake" || die
-	fi
-
-	sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die
-}
-
-src_configure(){
-	# Bug #114895, bug #110149
-	filter-flags "-O" "-O[01]"
-
-	append-cxxflags -felide-constructors
-
-	# bug #283926, with GCC4.4, this is required to get correct behavior.
-	append-flags -fno-strict-aliasing
-
-	if use tokudb ; then
-		# https://jira.percona.com/browse/PS-4399
-		append-cxxflags -Wno-error=shadow
-	fi
-
-	if use client-libs ; then
-		multilib-minimal_src_configure
-	else
-		multilib_src_configure
-	fi
-}
-
-multilib_src_configure() {
-	debug-print-function ${FUNCNAME} "$@"
-
-	if ! multilib_is_native_abi && ! use client-libs ; then
-		return
-	fi
-
-	CMAKE_BUILD_TYPE="RelWithDebInfo"
-
-	# debug hack wrt #497532
-	mycmakeargs=(
-		-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
-		-DMYSQL_DATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DSYSCONFDIR="${EPREFIX%/}/etc/mysql"
-		-DINSTALL_BINDIR=bin
-		-DINSTALL_DOCDIR=share/doc/${PF}
-		-DINSTALL_DOCREADMEDIR=share/doc/${PF}
-		-DINSTALL_INCLUDEDIR=include/mysql
-		-DINSTALL_INFODIR=share/info
-		-DINSTALL_LIBDIR=$(get_libdir)
-		-DINSTALL_MANDIR=share/man
-		-DINSTALL_MYSQLSHAREDIR=share/mysql
-		-DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
-		-DINSTALL_SCRIPTDIR=share/mysql/scripts
-		-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DINSTALL_SBINDIR=sbin
-		-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql"
-		-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
-		-DWITH_UNIT_TESTS=$(usex test ON OFF)
-		### TODO: make this system but issues with UTF-8 prevent it
-		-DWITH_EDITLINE=bundled
-		-DWITH_ZLIB=system
-		-DWITH_LIBWRAP=0
-		-DENABLED_LOCAL_INFILE=1
-		-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-		-DWITH_DEFAULT_COMPILER_OPTIONS=0
-		-DWITH_DEFAULT_FEATURE_SET=0
-		# The build forces this to be defined when cross-compiling. We pass it
-		# all the time for simplicity and to make sure it is actually correct.
-		-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-		-DWITH_CURL=system
-		-DWITH_BOOST="${WORKDIR}/boost_1_59_0"
-		-DWITH_PROTOBUF=system
-	)
-
-	if use test ; then
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
-	else
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
-	fi
-
-	if ! use yassl ; then
-		mycmakeargs+=( -DWITH_SSL=system )
-	else
-		mycmakeargs+=( -DWITH_SSL=bundled )
-	fi
-
-	if ! use client-libs ; then
-		mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
-	fi
-
-	# bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
-	# systemtap only works on native ABI, bug 530132
-	if multilib_is_native_abi ; then
-		mycmakeargs+=(
-			-DENABLE_DTRACE=$(usex systemtap)
-		)
-	else
-		mycmakeargs+=(
-			-DWITHOUT_TOOLS=1
-			-DWITH_READLINE=1
-			-DENABLE_DTRACE=0
-		)
-	fi
-
-	if multilib_is_native_abi && use server ; then
-		mycmakeargs+=(
-			-DWITH_LIBEVENT=system
-			-DWITH_LZ4=system
-			-DWITH_MECAB=$(usex cjk system OFF)
-			-DWITH_NUMA=$(usex numa ON OFF)
-			-DWITH_RAPID=$(usex experimental ON OFF)
-		)
-
-		if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then
-			ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
-			ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
-			ewarn "You MUST file bugs without these variables set."
-
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
-				-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
-			)
-		elif ! use latin1 ; then
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=utf8
-				-DDEFAULT_COLLATION=utf8_general_ci
-			)
-		else
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=latin1
-				-DDEFAULT_COLLATION=latin1_swedish_ci
-			)
-		fi
-
-		mycmakeargs+=(
-			-DEXTRA_CHARSETS=all
-			-DDISABLE_SHARED=$(usex static YES NO)
-			-DWITH_DEBUG=$(usex debug)
-			-DWITH_EMBEDDED_SERVER=OFF
-		)
-
-		if use profiling ; then
-			# Setting to OFF doesn't work: Once set, profiling options will be added
-			# to `mysqld --help` output via sql/sys_vars.cc causing
-			# "main.mysqld--help-notwin" test to fail
-			mycmakeargs+=( -DENABLED_PROFILING=ON )
-		fi
-
-		if use static ; then
-			mycmakeargs+=( -DWITH_PIC=1 )
-		fi
-
-		# Storage engines
-		mycmakeargs+=(
-			-DWITH_EXAMPLE_STORAGE_ENGINE=0
-			-DWITH_ARCHIVE_STORAGE_ENGINE=1
-			-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-			-DWITH_CSV_STORAGE_ENGINE=1
-			-DWITH_FEDERATED_STORAGE_ENGINE=1
-			-DWITH_HEAP_STORAGE_ENGINE=1
-			-DWITH_INNOBASE_STORAGE_ENGINE=1
-			-DWITH_INNODB_MEMCACHED=0
-			-DWITH_MYISAMMRG_STORAGE_ENGINE=1
-			-DWITH_MYISAM_STORAGE_ENGINE=1
-			-DWITH_PARTITION_STORAGE_ENGINE=1
-			-DWITH_ROCKSDB=$(usex rocksdb 1 0)
-			$(usex tokudb '' -DWITHOUT_TOKUDB=1)
-		)
-
-		if use tokudb ; then
-			# TokuDB Backup plugin requires valgrind unconditionally
-			mycmakeargs+=(
-				$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
-			)
-		fi
-
-	else
-		mycmakeargs+=(
-			-DWITHOUT_SERVER=1
-			-DWITH_EMBEDDED_SERVER=OFF
-			-DEXTRA_CHARSETS=none
-		)
-	fi
-
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	if use client-libs ; then
-		multilib-minimal_src_compile
-	else
-		multilib_src_compile
-	fi
-}
-
-multilib_src_compile() {
-	cmake-utils_src_compile
-}
-
-# Official test instructions:
-# ulimit -n 16500 && \
-# USE='latin1 perl server' \
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-src_test() {
-	_disable_test() {
-		local rawtestname reason
-		rawtestname="${1}" ; shift
-		reason="${@}"
-		ewarn "test '${rawtestname}' disabled: '${reason}'"
-		echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
-	}
-
-	local TESTDIR="${BUILD_DIR}/mysql-test"
-	local retstatus_unit
-	local retstatus_tests
-
-	if ! use server ; then
-		einfo "Skipping server tests due to minimal build."
-		return 0
-	fi
-
-	# 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 [[ $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 && ewarn "Some tests may fail with FEATURES=usersandbox"
-
-	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
-	# Run CTest (test-units)
-	cmake-utils_src_test
-	retstatus_unit=$?
-
-	# Ensure that parallel runs don't die
-	export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
-	# Enable parallel testing, auto will try to detect number of cores
-	# You may set this by hand.
-	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
-	# create directories because mysqladmin might run out of order
-	mkdir -p "${T}"/var-tests{,/log} || die
-
-	# Run mysql tests
-	pushd "${TESTDIR}" &>/dev/null || die
-
-	touch "${T}/disabled.def"
-	# These are failing in Percona-Server 5.7 for now and are believed to be
-	# false positives or are known to fail:
-	#
-	# group_replication.gr_communication_configuration: requires a valid local network address
-	#                                                   which clashes with FEATURES=network-sandbox
-	# main.percona_bug1289599:                          https://jira.percona.com/browse/PS-2072
-	# main.percona_log_slow_innodb:                     https://jira.percona.com/browse/PS-4930
-	# keyring_vault.keyring_vault_timeout:              requires network access to vault.public-ci.percona.com
-	#                                                   which clashes with FEATURES=network-sandbox
-	#
-	local t
-
-	for t in \
-		group_replication.gr_communication_configuration \
-		main.percona_bug1289599 \
-		main.percona_log_slow_innodb \
-		keyring_vault.keyring_vault_timeout \
-	; do
-			_disable_test "$t" "False positives in Gentoo / Known bug"
-	done
-
-	if use numa && use kernel_linux ; then
-		# bug 584880
-		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
-			for t in sys_vars.innodb_numa_interleave_basic ; do
-				_disable_test "$t" "Test $t requires system with NUMA support"
-			done
-		fi
-	fi
-
-	if use tokudb ; then
-		if [[ -f "/sys/kernel/mm/transparent_hugepage/enabled" ]] ; then
-			if grep -q -E "\[always\]" /sys/kernel/mm/transparent_hugepage/enabled &>/dev/null ; then
-				# TokuDB refuses to start when transparent hugepages are enabled
-				for t in \
-					tokudb.rows-32m-rand-insert \
-					tokudb.savepoint-2 \
-					tokudb.savepoint-3 \
-					tokudb.savepoint-4 \
-					tokudb.savepoint-1078 \
-					tokudb.savepoint-1078-2 \
-					tokudb.savepoint-1078-3 \
-					tokudb.savepoint-1078-4 \
-				; do
-						_disable_test "$t" "TokuDB will not work with transparent hugepages enabled"
-				done
-			fi
-		else
-			einfo "Cannot determine transparent hugepage status."
-			einfo "Please note that TokuDB refuses to start when transparent hugepages are enabled!"
-		fi
-	fi
-
-	if ! use latin1 ; then
-		# The following tests will fail if DEFAULT_CHARSET
-		# isn't set to latin1:
-		for t in \
-			binlog.binlog_mysqlbinlog_filter \
-			binlog.binlog_xa_prepared_disconnect \
-			funcs_1.is_columns_mysql \
-			funcs_1.is_tables_mysql \
-			funcs_1.is_triggers \
-			innodb.innodb_pagesize_max_recordsize \
-			innodb.innodb-system-table-view \
-			innodb.mysqldump_max_recordsize \
-			main.mysql_client_test \
-			main.mysqld--help-notwin \
-			main.type_string \
-			main.information_schema \
-			perfschema.binlog_edge_mix \
-			perfschema.binlog_edge_stmt \
-			rpl.rpl_xa_survive_disconnect \
-			rpl.rpl_xa_survive_disconnect_lsu_off \
-			rpl.rpl_xa_survive_disconnect_table \
-		; do
-				_disable_test "$t" "requires DEFAULT_CHARSET=latin1 but USE=-latin1 is set"
-		done
-	fi
-
-	# Try to increase file limits to increase test coverage
-	if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
-		# Upper limit comes from parts.partition_* tests
-		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
-		if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
-			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
-			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
-			if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
-				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
-			else
-				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
-			fi
-		else
-			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
-		fi
-	else
-		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
-	fi
-
-	# run mysql-test tests
-	perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def"
-	retstatus_tests=$?
-
-	popd &>/dev/null || die
-
-	# Cleanup is important for these testcases.
-	pkill -9 -f "${S}/ndb" 2>/dev/null
-	pkill -9 -f "${S}/sql" 2>/dev/null
-
-	local failures=""
-	[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
-	[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
-
-	[[ -z "$failures" ]] || die "Test failures: $failures"
-	einfo "Tests successfully completed"
-}
-
-src_install() {
-	local MULTILIB_WRAPPED_HEADERS
-	local MULTILIB_CHOST_TOOLS
-	if use client-libs ; then
-		# headers with ABI specific data
-		MULTILIB_WRAPPED_HEADERS=(
-			/usr/include/mysql/server/my_config.h
-			/usr/include/mysql/server/mysql_version.h )
-
-		# wrap the config scripts
-		MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
-		multilib-minimal_src_install
-	else
-		multilib_src_install
-		multilib_src_install_all
-	fi
-}
-
-# Intentionally override eclass function
-multilib_src_install() {
-
-	cmake-utils_src_install
-
-	# Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them.
-	find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
-}
-
-multilib_src_install_all() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Convenience links
-	einfo "Making Convenience links for mysqlcheck multi-call binary"
-	dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
-	dosym "mysqlcheck" "/usr/bin/mysqlrepair"
-	dosym "mysqlcheck" "/usr/bin/mysqloptimize"
-
-	# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
-	if [[ -d "${ED}/usr/data" ]] ; then
-		rm -Rf "${ED}/usr/data" || die
-	fi
-
-	# Unless they explicitly specific USE=test, then do not install the
-	# testsuite. It DOES have a use to be installed, esp. when you want to do a
-	# validation of your database configuration after tuning it.
-	if ! use test ; then
-		rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
-	fi
-
-	# Configuration stuff
-	einfo "Building default configuration ..."
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}"
-	[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
-	cp "${FILESDIR}/my.cnf-5.7" "${TMPDIR}/my.cnf" || die
-	eprefixify "${TMPDIR}/my.cnf"
-	doins "${TMPDIR}/my.cnf"
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.d"
-	cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
-	eprefixify "${TMPDIR}/50-distro-client.cnf"
-	doins "${TMPDIR}/50-distro-client.cnf"
-
-	if use server ; then
-		mycnf_src="my.cnf.distro-server"
-		sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
-			"${FILESDIR}/${mycnf_src}" \
-			> "${TMPDIR}/my.cnf.ok" || die
-
-		if use prefix ; then
-			sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
-				"${TMPDIR}/my.cnf.ok" || die
-		fi
-
-		if use latin1 ; then
-			sed -i \
-				-e "/character-set/s|utf8|latin1|g" \
-				"${TMPDIR}/my.cnf.ok" || die
-		fi
-
-		eprefixify "${TMPDIR}/my.cnf.ok"
-
-		newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
-
-		if use tokudb ; then
-			# Remove some unwanted files
-			rm -fv \
-				"${ED%/}"/usr/COPYING.AGPLv3 \
-				"${ED%/}"/usr/COPYING.GPLv2 \
-				"${ED%/}"/usr/PATENTS \
-				"${ED%/}"/usr/README.md \
-				|| die
-		fi
-	fi
-
-	#Remove mytop if perl is not selected
-	[[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
-}
-
-pkg_config() {
-	_getoptval() {
-		local mypd="${EROOT%/}"/usr/bin/my_print_defaults
-		local section="$1"
-		local flag="--${2}="
-		local extra_options="${3}"
-		"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
-	}
-	local old_MY_DATADIR="${MY_DATADIR}"
-	local old_HOME="${HOME}"
-	# my_print_defaults needs to read stuff in $HOME/.my.cnf
-	export HOME=${EPREFIX%/}/root
-
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
-	if [[ ! -x "${EROOT%/}/usr/sbin/mysqld" ]] ; then
-		die "Minimal builds do NOT include the MySQL server"
-	fi
-
-	if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]] ; then
-		local MY_DATADIR_s="${ROOT%/}/${MY_DATADIR}"
-		MY_DATADIR_s="${MY_DATADIR_s%%/}"
-		local old_MY_DATADIR_s="${ROOT%/}/${old_MY_DATADIR}"
-		old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"
-
-		if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]] ; then
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
-				ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
-			else
-				elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
-				mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
-				|| die "Moving MY_DATADIR failed"
-			fi
-		else
-			ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Attempting to use ${MY_DATADIR_s}"
-			else
-				eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
-				die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
-			fi
-		fi
-	fi
-
-	local pwd1="a"
-	local pwd2="b"
-	local maxtry=15
-
-	if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-		local tmp_mysqld_password_source=
-
-		for tmp_mysqld_password_source in mysql client ; do
-			einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
-			if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
-				if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
-					ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
-					MYSQL_ROOT_PASSWORD=
-					continue
-				fi
-
-				einfo "Found password in '${tmp_mysqld_password_source}' section!"
-				break
-			fi
-		done
-
-		# Sometimes --show is required to display passwords in some implementations of my_print_defaults
-		if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
-		fi
-
-		unset tmp_mysqld_password_source
-	fi
-	MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)"
-	# These are dir+prefix
-	MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log)"
-	MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
-	MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)"
-	MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_TMPDIR" ]] ; then
-		einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_TMPDIR"
-	fi
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_LOG_BIN" ]] ; then
-		einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_LOG_BIN"
-	fi
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_RELAY_LOG" ]] ; then
-		einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_RELAY_LOG"
-	fi
-
-	if [[ -d "${ROOT%/}/${MY_DATADIR}/mysql" ]] ; then
-		ewarn "You have already a MySQL database in place."
-		ewarn "(${ROOT%/}/${MY_DATADIR}/*)"
-		ewarn "Please rename or delete it if you wish to replace it."
-		die "MySQL database already exists!"
-	fi
-
-	# 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 [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-
-		einfo "Please provide a password for the mysql 'root' user now"
-		einfo "or through the ${HOME}/.my.cnf file."
-		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
-		MYSQL_ROOT_PASSWORD="${pwd1}"
-		unset pwd1 pwd2
-	fi
-
-	local options
-	local sqltmp="$(emktemp)"
-
-	# Fix bug 446200. Don't reference host my.cnf, needs to come first,
-	# see http://bugs.mysql.com/bug.php?id=31312
-	use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'"
-
-	# Figure out which options we need to disable to do the setup
-	local helpfile="${TMPDIR%/}/mysqld-help"
-	"${EROOT%/}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
-	for opt in host-cache name-resolve networking slave-start \
-		federated ssl log-bin relay-log slow-query-log external-locking \
-		log-slave-updates \
-		; do
-		optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
-		egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
-	done
-
-	einfo "Creating the mysql database and setting proper permissions on it ..."
-
-	# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
-	PID_DIR="${EROOT%/}/var/run/mysqld"
-	if [[ ! -d "${PID_DIR}" ]] ; then
-		install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
-	fi
-
-	if [[ ! -d "${MY_DATADIR}" ]] ; then
-		install -d -m 750 -o mysql -g mysql "${MY_DATADIR}" || die "Could not create data directory"
-	fi
-
-	pushd "${TMPDIR}" &>/dev/null || die
-
-	# Filling timezones, see
-	# http://dev.mysql.com/doc/mysql/en/time-zone-support.html
-	echo "USE mysql;" >"${sqltmp}"
-	"${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" >> "${sqltmp}" 2>/dev/null
-	chown mysql "${sqltmp}" || die
-
-	# --initialize-insecure will not set root password
-	# --initialize would set a random one in the log which we don't need as we set it ourselves
-	local cmd=( "${EROOT%/}/usr/sbin/mysqld" "--initialize-insecure" "--init-file='${sqltmp}'" )
-	cmd+=( "--basedir=${EPREFIX%/}/usr" ${options} "--datadir=${ROOT%/}${MY_DATADIR}" "--tmpdir=${ROOT%/}${MYSQL_TMPDIR}" )
-	einfo "Command: ${cmd[*]}"
-	su -s /bin/sh -c "${cmd[*]}" mysql \
-		>"${TMPDIR%/}"/mysql_install_db.log 2>&1
-	if [[ $? -ne 0 ]] ; then
-		grep -B5 -A999 -i "ERROR" "${TMPDIR%/}"/mysql_install_db.log 1>&2
-		die "Failed to initialize mysqld. Please review ${EPREFIX%/}/var/log/mysql/mysqld.err AND ${TMPDIR%/}/mysql_install_db.log"
-	fi
-	popd &>/dev/null || die
-	[[ -f "${ROOT%/}/${MY_DATADIR}/mysql/user.frm" ]] \
-	|| die "MySQL databases not installed"
-
-	use prefix || options="${options} --user=mysql"
-
-	local socket="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.sock"
-	local pidfile="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.pid"
-	local mysqld="${EROOT%/}/usr/sbin/mysqld \
-		${options} \
-		$(use prefix || echo --user=mysql) \
-		--log-warnings=0 \
-		--basedir=${EROOT%/}/usr \
-		--datadir=${ROOT%/}/${MY_DATADIR} \
-		--max_allowed_packet=8M \
-		--net_buffer_length=16K \
-		--socket=${socket} \
-		--pid-file=${pidfile} \
-		--tmpdir=${ROOT}/${MYSQL_TMPDIR}"
-	#einfo "About to start mysqld: ${mysqld}"
-	ebegin "Starting mysqld"
-	einfo "Command ${mysqld}"
-	${mysqld} &
-	rc=$?
-	while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
-		maxtry=$((${maxtry}-1))
-		echo -n "."
-		sleep 1
-	done
-	eend $rc
-
-	if ! [[ -S "${socket}" ]] ; then
-		die "Completely failed to start up mysqld with: ${mysqld}"
-	fi
-
-	ebegin "Setting root password"
-	# Do this from memory, as we don't want clear text passwords in temp files
-	local sql="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}'"
-	"${EROOT%/}/usr/bin/mysql" \
-		--no-defaults \
-		"--socket=${socket}" \
-		-hlocalhost \
-		-e "${sql}"
-	eend $?
-
-	# Stop the server and cleanup
-	einfo "Stopping the server ..."
-	kill $(< "${pidfile}" )
-	rm -f "${sqltmp}"
-	wait %1
-	einfo "Done"
-}

diff --git a/dev-db/percona-server/percona-server-5.7.23.24.ebuild b/dev-db/percona-server/percona-server-5.7.23.24.ebuild
deleted file mode 100644
index 2c75a45d8e3..00000000000
--- a/dev-db/percona-server/percona-server-5.7.23.24.ebuild
+++ /dev/null
@@ -1,1066 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20181017-2201Z"
-
-CMAKE_MAKEFILE_GENERATOR=emake
-
-# Python2 required for innodb_stress.innodb_stress{,_blob,_crash} test
-PYTHON_COMPAT=( python2_7 )
-
-# Keeping eutils in EAPI=6 for emktemp in pkg_config
-
-inherit eapi7-ver cmake-utils eutils flag-o-matic linux-info \
-	prefix python-any-r1 toolchain-funcs user multilib-minimal
-
-MY_PV=$(ver_rs 3 '-')
-MY_PN="Percona-Server"
-MY_P="${PN}-${MY_PV}"
-MY_MAJOR_PV=$(ver_cut 1-2)
-MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.7/release-notes/release-notes_index.html"
-
-SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz
-	mirror://sourceforge/boost/boost_1_59_0.tar.gz
-"
-
-# Gentoo patches to MySQL
-if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]] ; then
-	SRC_URI="${SRC_URI}
-		mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
-fi
-
-HOMEPAGE="https://www.percona.com/software/mysql-database/percona-server"
-DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
-LICENSE="GPL-2"
-SLOT="0/18"
-IUSE="cjk client-libs cracklib debug experimental jemalloc latin1 libressl numa pam +perl profiling rocksdb
-	selinux +server static static-libs systemtap tcmalloc test tokudb tokudb-backup-plugin yassl"
-
-# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
-RESTRICT="libressl? ( test )"
-
-REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
-
-# 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"
-
-if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
-	inherit git-r3
-	EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git"
-	EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras"
-	EGIT_CLONE_TYPE=shallow
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras"
-else
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-fi
-
-PATCHES=(
-	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.7.patch
-	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.7.patch
-	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.7.10.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-without-clientlibs-tools.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-fix-libressl-support.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-add-missing-gcc-8-fix.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-grant_user_lock-a-root.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-round-off-test-values-for-same-output-on-all-architectures.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-mips-ASM.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-rocksdb-use-system-libs.patch
-)
-
-# Be warned, *DEPEND are version-dependant
-# These are used for both runtime and compiletime
-# MULTILIB_USEDEP only set for libraries used by the client library
-COMMON_DEPEND="net-misc/curl:=
-	>=sys-apps/sed-4
-	>=sys-apps/texinfo-4.7-r1
-	sys-libs/ncurses:0=
-	client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] )
-	!client-libs? (
-		dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?]
-		>=sys-libs/zlib-1.2.3:0=
-	)
-	jemalloc? ( dev-libs/jemalloc:0= )
-	kernel_linux? (
-		dev-libs/libaio:0=
-		sys-process/procps:0=
-	)
-	server? (
-		>=app-arch/lz4-0_p131:=
-		cjk? ( app-text/mecab:= )
-		experimental? (
-			dev-libs/libevent:=
-			dev-libs/protobuf:=
-			net-libs/libtirpc:=
-		)
-		numa? ( sys-process/numactl )
-		pam? ( virtual/pam:0= )
-		rocksdb? (
-			app-arch/zstd:=
-			dev-libs/protobuf:=
-		)
-		tokudb? (
-			app-arch/snappy:=
-			app-arch/xz-utils:=
-		)
-		tokudb-backup-plugin? ( dev-util/valgrind )
-	)
-	systemtap? ( >=dev-util/systemtap-1.3:0= )
-	tcmalloc? ( dev-util/google-perftools:0= )
-	!yassl? (
-		client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] )
-			libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] )
-		)
-		!client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0= )
-			libressl? ( dev-libs/libressl:0= )
-		)
-	)
-"
-DEPEND="${COMMON_DEPEND}
-	|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
-	dev-libs/protobuf
-	virtual/yacc
-	server? (
-		dev-libs/libevent
-		experimental? ( net-libs/rpcsvc-proto )
-	)
-	static? ( sys-libs/ncurses[static-libs] )
-	test? (
-		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
-		dev-perl/JSON
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster
-	client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c dev-libs/protobuf:= )
-	selinux? ( sec-policy/selinux-mysql )
-	server? ( !prefix? ( dev-db/mysql-init-scripts ) )
-"
-# For other stuff to bring us in
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-python_check_deps() {
-	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-mysql_init_vars() {
-	MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"}
-	MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX%/}/etc/mysql"}
-	MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX%/}/var/lib/mysql"}
-	MY_LOGDIR=${MY_LOGDIR="${EPREFIX%/}/var/log/mysql"}
-
-	if [[ -z "${MY_DATADIR}" ]] ; then
-		MY_DATADIR=""
-		if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
-			MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-			if [[ -z "${MY_DATADIR}" ]] ; then
-				MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
-				| sed -e 's/.*=\s*//' \
-				| tail -n1`
-			fi
-		fi
-		if [[ -z "${MY_DATADIR}" ]] ; then
-			MY_DATADIR="${MY_LOCALSTATEDIR}"
-			einfo "Using default MY_DATADIR"
-		fi
-		elog "MySQL MY_DATADIR is ${MY_DATADIR}"
-
-		if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
-			if [[ -e "${MY_DATADIR}" ]] ; then
-				# If you get this and you're wondering about it, see bug #207636
-				elog "MySQL datadir found in ${MY_DATADIR}"
-				elog "A new one will not be created."
-				PREVIOUS_DATADIR="yes"
-			else
-				PREVIOUS_DATADIR="no"
-			fi
-			export PREVIOUS_DATADIR
-		fi
-	else
-		if [[ ${EBUILD_PHASE} == "config" ]] ; then
-			local new_MY_DATADIR
-			new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-
-			if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]] ; then
-				ewarn "MySQL MY_DATADIR has changed"
-				ewarn "from ${MY_DATADIR}"
-				ewarn "to ${new_MY_DATADIR}"
-				MY_DATADIR="${new_MY_DATADIR}"
-			fi
-		fi
-	fi
-
-	export MY_SHAREDSTATEDIR MY_SYSCONFDIR
-	export MY_LOCALSTATEDIR MY_LOGDIR
-	export MY_DATADIR
-}
-
-pkg_pretend() {
-	if use numa ; then
-		local CONFIG_CHECK="~NUMA"
-
-		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
-		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
-		check_extra_config
-	fi
-}
-
-pkg_setup() {
-	if [[ ${MERGE_TYPE} != binary ]] ; then
-		local GCC_MAJOR_SET=$(gcc-major-version)
-		local GCC_MINOR_SET=$(gcc-minor-version)
-		# Bug 565584: InnoDB now requires atomic functions introduced with gcc-4.7 on
-		# non x86{,_64} arches
-		if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
-			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
-			eerror "${PN} needs to be built with gcc-4.7 or later."
-			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-			die
-		fi
-
-		use test && python-any-r1_pkg_setup
-	fi
-
-	if has test ${FEATURES} && \
-		use server && ! has userpriv ${FEATURES} ; then
-			eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
-	fi
-
-	# This should come after all of the die statements
-	enewgroup mysql 60 || die "problem adding 'mysql' group"
-	enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
-}
-
-pkg_preinst() {
-	# Here we need to see if the implementation switched client libraries
-	# We check if this is a new instance of the package and a client library already exists
-	local SHOW_ABI_MESSAGE libpath
-	if use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so" ]] ; then
-		libpath=$(readlink "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so")
-		elog "Due to ABI changes when switching between different client libraries,"
-		elog "revdep-rebuild must find and rebuild all packages linking to libperconaserverclient."
-		elog "Please run: revdep-rebuild --library ${libpath}"
-		ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
-	fi
-}
-
-pkg_postinst() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Create log directory securely if it does not exist
-	[[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
-
-	if use server ; then
-		if [[ -z "${REPLACING_VERSIONS}" ]] ; then
-			einfo
-			elog "You might want to run:"
-			elog "\"emerge --config =${CATEGORY}/${PF}\""
-			elog "if this is a new install."
-			elog
-			elog "If you are switching server implentations, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		else
-			einfo
-			elog "If you are upgrading major versions, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		fi
-	fi
-
-	# Note about configuration change
-	einfo
-	elog "This version of ${PN} reorganizes the configuration from a single my.cnf"
-	elog "to several files in /etc/mysql/mysql.d."
-	elog "Please backup any changes you made to /etc/mysql/my.cnf"
-	elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension."
-	elog "You may have as many files as needed and they are read alphabetically."
-	elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
-	einfo
-}
-
-src_unpack() {
-	unpack ${A}
-	# Grab the patches
-	[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack
-
-	mv -f "${WORKDIR}/${MY_P}" "${S}" || die
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	if use jemalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	if use tcmalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	# Don't build bundled xz-utils
-	if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then
-		echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
-	elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then
-		echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
-		sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
-	fi
-
-	if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then
-		 rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die
-	fi
-
-	# Remove bundled libs so we cannot accidentally use them
-	# We keep extra/lz4 directory because we use extra/lz4/xxhash.c via sql/CMakeLists.txt:394
-	rm -rv \
-		"${S}"/extra/protobuf \
-		"${S}"/libevent \
-		"${S}"/storage/rocksdb/third_party \
-		"${S}"/storage/tokudb/PerconaFT/third_party \
-		"${S}"/zlib \
-		|| die
-
-	# Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
-	if [[ -d "${S}/support-files/SELinux" ]] ; then
-		echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
-	fi
-
-	if use libressl ; then
-		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-			"${S}/cmake/ssl.cmake" || die
-	fi
-
-	sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die
-}
-
-src_configure(){
-	# Bug #114895, bug #110149
-	filter-flags "-O" "-O[01]"
-
-	append-cxxflags -felide-constructors
-
-	# bug #283926, with GCC4.4, this is required to get correct behavior.
-	append-flags -fno-strict-aliasing
-
-	if use tokudb ; then
-		# https://jira.percona.com/browse/PS-4399
-		append-cxxflags -Wno-error=shadow
-	fi
-
-	if use client-libs ; then
-		multilib-minimal_src_configure
-	else
-		multilib_src_configure
-	fi
-}
-
-multilib_src_configure() {
-	debug-print-function ${FUNCNAME} "$@"
-
-	if ! multilib_is_native_abi && ! use client-libs ; then
-		return
-	fi
-
-	CMAKE_BUILD_TYPE="RelWithDebInfo"
-
-	# debug hack wrt #497532
-	mycmakeargs=(
-		-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
-		-DMYSQL_DATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DSYSCONFDIR="${EPREFIX%/}/etc/mysql"
-		-DINSTALL_BINDIR=bin
-		-DINSTALL_DOCDIR=share/doc/${PF}
-		-DINSTALL_DOCREADMEDIR=share/doc/${PF}
-		-DINSTALL_INCLUDEDIR=include/mysql
-		-DINSTALL_INFODIR=share/info
-		-DINSTALL_LIBDIR=$(get_libdir)
-		-DINSTALL_MANDIR=share/man
-		-DINSTALL_MYSQLSHAREDIR=share/mysql
-		-DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
-		-DINSTALL_SCRIPTDIR=share/mysql/scripts
-		-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DINSTALL_SBINDIR=sbin
-		-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql"
-		-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
-		-DWITH_UNIT_TESTS=$(usex test ON OFF)
-		### TODO: make this system but issues with UTF-8 prevent it
-		-DWITH_EDITLINE=bundled
-		-DWITH_ZLIB=system
-		-DWITH_LIBWRAP=0
-		-DENABLED_LOCAL_INFILE=1
-		-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-		-DWITH_DEFAULT_COMPILER_OPTIONS=0
-		-DWITH_DEFAULT_FEATURE_SET=0
-		# The build forces this to be defined when cross-compiling. We pass it
-		# all the time for simplicity and to make sure it is actually correct.
-		-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-		-DWITH_CURL=system
-		-DWITH_BOOST="${WORKDIR}/boost_1_59_0"
-		-DWITH_PROTOBUF=system
-	)
-
-	if use test ; then
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
-	else
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
-	fi
-
-	if ! use yassl ; then
-		mycmakeargs+=( -DWITH_SSL=system )
-	else
-		mycmakeargs+=( -DWITH_SSL=bundled )
-	fi
-
-	if ! use client-libs ; then
-		mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
-	fi
-
-	# bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
-	# systemtap only works on native ABI, bug 530132
-	if multilib_is_native_abi ; then
-		mycmakeargs+=(
-			-DENABLE_DTRACE=$(usex systemtap)
-		)
-	else
-		mycmakeargs+=(
-			-DWITHOUT_TOOLS=1
-			-DWITH_READLINE=1
-			-DENABLE_DTRACE=0
-		)
-	fi
-
-	if multilib_is_native_abi && use server ; then
-		mycmakeargs+=(
-			-DWITH_LIBEVENT=system
-			-DWITH_LZ4=system
-			-DWITH_MECAB=$(usex cjk system OFF)
-			-DWITH_NUMA=$(usex numa ON OFF)
-			-DWITH_RAPID=$(usex experimental ON OFF)
-		)
-
-		if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then
-			ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
-			ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
-			ewarn "You MUST file bugs without these variables set."
-
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
-				-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
-			)
-		elif ! use latin1 ; then
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=utf8
-				-DDEFAULT_COLLATION=utf8_general_ci
-			)
-		else
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=latin1
-				-DDEFAULT_COLLATION=latin1_swedish_ci
-			)
-		fi
-
-		mycmakeargs+=(
-			-DEXTRA_CHARSETS=all
-			-DDISABLE_SHARED=$(usex static YES NO)
-			-DWITH_DEBUG=$(usex debug)
-			-DWITH_EMBEDDED_SERVER=OFF
-		)
-
-		if use profiling ; then
-			# Setting to OFF doesn't work: Once set, profiling options will be added
-			# to `mysqld --help` output via sql/sys_vars.cc causing
-			# "main.mysqld--help-notwin" test to fail
-			mycmakeargs+=( -DENABLED_PROFILING=ON )
-		fi
-
-		if use static ; then
-			mycmakeargs+=( -DWITH_PIC=1 )
-		fi
-
-		# Storage engines
-		mycmakeargs+=(
-			-DWITH_EXAMPLE_STORAGE_ENGINE=0
-			-DWITH_ARCHIVE_STORAGE_ENGINE=1
-			-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-			-DWITH_CSV_STORAGE_ENGINE=1
-			-DWITH_FEDERATED_STORAGE_ENGINE=1
-			-DWITH_HEAP_STORAGE_ENGINE=1
-			-DWITH_INNOBASE_STORAGE_ENGINE=1
-			-DWITH_INNODB_MEMCACHED=0
-			-DWITH_MYISAMMRG_STORAGE_ENGINE=1
-			-DWITH_MYISAM_STORAGE_ENGINE=1
-			-DWITH_PARTITION_STORAGE_ENGINE=1
-			-DWITH_ROCKSDB=$(usex rocksdb 1 0)
-			$(usex tokudb '' -DWITHOUT_TOKUDB=1)
-		)
-
-		if use tokudb ; then
-			# TokuDB Backup plugin requires valgrind unconditionally
-			mycmakeargs+=(
-				$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
-			)
-		fi
-
-	else
-		mycmakeargs+=(
-			-DWITHOUT_SERVER=1
-			-DWITH_EMBEDDED_SERVER=OFF
-			-DEXTRA_CHARSETS=none
-		)
-	fi
-
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	if use client-libs ; then
-		multilib-minimal_src_compile
-	else
-		multilib_src_compile
-	fi
-}
-
-multilib_src_compile() {
-	cmake-utils_src_compile
-}
-
-# Official test instructions:
-# ulimit -n 16500 && \
-# USE='latin1 perl server' \
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-src_test() {
-	_disable_test() {
-		local rawtestname reason
-		rawtestname="${1}" ; shift
-		reason="${@}"
-		ewarn "test '${rawtestname}' disabled: '${reason}'"
-		echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
-	}
-
-	local TESTDIR="${BUILD_DIR}/mysql-test"
-	local retstatus_unit
-	local retstatus_tests
-
-	if ! use server ; then
-		einfo "Skipping server tests due to minimal build."
-		return 0
-	fi
-
-	# 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 [[ $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 && ewarn "Some tests may fail with FEATURES=usersandbox"
-
-	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
-	# Run CTest (test-units)
-	cmake-utils_src_test
-	retstatus_unit=$?
-
-	# Ensure that parallel runs don't die
-	export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
-	# Enable parallel testing, auto will try to detect number of cores
-	# You may set this by hand.
-	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
-	# create directories because mysqladmin might run out of order
-	mkdir -p "${T}"/var-tests{,/log} || die
-
-	# Run mysql tests
-	pushd "${TESTDIR}" &>/dev/null || die
-
-	touch "${T}/disabled.def"
-	# These are failing in Percona-Server 5.7 for now and are believed to be
-	# false positives or are known to fail:
-	#
-	# encryption.innodb_encryption_tables:              https://jira.percona.com/browse/PS-5036
-	# group_replication.gr_communication_configuration: requires a valid local network address
-	#                                                   which clashes with FEATURES=network-sandbox
-	# main.mysqlshow:                                   https://jira.percona.com/browse/PS-5017
-	# main.percona_bug1289599:                          https://jira.percona.com/browse/PS-2072
-	# keyring_vault.keyring_vault_timeout:              requires network access to vault.public-ci.percona.com
-	#                                                   which clashes with FEATURES=network-sandbox
-	# perfschema.show_sanity:                           https://jira.percona.com/browse/PS-5018
-	# rocksdb.rocksdb:                                  https://jira.percona.com/browse/PS-5034
-	# rocksdb.show_engine:                              https://jira.percona.com/browse/PS-5033
-	# rocksdb.show_table_status:                        https://jira.percona.com/browse/PS-5035
-	# rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch:   https://bugs.mysql.com/bug.php?id=89223
-	# rpl.rpl_multi_source_mts_reset_worker_info:       https://jira.percona.com/browse/PS-3786
-	# x.crud_insert_cast:                               https://jira.percona.com/browse/PS-5032
-	# x.insert_table_bad_column:                        https://jira.percona.com/browse/PS-5032
-	# x.insert_table_bad_numcolumns:                    https://jira.percona.com/browse/PS-5032
-	# x.insert_table_bad_column_type:                   https://jira.percona.com/browse/PS-5032
-	# x.insert_table:                                   https://jira.percona.com/browse/PS-5032
-	# x.update_crud_arrayappend_o:                      https://jira.percona.com/browse/PS-5032
-	# x.update_crud_arrayinsert_o:                      https://jira.percona.com/browse/PS-5032
-	#
-	local t
-
-	for t in \
-		encryption.innodb_encryption_tables \
-		group_replication.gr_communication_configuration \
-		main.mysqlshow \
-		main.percona_bug1289599 \
-		keyring_vault.keyring_vault_timeout \
-		perfschema.show_sanity \
-		rocksdb.rocksdb \
-		rocksdb.show_engine \
-		rocksdb.show_table_status \
-		rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch \
-		rpl.rpl_multi_source_mts_reset_worker_info \
-		x.crud_insert_cast \
-		x.insert_table_bad_column \
-		x.insert_table_bad_numcolumns \
-		x.insert_table_bad_column_type \
-		x.insert_table \
-		x.update_crud_arrayappend_o \
-		x.update_crud_arrayinsert_o \
-	; do
-			_disable_test "$t" "False positives in Gentoo / Known bug"
-	done
-
-	if use numa && use kernel_linux ; then
-		# bug 584880
-		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
-			for t in sys_vars.innodb_numa_interleave_basic ; do
-				_disable_test "$t" "Test $t requires system with NUMA support"
-			done
-		fi
-	fi
-
-	if use tokudb ; then
-		if [[ -f "/sys/kernel/mm/transparent_hugepage/enabled" ]] ; then
-			if grep -q -E "\[always\]" /sys/kernel/mm/transparent_hugepage/enabled &>/dev/null ; then
-				# TokuDB refuses to start when transparent hugepages are enabled
-				for t in \
-					tokudb.rows-32m-rand-insert \
-					tokudb.savepoint-2 \
-					tokudb.savepoint-3 \
-					tokudb.savepoint-4 \
-					tokudb.savepoint-1078 \
-					tokudb.savepoint-1078-2 \
-					tokudb.savepoint-1078-3 \
-					tokudb.savepoint-1078-4 \
-				; do
-						_disable_test "$t" "TokuDB will not work with transparent hugepages enabled"
-				done
-			fi
-		else
-			einfo "Cannot determine transparent hugepage status."
-			einfo "Please note that TokuDB refuses to start when transparent hugepages are enabled!"
-		fi
-	fi
-
-	if ! use latin1 ; then
-		# The following tests will fail if DEFAULT_CHARSET
-		# isn't set to latin1:
-		for t in \
-			binlog.binlog_mysqlbinlog_filter \
-			binlog.binlog_xa_prepared_disconnect \
-			funcs_1.is_columns_mysql \
-			funcs_1.is_tables_mysql \
-			funcs_1.is_triggers \
-			innodb.innodb_pagesize_max_recordsize \
-			innodb.innodb-system-table-view \
-			innodb.mysqldump_max_recordsize \
-			main.mysql_client_test \
-			main.mysqld--help-notwin \
-			main.type_string \
-			main.information_schema \
-			perfschema.binlog_edge_mix \
-			perfschema.binlog_edge_stmt \
-			rpl.rpl_xa_survive_disconnect \
-			rpl.rpl_xa_survive_disconnect_lsu_off \
-			rpl.rpl_xa_survive_disconnect_table \
-		; do
-				_disable_test "$t" "requires DEFAULT_CHARSET=latin1 but USE=-latin1 is set"
-		done
-	fi
-
-	# Try to increase file limits to increase test coverage
-	if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
-		# Upper limit comes from parts.partition_* tests
-		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
-		if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
-			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
-			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
-			if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
-				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
-			else
-				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
-			fi
-		else
-			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
-		fi
-	else
-		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
-	fi
-
-	# run mysql-test tests
-	perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def"
-	retstatus_tests=$?
-
-	popd &>/dev/null || die
-
-	# Cleanup is important for these testcases.
-	pkill -9 -f "${S}/ndb" 2>/dev/null
-	pkill -9 -f "${S}/sql" 2>/dev/null
-
-	local failures=""
-	[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
-	[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
-
-	[[ -z "$failures" ]] || die "Test failures: $failures"
-	einfo "Tests successfully completed"
-}
-
-src_install() {
-	local MULTILIB_WRAPPED_HEADERS
-	local MULTILIB_CHOST_TOOLS
-	if use client-libs ; then
-		# headers with ABI specific data
-		MULTILIB_WRAPPED_HEADERS=(
-			/usr/include/mysql/server/my_config.h
-			/usr/include/mysql/server/mysql_version.h )
-
-		# wrap the config scripts
-		MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
-		multilib-minimal_src_install
-	else
-		multilib_src_install
-		multilib_src_install_all
-	fi
-}
-
-# Intentionally override eclass function
-multilib_src_install() {
-
-	cmake-utils_src_install
-
-	# Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them.
-	find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
-}
-
-multilib_src_install_all() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Convenience links
-	einfo "Making Convenience links for mysqlcheck multi-call binary"
-	dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
-	dosym "mysqlcheck" "/usr/bin/mysqlrepair"
-	dosym "mysqlcheck" "/usr/bin/mysqloptimize"
-
-	# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
-	if [[ -d "${ED}/usr/data" ]] ; then
-		rm -Rf "${ED}/usr/data" || die
-	fi
-
-	# Unless they explicitly specific USE=test, then do not install the
-	# testsuite. It DOES have a use to be installed, esp. when you want to do a
-	# validation of your database configuration after tuning it.
-	if ! use test ; then
-		rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
-	fi
-
-	# Configuration stuff
-	einfo "Building default configuration ..."
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}"
-	[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
-	cp "${FILESDIR}/my.cnf-5.7" "${TMPDIR}/my.cnf" || die
-	eprefixify "${TMPDIR}/my.cnf"
-	doins "${TMPDIR}/my.cnf"
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.d"
-	cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
-	eprefixify "${TMPDIR}/50-distro-client.cnf"
-	doins "${TMPDIR}/50-distro-client.cnf"
-
-	if use server ; then
-		mycnf_src="my.cnf.distro-server"
-		sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
-			"${FILESDIR}/${mycnf_src}" \
-			> "${TMPDIR}/my.cnf.ok" || die
-
-		if use prefix ; then
-			sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
-				"${TMPDIR}/my.cnf.ok" || die
-		fi
-
-		if use latin1 ; then
-			sed -i \
-				-e "/character-set/s|utf8|latin1|g" \
-				"${TMPDIR}/my.cnf.ok" || die
-		fi
-
-		eprefixify "${TMPDIR}/my.cnf.ok"
-
-		newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
-
-		if use tokudb ; then
-			# Remove some unwanted files
-			rm -fv \
-				"${ED%/}"/usr/COPYING.AGPLv3 \
-				"${ED%/}"/usr/COPYING.GPLv2 \
-				"${ED%/}"/usr/PATENTS \
-				"${ED%/}"/usr/README.md \
-				|| die
-		fi
-	fi
-
-	#Remove mytop if perl is not selected
-	[[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
-}
-
-pkg_config() {
-	_getoptval() {
-		local mypd="${EROOT%/}"/usr/bin/my_print_defaults
-		local section="$1"
-		local flag="--${2}="
-		local extra_options="${3}"
-		"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
-	}
-	local old_MY_DATADIR="${MY_DATADIR}"
-	local old_HOME="${HOME}"
-	# my_print_defaults needs to read stuff in $HOME/.my.cnf
-	export HOME=${EPREFIX%/}/root
-
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
-	if [[ ! -x "${EROOT%/}/usr/sbin/mysqld" ]] ; then
-		die "Minimal builds do NOT include the MySQL server"
-	fi
-
-	if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]] ; then
-		local MY_DATADIR_s="${ROOT%/}/${MY_DATADIR}"
-		MY_DATADIR_s="${MY_DATADIR_s%%/}"
-		local old_MY_DATADIR_s="${ROOT%/}/${old_MY_DATADIR}"
-		old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"
-
-		if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]] ; then
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
-				ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
-			else
-				elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
-				mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
-				|| die "Moving MY_DATADIR failed"
-			fi
-		else
-			ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Attempting to use ${MY_DATADIR_s}"
-			else
-				eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
-				die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
-			fi
-		fi
-	fi
-
-	local pwd1="a"
-	local pwd2="b"
-	local maxtry=15
-
-	if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-		local tmp_mysqld_password_source=
-
-		for tmp_mysqld_password_source in mysql client ; do
-			einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
-			if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
-				if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
-					ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
-					MYSQL_ROOT_PASSWORD=
-					continue
-				fi
-
-				einfo "Found password in '${tmp_mysqld_password_source}' section!"
-				break
-			fi
-		done
-
-		# Sometimes --show is required to display passwords in some implementations of my_print_defaults
-		if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
-		fi
-
-		unset tmp_mysqld_password_source
-	fi
-	MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)"
-	# These are dir+prefix
-	MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log)"
-	MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
-	MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)"
-	MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_TMPDIR" ]] ; then
-		einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_TMPDIR"
-	fi
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_LOG_BIN" ]] ; then
-		einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_LOG_BIN"
-	fi
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_RELAY_LOG" ]] ; then
-		einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_RELAY_LOG"
-	fi
-
-	if [[ -d "${ROOT%/}/${MY_DATADIR}/mysql" ]] ; then
-		ewarn "You have already a MySQL database in place."
-		ewarn "(${ROOT%/}/${MY_DATADIR}/*)"
-		ewarn "Please rename or delete it if you wish to replace it."
-		die "MySQL database already exists!"
-	fi
-
-	# 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 [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-
-		einfo "Please provide a password for the mysql 'root' user now"
-		einfo "or through the ${HOME}/.my.cnf file."
-		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
-		MYSQL_ROOT_PASSWORD="${pwd1}"
-		unset pwd1 pwd2
-	fi
-
-	local options
-	local sqltmp="$(emktemp)"
-
-	# Fix bug 446200. Don't reference host my.cnf, needs to come first,
-	# see http://bugs.mysql.com/bug.php?id=31312
-	use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'"
-
-	# Figure out which options we need to disable to do the setup
-	local helpfile="${TMPDIR%/}/mysqld-help"
-	"${EROOT%/}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
-	for opt in host-cache name-resolve networking slave-start \
-		federated ssl log-bin relay-log slow-query-log external-locking \
-		log-slave-updates \
-		; do
-		optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
-		egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
-	done
-
-	einfo "Creating the mysql database and setting proper permissions on it ..."
-
-	# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
-	PID_DIR="${EROOT%/}/var/run/mysqld"
-	if [[ ! -d "${PID_DIR}" ]] ; then
-		install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
-	fi
-
-	if [[ ! -d "${MY_DATADIR}" ]] ; then
-		install -d -m 750 -o mysql -g mysql "${MY_DATADIR}" || die "Could not create data directory"
-	fi
-
-	pushd "${TMPDIR}" &>/dev/null || die
-
-	# Filling timezones, see
-	# http://dev.mysql.com/doc/mysql/en/time-zone-support.html
-	echo "USE mysql;" >"${sqltmp}"
-	"${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" >> "${sqltmp}" 2>/dev/null
-	chown mysql "${sqltmp}" || die
-
-	# --initialize-insecure will not set root password
-	# --initialize would set a random one in the log which we don't need as we set it ourselves
-	local cmd=( "${EROOT%/}/usr/sbin/mysqld" "--initialize-insecure" "--init-file='${sqltmp}'" )
-	cmd+=( "--basedir=${EPREFIX%/}/usr" ${options} "--datadir=${ROOT%/}${MY_DATADIR}" "--tmpdir=${ROOT%/}${MYSQL_TMPDIR}" )
-	einfo "Command: ${cmd[*]}"
-	su -s /bin/sh -c "${cmd[*]}" mysql \
-		>"${TMPDIR%/}"/mysql_install_db.log 2>&1
-	if [[ $? -ne 0 ]] ; then
-		grep -B5 -A999 -i "ERROR" "${TMPDIR%/}"/mysql_install_db.log 1>&2
-		die "Failed to initialize mysqld. Please review ${EPREFIX%/}/var/log/mysql/mysqld.err AND ${TMPDIR%/}/mysql_install_db.log"
-	fi
-	popd &>/dev/null || die
-	[[ -f "${ROOT%/}/${MY_DATADIR}/mysql/user.frm" ]] \
-	|| die "MySQL databases not installed"
-
-	use prefix || options="${options} --user=mysql"
-
-	local socket="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.sock"
-	local pidfile="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.pid"
-	local mysqld="${EROOT%/}/usr/sbin/mysqld \
-		${options} \
-		$(use prefix || echo --user=mysql) \
-		--log-warnings=0 \
-		--basedir=${EROOT%/}/usr \
-		--datadir=${ROOT%/}/${MY_DATADIR} \
-		--max_allowed_packet=8M \
-		--net_buffer_length=16K \
-		--socket=${socket} \
-		--pid-file=${pidfile} \
-		--tmpdir=${ROOT}/${MYSQL_TMPDIR}"
-	#einfo "About to start mysqld: ${mysqld}"
-	ebegin "Starting mysqld"
-	einfo "Command ${mysqld}"
-	${mysqld} &
-	rc=$?
-	while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
-		maxtry=$((${maxtry}-1))
-		echo -n "."
-		sleep 1
-	done
-	eend $rc
-
-	if ! [[ -S "${socket}" ]] ; then
-		die "Completely failed to start up mysqld with: ${mysqld}"
-	fi
-
-	ebegin "Setting root password"
-	# Do this from memory, as we don't want clear text passwords in temp files
-	local sql="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}'"
-	"${EROOT%/}/usr/bin/mysql" \
-		--no-defaults \
-		"--socket=${socket}" \
-		-hlocalhost \
-		-e "${sql}"
-	eend $?
-
-	# Stop the server and cleanup
-	einfo "Stopping the server ..."
-	kill $(< "${pidfile}" )
-	rm -f "${sqltmp}"
-	wait %1
-	einfo "Done"
-}

diff --git a/dev-db/percona-server/percona-server-5.7.23.25.ebuild b/dev-db/percona-server/percona-server-5.7.23.25.ebuild
deleted file mode 100644
index 2c75a45d8e3..00000000000
--- a/dev-db/percona-server/percona-server-5.7.23.25.ebuild
+++ /dev/null
@@ -1,1066 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-MY_EXTRAS_VER="20181017-2201Z"
-
-CMAKE_MAKEFILE_GENERATOR=emake
-
-# Python2 required for innodb_stress.innodb_stress{,_blob,_crash} test
-PYTHON_COMPAT=( python2_7 )
-
-# Keeping eutils in EAPI=6 for emktemp in pkg_config
-
-inherit eapi7-ver cmake-utils eutils flag-o-matic linux-info \
-	prefix python-any-r1 toolchain-funcs user multilib-minimal
-
-MY_PV=$(ver_rs 3 '-')
-MY_PN="Percona-Server"
-MY_P="${PN}-${MY_PV}"
-MY_MAJOR_PV=$(ver_cut 1-2)
-MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/5.7/release-notes/release-notes_index.html"
-
-SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz
-	mirror://sourceforge/boost/boost_1_59_0.tar.gz
-"
-
-# Gentoo patches to MySQL
-if [[ "${MY_EXTRAS_VER}" != "live" && "${MY_EXTRAS_VER}" != "none" ]] ; then
-	SRC_URI="${SRC_URI}
-		mirror://gentoo/mysql-extras-${MY_EXTRAS_VER}.tar.bz2
-		https://gitweb.gentoo.org/proj/mysql-extras.git/snapshot/mysql-extras-${MY_EXTRAS_VER}.tar.bz2"
-fi
-
-HOMEPAGE="https://www.percona.com/software/mysql-database/percona-server"
-DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
-LICENSE="GPL-2"
-SLOT="0/18"
-IUSE="cjk client-libs cracklib debug experimental jemalloc latin1 libressl numa pam +perl profiling rocksdb
-	selinux +server static static-libs systemtap tcmalloc test tokudb tokudb-backup-plugin yassl"
-
-# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
-RESTRICT="libressl? ( test )"
-
-REQUIRED_USE="?? ( tcmalloc jemalloc ) static? ( yassl )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
-
-# 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"
-
-if [[ "${MY_EXTRAS_VER}" == "live" ]] ; then
-	inherit git-r3
-	EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/mysql-extras.git"
-	EGIT_CHECKOUT_DIR="${WORKDIR}/mysql-extras"
-	EGIT_CLONE_TYPE=shallow
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras"
-else
-	MY_PATCH_DIR="${WORKDIR}/mysql-extras-${MY_EXTRAS_VER}"
-fi
-
-PATCHES=(
-	"${MY_PATCH_DIR}"/20001_all_fix-minimal-build-cmake-mysql-5.7.patch
-	"${MY_PATCH_DIR}"/20007_all_cmake-debug-werror-5.7.patch
-	"${MY_PATCH_DIR}"/20009_all_mysql_myodbc_symbol_fix-5.7.10.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-without-clientlibs-tools.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-fix-libressl-support.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-add-missing-gcc-8-fix.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-grant_user_lock-a-root.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-round-off-test-values-for-same-output-on-all-architectures.patch
-	"${MY_PATCH_DIR}"/20018_all_mysql-5.7.23-fix-mips-ASM.patch
-	"${MY_PATCH_DIR}"/20018_all_percona-server-5.7.23-rocksdb-use-system-libs.patch
-)
-
-# Be warned, *DEPEND are version-dependant
-# These are used for both runtime and compiletime
-# MULTILIB_USEDEP only set for libraries used by the client library
-COMMON_DEPEND="net-misc/curl:=
-	>=sys-apps/sed-4
-	>=sys-apps/texinfo-4.7-r1
-	sys-libs/ncurses:0=
-	client-libs? ( >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?] )
-	!client-libs? (
-		dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?]
-		>=sys-libs/zlib-1.2.3:0=
-	)
-	jemalloc? ( dev-libs/jemalloc:0= )
-	kernel_linux? (
-		dev-libs/libaio:0=
-		sys-process/procps:0=
-	)
-	server? (
-		>=app-arch/lz4-0_p131:=
-		cjk? ( app-text/mecab:= )
-		experimental? (
-			dev-libs/libevent:=
-			dev-libs/protobuf:=
-			net-libs/libtirpc:=
-		)
-		numa? ( sys-process/numactl )
-		pam? ( virtual/pam:0= )
-		rocksdb? (
-			app-arch/zstd:=
-			dev-libs/protobuf:=
-		)
-		tokudb? (
-			app-arch/snappy:=
-			app-arch/xz-utils:=
-		)
-		tokudb-backup-plugin? ( dev-util/valgrind )
-	)
-	systemtap? ( >=dev-util/systemtap-1.3:0= )
-	tcmalloc? ( dev-util/google-perftools:0= )
-	!yassl? (
-		client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] )
-			libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] )
-		)
-		!client-libs? (
-			!libressl? ( >=dev-libs/openssl-1.0.0:0= )
-			libressl? ( dev-libs/libressl:0= )
-		)
-	)
-"
-DEPEND="${COMMON_DEPEND}
-	|| ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
-	dev-libs/protobuf
-	virtual/yacc
-	server? (
-		dev-libs/libevent
-		experimental? ( net-libs/rpcsvc-proto )
-	)
-	static? ( sys-libs/ncurses[static-libs] )
-	test? (
-		$(python_gen_any_dep 'dev-python/mysql-python[${PYTHON_USEDEP}]')
-		dev-perl/JSON
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	!dev-db/mariadb !dev-db/mariadb-galera !dev-db/mysql !dev-db/mysql-cluster
-	client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c dev-libs/protobuf:= )
-	selinux? ( sec-policy/selinux-mysql )
-	server? ( !prefix? ( dev-db/mysql-init-scripts ) )
-"
-# For other stuff to bring us in
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-python_check_deps() {
-	has_version "dev-python/mysql-python[${PYTHON_USEDEP}]"
-}
-
-mysql_init_vars() {
-	MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX%/}/usr/share/mysql"}
-	MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX%/}/etc/mysql"}
-	MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX%/}/var/lib/mysql"}
-	MY_LOGDIR=${MY_LOGDIR="${EPREFIX%/}/var/log/mysql"}
-
-	if [[ -z "${MY_DATADIR}" ]] ; then
-		MY_DATADIR=""
-		if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
-			MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-			if [[ -z "${MY_DATADIR}" ]] ; then
-				MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
-				| sed -e 's/.*=\s*//' \
-				| tail -n1`
-			fi
-		fi
-		if [[ -z "${MY_DATADIR}" ]] ; then
-			MY_DATADIR="${MY_LOCALSTATEDIR}"
-			einfo "Using default MY_DATADIR"
-		fi
-		elog "MySQL MY_DATADIR is ${MY_DATADIR}"
-
-		if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
-			if [[ -e "${MY_DATADIR}" ]] ; then
-				# If you get this and you're wondering about it, see bug #207636
-				elog "MySQL datadir found in ${MY_DATADIR}"
-				elog "A new one will not be created."
-				PREVIOUS_DATADIR="yes"
-			else
-				PREVIOUS_DATADIR="no"
-			fi
-			export PREVIOUS_DATADIR
-		fi
-	else
-		if [[ ${EBUILD_PHASE} == "config" ]] ; then
-			local new_MY_DATADIR
-			new_MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \
-				| sed -ne '/datadir/s|^--datadir=||p' \
-				| tail -n1`
-
-			if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]] ; then
-				ewarn "MySQL MY_DATADIR has changed"
-				ewarn "from ${MY_DATADIR}"
-				ewarn "to ${new_MY_DATADIR}"
-				MY_DATADIR="${new_MY_DATADIR}"
-			fi
-		fi
-	fi
-
-	export MY_SHAREDSTATEDIR MY_SYSCONFDIR
-	export MY_LOCALSTATEDIR MY_LOGDIR
-	export MY_DATADIR
-}
-
-pkg_pretend() {
-	if use numa ; then
-		local CONFIG_CHECK="~NUMA"
-
-		local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
-		WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
-
-		check_extra_config
-	fi
-}
-
-pkg_setup() {
-	if [[ ${MERGE_TYPE} != binary ]] ; then
-		local GCC_MAJOR_SET=$(gcc-major-version)
-		local GCC_MINOR_SET=$(gcc-minor-version)
-		# Bug 565584: InnoDB now requires atomic functions introduced with gcc-4.7 on
-		# non x86{,_64} arches
-		if ! use amd64 && ! use x86 && [[ ${GCC_MAJOR_SET} -lt 4 || \
-			${GCC_MAJOR_SET} -eq 4 && ${GCC_MINOR_SET} -lt 7 ]] ; then
-			eerror "${PN} needs to be built with gcc-4.7 or later."
-			eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-			die
-		fi
-
-		use test && python-any-r1_pkg_setup
-	fi
-
-	if has test ${FEATURES} && \
-		use server && ! has userpriv ${FEATURES} ; then
-			eerror "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
-	fi
-
-	# This should come after all of the die statements
-	enewgroup mysql 60 || die "problem adding 'mysql' group"
-	enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user"
-}
-
-pkg_preinst() {
-	# Here we need to see if the implementation switched client libraries
-	# We check if this is a new instance of the package and a client library already exists
-	local SHOW_ABI_MESSAGE libpath
-	if use client-libs && [[ -z ${REPLACING_VERSIONS} && -e "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so" ]] ; then
-		libpath=$(readlink "${EROOT%/}/usr/$(get_libdir)/libperconaserverclient.so")
-		elog "Due to ABI changes when switching between different client libraries,"
-		elog "revdep-rebuild must find and rebuild all packages linking to libperconaserverclient."
-		elog "Please run: revdep-rebuild --library ${libpath}"
-		ewarn "Failure to run revdep-rebuild may cause issues with other programs or libraries"
-	fi
-}
-
-pkg_postinst() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Create log directory securely if it does not exist
-	[[ -d "${ROOT}${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
-
-	if use server ; then
-		if [[ -z "${REPLACING_VERSIONS}" ]] ; then
-			einfo
-			elog "You might want to run:"
-			elog "\"emerge --config =${CATEGORY}/${PF}\""
-			elog "if this is a new install."
-			elog
-			elog "If you are switching server implentations, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		else
-			einfo
-			elog "If you are upgrading major versions, you should run the"
-			elog "mysql_upgrade tool."
-			einfo
-		fi
-	fi
-
-	# Note about configuration change
-	einfo
-	elog "This version of ${PN} reorganizes the configuration from a single my.cnf"
-	elog "to several files in /etc/mysql/mysql.d."
-	elog "Please backup any changes you made to /etc/mysql/my.cnf"
-	elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension."
-	elog "You may have as many files as needed and they are read alphabetically."
-	elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
-	einfo
-}
-
-src_unpack() {
-	unpack ${A}
-	# Grab the patches
-	[[ "${MY_EXTRAS_VER}" == "live" ]] && S="${WORKDIR}/mysql-extras" git-r3_src_unpack
-
-	mv -f "${WORKDIR}/${MY_P}" "${S}" || die
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	if use jemalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld jemalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	if use tcmalloc ; then
-		echo "TARGET_LINK_LIBRARIES(mysqld tcmalloc)" >> "${S}/sql/CMakeLists.txt" || die
-	fi
-
-	# Don't build bundled xz-utils
-	if [[ -d "${S}/storage/tokudb/ft-index" ]] ; then
-		echo > "${S}/storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i 's/ build_lzma//' "${S}/storage/tokudb/ft-index/ft/CMakeLists.txt" || die
-	elif [[ -d "${S}/storage/tokudb/PerconaFT" ]] ; then
-		echo > "${S}/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake" || die
-		sed -i -e 's/ build_lzma//' -e 's/ build_snappy//' "${S}/storage/tokudb/PerconaFT/ft/CMakeLists.txt" || die
-		sed -i -e 's/add_dependencies\(tokuportability_static_conv build_jemalloc\)//' "${S}/storage/tokudb/PerconaFT/portability/CMakeLists.txt" || die
-	fi
-
-	if [[ -d "${S}/plugin/tokudb-backup-plugin" ]] && ! use tokudb-backup-plugin ; then
-		 rm -r "${S}/plugin/tokudb-backup-plugin/Percona-TokuBackup" || die
-	fi
-
-	# Remove bundled libs so we cannot accidentally use them
-	# We keep extra/lz4 directory because we use extra/lz4/xxhash.c via sql/CMakeLists.txt:394
-	rm -rv \
-		"${S}"/extra/protobuf \
-		"${S}"/libevent \
-		"${S}"/storage/rocksdb/third_party \
-		"${S}"/storage/tokudb/PerconaFT/third_party \
-		"${S}"/zlib \
-		|| die
-
-	# Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
-	if [[ -d "${S}/support-files/SELinux" ]] ; then
-		echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
-	fi
-
-	if use libressl ; then
-		sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL "1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-			"${S}/cmake/ssl.cmake" || die
-	fi
-
-	sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die
-}
-
-src_configure(){
-	# Bug #114895, bug #110149
-	filter-flags "-O" "-O[01]"
-
-	append-cxxflags -felide-constructors
-
-	# bug #283926, with GCC4.4, this is required to get correct behavior.
-	append-flags -fno-strict-aliasing
-
-	if use tokudb ; then
-		# https://jira.percona.com/browse/PS-4399
-		append-cxxflags -Wno-error=shadow
-	fi
-
-	if use client-libs ; then
-		multilib-minimal_src_configure
-	else
-		multilib_src_configure
-	fi
-}
-
-multilib_src_configure() {
-	debug-print-function ${FUNCNAME} "$@"
-
-	if ! multilib_is_native_abi && ! use client-libs ; then
-		return
-	fi
-
-	CMAKE_BUILD_TYPE="RelWithDebInfo"
-
-	# debug hack wrt #497532
-	mycmakeargs=(
-		-DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
-		-DCMAKE_INSTALL_PREFIX="${EPREFIX%/}/usr"
-		-DMYSQL_DATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DSYSCONFDIR="${EPREFIX%/}/etc/mysql"
-		-DINSTALL_BINDIR=bin
-		-DINSTALL_DOCDIR=share/doc/${PF}
-		-DINSTALL_DOCREADMEDIR=share/doc/${PF}
-		-DINSTALL_INCLUDEDIR=include/mysql
-		-DINSTALL_INFODIR=share/info
-		-DINSTALL_LIBDIR=$(get_libdir)
-		-DINSTALL_MANDIR=share/man
-		-DINSTALL_MYSQLSHAREDIR=share/mysql
-		-DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
-		-DINSTALL_SCRIPTDIR=share/mysql/scripts
-		-DINSTALL_MYSQLDATADIR="${EPREFIX%/}/var/lib/mysql"
-		-DINSTALL_SBINDIR=sbin
-		-DINSTALL_SUPPORTFILESDIR="${EPREFIX%/}/usr/share/mysql"
-		-DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
-		-DWITH_UNIT_TESTS=$(usex test ON OFF)
-		### TODO: make this system but issues with UTF-8 prevent it
-		-DWITH_EDITLINE=bundled
-		-DWITH_ZLIB=system
-		-DWITH_LIBWRAP=0
-		-DENABLED_LOCAL_INFILE=1
-		-DMYSQL_UNIX_ADDR="${EPREFIX%/}/var/run/mysqld/mysqld.sock"
-		-DWITH_DEFAULT_COMPILER_OPTIONS=0
-		-DWITH_DEFAULT_FEATURE_SET=0
-		# The build forces this to be defined when cross-compiling. We pass it
-		# all the time for simplicity and to make sure it is actually correct.
-		-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
-		-DWITH_CURL=system
-		-DWITH_BOOST="${WORKDIR}/boost_1_59_0"
-		-DWITH_PROTOBUF=system
-	)
-
-	if use test ; then
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
-	else
-		mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
-	fi
-
-	if ! use yassl ; then
-		mycmakeargs+=( -DWITH_SSL=system )
-	else
-		mycmakeargs+=( -DWITH_SSL=bundled )
-	fi
-
-	if ! use client-libs ; then
-		mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
-	fi
-
-	# bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
-	# systemtap only works on native ABI, bug 530132
-	if multilib_is_native_abi ; then
-		mycmakeargs+=(
-			-DENABLE_DTRACE=$(usex systemtap)
-		)
-	else
-		mycmakeargs+=(
-			-DWITHOUT_TOOLS=1
-			-DWITH_READLINE=1
-			-DENABLE_DTRACE=0
-		)
-	fi
-
-	if multilib_is_native_abi && use server ; then
-		mycmakeargs+=(
-			-DWITH_LIBEVENT=system
-			-DWITH_LZ4=system
-			-DWITH_MECAB=$(usex cjk system OFF)
-			-DWITH_NUMA=$(usex numa ON OFF)
-			-DWITH_RAPID=$(usex experimental ON OFF)
-		)
-
-		if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]] ; then
-			ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
-			ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
-			ewarn "You MUST file bugs without these variables set."
-
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
-				-DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
-			)
-		elif ! use latin1 ; then
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=utf8
-				-DDEFAULT_COLLATION=utf8_general_ci
-			)
-		else
-			mycmakeargs+=(
-				-DDEFAULT_CHARSET=latin1
-				-DDEFAULT_COLLATION=latin1_swedish_ci
-			)
-		fi
-
-		mycmakeargs+=(
-			-DEXTRA_CHARSETS=all
-			-DDISABLE_SHARED=$(usex static YES NO)
-			-DWITH_DEBUG=$(usex debug)
-			-DWITH_EMBEDDED_SERVER=OFF
-		)
-
-		if use profiling ; then
-			# Setting to OFF doesn't work: Once set, profiling options will be added
-			# to `mysqld --help` output via sql/sys_vars.cc causing
-			# "main.mysqld--help-notwin" test to fail
-			mycmakeargs+=( -DENABLED_PROFILING=ON )
-		fi
-
-		if use static ; then
-			mycmakeargs+=( -DWITH_PIC=1 )
-		fi
-
-		# Storage engines
-		mycmakeargs+=(
-			-DWITH_EXAMPLE_STORAGE_ENGINE=0
-			-DWITH_ARCHIVE_STORAGE_ENGINE=1
-			-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-			-DWITH_CSV_STORAGE_ENGINE=1
-			-DWITH_FEDERATED_STORAGE_ENGINE=1
-			-DWITH_HEAP_STORAGE_ENGINE=1
-			-DWITH_INNOBASE_STORAGE_ENGINE=1
-			-DWITH_INNODB_MEMCACHED=0
-			-DWITH_MYISAMMRG_STORAGE_ENGINE=1
-			-DWITH_MYISAM_STORAGE_ENGINE=1
-			-DWITH_PARTITION_STORAGE_ENGINE=1
-			-DWITH_ROCKSDB=$(usex rocksdb 1 0)
-			$(usex tokudb '' -DWITHOUT_TOKUDB=1)
-		)
-
-		if use tokudb ; then
-			# TokuDB Backup plugin requires valgrind unconditionally
-			mycmakeargs+=(
-				$(usex tokudb-backup-plugin '' -DTOKUDB_BACKUP_DISABLED=1)
-			)
-		fi
-
-	else
-		mycmakeargs+=(
-			-DWITHOUT_SERVER=1
-			-DWITH_EMBEDDED_SERVER=OFF
-			-DEXTRA_CHARSETS=none
-		)
-	fi
-
-	cmake-utils_src_configure
-}
-
-src_compile() {
-	if use client-libs ; then
-		multilib-minimal_src_compile
-	else
-		multilib_src_compile
-	fi
-}
-
-multilib_src_compile() {
-	cmake-utils_src_compile
-}
-
-# Official test instructions:
-# ulimit -n 16500 && \
-# USE='latin1 perl server' \
-# FEATURES='test userpriv -usersandbox' \
-# ebuild percona-server-X.X.XX.ebuild \
-# digest clean package
-src_test() {
-	_disable_test() {
-		local rawtestname reason
-		rawtestname="${1}" ; shift
-		reason="${@}"
-		ewarn "test '${rawtestname}' disabled: '${reason}'"
-		echo ${rawtestname} : ${reason} >> "${T}/disabled.def"
-	}
-
-	local TESTDIR="${BUILD_DIR}/mysql-test"
-	local retstatus_unit
-	local retstatus_tests
-
-	if ! use server ; then
-		einfo "Skipping server tests due to minimal build."
-		return 0
-	fi
-
-	# 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 [[ $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 && ewarn "Some tests may fail with FEATURES=usersandbox"
-
-	einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
-
-	# Run CTest (test-units)
-	cmake-utils_src_test
-	retstatus_unit=$?
-
-	# Ensure that parallel runs don't die
-	export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
-	# Enable parallel testing, auto will try to detect number of cores
-	# You may set this by hand.
-	# The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-	export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
-
-	# create directories because mysqladmin might run out of order
-	mkdir -p "${T}"/var-tests{,/log} || die
-
-	# Run mysql tests
-	pushd "${TESTDIR}" &>/dev/null || die
-
-	touch "${T}/disabled.def"
-	# These are failing in Percona-Server 5.7 for now and are believed to be
-	# false positives or are known to fail:
-	#
-	# encryption.innodb_encryption_tables:              https://jira.percona.com/browse/PS-5036
-	# group_replication.gr_communication_configuration: requires a valid local network address
-	#                                                   which clashes with FEATURES=network-sandbox
-	# main.mysqlshow:                                   https://jira.percona.com/browse/PS-5017
-	# main.percona_bug1289599:                          https://jira.percona.com/browse/PS-2072
-	# keyring_vault.keyring_vault_timeout:              requires network access to vault.public-ci.percona.com
-	#                                                   which clashes with FEATURES=network-sandbox
-	# perfschema.show_sanity:                           https://jira.percona.com/browse/PS-5018
-	# rocksdb.rocksdb:                                  https://jira.percona.com/browse/PS-5034
-	# rocksdb.show_engine:                              https://jira.percona.com/browse/PS-5033
-	# rocksdb.show_table_status:                        https://jira.percona.com/browse/PS-5035
-	# rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch:   https://bugs.mysql.com/bug.php?id=89223
-	# rpl.rpl_multi_source_mts_reset_worker_info:       https://jira.percona.com/browse/PS-3786
-	# x.crud_insert_cast:                               https://jira.percona.com/browse/PS-5032
-	# x.insert_table_bad_column:                        https://jira.percona.com/browse/PS-5032
-	# x.insert_table_bad_numcolumns:                    https://jira.percona.com/browse/PS-5032
-	# x.insert_table_bad_column_type:                   https://jira.percona.com/browse/PS-5032
-	# x.insert_table:                                   https://jira.percona.com/browse/PS-5032
-	# x.update_crud_arrayappend_o:                      https://jira.percona.com/browse/PS-5032
-	# x.update_crud_arrayinsert_o:                      https://jira.percona.com/browse/PS-5032
-	#
-	local t
-
-	for t in \
-		encryption.innodb_encryption_tables \
-		group_replication.gr_communication_configuration \
-		main.mysqlshow \
-		main.percona_bug1289599 \
-		keyring_vault.keyring_vault_timeout \
-		perfschema.show_sanity \
-		rocksdb.rocksdb \
-		rocksdb.show_engine \
-		rocksdb.show_table_status \
-		rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch \
-		rpl.rpl_multi_source_mts_reset_worker_info \
-		x.crud_insert_cast \
-		x.insert_table_bad_column \
-		x.insert_table_bad_numcolumns \
-		x.insert_table_bad_column_type \
-		x.insert_table \
-		x.update_crud_arrayappend_o \
-		x.update_crud_arrayinsert_o \
-	; do
-			_disable_test "$t" "False positives in Gentoo / Known bug"
-	done
-
-	if use numa && use kernel_linux ; then
-		# bug 584880
-		if ! linux_config_exists || ! linux_chkconfig_present NUMA ; then
-			for t in sys_vars.innodb_numa_interleave_basic ; do
-				_disable_test "$t" "Test $t requires system with NUMA support"
-			done
-		fi
-	fi
-
-	if use tokudb ; then
-		if [[ -f "/sys/kernel/mm/transparent_hugepage/enabled" ]] ; then
-			if grep -q -E "\[always\]" /sys/kernel/mm/transparent_hugepage/enabled &>/dev/null ; then
-				# TokuDB refuses to start when transparent hugepages are enabled
-				for t in \
-					tokudb.rows-32m-rand-insert \
-					tokudb.savepoint-2 \
-					tokudb.savepoint-3 \
-					tokudb.savepoint-4 \
-					tokudb.savepoint-1078 \
-					tokudb.savepoint-1078-2 \
-					tokudb.savepoint-1078-3 \
-					tokudb.savepoint-1078-4 \
-				; do
-						_disable_test "$t" "TokuDB will not work with transparent hugepages enabled"
-				done
-			fi
-		else
-			einfo "Cannot determine transparent hugepage status."
-			einfo "Please note that TokuDB refuses to start when transparent hugepages are enabled!"
-		fi
-	fi
-
-	if ! use latin1 ; then
-		# The following tests will fail if DEFAULT_CHARSET
-		# isn't set to latin1:
-		for t in \
-			binlog.binlog_mysqlbinlog_filter \
-			binlog.binlog_xa_prepared_disconnect \
-			funcs_1.is_columns_mysql \
-			funcs_1.is_tables_mysql \
-			funcs_1.is_triggers \
-			innodb.innodb_pagesize_max_recordsize \
-			innodb.innodb-system-table-view \
-			innodb.mysqldump_max_recordsize \
-			main.mysql_client_test \
-			main.mysqld--help-notwin \
-			main.type_string \
-			main.information_schema \
-			perfschema.binlog_edge_mix \
-			perfschema.binlog_edge_stmt \
-			rpl.rpl_xa_survive_disconnect \
-			rpl.rpl_xa_survive_disconnect_lsu_off \
-			rpl.rpl_xa_survive_disconnect_table \
-		; do
-				_disable_test "$t" "requires DEFAULT_CHARSET=latin1 but USE=-latin1 is set"
-		done
-	fi
-
-	# Try to increase file limits to increase test coverage
-	if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
-		# Upper limit comes from parts.partition_* tests
-		ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
-
-		if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
-			# Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
-			ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
-
-			if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
-				ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
-			else
-				einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
-			fi
-		else
-			einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
-		fi
-	else
-		einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
-	fi
-
-	# run mysql-test tests
-	perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test=tokudb --skip-test-list="${T}/disabled.def"
-	retstatus_tests=$?
-
-	popd &>/dev/null || die
-
-	# Cleanup is important for these testcases.
-	pkill -9 -f "${S}/ndb" 2>/dev/null
-	pkill -9 -f "${S}/sql" 2>/dev/null
-
-	local failures=""
-	[[ $retstatus_unit -eq 0 ]] || failures="${failures} test-unit"
-	[[ $retstatus_tests -eq 0 ]] || failures="${failures} tests"
-
-	[[ -z "$failures" ]] || die "Test failures: $failures"
-	einfo "Tests successfully completed"
-}
-
-src_install() {
-	local MULTILIB_WRAPPED_HEADERS
-	local MULTILIB_CHOST_TOOLS
-	if use client-libs ; then
-		# headers with ABI specific data
-		MULTILIB_WRAPPED_HEADERS=(
-			/usr/include/mysql/server/my_config.h
-			/usr/include/mysql/server/mysql_version.h )
-
-		# wrap the config scripts
-		MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
-		multilib-minimal_src_install
-	else
-		multilib_src_install
-		multilib_src_install_all
-	fi
-}
-
-# Intentionally override eclass function
-multilib_src_install() {
-
-	cmake-utils_src_install
-
-	# Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them.
-	find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
-}
-
-multilib_src_install_all() {
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	# Convenience links
-	einfo "Making Convenience links for mysqlcheck multi-call binary"
-	dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
-	dosym "mysqlcheck" "/usr/bin/mysqlrepair"
-	dosym "mysqlcheck" "/usr/bin/mysqloptimize"
-
-	# INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
-	if [[ -d "${ED}/usr/data" ]] ; then
-		rm -Rf "${ED}/usr/data" || die
-	fi
-
-	# Unless they explicitly specific USE=test, then do not install the
-	# testsuite. It DOES have a use to be installed, esp. when you want to do a
-	# validation of your database configuration after tuning it.
-	if ! use test ; then
-		rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
-	fi
-
-	# Configuration stuff
-	einfo "Building default configuration ..."
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}"
-	[[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
-	cp "${FILESDIR}/my.cnf-5.7" "${TMPDIR}/my.cnf" || die
-	eprefixify "${TMPDIR}/my.cnf"
-	doins "${TMPDIR}/my.cnf"
-	insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.d"
-	cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
-	eprefixify "${TMPDIR}/50-distro-client.cnf"
-	doins "${TMPDIR}/50-distro-client.cnf"
-
-	if use server ; then
-		mycnf_src="my.cnf.distro-server"
-		sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
-			"${FILESDIR}/${mycnf_src}" \
-			> "${TMPDIR}/my.cnf.ok" || die
-
-		if use prefix ; then
-			sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
-				"${TMPDIR}/my.cnf.ok" || die
-		fi
-
-		if use latin1 ; then
-			sed -i \
-				-e "/character-set/s|utf8|latin1|g" \
-				"${TMPDIR}/my.cnf.ok" || die
-		fi
-
-		eprefixify "${TMPDIR}/my.cnf.ok"
-
-		newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
-
-		if use tokudb ; then
-			# Remove some unwanted files
-			rm -fv \
-				"${ED%/}"/usr/COPYING.AGPLv3 \
-				"${ED%/}"/usr/COPYING.GPLv2 \
-				"${ED%/}"/usr/PATENTS \
-				"${ED%/}"/usr/README.md \
-				|| die
-		fi
-	fi
-
-	#Remove mytop if perl is not selected
-	[[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
-}
-
-pkg_config() {
-	_getoptval() {
-		local mypd="${EROOT%/}"/usr/bin/my_print_defaults
-		local section="$1"
-		local flag="--${2}="
-		local extra_options="${3}"
-		"${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
-	}
-	local old_MY_DATADIR="${MY_DATADIR}"
-	local old_HOME="${HOME}"
-	# my_print_defaults needs to read stuff in $HOME/.my.cnf
-	export HOME=${EPREFIX%/}/root
-
-	# Make sure the vars are correctly initialized
-	mysql_init_vars
-
-	[[ -z "${MY_DATADIR}" ]] && die "Sorry, unable to find MY_DATADIR"
-	if [[ ! -x "${EROOT%/}/usr/sbin/mysqld" ]] ; then
-		die "Minimal builds do NOT include the MySQL server"
-	fi
-
-	if [[ ( -n "${MY_DATADIR}" ) && ( "${MY_DATADIR}" != "${old_MY_DATADIR}" ) ]] ; then
-		local MY_DATADIR_s="${ROOT%/}/${MY_DATADIR}"
-		MY_DATADIR_s="${MY_DATADIR_s%%/}"
-		local old_MY_DATADIR_s="${ROOT%/}/${old_MY_DATADIR}"
-		old_MY_DATADIR_s="${old_MY_DATADIR_s%%/}"
-
-		if [[ ( -d "${old_MY_DATADIR_s}" ) && ( "${old_MY_DATADIR_s}" != / ) ]] ; then
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Both ${old_MY_DATADIR_s} and ${MY_DATADIR_s} exist"
-				ewarn "Attempting to use ${MY_DATADIR_s} and preserving ${old_MY_DATADIR_s}"
-			else
-				elog "Moving MY_DATADIR from ${old_MY_DATADIR_s} to ${MY_DATADIR_s}"
-				mv --strip-trailing-slashes -T "${old_MY_DATADIR_s}" "${MY_DATADIR_s}" \
-				|| die "Moving MY_DATADIR failed"
-			fi
-		else
-			ewarn "Previous MY_DATADIR (${old_MY_DATADIR_s}) does not exist"
-			if [[ -d "${MY_DATADIR_s}" ]] ; then
-				ewarn "Attempting to use ${MY_DATADIR_s}"
-			else
-				eerror "New MY_DATADIR (${MY_DATADIR_s}) does not exist"
-				die "Configuration Failed! Please reinstall ${CATEGORY}/${PN}"
-			fi
-		fi
-	fi
-
-	local pwd1="a"
-	local pwd2="b"
-	local maxtry=15
-
-	if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-		local tmp_mysqld_password_source=
-
-		for tmp_mysqld_password_source in mysql client ; do
-			einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
-			if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
-				if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
-					ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
-					MYSQL_ROOT_PASSWORD=
-					continue
-				fi
-
-				einfo "Found password in '${tmp_mysqld_password_source}' section!"
-				break
-			fi
-		done
-
-		# Sometimes --show is required to display passwords in some implementations of my_print_defaults
-		if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
-			MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
-		fi
-
-		unset tmp_mysqld_password_source
-	fi
-	MYSQL_TMPDIR="$(_getoptval mysqld tmpdir)"
-	# These are dir+prefix
-	MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log)"
-	MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
-	MYSQL_LOG_BIN="$(_getoptval mysqld log-bin)"
-	MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_TMPDIR" ]] ; then
-		einfo "Creating MySQL tmpdir $MYSQL_TMPDIR"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_TMPDIR"
-	fi
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_LOG_BIN" ]] ; then
-		einfo "Creating MySQL log-bin directory $MYSQL_LOG_BIN"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_LOG_BIN"
-	fi
-
-	if [[ ! -d "${EROOT%/}/$MYSQL_RELAY_LOG" ]] ; then
-		einfo "Creating MySQL relay-log directory $MYSQL_RELAY_LOG"
-		install -d -m 770 -o mysql -g mysql "${EROOT%/}/$MYSQL_RELAY_LOG"
-	fi
-
-	if [[ -d "${ROOT%/}/${MY_DATADIR}/mysql" ]] ; then
-		ewarn "You have already a MySQL database in place."
-		ewarn "(${ROOT%/}/${MY_DATADIR}/*)"
-		ewarn "Please rename or delete it if you wish to replace it."
-		die "MySQL database already exists!"
-	fi
-
-	# 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 [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
-
-		einfo "Please provide a password for the mysql 'root' user now"
-		einfo "or through the ${HOME}/.my.cnf file."
-		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
-		MYSQL_ROOT_PASSWORD="${pwd1}"
-		unset pwd1 pwd2
-	fi
-
-	local options
-	local sqltmp="$(emktemp)"
-
-	# Fix bug 446200. Don't reference host my.cnf, needs to come first,
-	# see http://bugs.mysql.com/bug.php?id=31312
-	use prefix && options="${options} '--defaults-file=${MY_SYSCONFDIR}/my.cnf'"
-
-	# Figure out which options we need to disable to do the setup
-	local helpfile="${TMPDIR%/}/mysqld-help"
-	"${EROOT%/}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
-	for opt in host-cache name-resolve networking slave-start \
-		federated ssl log-bin relay-log slow-query-log external-locking \
-		log-slave-updates \
-		; do
-		optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
-		egrep -sq -- "${optexp}" "${helpfile}" && options="${options} ${optfull}"
-	done
-
-	einfo "Creating the mysql database and setting proper permissions on it ..."
-
-	# Now that /var/run is a tmpfs mount point, we need to ensure it exists before using it
-	PID_DIR="${EROOT%/}/var/run/mysqld"
-	if [[ ! -d "${PID_DIR}" ]] ; then
-		install -d -m 755 -o mysql -g mysql "${PID_DIR}" || die "Could not create pid directory"
-	fi
-
-	if [[ ! -d "${MY_DATADIR}" ]] ; then
-		install -d -m 750 -o mysql -g mysql "${MY_DATADIR}" || die "Could not create data directory"
-	fi
-
-	pushd "${TMPDIR}" &>/dev/null || die
-
-	# Filling timezones, see
-	# http://dev.mysql.com/doc/mysql/en/time-zone-support.html
-	echo "USE mysql;" >"${sqltmp}"
-	"${EROOT%/}/usr/bin/mysql_tzinfo_to_sql" "${EROOT%/}/usr/share/zoneinfo" >> "${sqltmp}" 2>/dev/null
-	chown mysql "${sqltmp}" || die
-
-	# --initialize-insecure will not set root password
-	# --initialize would set a random one in the log which we don't need as we set it ourselves
-	local cmd=( "${EROOT%/}/usr/sbin/mysqld" "--initialize-insecure" "--init-file='${sqltmp}'" )
-	cmd+=( "--basedir=${EPREFIX%/}/usr" ${options} "--datadir=${ROOT%/}${MY_DATADIR}" "--tmpdir=${ROOT%/}${MYSQL_TMPDIR}" )
-	einfo "Command: ${cmd[*]}"
-	su -s /bin/sh -c "${cmd[*]}" mysql \
-		>"${TMPDIR%/}"/mysql_install_db.log 2>&1
-	if [[ $? -ne 0 ]] ; then
-		grep -B5 -A999 -i "ERROR" "${TMPDIR%/}"/mysql_install_db.log 1>&2
-		die "Failed to initialize mysqld. Please review ${EPREFIX%/}/var/log/mysql/mysqld.err AND ${TMPDIR%/}/mysql_install_db.log"
-	fi
-	popd &>/dev/null || die
-	[[ -f "${ROOT%/}/${MY_DATADIR}/mysql/user.frm" ]] \
-	|| die "MySQL databases not installed"
-
-	use prefix || options="${options} --user=mysql"
-
-	local socket="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.sock"
-	local pidfile="${EROOT%/}/var/run/mysqld/mysqld${RANDOM}.pid"
-	local mysqld="${EROOT%/}/usr/sbin/mysqld \
-		${options} \
-		$(use prefix || echo --user=mysql) \
-		--log-warnings=0 \
-		--basedir=${EROOT%/}/usr \
-		--datadir=${ROOT%/}/${MY_DATADIR} \
-		--max_allowed_packet=8M \
-		--net_buffer_length=16K \
-		--socket=${socket} \
-		--pid-file=${pidfile} \
-		--tmpdir=${ROOT}/${MYSQL_TMPDIR}"
-	#einfo "About to start mysqld: ${mysqld}"
-	ebegin "Starting mysqld"
-	einfo "Command ${mysqld}"
-	${mysqld} &
-	rc=$?
-	while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
-		maxtry=$((${maxtry}-1))
-		echo -n "."
-		sleep 1
-	done
-	eend $rc
-
-	if ! [[ -S "${socket}" ]] ; then
-		die "Completely failed to start up mysqld with: ${mysqld}"
-	fi
-
-	ebegin "Setting root password"
-	# Do this from memory, as we don't want clear text passwords in temp files
-	local sql="ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}'"
-	"${EROOT%/}/usr/bin/mysql" \
-		--no-defaults \
-		"--socket=${socket}" \
-		-hlocalhost \
-		-e "${sql}"
-	eend $?
-
-	# Stop the server and cleanup
-	einfo "Stopping the server ..."
-	kill $(< "${pidfile}" )
-	rm -f "${sqltmp}"
-	wait %1
-	einfo "Done"
-}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-db/percona-server/, dev-db/percona-server/files/
@ 2023-04-18  8:25 Sam James
  0 siblings, 0 replies; 4+ messages in thread
From: Sam James @ 2023-04-18  8:25 UTC (permalink / raw
  To: gentoo-commits

commit:     36c975680bcd8b5605d8aa491bcad0c94dc14a06
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 18 08:24:26 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Apr 18 08:24:26 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36c97568

dev-db/percona-server: fix build w/ gcc 13

Closes: https://bugs.gentoo.org/895700
Closes: https://bugs.gentoo.org/895236
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/percona-server-8.0.26.16-gcc-13.patch    | 41 ++++++++++++++++++++++
 .../percona-server-8.0.26.16-r2.ebuild             |  4 ++-
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/dev-db/percona-server/files/percona-server-8.0.26.16-gcc-13.patch b/dev-db/percona-server/files/percona-server-8.0.26.16-gcc-13.patch
new file mode 100644
index 000000000000..ce5844dfe9d5
--- /dev/null
+++ b/dev-db/percona-server/files/percona-server-8.0.26.16-gcc-13.patch
@@ -0,0 +1,41 @@
+https://bugs.gentoo.org/895700
+--- a/plugin/group_replication/libmysqlgcs/include/mysql/gcs/gcs_logging.h
++++ b/plugin/group_replication/libmysqlgcs/include/mysql/gcs/gcs_logging.h
+@@ -24,6 +24,7 @@
+ #define GCS_LOGGING_INCLUDED
+ 
+ #include <atomic>
++#include <cstdint>
+ #include <string>
+ 
+ #include "plugin/group_replication/libmysqlgcs/include/mysql/gcs/gcs_types.h"
+--- a/plugin/group_replication/libmysqlgcs/include/mysql/gcs/gcs_types.h
++++ b/plugin/group_replication/libmysqlgcs/include/mysql/gcs/gcs_types.h
+@@ -23,6 +23,7 @@
+ #ifndef GCS_TYPES_INCLUDED
+ #define GCS_TYPES_INCLUDED
+ 
++#include <cstdint>
+ #include <map>
+ #include <string>
+ #include <vector>
+--- a/plugin/x/src/interface/document_id_generator.h
++++ b/plugin/x/src/interface/document_id_generator.h
+@@ -26,6 +26,7 @@
+ #define PLUGIN_X_SRC_INTERFACE_DOCUMENT_ID_GENERATOR_H_
+ 
+ #include <cstdio>
++#include <cstdint>
+ #include <string>
+ 
+ namespace xpl {
+--- a/sql/dd/impl/sdi.h
++++ b/sql/dd/impl/sdi.h
+@@ -23,6 +23,7 @@
+ #ifndef DD__SDI_INCLUDED
+ #define DD__SDI_INCLUDED
+ 
++#include <cstdint>
+ #include <functional>
+ #include "my_compiler.h"
+ #include "sql/dd/sdi_fwd.h"      // RJ_Document

diff --git a/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild b/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild
index 6cda9fcd379e..4548b9b63299 100644
--- a/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild
+++ b/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild
@@ -47,7 +47,7 @@ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 -riscv ~s390 ~sparc ~
 # and we will run a mysql server during test phase
 S="${WORKDIR}/mysql"
 
-# Be warned, *DEPEND are version-dependant
+# Be warned, *DEPEND are version-dependent
 # These are used for both runtime and compiletime
 # openldap < dep for bug #835647 (we need ldap_r)
 COMMON_DEPEND="
@@ -177,6 +177,7 @@ src_unpack() {
 src_prepare() {
 	eapply "${WORKDIR}"/mysql-patches
 	eapply "${FILESDIR}"/${PN}-8.0.26.16-gcc-12.patch
+	eapply "${FILESDIR}"/${PN}-8.0.26.16-gcc-13.patch
 
 	# Avoid rpm call which would trigger sandbox, #692368
 	sed -i \
@@ -252,6 +253,7 @@ src_configure() {
 		# all the time for simplicity and to make sure it is actually correct.
 		-DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
 		-DCMAKE_POSITION_INDEPENDENT_CODE=ON
+		-DUSE_LD_LLD=OFF
 		-DWITH_CURL=system
 		-DWITH_BOOST="${WORKDIR}/boost_$(ver_rs 1- _ ${MY_BOOST_VERSION})"
 		-DWITH_ROUTER=$(usex router ON OFF)


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-04-18  8:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-18  8:25 [gentoo-commits] repo/gentoo:master commit in: dev-db/percona-server/, dev-db/percona-server/files/ Sam James
  -- strict thread matches above, loose matches on Subject: below --
2018-12-29 20:19 Thomas Deutschmann
2018-10-15  1:29 Thomas Deutschmann
2018-02-12 23:32 Thomas Deutschmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox