summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/aerospike-server-community/Manifest1
-rw-r--r--dev-db/aerospike-server-community/aerospike-server-community-4.1.0.1.ebuild71
-rw-r--r--dev-db/aerospike-server-community/aerospike-server-community-9999.ebuild84
-rw-r--r--dev-db/aerospike-server-community/files/3.5.8-use-system-libs.patch63
-rw-r--r--dev-db/aerospike-server-community/files/aerospike.conf70
-rw-r--r--dev-db/aerospike-server-community/files/aerospike.init53
-rw-r--r--dev-db/aerospike-server-community/files/aerospike.logrotate10
-rw-r--r--dev-db/aerospike-server-community/files/aerospike_mesh.conf73
-rw-r--r--dev-db/aerospike-server-community/files/aerospike_ssd.conf68
-rw-r--r--dev-db/aerospike-server-community/metadata.xml11
-rw-r--r--dev-db/freetds/Manifest1
-rw-r--r--dev-db/freetds/freetds-1.00.558.ebuild73
-rw-r--r--dev-db/freetds/freetds-1.2.18.ebuild2
-rw-r--r--dev-db/libzdb/metadata.xml5
-rw-r--r--dev-db/mongodb/Manifest5
-rw-r--r--dev-db/mongodb/files/mongodb-3.6.1-fix-scons.patch32
-rw-r--r--dev-db/mongodb/files/mongodb-3.6.1-no-compass.patch46
-rw-r--r--dev-db/mongodb/files/mongodb-4.0.12-boost-1.71-cxxabi-include.patch12
-rw-r--r--dev-db/mongodb/metadata.xml1
-rw-r--r--dev-db/mongodb/mongodb-3.6.13.ebuild166
-rw-r--r--dev-db/mongodb/mongodb-3.6.17.ebuild162
-rw-r--r--dev-db/mongodb/mongodb-4.0.19.ebuild173
-rw-r--r--dev-db/mongodb/mongodb-4.0.20.ebuild173
-rw-r--r--dev-db/mongodb/mongodb-4.2.10.ebuild175
-rw-r--r--dev-db/myodbc/Manifest1
-rw-r--r--dev-db/myodbc/myodbc-8.0.23.ebuild122
-rw-r--r--dev-db/mysql-connector-c++/Manifest1
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.23.ebuild44
-rw-r--r--dev-db/mysql-connector-c/Manifest1
-rw-r--r--dev-db/mysql-connector-c/files/mysql-connector-c-8.0.18-always-build-decompress-utilities.patch34
-rw-r--r--dev-db/mysql-connector-c/files/mysql-connector-c-8.0.21-survive-malformed-charset-files.patch18
-rw-r--r--dev-db/mysql-connector-c/files/mysql-connector-c-8.0.23-libressl.patch356
-rw-r--r--dev-db/mysql-connector-c/mysql-connector-c-8.0.23.ebuild112
-rw-r--r--dev-db/mysql/Manifest4
-rw-r--r--dev-db/mysql/mysql-5.7.33.ebuild1244
-rw-r--r--dev-db/mysql/mysql-8.0.23.ebuild1159
-rw-r--r--dev-db/mysqltuner/mysqltuner-1.7.17.ebuild4
-rw-r--r--dev-db/mytop/files/mytop-1.6-getopt-long-2.38-fixup.patch14
-rw-r--r--dev-db/mytop/files/mytop-1.6-global-status.patch103
-rw-r--r--dev-db/mytop/files/mytop-1.6-queries-vs-questions-mysql-5.0.76.patch72
-rw-r--r--dev-db/percona-server/files/my.cnf.distro-client21
-rw-r--r--dev-db/percona-server/files/my.cnf.distro-server28
-rw-r--r--dev-db/percona-toolkit/Manifest1
-rw-r--r--dev-db/percona-toolkit/percona-toolkit-3.3.0.ebuild51
-rw-r--r--dev-db/percona-xtrabackup/Manifest3
-rw-r--r--dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-fix-building-against-ICU-68.patch28
-rw-r--r--dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-remove-rpm.patch31
-rw-r--r--dev-db/percona-xtrabackup/metadata.xml5
-rw-r--r--dev-db/percona-xtrabackup/percona-xtrabackup-2.4.21.ebuild67
-rw-r--r--dev-db/percona-xtrabackup/percona-xtrabackup-8.0.22.15.ebuild77
-rw-r--r--dev-db/pgcli/pgcli-3.1.0.ebuild1
-rw-r--r--dev-db/pgrouting/pgrouting-3.1.1.ebuild4
-rw-r--r--dev-db/redis/files/redis-6.0.3-sharedlua.patch60
-rw-r--r--dev-db/redis/redis-6.0.9-r1.ebuild187
-rw-r--r--dev-db/redis/redis-6.0.9-r100.ebuild2
-rw-r--r--dev-db/redis/redis-6.0.9.ebuild2
-rw-r--r--dev-db/slony1/Manifest6
-rw-r--r--dev-db/slony1/slony1-2.2.10.ebuild4
-rw-r--r--dev-db/slony1/slony1-2.2.6.ebuild64
-rw-r--r--dev-db/slony1/slony1-2.2.7.ebuild62
-rw-r--r--dev-db/slony1/slony1-2.2.9.ebuild74
61 files changed, 3503 insertions, 2094 deletions
diff --git a/dev-db/aerospike-server-community/Manifest b/dev-db/aerospike-server-community/Manifest
deleted file mode 100644
index 071733daf53e..000000000000
--- a/dev-db/aerospike-server-community/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST aerospike-server-community-4.1.0.1-debian7.tgz 16538371 BLAKE2B b879fa134d932dd5c5f3432abd6902e3a1bfd071b7753a78b4d2fdd1cc58e6b875c6793285dbfa18612f9ccd98af4f8ae3a16e7178a30d03715a4d38dc369b1c SHA512 f3954f209a3aab446c193b07fe6c045de89af115f29815a886c99b5648da1e3ff1b348cb1ec4299ce772d7619918e2340de6c25393e04c3bf4b9f1760646625d
diff --git a/dev-db/aerospike-server-community/aerospike-server-community-4.1.0.1.ebuild b/dev-db/aerospike-server-community/aerospike-server-community-4.1.0.1.ebuild
deleted file mode 100644
index 986b6a292ca0..000000000000
--- a/dev-db/aerospike-server-community/aerospike-server-community-4.1.0.1.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-inherit eutils user
-
-DESCRIPTION="Flash-optimized, in-memory, nosql database"
-HOMEPAGE="https://www.aerospike.com"
-SRC_URI="http://www.aerospike.com/artifacts/${PN}/${PV}/${P}-debian7.tgz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-
-RDEPEND="sys-libs/readline:0
- sys-libs/zlib
- dev-libs/openssl:0
- "
-DEPEND="${RDEPEND}"
-
-S="${WORKDIR}/${P}-debian7"
-
-pkg_setup() {
- enewgroup aerospike
- enewuser aerospike -1 /bin/bash /opt/aerospike aerospike
-}
-
-src_prepare() {
- local server_deb="${P}.debian7.x86_64.deb"
- local tools_deb="aerospike-tools-3.15.3.6.debian7.x86_64.deb"
-
- ar x "${server_deb}" || die
- tar xzf data.tar.gz && rm data.tar.gz || die
-
- ar x "${tools_deb}" || die
- tar xzf data.tar.gz && rm data.tar.gz || die
-
- rm *.deb asinstall control.tar.gz debian-binary LICENSE SHA256SUMS
- rm usr/bin/{asfixownership,asmigrate2to3}
-}
-
-src_install() {
- insinto /opt/
- doins -r opt/aerospike
-
- fperms +x -R /opt/aerospike/bin/
- fperms +x -R /opt/aerospike/lib/python/
-
- for dir in '/etc' '/var/log'; do
- keepdir "${dir}/aerospike"
- done
-
- insinto /etc/aerospike
- for conf in 'aerospike.conf' 'aerospike_mesh.conf' 'aerospike_ssd.conf'; do
- doins "${FILESDIR}/${conf}"
- done
-
- insinto /usr/bin
- doins usr/bin/*
- fperms +x -R /usr/bin/asd
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}"/aerospike.logrotate aerospike
-
- newinitd "${FILESDIR}"/aerospike.init aerospike
-
- fowners -R aerospike:aerospike /opt/aerospike/
- fowners aerospike:aerospike /usr/bin/asd
- fowners -R aerospike:aerospike /var/log/aerospike
-}
diff --git a/dev-db/aerospike-server-community/aerospike-server-community-9999.ebuild b/dev-db/aerospike-server-community/aerospike-server-community-9999.ebuild
deleted file mode 100644
index 2dd2572268d3..000000000000
--- a/dev-db/aerospike-server-community/aerospike-server-community-9999.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit git-r3 systemd user
-
-DESCRIPTION="Flash-optimized, in-memory, nosql database"
-HOMEPAGE="https://www.aerospike.com"
-EGIT_REPO_URI="https://github.com/aerospike/aerospike-server.git"
-
-LICENSE="AGPL-3"
-SLOT="0"
-KEYWORDS=""
-IUSE="+tools"
-
-RDEPEND="
- dev-libs/jansson
- dev-libs/jemalloc"
-DEPEND="${RDEPEND}"
-
-DOCS=(
- README.md
-)
-
-PATCHES=(
- "${FILESDIR}"/3.5.8-use-system-libs.patch
-)
-
-pkg_setup() {
- enewgroup aerospike
- enewuser aerospike -1 /bin/bash /opt/aerospike aerospike
-}
-
-src_prepare() {
- base_src_prepare
-
- git submodule update --init
-
- sed \
- -e 's/USE_SYSTEM_JEM = 0/USE_SYSTEM_JEM = 1/g' \
- -e 's/USE_SYSTEM_JANSSON = 0/USE_SYSTEM_JANSSON = 1/g' \
- -e 's/LD_CRYPTO = static/LD_CRYPTO = dynamic/g' \
- -e 's/LD_JANSSON = static/LD_JANSSON = dynamic/g' \
- -e 's/LD_JEM = static/LD_JEM = dynamic/g' \
- -i make_in/Makefile.vars || die
-
- rm -rf modules/jansson
- rm -rf modules/jemalloc
-}
-
-src_install() {
- base_src_install_docs
-
- dobin target/Linux-x86_64/bin/asd
-
- insinto /opt/aerospike/sys/udf/lua
- doins -r modules/lua-core/src/*
-
- if use tools; then
- insinto /opt/aerospike/bin
- doins tools/afterburner/afterburner.sh
- fperms +x /opt/aerospike/bin/afterburner.sh
- fi
-
- keepdir /opt/aerospike/usr/udf/lua
- keepdir /var/log/aerospike
-
- insinto /etc/aerospike
- for conf in aerospike.conf aerospike_mesh.conf aerospike_ssd.conf; do
- sed -e "s@/var/run/aerospike/asd.pid@/run/aerospike/aerospike.pid@g" -i as/etc/"${conf}" || die
- doins as/etc/"${conf}"
- done
-
- insinto /etc/logrotate.d
- newins as/etc/logrotate_asd aerospike
-
- newinitd "${FILESDIR}"/aerospike.init aerospike
- systemd_newunit as/etc/aerospike-server.service aerospike.service
-
- fowners -R aerospike:aerospike /opt/aerospike/
- fowners aerospike:aerospike /usr/bin/asd
- fowners -R aerospike:aerospike /var/log/aerospike
-}
diff --git a/dev-db/aerospike-server-community/files/3.5.8-use-system-libs.patch b/dev-db/aerospike-server-community/files/3.5.8-use-system-libs.patch
deleted file mode 100644
index eb69f5ff2e51..000000000000
--- a/dev-db/aerospike-server-community/files/3.5.8-use-system-libs.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/Makefile b/Makefile
-index d4ce8ac..26271fd 100644
---- a/Makefile
-+++ b/Makefile
-@@ -54,12 +54,16 @@ ifeq ($(USE_ASM),1)
- $(MAKE) -C $(ASMALLOC) jem SRCDIR=src
- endif
- ifeq ($(USE_JEM),1)
-+ifeq ($(USE_SYSTEM_JEM),0)
- $(MAKE) -C $(JEMALLOC)
- endif
-+endif
- ifeq ($(USE_LUAJIT),1)
- $(MAKE) -C $(LUAJIT) Q= TARGET_SONAME=libluajit.so CCDEBUG=-g
- endif
-+ifeq ($(USE_SYSTEM_JANSSON),0)
- $(MAKE) -C $(JANSSON)
-+endif
- $(MAKE) -C $(COMMON) CF=$(CF) EXT_CFLAGS="$(EXT_CFLAGS)"
- $(MAKE) -C $(CF)
- $(MAKE) -C $(MOD_LUA) CF=$(CF) COMMON=$(COMMON) LUA_CORE=$(LUA_CORE) EXT_CFLAGS="$(EXT_CFLAGS)" USE_LUAJIT=$(USE_LUAJIT) LUAJIT=$(LUAJIT)
-@@ -174,16 +178,24 @@ mexp2: mexp1
- $(MAKE) MEXP_PHASE=2 SRCDIR=$(realpath $(MEXP_DIR))/
-
- $(JANSSON)/configure:
-+ifeq ($(USE_SYSTEM_JANSSON),0)
- cd $(JANSSON) && autoreconf -i
-+endif
-
- $(JANSSON)/Makefile: $(JANSSON)/configure
-+ifeq ($(USE_SYSTEM_JANSSON),0)
- cd $(JANSSON) && ./configure $(JANSSON_CONFIG_OPT)
-+endif
-
- $(JEMALLOC)/configure:
-+ifeq ($(USE_SYSTEM_JEM),0)
- cd $(JEMALLOC) && autoconf
-+endif
-
- $(JEMALLOC)/Makefile: $(JEMALLOC)/configure
-+ifeq ($(USE_SYSTEM_JEM),0)
- cd $(JEMALLOC) && ./configure $(JEM_CONFIG_OPT)
-+endif
-
- $(LUAJIT)/src/luaconf.h: $(LUAJIT)/src/luaconf.h.orig
- ln -s $(notdir $<) $@
-diff --git a/make_in/Makefile.vars b/make_in/Makefile.vars
-index efe3226..0b54701 100644
---- a/make_in/Makefile.vars
-+++ b/make_in/Makefile.vars
-@@ -31,6 +31,12 @@ ifeq ($(USE_ASM),1)
- EXT_CFLAGS += -DUSE_ASM
- endif
-
-+# Use the system provided JEMalloc memory allocator? [By default, no.]
-+USE_SYSTEM_JEM = 0
-+
-+# Use the system provided Jansson JSON API Library? [By default, no.]
-+USE_SYSTEM_JANSSON = 0
-+
- # Use the JEMalloc memory allocator? [By default, yes.]
- USE_JEM = 1
-
diff --git a/dev-db/aerospike-server-community/files/aerospike.conf b/dev-db/aerospike-server-community/files/aerospike.conf
deleted file mode 100644
index 842873bd3e8e..000000000000
--- a/dev-db/aerospike-server-community/files/aerospike.conf
+++ /dev/null
@@ -1,70 +0,0 @@
-# Aerospike database configuration file.
-
-service {
- user root
- group root
- paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
- pidfile /run/aerospike/aerospike.pid
- service-threads 4
- transaction-queues 4
- transaction-threads-per-queue 4
- proto-fd-max 15000
-}
-
-logging {
- # Log file must be an absolute path.
- file /var/log/aerospike/aerospike.log {
- context any info
- }
-}
-
-network {
- service {
- address any
- port 3000
- }
-
- heartbeat {
- mode multicast
- address 239.1.99.222
- port 9918
-
- # To use unicast-mesh heartbeats, remove the 3 lines above, and see
- # aerospike_mesh.conf for alternative.
-
- interval 150
- timeout 10
- }
-
- fabric {
- port 3001
- }
-
- info {
- port 3003
- }
-}
-
-namespace test {
- replication-factor 2
- memory-size 4G
- default-ttl 30d # 30 days, use 0 to never expire/evict.
-
- storage-engine memory
-}
-
-namespace bar {
- replication-factor 2
- memory-size 4G
- default-ttl 30d # 30 days, use 0 to never expire/evict.
-
- storage-engine memory
-
- # To use file storage backing, comment out the line above and use the
- # following lines instead.
-# storage-engine device {
-# file /opt/aerospike/data/bar.dat
-# filesize 16G
-# data-in-memory true # Store data in memory in addition to file.
-# }
-}
diff --git a/dev-db/aerospike-server-community/files/aerospike.init b/dev-db/aerospike-server-community/files/aerospike.init
deleted file mode 100644
index b1dac8078d6d..000000000000
--- a/dev-db/aerospike-server-community/files/aerospike.init
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-config_file=${config_file:-/etc/aerospike/${SVCNAME}.conf}
-run_dir=${run_dir:-/run/aerospike}
-
-command="/usr/bin/asd"
-command_args="--config-file ${config_file}"
-command_background="false"
-pidfile=${run_dir}/${SVCNAME}.pid
-user=${user:-aerospike}
-group=${group:-aerospike}
-start_stop_daemon_args="--user ${user} --group ${group}"
-required_files="${config_file}"
-
-depend() {
- use net
-}
-
-set_shmall() {
- mem=`/sbin/sysctl -n kernel.shmall`
- min=4294967296
- if [ ${#mem} -le ${#min} ]; then
- if [ $mem -lt $min ]; then
- ewarn "kernel.shmall too low, setting to 4G pages = 16TB"
- /sbin/sysctl -w kernel.shmall=$min
- fi
- fi
-}
-
-set_shmmax() {
- mem=`/sbin/sysctl -n kernel.shmmax`
- min=1073741824
- if [ ${#mem} -le ${#min} ]; then
- if [ $mem -lt $min ]; then
- ewarn "kernel.shmmax too low, setting to 1GB"
- /sbin/sysctl -w kernel.shmmax=$min
- fi
- fi
-}
-
-start_pre() {
- checkpath -d -m 0755 -o "${user}":"${group}" "${run_dir}"
- set_shmall
- set_shmmax
- ulimit -n 100000
- if [ -n $LD_PRELOAD ]; then export LD_PRELOAD; fi
-}
-
-start_post() {
- ewaitfile 60 "${pidfile}"
-}
diff --git a/dev-db/aerospike-server-community/files/aerospike.logrotate b/dev-db/aerospike-server-community/files/aerospike.logrotate
deleted file mode 100644
index 04aabc4a6017..000000000000
--- a/dev-db/aerospike-server-community/files/aerospike.logrotate
+++ /dev/null
@@ -1,10 +0,0 @@
-/var/log/aerospike/aerospike.log {
- daily
- rotate 90
- dateext
- compress
- olddir /var/log/aerospike/
- postrotate
- kill -HUP `cat /var/run/aerospike/aerospike.pid`
- endscript
-}
diff --git a/dev-db/aerospike-server-community/files/aerospike_mesh.conf b/dev-db/aerospike-server-community/files/aerospike_mesh.conf
deleted file mode 100644
index 26274f310ed0..000000000000
--- a/dev-db/aerospike-server-community/files/aerospike_mesh.conf
+++ /dev/null
@@ -1,73 +0,0 @@
-# Aerospike database configuration file for deployments using mesh heartbeats.
-
-service {
- user root
- group root
- paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
- pidfile /run/aerospike/aerospike.pid
- service-threads 4
- transaction-queues 4
- transaction-threads-per-queue 4
- proto-fd-max 15000
-}
-
-logging {
- # Log file must be an absolute path.
- file /var/log/aerospike/aerospike.log {
- context any info
- }
-}
-
-network {
- service {
- address any
- port 3000
- }
-
- heartbeat {
- mode mesh
- port 3002 # Heartbeat port for this node.
-
- # List one or more other nodes, one ip-address & port per line:
- mesh-seed-address-port 10.10.10.10 3002
-# mesh-seed-address-port 10.10.10.11 3002
-# mesh-seed-address-port 10.10.10.12 3002
-# mesh-seed-address-port 10.10.10.13 3002
-# mesh-seed-address-port 10.10.10.14 3002
-
- interval 250
- timeout 10
- }
-
- fabric {
- port 3001
- }
-
- info {
- port 3003
- }
-}
-
-namespace test {
- replication-factor 2
- memory-size 4G
- default-ttl 30d # 30 days, use 0 to never expire/evict.
-
- storage-engine memory
-}
-
-namespace bar {
- replication-factor 2
- memory-size 4G
- default-ttl 30d # 30 days, use 0 to never expire/evict.
-
- storage-engine memory
-
- # To use file storage backing, comment out the line above and use the
- # following lines instead.
-# storage-engine device {
-# file /opt/aerospike/data/bar.dat
-# filesize 16G
-# data-in-memory true # Store data in memory in addition to file.
-# }
-}
diff --git a/dev-db/aerospike-server-community/files/aerospike_ssd.conf b/dev-db/aerospike-server-community/files/aerospike_ssd.conf
deleted file mode 100644
index 3d75bd6f7d91..000000000000
--- a/dev-db/aerospike-server-community/files/aerospike_ssd.conf
+++ /dev/null
@@ -1,68 +0,0 @@
-# Aerospike database configuration file for deployments using raw storage.
-
-service {
- user root
- group root
- paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
- pidfile /run/aerospike/aerospike.pid
- service-threads 8
- transaction-queues 8
- transaction-threads-per-queue 8
- proto-fd-max 15000
-}
-
-logging {
- # Log file must be an absolute path.
- file /var/log/aerospike/aerospike.log {
- context any info
- }
-}
-
-network {
- service {
- address any
- port 3000
- }
-
- heartbeat {
- mode multicast
- address 239.1.99.222
- port 9918
-
- # To use unicast-mesh heartbeats, remove the 3 lines above, and see
- # aerospike_mesh.conf for alternative.
-
- interval 150
- timeout 10
- }
-
- fabric {
- port 3001
- }
-
- info {
- port 3003
- }
-}
-
-namespace test {
- replication-factor 2
- memory-size 4G
- default-ttl 30d # 30 days, use 0 to never expire/evict.
-
- # Warning - legacy data in defined raw partition devices will be erased.
- # These partitions must not be mounted by the file system.
- storage-engine device {
- # Use one or more lines like those below with actual device paths.
-# device /dev/sdb
-# device /dev/sdc
-
- # The 2 lines below optimize for SSD.
- scheduler-mode noop
- write-block-size 128K
-
- # Use the line below to store data in memory in addition to devices.
-# data-in-memory true
- }
-}
-
diff --git a/dev-db/aerospike-server-community/metadata.xml b/dev-db/aerospike-server-community/metadata.xml
deleted file mode 100644
index 40c8909a5b5b..000000000000
--- a/dev-db/aerospike-server-community/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>patrick@gentoo.org</email>
- </maintainer>
- <use>
- <flag name="tools">Install extra tools</flag>
- </use>
- <origin>gentoo-staging</origin>
-</pkgmetadata>
diff --git a/dev-db/freetds/Manifest b/dev-db/freetds/Manifest
index 57f15daa805d..8b914f97fca1 100644
--- a/dev-db/freetds/Manifest
+++ b/dev-db/freetds/Manifest
@@ -1,2 +1 @@
-DIST freetds-dev.1.00.558.tar.gz 3151542 BLAKE2B e7b7eb1d4bad1472a675e7657d524837a27ba18176cf410ebad6dcb949cd59bb50e932526790c816c05cf0ba02fb750a1cfbcda10073e5cbf8908bdc4ceb9cc5 SHA512 763f04ae36be8385f9be955defd2d91698389836e80e19019f0da0ee15515d8b7e3733f7659362a307b492dc83830f0a7f27d2a68cb5b56e2ef171ac1dcfeeca
DIST freetds-dev.1.2.18.tar.gz 3406990 BLAKE2B f0134ee0a322cb9e7a7fefbf9e85c60b826318b546febde78e53d5ec22dc2c8e269b7e830da6d84267d16a2dc2cf367a54354765017a40e07af2c3c6be54676e SHA512 315f40ba0d97281f852ec99fac457ec4b2a30879a2384bfa2d7c680aad6c056b6ae23fc192c18db4fba75caff552ef86de7bbfc5d7b608ea5a12531bf9eadc4c
diff --git a/dev-db/freetds/freetds-1.00.558.ebuild b/dev-db/freetds/freetds-1.00.558.ebuild
deleted file mode 100644
index 7cc9262c47d1..000000000000
--- a/dev-db/freetds/freetds-1.00.558.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# This is from the "current" release series, because the "stable" series
-# is a little too stable for us (missing bug fixes, and so on).
-MY_PN="${PN}-dev"
-
-DESCRIPTION="Tabular Datastream Library"
-HOMEPAGE="https://www.freetds.org/"
-SRC_URI="ftp://ftp.freetds.org/pub/${PN}/current/${MY_PN}.${PV}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~ppc-macos"
-
-IUSE="debug gnutls iconv kerberos libressl mssql iodbc odbc ssl static-libs"
-# iODBC and unixODBC are mutually-exclusive choices for
-# the ODBC driver manager. Future versions of FreeTDS
-# will throw an error if you specify both.
-REQUIRED_USE="?? ( iodbc odbc )"
-
-RESTRICT="test"
-
-# sed, grep, and awk are used by the build system and the osql script.
-COMMON_DEPEND="
- sys-apps/sed
- sys-apps/grep
- virtual/awk
- gnutls? ( net-libs/gnutls:= )
- iconv? ( virtual/libiconv )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- odbc? ( dev-db/unixODBC )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )
-"
-DEPEND="${COMMON_DEPEND}"
-
-# bind-tools is needed because the osql script calls "host".
-# binutils is for "strings".
-RDEPEND="${COMMON_DEPEND}
- sys-devel/binutils
- net-dns/bind-tools
-"
-
-S="${WORKDIR}/${MY_PN}.${PV}"
-
-src_configure() {
- econf \
- --enable-shared \
- $(use_enable debug) \
- $(use_enable iconv libiconv) \
- $(use_enable kerberos krb5) \
- $(use_enable mssql msdblib) \
- $(use_enable static-libs static) \
- $(use_with iodbc) \
- $(use_with odbc unixodbc "${EPREFIX}/usr") \
- $(use_with iconv libiconv-prefix "${EPREFIX}/usr") \
- $(use_with gnutls) \
- $(use_with ssl openssl "${EPREFIX}/usr")
-}
-
-src_install() {
- default
-
- if ! use static-libs; then
- find "${D}" -name '*.la' -delete || die
- fi
-}
diff --git a/dev-db/freetds/freetds-1.2.18.ebuild b/dev-db/freetds/freetds-1.2.18.ebuild
index 10fde9e9f6b5..e8b1511db368 100644
--- a/dev-db/freetds/freetds-1.2.18.ebuild
+++ b/dev-db/freetds/freetds-1.2.18.ebuild
@@ -13,7 +13,7 @@ SRC_URI="ftp://ftp.freetds.org/pub/${PN}/current/${MY_PN}.${PV}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~ppc-macos"
IUSE="debug gnutls iconv kerberos libressl mssql iodbc odbc ssl static-libs"
# iODBC and unixODBC are mutually-exclusive choices for
diff --git a/dev-db/libzdb/metadata.xml b/dev-db/libzdb/metadata.xml
index a9e269705ab2..3d4429370ed8 100644
--- a/dev-db/libzdb/metadata.xml
+++ b/dev-db/libzdb/metadata.xml
@@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>lordvan@gentoo.org</email>
- <name>Thomas Raschbacher</name>
- </maintainer>
+ <!-- maintainer-needed -->
<origin>gentoo-staging</origin>
</pkgmetadata>
diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest
index 2b128bbe16cb..c3997673aaa2 100644
--- a/dev-db/mongodb/Manifest
+++ b/dev-db/mongodb/Manifest
@@ -1,8 +1,3 @@
-DIST mongodb-src-r3.6.13.tar.gz 40853787 BLAKE2B de9621de4f570d569df5cfe026ea5da24641c97f1ac9f3e58a0706b1d0bd74757390a075c95c6d3acd12f3c5c7bcbeb9302ac997248c54a5b7910b582debdc82 SHA512 eb84fb22ff871b5ec620d6fc29a6a66072211656e914630ad0f53e4fcad55aa40a76a0e68e68bdbe8ef061bea09ce6ad6aea5d8d865ea8a8fdca0ed829555fcd
-DIST mongodb-src-r3.6.17.tar.gz 40932592 BLAKE2B 94bbb943fd929318a2b32344cb4574243ad234d1cd14ffef864d7fd2d60841866fd5a1966eae8f14266a9648deb62b7b55386d41338b515d5e6849e980143d42 SHA512 b4d9e9bfc7ff886532641058c99da29420d1aa472cb4cf2b254e0fd0af5ecc72ac8bf28dcd55ab738b799b00132ffacddd154dea37ccfbf459c7cc603c2582e0
-DIST mongodb-src-r4.0.19.tar.gz 50126414 BLAKE2B 2691e2a9c8833ff9a086b28fd137bc8e8f10d58570117657c7cc01edbf61568ae62f58440d72e8711de98b9fc6868c1095b4ee88eb7b0eb63ea45ce19e842edd SHA512 57032a009ea7e79de4cac496a2d1266b83b99cc45eb9f1169be2fcdca1ed2003a659ceedf9eafbd4aa7fc5b3b0513066a5d712af7666cee5a897b2a2d7dd30cb
-DIST mongodb-src-r4.0.20.tar.gz 50160192 BLAKE2B 3395399791b0620d3852b5d0a2ab2419f08127d909fac52035dd2624eb22660069401e71b036f449d8fd46be03b9e48ee548fb0c327b67c1eecc72a6ee9045b8 SHA512 dc18216d9096520b309ff769898fb65cf26f765eb74e5e0517617bdb0732c456620bbce351be5ad9f89bc72fea0b6d3afe13bd4cffe2c2b4ea06c9cb2b3b1696
-DIST mongodb-src-r4.2.10.tar.gz 61800545 BLAKE2B 773f3da589107d932808c30ee3bd09ec006b1c570884fbe6929ea4767581e951fd32b1771e9adf1e392ef97bd4c0e2b4ce5ce30c8bbbfbd63aa36b6ebaa8cbe4 SHA512 3947b2880bc0aaa958f26dfddfe79c7878f389eeeb8d0783360667124d3b253928ef746433c260bf395a219d650a6907bbf712ef61da6137ab85e4e1ba38fcbd
DIST mongodb-src-r4.2.11.tar.gz 61829417 BLAKE2B cc989d6ea87a48b7402d119dda4678a966cf96cec0da5d00d792faf06ecb6fbe4bc426069e1a72548410adcbd26162038ec7201e76036ac599af5f53029c0e66 SHA512 ff398a9d3a012e0eb860c2139967e163b8b0ac045c1c47f2c0c5584ba7c60a1403bb423ce8c6e8b3900fdcad1164a84c6da79276f897fd640366e3f80cf54316
DIST mongodb-src-r4.2.8.tar.gz 61730247 BLAKE2B f1d98b8ac8f62c0c7aff100ef663bb20345de0e77e0ff420817db0843fe735b58af8075578a7f8d83cc9dc4e597c95ae09f89ce7a21cf8146ff15bcb11eba924 SHA512 163fce480762bd377d6c78b661bfe51fc883223a5309a68f9556e1bafb99e26e476d81dbe6de825d90469e835442be097be630ca9678e54b9d09091e0b5d67c4
DIST mongodb-src-r4.4.1.tar.gz 49644743 BLAKE2B 7d84998c69b9b55164ebab04b49c38a4113a0f58d431612389ec37eb044fba1adf9284e9d4454bd40bb7a071fd042308a5cd350129d6d52480412cf6b868ec2b SHA512 16aa66995ea8cfe0cc47b96c1c5643a28ab47fc9f27bd93404cf572944ab30492df7c9255553f918b353cd7157a6ccde9ac6f58bfba322fb52c2d7409c6fb9b0
diff --git a/dev-db/mongodb/files/mongodb-3.6.1-fix-scons.patch b/dev-db/mongodb/files/mongodb-3.6.1-fix-scons.patch
deleted file mode 100644
index d7bfb35b00d5..000000000000
--- a/dev-db/mongodb/files/mongodb-3.6.1-fix-scons.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/SConstruct b/SConstruct
-index fe7975b..92659a7 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1619,7 +1619,6 @@ if env.TargetOSIs('posix'):
- # -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used.
- env.Append( CCFLAGS=["-fno-omit-frame-pointer",
- "-fno-strict-aliasing",
-- "-ggdb",
- "-pthread",
- "-Wall",
- "-Wsign-compare",
-@@ -1631,6 +1630,8 @@ if env.TargetOSIs('posix'):
- env.Append( CCFLAGS=["-Werror"] )
-
- env.Append( CXXFLAGS=["-Woverloaded-virtual"] )
-+ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] )
-+ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
- if env.ToolchainIs('clang'):
- env.Append( CXXFLAGS=['-Werror=unused-result'] )
-
-@@ -1650,8 +1651,8 @@ if env.TargetOSIs('posix'):
-
- env.Append( LIBS=[] )
-
-- #make scons colorgcc friendly
-- for key in ('HOME', 'TERM'):
-+ #make scons colorgcc, distcc, ccache friendly
-+ for key in ('HOME', 'PATH', 'TERM'):
- try:
- env['ENV'][key] = os.environ[key]
- except KeyError:
diff --git a/dev-db/mongodb/files/mongodb-3.6.1-no-compass.patch b/dev-db/mongodb/files/mongodb-3.6.1-no-compass.patch
deleted file mode 100644
index 133c10fd258b..000000000000
--- a/dev-db/mongodb/files/mongodb-3.6.1-no-compass.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/src/mongo/SConscript b/src/mongo/SConscript
-index 9cde728..e29664e 100644
---- a/src/mongo/SConscript
-+++ b/src/mongo/SConscript
-@@ -629,33 +629,6 @@ for full_dir, archive_dir in env["ARCHIVE_ADDITION_DIR_MAP"].items():
- for target in env["DIST_BINARIES"]:
- installBinary(env, "db/modules/" + target)
-
--# Set the download url to the right place
--compass_type = 'compass-community'
--if 'enterprise' in env['MONGO_MODULES']:
-- compass_type = 'compass'
--
--compass_script = "install_compass"
--if env.TargetOSIs('windows'):
-- # On windows the .in needs to be explicitly added to the file.
-- compass_script = "Install-Compass.ps1.in"
--
--compass_python_interpreter = '/usr/bin/env python2'
--if env.TargetOSIs('darwin'):
-- compass_python_interpreter = '/usr/bin/env python'
--
--compass_installer = env.Substfile('#/src/mongo/installer/compass/' + compass_script,
-- SUBST_DICT=[
-- ('@compass_type@', compass_type),
-- ('@python_interpreter@', compass_python_interpreter),
-- ])
--distBinaries.append(compass_installer)
--
--compass_script_installer = env.Install("$INSTALL_DIR/bin", compass_installer)
--
--if env.TargetOSIs('posix'):
-- env.AddPostAction( compass_script_installer, 'chmod 755 $TARGET' )
-- env.AddPostAction( compass_installer, 'chmod 755 $TARGET' )
--
- # "dist" target is valid only when --use-new-tools is specified
- # Attempts to build release artifacts without tools must fail
- if has_option("use-new-tools"):
-@@ -673,7 +646,6 @@ if has_option("use-new-tools"):
- '--transform $BUILD_DIR/mongo=$SERVER_DIST_BASENAME/bin',
- '--transform $BUILD_DIR/mongo/stripped/src/mongo-tools=$SERVER_DIST_BASENAME/bin',
- '--transform src/mongo-tools=$SERVER_DIST_BASENAME/bin',
-- '--transform src/mongo/installer/compass=$SERVER_DIST_BASENAME/bin',
- '${TEMPFILE(SOURCES[1:])}'
- ],
- ),
diff --git a/dev-db/mongodb/files/mongodb-4.0.12-boost-1.71-cxxabi-include.patch b/dev-db/mongodb/files/mongodb-4.0.12-boost-1.71-cxxabi-include.patch
deleted file mode 100644
index b65f91236770..000000000000
--- a/dev-db/mongodb/files/mongodb-4.0.12-boost-1.71-cxxabi-include.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/src/mongo/util/heap_profiler.cpp
-+++ b/src/mongo/util/heap_profiler.cpp
-@@ -49,6 +49,9 @@
- #include <dlfcn.h>
- #include <execinfo.h>
-
-+// for abi::__cxa_demangle
-+#include <cxxabi.h>
-+
- //
- // Sampling heap profiler
- //
diff --git a/dev-db/mongodb/metadata.xml b/dev-db/mongodb/metadata.xml
index c12f22f3548e..5ed4674956bf 100644
--- a/dev-db/mongodb/metadata.xml
+++ b/dev-db/mongodb/metadata.xml
@@ -15,7 +15,6 @@
</longdescription>
<use>
<flag name="lto">Adds support for link time optimization</flag>
- <flag name="mms-agent">Install the MongoDB Monitoring Service agent</flag>
<flag name="tools">Install the MongoDB tools (mongoimport, mongodump...) from <pkg>app-admin/mongo-tools</pkg></flag>
</use>
<origin>gentoo-staging</origin>
diff --git a/dev-db/mongodb/mongodb-3.6.13.ebuild b/dev-db/mongodb/mongodb-3.6.13.ebuild
deleted file mode 100644
index d94c1096f0c0..000000000000
--- a/dev-db/mongodb/mongodb-3.6.13.ebuild
+++ /dev/null
@@ -1,166 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 python3_{6,7,8,9,10} )
-
-SCONS_MIN_VERSION="2.5.0"
-CHECKREQS_DISK_BUILD="2400M"
-CHECKREQS_DISK_USR="512M"
-CHECKREQS_MEMORY="1024M"
-
-inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs user
-
-MY_P=${PN}-src-r${PV/_rc/-rc}
-
-DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
-HOMEPAGE="https://www.mongodb.com"
-SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
-
-LICENSE="Apache-2.0 SSPL-1"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE="debug kerberos libressl lto mms-agent ssl test +tools"
-RESTRICT="!test? ( test )"
-
-RDEPEND=">=app-arch/snappy-1.1.3
- >=dev-cpp/yaml-cpp-0.5.3:=
- >=dev-libs/boost-1.60:=[threads(+)]
- >=dev-libs/libpcre-8.41[cxx]
- dev-libs/snowball-stemmer
- net-libs/libpcap
- >=sys-libs/zlib-1.2.8:=
- kerberos? ( dev-libs/cyrus-sasl[kerberos] )
- mms-agent? ( app-admin/mms-agent )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1g:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- dev-python/cheetah[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/typing[${PYTHON_USEDEP}]
- ')
- sys-libs/ncurses:0=
- sys-libs/readline:0=
- debug? ( dev-util/valgrind )
- test? (
- $(python_gen_any_dep 'dev-python/pymongo[${PYTHON_USEDEP}]')
- )"
-PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.6.1-fix-scons.patch"
- "${FILESDIR}/${PN}-3.6.1-no-compass.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_pretend() {
- if [[ -n ${REPLACING_VERSIONS} ]]; then
- if ver_test "$REPLACING_VERSIONS" -lt 3.4; then
- ewarn "To upgrade from a version earlier than the 3.4-series, you must"
- ewarn "successively upgrade major releases until you have upgraded"
- ewarn "to 3.4-series. Then upgrade to 3.6 series."
- else
- ewarn "Be sure to set featureCompatibilityVersion to 3.4 before upgrading."
- fi
- fi
-}
-
-pkg_setup() {
- enewgroup mongodb
- enewuser mongodb -1 -1 /var/lib/${PN} mongodb
-
- python-any-r1_pkg_setup
-}
-
-src_prepare() {
- default
-
- # remove bundled libs
- rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die
-
- # remove compass
- rm -r src/mongo/installer/compass || die
-}
-
-src_configure() {
- # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
- # --use-system-icu fails tests
- # --use-system-tcmalloc is strongly NOT recommended:
- scons_opts=(
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
-
- --disable-warnings-as-errors
- --use-system-boost
- --use-system-pcre
- --use-system-snappy
- --use-system-stemmer
- --use-system-yaml
- --use-system-zlib
- )
-
- use debug && scons_opts+=( --dbg=on )
- use kerberos && scons_opts+=( --use-sasl-client )
- use lto && scons_opts+=( --lto=on )
- use ssl && scons_opts+=( --ssl )
-
- # respect mongoDB upstream's basic recommendations
- # see bug #536688 and #526114
- if ! use debug; then
- filter-flags '-m*'
- filter-flags '-O?'
- fi
-
- default
-}
-
-src_compile() {
- escons "${scons_opts[@]}" core tools
-}
-
-# FEATURES="test -usersandbox" emerge dev-db/mongodb
-src_test() {
- "${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed"
-}
-
-src_install() {
- escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
-
- doman debian/mongo*.1
- dodoc README docs/building.md
-
- newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
- newinitd "${FILESDIR}/mongos.initd-r3" mongos
- newconfd "${FILESDIR}/mongos.confd-r3" mongos
-
- insinto /etc
- newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
- newins "${FILESDIR}/mongos.conf-r2" mongos.conf
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- # see bug #526114
- pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
-
- local x
- for x in /var/{lib,log}/${PN}; do
- diropts -m0750 -o mongodb -g mongodb
- keepdir "${x}"
- done
-}
-
-pkg_postinst() {
- ewarn "Make sure to read the release notes and follow the upgrade process:"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
-}
diff --git a/dev-db/mongodb/mongodb-3.6.17.ebuild b/dev-db/mongodb/mongodb-3.6.17.ebuild
deleted file mode 100644
index 143c0b6579ef..000000000000
--- a/dev-db/mongodb/mongodb-3.6.17.ebuild
+++ /dev/null
@@ -1,162 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 python3_{6,7,8,9,10} )
-
-SCONS_MIN_VERSION="2.5.0"
-CHECKREQS_DISK_BUILD="2400M"
-CHECKREQS_DISK_USR="512M"
-CHECKREQS_MEMORY="1024M"
-
-inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
-
-MY_P=${PN}-src-r${PV/_rc/-rc}
-
-DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
-HOMEPAGE="https://www.mongodb.com"
-SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
-
-LICENSE="Apache-2.0 SSPL-1"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="debug kerberos libressl lto mms-agent ssl test +tools"
-RESTRICT="!test? ( test )"
-
-RDEPEND="acct-group/mongodb
- acct-user/mongodb
- >=app-arch/snappy-1.1.3
- >=dev-cpp/yaml-cpp-0.5.3:=
- >=dev-libs/boost-1.60:=[threads(+)]
- >=dev-libs/libpcre-8.41[cxx]
- dev-libs/snowball-stemmer
- net-libs/libpcap
- >=sys-libs/zlib-1.2.8:=
- kerberos? ( dev-libs/cyrus-sasl[kerberos] )
- mms-agent? ( app-admin/mms-agent )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1g:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- dev-python/cheetah[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/typing[${PYTHON_USEDEP}]
- ')
- sys-libs/ncurses:0=
- sys-libs/readline:0=
- debug? ( dev-util/valgrind )
- test? (
- $(python_gen_any_dep 'dev-python/pymongo[${PYTHON_USEDEP}]')
- )"
-PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.6.1-fix-scons.patch"
- "${FILESDIR}/${PN}-3.6.1-no-compass.patch"
- "${FILESDIR}/${PN}-4.0.12-boost-1.71-cxxabi-include.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_pretend() {
- if [[ -n ${REPLACING_VERSIONS} ]]; then
- if ver_test "$REPLACING_VERSIONS" -lt 3.4; then
- ewarn "To upgrade from a version earlier than the 3.4-series, you must"
- ewarn "successively upgrade major releases until you have upgraded"
- ewarn "to 3.4-series. Then upgrade to 3.6 series."
- else
- ewarn "Be sure to set featureCompatibilityVersion to 3.4 before upgrading."
- fi
- fi
-}
-
-src_prepare() {
- default
-
- # remove bundled libs
- rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die
-
- # remove compass
- rm -r src/mongo/installer/compass || die
-}
-
-src_configure() {
- # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
- # --use-system-icu fails tests
- # --use-system-tcmalloc is strongly NOT recommended:
- scons_opts=(
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
-
- --disable-warnings-as-errors
- --use-system-boost
- --use-system-pcre
- --use-system-snappy
- --use-system-stemmer
- --use-system-yaml
- --use-system-zlib
- )
-
- use debug && scons_opts+=( --dbg=on )
- use kerberos && scons_opts+=( --use-sasl-client )
- use lto && scons_opts+=( --lto=on )
- use ssl && scons_opts+=( --ssl )
-
- # respect mongoDB upstream's basic recommendations
- # see bug #536688 and #526114
- if ! use debug; then
- filter-flags '-m*'
- filter-flags '-O?'
- fi
-
- default
-}
-
-src_compile() {
- escons "${scons_opts[@]}" core tools
-}
-
-# FEATURES="test -usersandbox" emerge dev-db/mongodb
-src_test() {
- "${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed"
-}
-
-src_install() {
- escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
-
- doman debian/mongo*.1
- dodoc README docs/building.md
-
- newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
- newinitd "${FILESDIR}/mongos.initd-r3" mongos
- newconfd "${FILESDIR}/mongos.confd-r3" mongos
-
- insinto /etc
- newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
- newins "${FILESDIR}/mongos.conf-r2" mongos.conf
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- # see bug #526114
- pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
-
- local x
- for x in /var/{lib,log}/${PN}; do
- diropts -m0750 -o mongodb -g mongodb
- keepdir "${x}"
- done
-}
-
-pkg_postinst() {
- ewarn "Make sure to read the release notes and follow the upgrade process:"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
-}
diff --git a/dev-db/mongodb/mongodb-4.0.19.ebuild b/dev-db/mongodb/mongodb-4.0.19.ebuild
deleted file mode 100644
index 9e1dd8585612..000000000000
--- a/dev-db/mongodb/mongodb-4.0.19.ebuild
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 python3_{6,7,8,9,10} )
-
-SCONS_MIN_VERSION="2.5.0"
-CHECKREQS_DISK_BUILD="2400M"
-CHECKREQS_DISK_USR="512M"
-CHECKREQS_MEMORY="1024M"
-
-inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
-
-MY_P=${PN}-src-r${PV/_rc/-rc}
-
-DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
-HOMEPAGE="https://www.mongodb.com"
-SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
-
-LICENSE="Apache-2.0 SSPL-1"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE="debug kerberos libressl lto mms-agent ssl test +tools"
-RESTRICT="!test? ( test )"
-
-RDEPEND="acct-group/mongodb
- acct-user/mongodb
- >=app-arch/snappy-1.1.3
- >=dev-cpp/yaml-cpp-0.5.3:=
- >=dev-libs/boost-1.60:=[threads(+)]
- >=dev-libs/libpcre-8.41[cxx]
- dev-libs/snowball-stemmer
- net-libs/libpcap
- >=sys-libs/zlib-1.2.11:=
- kerberos? ( dev-libs/cyrus-sasl[kerberos] )
- mms-agent? ( app-admin/mms-agent )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1g:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- test? ( dev-python/pymongo[${PYTHON_USEDEP}] )
- >=dev-util/scons-2.5.0[${PYTHON_USEDEP}]
- dev-python/cheetah[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/typing[${PYTHON_USEDEP}]
- ')
- sys-libs/ncurses:0=
- sys-libs/readline:0=
- debug? ( dev-util/valgrind )"
-PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.6.1-fix-scons.patch"
- "${FILESDIR}/${PN}-4.0.0-no-compass.patch"
- "${FILESDIR}/${PN}-4.0.12-boost-1.71-cxxabi-include.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_pretend() {
- if [[ -n ${REPLACING_VERSIONS} ]]; then
- if ver_test "$REPLACING_VERSIONS" -lt 3.6; then
- ewarn "To upgrade from a version earlier than the 3.6-series, you must"
- ewarn "successively upgrade major releases until you have upgraded"
- ewarn "to 3.6-series. Then upgrade to 4.0 series."
- else
- ewarn "Be sure to set featureCompatibilityVersion to 3.6 before upgrading."
- fi
- fi
-}
-
-python_check_deps() {
- if use test; then
- has_version "dev-python/pymongo[${PYTHON_USEDEP}]" ||
- return 1
- fi
-
- has_version ">=dev-util/scons-2.5.0[${PYTHON_USEDEP}]" &&
- has_version "dev-python/cheetah[${PYTHON_USEDEP}]" &&
- has_version "dev-python/pyyaml[${PYTHON_USEDEP}]" &&
- has_version "dev-python/typing[${PYTHON_USEDEP}]"
-}
-
-src_prepare() {
- default
-
- # remove bundled libs
- rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die
-
- # remove compass
- rm -r src/mongo/installer/compass || die
-}
-
-src_configure() {
- # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
- # --use-system-icu fails tests
- # --use-system-tcmalloc is strongly NOT recommended:
- scons_opts=(
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
-
- --disable-warnings-as-errors
- --use-system-boost
- --use-system-pcre
- --use-system-snappy
- --use-system-stemmer
- --use-system-yaml
- --use-system-zlib
- )
-
- use debug && scons_opts+=( --dbg=on )
- use kerberos && scons_opts+=( --use-sasl-client )
- use lto && scons_opts+=( --lto=on )
- use ssl && scons_opts+=( --ssl )
-
- # respect mongoDB upstream's basic recommendations
- # see bug #536688 and #526114
- if ! use debug; then
- filter-flags '-m*'
- filter-flags '-O?'
- fi
-
- default
-}
-
-src_compile() {
- escons "${scons_opts[@]}" core tools
-}
-
-# FEATURES="test -usersandbox" emerge dev-db/mongodb
-src_test() {
- "${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed"
-}
-
-src_install() {
- escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
-
- doman debian/mongo*.1
- dodoc README docs/building.md
-
- newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
- newinitd "${FILESDIR}/mongos.initd-r3" mongos
- newconfd "${FILESDIR}/mongos.confd-r3" mongos
-
- insinto /etc
- newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
- newins "${FILESDIR}/mongos.conf-r2" mongos.conf
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- # see bug #526114
- pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
-
- local x
- for x in /var/{lib,log}/${PN}; do
- diropts -m0750 -o mongodb -g mongodb
- keepdir "${x}"
- done
-}
-
-pkg_postinst() {
- ewarn "Make sure to read the release notes and follow the upgrade process:"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
-}
diff --git a/dev-db/mongodb/mongodb-4.0.20.ebuild b/dev-db/mongodb/mongodb-4.0.20.ebuild
deleted file mode 100644
index 23c1b86be699..000000000000
--- a/dev-db/mongodb/mongodb-4.0.20.ebuild
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 python3_{6,7,8,9,10} )
-
-SCONS_MIN_VERSION="2.5.0"
-CHECKREQS_DISK_BUILD="2400M"
-CHECKREQS_DISK_USR="512M"
-CHECKREQS_MEMORY="1024M"
-
-inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
-
-MY_P=${PN}-src-r${PV/_rc/-rc}
-
-DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
-HOMEPAGE="https://www.mongodb.com"
-SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
-
-LICENSE="Apache-2.0 SSPL-1"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="debug kerberos libressl lto mms-agent ssl test +tools"
-RESTRICT="!test? ( test )"
-
-RDEPEND="acct-group/mongodb
- acct-user/mongodb
- >=app-arch/snappy-1.1.3
- >=dev-cpp/yaml-cpp-0.5.3:=
- >=dev-libs/boost-1.60:=[threads(+)]
- >=dev-libs/libpcre-8.41[cxx]
- dev-libs/snowball-stemmer
- net-libs/libpcap
- >=sys-libs/zlib-1.2.11:=
- kerberos? ( dev-libs/cyrus-sasl[kerberos] )
- mms-agent? ( app-admin/mms-agent )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1g:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- test? ( dev-python/pymongo[${PYTHON_USEDEP}] )
- >=dev-util/scons-2.5.0[${PYTHON_USEDEP}]
- dev-python/cheetah[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/typing[${PYTHON_USEDEP}]
- ')
- sys-libs/ncurses:0=
- sys-libs/readline:0=
- debug? ( dev-util/valgrind )"
-PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.6.1-fix-scons.patch"
- "${FILESDIR}/${PN}-4.0.0-no-compass.patch"
- "${FILESDIR}/${PN}-4.0.12-boost-1.71-cxxabi-include.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_pretend() {
- if [[ -n ${REPLACING_VERSIONS} ]]; then
- if ver_test "$REPLACING_VERSIONS" -lt 3.6; then
- ewarn "To upgrade from a version earlier than the 3.6-series, you must"
- ewarn "successively upgrade major releases until you have upgraded"
- ewarn "to 3.6-series. Then upgrade to 4.0 series."
- else
- ewarn "Be sure to set featureCompatibilityVersion to 3.6 before upgrading."
- fi
- fi
-}
-
-python_check_deps() {
- if use test; then
- has_version "dev-python/pymongo[${PYTHON_USEDEP}]" ||
- return 1
- fi
-
- has_version ">=dev-util/scons-2.5.0[${PYTHON_USEDEP}]" &&
- has_version "dev-python/cheetah[${PYTHON_USEDEP}]" &&
- has_version "dev-python/pyyaml[${PYTHON_USEDEP}]" &&
- has_version "dev-python/typing[${PYTHON_USEDEP}]"
-}
-
-src_prepare() {
- default
-
- # remove bundled libs
- rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die
-
- # remove compass
- rm -r src/mongo/installer/compass || die
-}
-
-src_configure() {
- # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
- # --use-system-icu fails tests
- # --use-system-tcmalloc is strongly NOT recommended:
- scons_opts=(
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
-
- --disable-warnings-as-errors
- --use-system-boost
- --use-system-pcre
- --use-system-snappy
- --use-system-stemmer
- --use-system-yaml
- --use-system-zlib
- )
-
- use debug && scons_opts+=( --dbg=on )
- use kerberos && scons_opts+=( --use-sasl-client )
- use lto && scons_opts+=( --lto=on )
- use ssl && scons_opts+=( --ssl )
-
- # respect mongoDB upstream's basic recommendations
- # see bug #536688 and #526114
- if ! use debug; then
- filter-flags '-m*'
- filter-flags '-O?'
- fi
-
- default
-}
-
-src_compile() {
- escons "${scons_opts[@]}" core tools
-}
-
-# FEATURES="test -usersandbox" emerge dev-db/mongodb
-src_test() {
- "${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed"
-}
-
-src_install() {
- escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
-
- doman debian/mongo*.1
- dodoc README docs/building.md
-
- newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
- newinitd "${FILESDIR}/mongos.initd-r3" mongos
- newconfd "${FILESDIR}/mongos.confd-r3" mongos
-
- insinto /etc
- newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
- newins "${FILESDIR}/mongos.conf-r2" mongos.conf
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- # see bug #526114
- pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
-
- local x
- for x in /var/{lib,log}/${PN}; do
- diropts -m0750 -o mongodb -g mongodb
- keepdir "${x}"
- done
-}
-
-pkg_postinst() {
- ewarn "Make sure to read the release notes and follow the upgrade process:"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
-}
diff --git a/dev-db/mongodb/mongodb-4.2.10.ebuild b/dev-db/mongodb/mongodb-4.2.10.ebuild
deleted file mode 100644
index 89a507043fd4..000000000000
--- a/dev-db/mongodb/mongodb-4.2.10.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9,10} )
-
-SCONS_MIN_VERSION="2.5.0"
-CHECKREQS_DISK_BUILD="2400M"
-CHECKREQS_DISK_USR="512M"
-CHECKREQS_MEMORY="1024M"
-
-inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
-
-MY_P=${PN}-src-r${PV/_rc/-rc}
-
-DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
-HOMEPAGE="https://www.mongodb.com"
-SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
-
-LICENSE="Apache-2.0 SSPL-1"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="debug kerberos libressl lto ssl test +tools"
-RESTRICT="!test? ( test )"
-
-RDEPEND="acct-group/mongodb
- acct-user/mongodb
- >=app-arch/snappy-1.1.3
- >=dev-cpp/yaml-cpp-0.6.2:=
- >=dev-libs/boost-1.70:=[threads(+)]
- >=dev-libs/libpcre-8.42[cxx]
- app-arch/zstd
- dev-libs/snowball-stemmer
- net-libs/libpcap
- >=sys-libs/zlib-1.2.11:=
- kerberos? ( dev-libs/cyrus-sasl[kerberos] )
- ssl? (
- !libressl? ( >=dev-libs/openssl-1.0.1g:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- test? ( dev-python/pymongo[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] )
- >=dev-util/scons-2.5.0[${PYTHON_USEDEP}]
- dev-python/cheetah3[${PYTHON_USEDEP}]
- dev-python/psutil[${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- ')
- sys-libs/ncurses:0=
- sys-libs/readline:0=
- debug? ( dev-util/valgrind )"
-PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-4.2.0-fix-scons.patch"
- "${FILESDIR}/${PN}-4.2.10-no-compass.patch"
-)
-
-S="${WORKDIR}/${MY_P}"
-
-python_check_deps() {
- if use test; then
- has_version "dev-python/pymongo[${PYTHON_USEDEP}]" || return 1
- has_version "dev-python/requests[${PYTHON_USEDEP}]" || return 1
- fi
-
- has_version ">=dev-util/scons-2.5.0[${PYTHON_USEDEP}]" &&
- has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
- has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
- has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
-}
-
-pkg_pretend() {
- if [[ -n ${REPLACING_VERSIONS} ]]; then
- if ver_test "$REPLACING_VERSIONS" -lt 4.0; then
- ewarn "To upgrade from a version earlier than the 4.0-series, you must"
- ewarn "successively upgrade major releases until you have upgraded"
- ewarn "to 4.0-series. Then upgrade to 4.2 series."
- else
- ewarn "Be sure to set featureCompatibilityVersion to 4.0 before upgrading."
- fi
- fi
-}
-
-src_prepare() {
- default
-
- # remove bundled libs
- rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*,zstandard-*} || die
-
- # remove compass
- rm -r src/mongo/installer/compass || die
-}
-
-src_configure() {
- # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
- # --use-system-icu fails tests
- # --use-system-tcmalloc is strongly NOT recommended:
- scons_opts=(
- CC="$(tc-getCC)"
- CXX="$(tc-getCXX)"
-
- --disable-warnings-as-errors
- --use-system-boost
- --use-system-pcre
- --use-system-snappy
- --use-system-stemmer
- --use-system-yaml
- --use-system-zlib
- --use-system-zstd
- )
-
- use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300
- use debug && scons_opts+=( --dbg=on )
- use kerberos && scons_opts+=( --use-sasl-client )
- use lto && scons_opts+=( --lto=on )
- use ssl && scons_opts+=( --ssl )
-
- # respect mongoDB upstream's basic recommendations
- # see bug #536688 and #526114
- if ! use debug; then
- filter-flags '-m*'
- filter-flags '-O?'
- fi
-
- default
-}
-
-src_compile() {
- escons "${scons_opts[@]}" core tools
-}
-
-# FEATURES="test -usersandbox" emerge dev-db/mongodb
-src_test() {
- ewarn "Tests may hang with FEATURES=usersandbox"
- "${EPYTHON}" ./buildscripts/resmoke.py run --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed with ${EPYTHON}"
-}
-
-src_install() {
- escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
-
- doman debian/mongo*.1
- dodoc README docs/building.md
-
- newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
- newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
- newinitd "${FILESDIR}/mongos.initd-r3" mongos
- newconfd "${FILESDIR}/mongos.confd-r3" mongos
-
- insinto /etc
- newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
- newins "${FILESDIR}/mongos.conf-r2" mongos.conf
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- # see bug #526114
- pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
-
- local x
- for x in /var/{lib,log}/${PN}; do
- diropts -m0750 -o mongodb -g mongodb
- keepdir "${x}"
- done
-}
-
-pkg_postinst() {
- ewarn "Make sure to read the release notes and follow the upgrade process:"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
- ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
-}
diff --git a/dev-db/myodbc/Manifest b/dev-db/myodbc/Manifest
index 154b0e8832f5..a46cf8c41c1e 100644
--- a/dev-db/myodbc/Manifest
+++ b/dev-db/myodbc/Manifest
@@ -1 +1,2 @@
DIST mysql-connector-odbc-8.0.22-src.tar.gz 3726015 BLAKE2B 055920446767b0c9a30a0ca4773e71d662b398a9849df1a0b7975d71a21cfb23f540d8dda5430c717569f173e63673d3e51b025bb098e51202093d33e19bc142 SHA512 c613ae60346cea2e57bade89d813fd5ac21d0712d3d751e3acbc275421da6ac7593afc3da9fb6d161ee413f60e76e670f0c84876591f331925c980d969db4e8c
+DIST mysql-connector-odbc-8.0.23-src.tar.gz 3726277 BLAKE2B 21b5e6f3f7e77d6107268800441675a230c79071e52db39093fade6e02031c12c96371d165af9459e9739e069e5b4196f0169dff54c0fa300e7a3023e8a82722 SHA512 2f66b5e1796176d638b1209b7d3381c2600a11cc88fa0dfb1f29b16a6c59386926674d5581d4843036d061af09312d58620484730bd7cdad36c0a0dcd45d49a9
diff --git a/dev-db/myodbc/myodbc-8.0.23.ebuild b/dev-db/myodbc/myodbc-8.0.23.ebuild
new file mode 100644
index 000000000000..aca18615d239
--- /dev/null
+++ b/dev-db/myodbc/myodbc-8.0.23.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-multilib
+
+MAJOR="$(ver_cut 1-2)"
+MY_PN="mysql-connector-odbc"
+MY_P="${MY_PN}-${PV/_p/r}-src"
+
+DESCRIPTION="ODBC driver for MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/connector/odbc/"
+SRC_URI="https://dev.mysql.com/get/Downloads/Connector-ODBC/${MAJOR}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="${MAJOR}"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+# Broken when built dynamically against libmysqlclient.so
+RDEPEND="
+ dev-db/unixODBC[${MULTILIB_USEDEP}]
+ >=dev-db/mysql-connector-c-8.0:0=[static-libs,${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+S=${WORKDIR}/${MY_P}
+
+# Careful!
+DRIVER_NAME="${PN}-${SLOT}"
+
+# Patch document path so it doesn't install files to /usr
+PATCHES=(
+ "${FILESDIR}/${MAJOR}-cmake-doc-path.patch"
+ "${FILESDIR}/${PN}-8.0.19-cxxlinkage.patch"
+)
+
+src_prepare() {
+ # Remove Tests
+ sed -i -e "s/ADD_SUBDIRECTORY(test)//" \
+ "${S}/CMakeLists.txt"
+
+ cmake-utils_src_prepare
+}
+
+multilib_src_configure() {
+ mycmakeargs+=(
+ -DMYSQLCLIENT_STATIC_LINKING=1
+ -DMYSQL_CXX_LINKAGE=1
+ -DWITH_UNIXODBC=1
+ -DWITH_DOCUMENTATION_INSTALL_PATH=${EPREFIX}/usr/share/doc/${PF}
+ -DLIB_SUBDIR="$(get_libdir)/${PN}-${MAJOR}"
+ -DMYSQLCLIENT_NO_THREADS=ON
+ -DDISABLE_GUI=ON
+ # The NUMA and LIBWRAP options are not really used.
+ # They are just copied from the server code
+ -DWITH_NUMA=OFF
+ -DWITH_LIBWRAP=OFF
+ )
+ cmake-utils_src_configure
+}
+
+multilib_src_install_all() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ dodir /usr/share/${PN}-${SLOT}
+ for i in odbc.ini odbcinst.ini; do
+ einfo "Building $i"
+ sed \
+ -e "s,__PN__,${DRIVER_NAME},g" \
+ -e "s,__PF__,${MAJOR},g" \
+ -e "s,lib/libmyodbc3.so,$(get_libdir)/${PN}-${MAJOR}/libmyodbc${SLOT:0:1}a.so,g" \
+ >"${D}"/usr/share/${PN}-${SLOT}/${i} \
+ <"${FILESDIR}"/${i}.m4 \
+ || die "Failed to build $i"
+ done
+
+ rm -rf "${ED}/usr/$(get_libdir)/${PN}-${MAJOR}/private" \
+ || die "failed to remove bundled libs"
+
+ mv "${D}/usr/bin/myodbc-installer" \
+ "${D}/usr/bin/myodbc-installer-${MAJOR}" || die "failed to move slotted binary"
+}
+
+pkg_config() {
+
+ [ "${ROOT}" != "/" ] && \
+ die 'Sorry, non-standard ROOT setting is not supported :-('
+
+ local msg='MySQL ODBC driver'
+ local drivers=$(/usr/bin/odbcinst -q -d)
+
+ if echo $drivers | grep -vq "^\[${DRIVER_NAME}\]$" ; then
+ ebegin "Installing ${msg}"
+ /usr/bin/odbcinst -i -d -f /usr/share/${PN}-${SLOT}/odbcinst.ini
+ rc=$?
+ eend $rc
+ [ $rc -ne 0 ] && die
+ else
+ einfo "Skipping already installed ${msg}"
+ fi
+
+ local sources=$(/usr/bin/odbcinst -q -s)
+ msg='sample MySQL ODBC DSN'
+ if echo $sources | grep -vq "^\[${DRIVER_NAME}-test\]$"; then
+ ebegin "Installing ${msg}"
+ /usr/bin/odbcinst -i -s -l -f /usr/share/${PN}-${SLOT}/odbc.ini
+ rc=$?
+ eend $rc
+ [ $rc -ne 0 ] && die
+ else
+ einfo "Skipping already installed ${msg}"
+ fi
+}
+
+pkg_postinst() {
+ elog "If this is a new install, please run the following command"
+ elog "to configure the MySQL ODBC drivers and sources:"
+ elog "emerge --config =${CATEGORY}/${PF}"
+ elog "Please note that the driver name used to form the DSN now includes the SLOT."
+ elog "The myodbc-install utility is installed as myodbc-install-${MAJOR}"
+}
diff --git a/dev-db/mysql-connector-c++/Manifest b/dev-db/mysql-connector-c++/Manifest
index abb402a61695..73a3efb42b00 100644
--- a/dev-db/mysql-connector-c++/Manifest
+++ b/dev-db/mysql-connector-c++/Manifest
@@ -3,3 +3,4 @@ DIST mysql-connector-c++-8.0.19-src.tar.gz 3137484 BLAKE2B 82a2900b0daa00bcfd72d
DIST mysql-connector-c++-8.0.20-src.tar.gz 3774428 BLAKE2B a06114432ab21c36fd0b3b91df2382198b2a48871e8e0bfd8c7a94729ed0e29f33599c078c97670fe9d744b13042db52fb89de2294c75eae670a77112d11d251 SHA512 3edb7c3d4ccf218a3f76afcf83a6d233b7accd236c05105ab3f7a6610cfd8809a78c78142c82fb60fb0931d2ae0f0f8fdc3ce9caf5f0cde7ef54067a7e20270b
DIST mysql-connector-c++-8.0.21-src.tar.gz 3788740 BLAKE2B 1862b4f2c6e2a2bbe8e3044eea2c1d3c8fdb0a319e3758ca44686b79e917a65617e2cfd0e4b698d858ed9ef12c892b4f658eb287f2a8505a5daeeb79d9544c25 SHA512 8a64dff2efd16d2891f613fd416ec42ecba2490b428b1778e99822a3051d9c5af3b94006577e9f38a6ebd146d2f3be522cb876f1e42fbf0ac82001b0a62ffa62
DIST mysql-connector-c++-8.0.22-src.tar.gz 3795112 BLAKE2B c5d6f0ebeb4649857f3217a35f3ae885d62be63af4da09815e7eb156538ece4f805578db24bfff3dd44a0e320c025a9936d7edacba69a2786d84dd932c5abb8a SHA512 1975b43fa3f3806cccc685a695f84783164c5b17da10ac14a6013d27c837cc9c63fff01b1ed4b31f22dae60afa68d34ec56ca9c45ca3dac23635e8f0fa845aa4
+DIST mysql-connector-c++-8.0.23-src.tar.gz 3798295 BLAKE2B 923eebbd7f9cde0252c84de4c70863b40c0dd93ad98a93e2ec14c935b2f3f0b0f251828a8bbbd0f23a5ec03491db06020294e19455901d15181c84fec9fb3d7f SHA512 f8eb8842e199d7373f4b55644720ac63b93eb33be19294c433f57aaf556ce1b5752223154194469fa28af52adebe930f0a7b4e8f62df92cc810b545aa7bab928
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.23.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.23.ebuild
new file mode 100644
index 000000000000..e5379e0f4996
--- /dev/null
+++ b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.23.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_MAKEFILE_GENERATOR=emake
+inherit cmake
+
+DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
+HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
+URI_DIR="Connector-C++"
+SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
+
+LICENSE="Artistic GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="+legacy libressl"
+
+RDEPEND="
+ dev-libs/protobuf:=
+ legacy? (
+ dev-libs/boost:=
+ >=dev-db/mysql-connector-c-6.1.8:=
+ )
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )"
+DEPEND="${RDEPEND}"
+S="${WORKDIR}/${P}-src"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.22-fix-build.patch
+ "${FILESDIR}"/${PN}-8.0.20-fix-libressl-support.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DWITH_SSL=system
+ -DWITH_JDBC=$(usex legacy ON OFF)
+ $(usex legacy '-DMYSQLCLIENT_STATIC_BINDING=0' '')
+ $(usex legacy '-DMYSQLCLIENT_STATIC_LINKING=0' '')
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-db/mysql-connector-c/Manifest b/dev-db/mysql-connector-c/Manifest
index 02cd082be04f..36b6afb16c8d 100644
--- a/dev-db/mysql-connector-c/Manifest
+++ b/dev-db/mysql-connector-c/Manifest
@@ -1 +1,2 @@
DIST mysql-boost-8.0.22.tar.gz 285934450 BLAKE2B 1ba0c9bb9a0cb74af4842d3b746f8b690c122cfbf2c6d5201ce95e59a257427a8683dd8d5c2be31dfe9ece4761366c1287fa7b841c45db222725bf76b0639bc6 SHA512 792f2ada93ec67a4679228478c6b798e81d9e9f6d13c7f4977cb7682738a4aae3cb483294edc6b2fde16c3960e51af8786216c063ab500840afd39a609e4b612
+DIST mysql-boost-8.0.23.tar.gz 291039175 BLAKE2B 3a7d3e05c774085d6078d0d3effd58d2df47521615356a2aa5efc2ea2ef8457e19ad57a054926ccff0a4752ca71d0464daa7fe9a3ac6c1b1d3bd86a9a82dfc58 SHA512 b8c2e2ac772b7b730f8b3bac7a5afb205da173b3639500606e7d1fac74832a0134027951855a2dc81af015e6158c924927ad63b9e1f2e7c823d45d4c4961c3f8
diff --git a/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.18-always-build-decompress-utilities.patch b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.18-always-build-decompress-utilities.patch
deleted file mode 100644
index af0b31e89a3e..000000000000
--- a/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.18-always-build-decompress-utilities.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/utilities/CMakeLists.txt
-+++ b/utilities/CMakeLists.txt
-@@ -110,21 +110,16 @@ MYSQL_ADD_EXECUTABLE(perror
- DEPENDENCIES GenError
- LINK_LIBRARIES mysys
- )
--IF(BUILD_BUNDLED_LZ4)
-- MYSQL_ADD_EXECUTABLE(lz4_decompress
-- lz4_decompress.cc
-- COMPONENT Server
-- LINK_LIBRARIES ${LZ4_LIBRARY} mysys
-- )
--ENDIF()
--
--IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB)
-- MYSQL_ADD_EXECUTABLE(zlib_decompress
-- zlib_decompress.cc
-- COMPONENT Server
-- LINK_LIBRARIES ${ZLIB_LIBRARY} mysys
-- )
--ENDIF()
-+MYSQL_ADD_EXECUTABLE(lz4_decompress
-+ lz4_decompress.cc
-+ COMPONENT Server
-+ LINK_LIBRARIES ${LZ4_LIBRARY} mysys
-+ )
-+MYSQL_ADD_EXECUTABLE(zlib_decompress
-+ zlib_decompress.cc
-+ COMPONENT Server
-+ LINK_LIBRARIES ${ZLIB_LIBRARY} mysys
-+ )
-
- # All targets below belong to COMPONENT Server and depend on InnoDB.
- IF(WITHOUT_SERVER)
diff --git a/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.21-survive-malformed-charset-files.patch b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.21-survive-malformed-charset-files.patch
deleted file mode 100644
index 72799f009c89..000000000000
--- a/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.21-survive-malformed-charset-files.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Description: don't crash on malformed charset files
-Origin: https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/1877504/comments/19
-Bug: https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/1884809
-Bug: https://bugs.gentoo.org/737002
-Forwarded: workaround, not needed
-
---- a/mysys/charset.cc
-+++ b/mysys/charset.cc
-@@ -922,7 +922,7 @@ size_t escape_quotes_for_mysql(CHARSET_I
-
- void charset_uninit() {
- for (CHARSET_INFO *cs : all_charsets) {
-- if (cs && cs->coll->uninit) {
-+ if (cs && cs->coll && cs->coll->uninit) {
- cs->coll->uninit(cs);
- }
- }
-
diff --git a/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.23-libressl.patch b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.23-libressl.patch
new file mode 100644
index 000000000000..06681d940dd8
--- /dev/null
+++ b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.23-libressl.patch
@@ -0,0 +1,356 @@
+From 262f0b8bdc86a755041c19c11b6067afce28dae1 Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Thu, 30 Apr 2020 20:01:48 +0200
+Subject: [PATCH 5/6] Add LibreSSL support
+
+Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
+---
+ cmake/ssl.cmake | 5 +++--
+ mysys/my_md5.cc | 2 ++
+ .../bindings/xcom/xcom/xcom_ssl_transport.cc | 6 +++++-
+ plugin/x/client/xconnection_impl.cc | 4 ++++
+ router/src/harness/src/tls_client_context.cc | 2 +-
+ router/src/harness/src/tls_context.cc | 9 ++++++--
+ router/src/harness/src/tls_server_context.cc | 3 ++-
+ sql-common/client.cc | 2 ++
+ sql/mysqld.cc | 4 +++-
+ sql/sys_vars.cc | 21 +++++++++++++++++--
+ vio/viossl.cc | 8 +++----
+ vio/viosslfactories.cc | 2 ++
+ 12 files changed, 54 insertions(+), 14 deletions(-)
+
+diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake
+index 52feadeaa..3b8332695 100644
+--- a/cmake/ssl.cmake
++++ b/cmake/ssl.cmake
+@@ -222,13 +222,14 @@ MACRO (MYSQL_CHECK_SSL)
+ OPENSSL_FIX_VERSION "${OPENSSL_VERSION_NUMBER}"
+ )
+ ENDIF()
+- IF("${OPENSSL_MAJOR_VERSION}.${OPENSSL_MINOR_VERSION}.${OPENSSL_FIX_VERSION}" VERSION_GREATER "1.1.0")
++ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION)
++ IF(HAVE_TLS1_3_VERSION)
+ ADD_DEFINITIONS(-DHAVE_TLSv13)
+ ENDIF()
+ IF(OPENSSL_INCLUDE_DIR AND
+ OPENSSL_LIBRARY AND
+ CRYPTO_LIBRARY AND
+- OPENSSL_MAJOR_VERSION STREQUAL "1"
++ OPENSSL_MAJOR_VERSION VERSION_GREATER_EQUAL "1"
+ )
+ SET(OPENSSL_FOUND TRUE)
+ FIND_PROGRAM(OPENSSL_EXECUTABLE openssl
+diff --git a/mysys/my_md5.cc b/mysys/my_md5.cc
+index dea997b25..531696329 100644
+--- a/mysys/my_md5.cc
++++ b/mysys/my_md5.cc
+@@ -56,7 +56,9 @@ static void my_md5_hash(unsigned char *digest, unsigned const char *buf,
+ int compute_md5_hash(char *digest, const char *buf, int len) {
+ int retval = 0;
+ int fips_mode = 0;
++#ifndef LIBRESSL_VERSION_NUMBER
+ fips_mode = FIPS_mode();
++#endif
+ /* If fips mode is ON/STRICT restricted method calls will result into abort,
+ * skipping call. */
+ if (fips_mode == 0) {
+diff --git a/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc b/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc
+index 8bf63ce14..02f91b44e 100644
+--- a/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc
++++ b/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.cc
+@@ -325,6 +325,7 @@ error:
+ return 1;
+ }
+
++#ifndef LIBRESSL_VERSION_NUMBER
+ #define OPENSSL_ERROR_LENGTH 512
+ static int configure_ssl_fips_mode(const uint fips_mode) {
+ int rc = -1;
+@@ -348,6 +349,7 @@ static int configure_ssl_fips_mode(const uint fips_mode) {
+ EXIT:
+ return rc;
+ }
++#endif
+
+ static int configure_ssl_ca(SSL_CTX *ssl_ctx, const char *ca_file,
+ const char *ca_path) {
+@@ -544,10 +546,12 @@ int xcom_init_ssl(const char *server_key_file, const char *server_cert_file,
+ int verify_server = SSL_VERIFY_NONE;
+ int verify_client = SSL_VERIFY_NONE;
+
++#ifndef LIBRESSL_VERSION_NUMBER
+ if (configure_ssl_fips_mode(ssl_fips_mode) != 1) {
+ G_ERROR("Error setting the ssl fips mode");
+ goto error;
+ }
++#endif
+
+ SSL_library_init();
+ SSL_load_error_strings();
+@@ -611,7 +615,7 @@ error:
+ void xcom_cleanup_ssl() {
+ if (!xcom_use_ssl()) return;
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ ERR_remove_thread_state(0);
+ #endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+ }
+diff --git a/plugin/x/client/xconnection_impl.cc b/plugin/x/client/xconnection_impl.cc
+index a78371098..9d3a7b436 100644
+--- a/plugin/x/client/xconnection_impl.cc
++++ b/plugin/x/client/xconnection_impl.cc
+@@ -498,6 +498,7 @@ XError Connection_impl::get_ssl_error(const int error_id) {
+ return XError(CR_SSL_CONNECTION_ERROR, buffer);
+ }
+
++#ifndef LIBRESSL_VERSION_NUMBER
+ /**
+ Set fips mode in openssl library,
+ When we set fips mode ON/STRICT, it will perform following operations:
+@@ -537,6 +538,7 @@ int set_fips_mode(const uint32_t fips_mode,
+ EXIT:
+ return rc;
+ }
++#endif
+
+ XError Connection_impl::activate_tls() {
+ if (nullptr == m_vio) return get_socket_error(SOCKET_ECONNRESET);
+@@ -547,12 +549,14 @@ XError Connection_impl::activate_tls() {
+ if (!m_context->m_ssl_config.is_configured())
+ return XError{CR_SSL_CONNECTION_ERROR, ER_TEXT_TLS_NOT_CONFIGURATED, true};
+
++#ifndef LIBRESSL_VERSION_NUMBER
+ char err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
+ if (set_fips_mode(
+ static_cast<uint32_t>(m_context->m_ssl_config.m_ssl_fips_mode),
+ err_string) != 1) {
+ return XError{CR_SSL_CONNECTION_ERROR, err_string, true};
+ }
++#endif
+ auto ssl_ctx_flags = process_tls_version(
+ details::null_when_empty(m_context->m_ssl_config.m_tls_version));
+
+diff --git a/router/src/harness/src/tls_client_context.cc b/router/src/harness/src/tls_client_context.cc
+index c14b1cb18..81a9425ca 100644
+--- a/router/src/harness/src/tls_client_context.cc
++++ b/router/src/harness/src/tls_client_context.cc
+@@ -61,7 +61,7 @@ stdx::expected<void, std::error_code> TlsClientContext::verify(
+ stdx::expected<void, std::error_code> TlsClientContext::cipher_suites(
+ const std::string &ciphers) {
+ // TLSv1.3 ciphers are controlled via SSL_CTX_set_ciphersuites()
+-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1)
++#ifdef TLS1_3_VERSION
+ if (1 != SSL_CTX_set_ciphersuites(ssl_ctx_.get(), ciphers.c_str())) {
+ return stdx::make_unexpected(make_tls_error());
+ }
+diff --git a/router/src/harness/src/tls_context.cc b/router/src/harness/src/tls_context.cc
+index e0b97bf2d..8b64b1d01 100644
+--- a/router/src/harness/src/tls_context.cc
++++ b/router/src/harness/src/tls_context.cc
+@@ -115,7 +115,7 @@ static int o11x_version(TlsVersion version) {
+ return TLS1_1_VERSION;
+ case TlsVersion::TLS_1_2:
+ return TLS1_2_VERSION;
+-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1)
++#ifdef TLS1_3_VERSION
+ case TlsVersion::TLS_1_3:
+ return TLS1_3_VERSION;
+ #endif
+@@ -145,9 +145,11 @@ stdx::expected<void, std::error_code> TlsContext::version_range(
+ switch (min_version) {
+ default:
+ // unknown, leave all disabled
++#ifdef TLS1_3_VERSION
+ // fallthrough
+ case TlsVersion::TLS_1_3:
+ opts |= SSL_OP_NO_TLSv1_2;
++#endif
+ // fallthrough
+ case TlsVersion::TLS_1_2:
+ opts |= SSL_OP_NO_TLSv1_1;
+@@ -197,8 +199,10 @@ TlsVersion TlsContext::min_version() const {
+ return TlsVersion::TLS_1_1;
+ case TLS1_2_VERSION:
+ return TlsVersion::TLS_1_2;
++#ifdef TLS1_3_VERSION
+ case TLS1_3_VERSION:
+ return TlsVersion::TLS_1_3;
++#endif
+ case 0:
+ return TlsVersion::AUTO;
+ default:
+@@ -257,7 +261,8 @@ TlsContext::InfoCallback TlsContext::info_callback() const {
+ }
+
+ int TlsContext::security_level() const {
+-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0)
++#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \
++ !defined(LIBRESSL_VERSION_NUMBER)
+ return SSL_CTX_get_security_level(ssl_ctx_.get());
+ #else
+ return 0;
+diff --git a/router/src/harness/src/tls_server_context.cc b/router/src/harness/src/tls_server_context.cc
+index c8fc2b5a0..76775e2a0 100644
+--- a/router/src/harness/src/tls_server_context.cc
++++ b/router/src/harness/src/tls_server_context.cc
+@@ -169,7 +169,8 @@ stdx::expected<void, std::error_code> TlsServerContext::init_tmp_dh(
+ }
+
+ } else {
+-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0)
++#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \
++ !defined(LIBRESSL_VERSION_NUMBER)
+ dh2048.reset(DH_get_2048_256());
+ #else
+ /*
+diff --git a/sql-common/client.cc b/sql-common/client.cc
+index 79f301fe6..b5e1d126c 100644
+--- a/sql-common/client.cc
++++ b/sql-common/client.cc
+@@ -7987,6 +7987,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_option option,
+ return 1;
+ break;
+ case MYSQL_OPT_SSL_FIPS_MODE: {
++#if !defined(LIBRESSL_VERSION_NUMBER)
+ char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
+ ENSURE_EXTENSIONS_PRESENT(&mysql->options);
+ mysql->options.extension->ssl_fips_mode = *static_cast<const uint *>(arg);
+@@ -7998,6 +7999,7 @@ int STDCALL mysql_options(MYSQL *mysql, enum mysql_option option,
+ "Set Fips mode ON/STRICT failed, detail: '%s'.", ssl_err_string);
+ return 1;
+ }
++#endif
+ } break;
+ case MYSQL_OPT_SSL_MODE:
+ ENSURE_EXTENSIONS_PRESENT(&mysql->options);
+diff --git a/sql/mysqld.cc b/sql/mysqld.cc
+index cde636761..266a8c3bb 100644
+--- a/sql/mysqld.cc
++++ b/sql/mysqld.cc
+@@ -5035,7 +5035,7 @@ static int init_thread_environment() {
+
+ static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED;
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ #define FILE_LINE_ARGS
+ #else
+ #define FILE_LINE_ARGS , const char *, int
+@@ -5069,12 +5069,14 @@ static void init_ssl() {
+ }
+
+ static int init_ssl_communication() {
++#ifndef LIBRESSL_VERSION_NUMBER
+ char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
+ int ret_fips_mode = set_fips_mode(opt_ssl_fips_mode, ssl_err_string);
+ if (ret_fips_mode != 1) {
+ LogErr(ERROR_LEVEL, ER_SSL_FIPS_MODE_ERROR, ssl_err_string);
+ return 1;
+ }
++#endif
+ if (TLS_channel::singleton_init(&mysql_main, mysql_main_channel, opt_use_ssl,
+ &server_main_callback, opt_initialize))
+ return 1;
+diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
+index 2df3271ff..90942eef0 100644
+--- a/sql/sys_vars.cc
++++ b/sql/sys_vars.cc
+@@ -4614,6 +4614,7 @@ static Sys_var_ulong Sys_max_execution_time(
+ HINT_UPDATEABLE SESSION_VAR(max_execution_time), CMD_LINE(REQUIRED_ARG),
+ VALID_RANGE(0, ULONG_MAX), DEFAULT(0), BLOCK_SIZE(1));
+
++#ifndef LIBRESSL_VERSION_NUMBER
+ static bool update_fips_mode(sys_var *, THD *, enum_var_type) {
+ char ssl_err_string[OPENSSL_ERROR_LENGTH] = {'\0'};
+ if (set_fips_mode(opt_ssl_fips_mode, ssl_err_string) != 1) {
+@@ -4624,15 +4625,31 @@ static bool update_fips_mode(sys_var *, THD *, enum_var_type) {
+ return false;
+ }
+ }
++#endif
++
++#if defined(LIBRESSL_VERSION_NUMBER)
++static const char *ssl_fips_mode_names[] = {"OFF", 0};
++#else
++static const char *ssl_fips_mode_names[] = {"OFF", "ON", "STRICT", 0};
++#endif
+
+-static const char *ssl_fips_mode_names[] = {"OFF", "ON", "STRICT", nullptr};
+ static Sys_var_enum Sys_ssl_fips_mode(
+ "ssl_fips_mode",
+ "SSL FIPS mode (applies only for OpenSSL); "
++#ifndef LIBRESSL_VERSION_NUMBER
+ "permitted values are: OFF, ON, STRICT",
++#else
++ "permitted values are: OFF",
++#endif
+ GLOBAL_VAR(opt_ssl_fips_mode), CMD_LINE(REQUIRED_ARG, OPT_SSL_FIPS_MODE),
+ ssl_fips_mode_names, DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG,
+- ON_CHECK(nullptr), ON_UPDATE(update_fips_mode), nullptr);
++ ON_CHECK(NULL),
++#ifndef LIBRESSL_VERSION_NUMBER
++ ON_UPDATE(update_fips_mode),
++#else
++ ON_UPDATE(NULL),
++#endif
++ NULL);
+
+ static Sys_var_bool Sys_auto_generate_certs(
+ "auto_generate_certs",
+diff --git a/vio/viossl.cc b/vio/viossl.cc
+index 0e9594741..3a589c64b 100644
+--- a/vio/viossl.cc
++++ b/vio/viossl.cc
+@@ -45,7 +45,7 @@
+ BIO_set_callback_ex was added in openSSL 1.1.1
+ For older openSSL, use the deprecated BIO_set_callback.
+ */
+-#if OPENSSL_VERSION_NUMBER >= 0x10101000L
++#if OPENSSL_VERSION_NUMBER >= 0x10101000L && !defined(LIBRESSL_VERSION_NUMBER)
+ #define HAVE_BIO_SET_CALLBACK_EX
+ #endif
+
+@@ -634,8 +634,8 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout,
+
+ #if !defined(DBUG_OFF)
+ {
+- STACK_OF(SSL_COMP) *ssl_comp_methods = nullptr;
+- ssl_comp_methods = SSL_COMP_get_compression_methods();
++ STACK_OF(SSL_COMP) *ssl_comp_methods = NULL;
++ ssl_comp_methods = (STACK_OF(SSL_COMP) *)SSL_COMP_get_compression_methods();
+ n = sk_SSL_COMP_num(ssl_comp_methods);
+ DBUG_PRINT("info", ("Available compression methods:\n"));
+ if (n == 0)
+@@ -643,7 +643,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout,
+ else
+ for (j = 0; j < n; j++) {
+ SSL_COMP *c = sk_SSL_COMP_value(ssl_comp_methods, j);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ DBUG_PRINT("info", (" %d: %s\n", c->id, c->name));
+ #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */
+ DBUG_PRINT("info",
+diff --git a/vio/viosslfactories.cc b/vio/viosslfactories.cc
+index 21c3510da..70e7d8f8b 100644
+--- a/vio/viosslfactories.cc
++++ b/vio/viosslfactories.cc
+@@ -472,6 +472,7 @@ void ssl_start() {
+ }
+ }
+
++#ifndef LIBRESSL_VERSION_NUMBER
+ /**
+ Set fips mode in openssl library,
+ When we set fips mode ON/STRICT, it will perform following operations:
+@@ -525,6 +526,7 @@ EXIT:
+ @returns openssl current fips mode
+ */
+ uint get_fips_mode() { return FIPS_mode(); }
++#endif
+
+ long process_tls_version(const char *tls_version) {
+ const char *separator = ",";
+--
+2.30.0
+
diff --git a/dev-db/mysql-connector-c/mysql-connector-c-8.0.23.ebuild b/dev-db/mysql-connector-c/mysql-connector-c-8.0.23.ebuild
new file mode 100644
index 000000000000..3b2fc70f9d2f
--- /dev/null
+++ b/dev-db/mysql-connector-c/mysql-connector-c-8.0.23.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-multilib
+
+# wrap the config script
+MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
+
+DESCRIPTION="C client library for MariaDB/MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/"
+LICENSE="GPL-2"
+
+SRC_URI="https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-${PV}.tar.gz"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+SLOT="0/21"
+IUSE="ldap libressl static-libs"
+
+RDEPEND="
+ >=app-arch/lz4-0_p131:=[${MULTILIB_USEDEP}]
+ app-arch/zstd:=[${MULTILIB_USEDEP}]
+ sys-libs/zlib:=[${MULTILIB_USEDEP}]
+ ldap? ( dev-libs/cyrus-sasl:=[${MULTILIB_USEDEP}] )
+ libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
+ !libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] )
+ "
+DEPEND="${RDEPEND}"
+
+# Avoid file collisions, #692580
+RDEPEND+=" !<dev-db/mysql-5.6.45-r1"
+RDEPEND+=" !=dev-db/mysql-5.7.23*"
+RDEPEND+=" !=dev-db/mysql-5.7.24*"
+RDEPEND+=" !=dev-db/mysql-5.7.25*"
+RDEPEND+=" !=dev-db/mysql-5.7.26-r0"
+RDEPEND+=" !=dev-db/mysql-5.7.27-r0"
+RDEPEND+=" !<dev-db/percona-server-5.7.26.29-r1"
+
+DOCS=( README )
+
+S="${WORKDIR}/mysql-${PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.22-always-build-decompress-utilities.patch
+ "${FILESDIR}"/${PN}-8.0.19-do-not-install-comp_err.patch
+ "${FILESDIR}"/${PN}-8.0.23-libressl.patch
+)
+
+src_prepare() {
+ sed -i -e 's/CLIENT_LIBS/CONFIG_CLIENT_LIBS/' "${S}/scripts/CMakeLists.txt" || die
+
+ # All these are for the server only.
+ # Disable rpm call which would trigger sandbox, #692368
+ sed -i \
+ -e '/MYSQL_CHECK_LIBEVENT/d' \
+ -e '/MYSQL_CHECK_RAPIDJSON/d' \
+ -e '/MYSQL_CHECK_ICU/d' \
+ -e '/MYSQL_CHECK_EDITLINE/d' \
+ -e '/MYSQL_CHECK_CURL/d' \
+ -e '/ADD_SUBDIRECTORY(man)/d' \
+ -e '/ADD_SUBDIRECTORY(share)/d' \
+ -e '/INCLUDE(cmake\/boost/d' \
+ -e 's/MY_RPM rpm/MY_RPM rpmNOTEXISTENT/' \
+ CMakeLists.txt || die
+
+ # Skip building clients
+ echo > client/CMakeLists.txt || die
+
+ # Forcefully disable auth plugin
+ if ! use ldap ; then
+ sed -i -e '/MYSQL_CHECK_SASL/d' CMakeLists.txt || die
+ echo > libmysql/authentication_ldap/CMakeLists.txt || die
+ fi
+
+ cmake-utils_src_prepare
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DINSTALL_LAYOUT=RPM
+ -DINSTALL_LIBDIR=$(get_libdir)
+ -DWITH_DEFAULT_COMPILER_OPTIONS=OFF
+ -DENABLED_LOCAL_INFILE=ON
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/run/mysqld/mysqld.sock"
+ -DWITH_LZ4=system
+ -DWITH_NUMA=OFF
+ -DWITH_SSL=system
+ -DWITH_ZLIB=system
+ -DWITH_ZSTD=system
+ -DLIBMYSQL_OS_OUTPUT_NAME=mysqlclient
+ -DSHARED_LIB_PATCH_VERSION="0"
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ -DWITHOUT_SERVER=ON
+ )
+ cmake-utils_src_configure
+}
+
+multilib_src_install() {
+ cmake-utils_src_install
+}
+
+multilib_src_install_all() {
+ doman \
+ man/my_print_defaults.1 \
+ man/perror.1 \
+ man/zlib_decompress.1
+
+ if ! use static-libs ; then
+ find "${ED}" -name "*.a" -delete || die
+ fi
+}
diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index 4cbfcbe57a24..1df77106f483 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -1,18 +1,22 @@
DIST mysql-5.7.30-patches-01.tar.xz 6684 BLAKE2B 9350280094619fda0d91eacae573396198954fceb5dc039669d236b1dad98eef306702550b517ef30ee3d0e6721667b6f5549df91e3c15cef68888079c00d9ba SHA512 74e8e8794fe54b73776b38296aa42c65547311b80bfe65c88b2f961bd44083e9628eb47da4ebcf4c20e2d7c694f514223bcbf29cce27853cca500710ae97778d
DIST mysql-5.7.31-patches-01.tar.xz 6664 BLAKE2B 8225f286f0090653f9714545daa95ccdadaa58812e55284d1ee52ad2dcca18960b9266797630762595d832aa1dda1d9e2df691f0c728102f162b376346c99b3c SHA512 c6260e688da6e8f049ba7ac0553ad442e76829deaca32c1b7a101ec927a36b1571cb24982391f05545a9f62d94502efc09530d444e4abfc08350ab4c19fbfd37
DIST mysql-5.7.32-patches-01.tar.xz 6660 BLAKE2B 5c63158615398bdcc4480a0e1b058f491b39ffc7ee33767b425f3b254555411031f64d865e1924afe8aa3926e4cba18049f1219a0a8acc702bc5e011c94fa947 SHA512 bf5e0d27af81e599005268ee243af4cd93f6df95c32cccb268a749322b4e5f73a2ce5d51f0ad1b0e1f2cf4702b8a05e4b2e0b73110fd4aac61f2a0f51bf4952e
+DIST mysql-5.7.33-patches-01.tar.xz 6672 BLAKE2B cfa410f9ba5a4ba7e43923e7b5940c2dc6a9356b49230ebaea24bd7eef8a9639fc746e917c22241e19c830b81252e95f38e2c9d6054494de700bae46011fb2f4 SHA512 b16bb9531c44f1c5ec9c08aee6c1f5f5d2e3fe59a0039a54f6c050660a18f7c78b955e7eea7bef4e7dccfcdaa81464e0d8e47ac7d0e40ecb90187865a8a0412e
DIST mysql-8.0.20-patches-01.tar.xz 7176 BLAKE2B 2fc51986c0a4da60521d0e64b9f8705caf8ec3869af930c9729359c3710059fc78aae176523fdf17d10173b404431f31f9bb23ee5c82fba7cbbb4cb39881c005 SHA512 bf8211cf3873f8672b9d3d1dc42b68a1c635690ffdc2d3393eafa83f060ada9f2eaa63f859bf8eecc24976a733d8c7c3b9632ac70f28b5facf48eae921c7ceeb
DIST mysql-8.0.21-patches-01.tar.xz 7212 BLAKE2B 2f1b38b3f84a124e3636cb726f3fcef82d71d933e90429dc78be44afeb4f456a37104359c5fd58ab50f0c03c1698e6c79f9b1e07640f0411c0024f558b4e9595 SHA512 3edcbb529b0623adaed30150d88c9b54d1a3e402faf5c7cff4ed626bbf4e5f50838d8f3c79bd2173439d748ded13412ff7fe37e3742c55879ff28907b9eb5660
DIST mysql-8.0.22-patches-02.tar.xz 7580 BLAKE2B a50704c3c58b1f67ca86edb233544137927b0ae5fdf302687b48f6fd30fbbd26798e8ef8282662586b25a7240b47278b44f944a8ca59f1a198bc228dd74459c9 SHA512 59f864452e9fdebe4d3990eff8b756e9bbfad58da216b74fa8b7e8391cb0d9d543ca2828591b9ed1ee276c1dec9e1851a8c2683507f0a326c85054e31cc3f950
+DIST mysql-8.0.23-patches-01.tar.xz 7568 BLAKE2B 222120dcb5556457f382eefbb10f66f46fe1673c64730c8c8a5566942031bc98bab1f1182f747e79e23fccfb6b09197d5c2874aa2087104b6f1eaa25ea9fd60c SHA512 54222c420d57c1b206d920f22738746925ed1e0d78683f01c97cac5bd1d3450f70f784a7f603304b8595fb58120e691f94e28fa1d1884a7cc8bea1d7b177470f
DIST mysql-boost-5.7.27.tar.gz 51436383 BLAKE2B 6db64ab5fa659aae9baa3725a0de9465e48c37618ffd69f34809880c06a00ce55dce77f507810c6fa52d86901facfa42d3d1bd8db1914a779fbc88a69be82497 SHA512 573f4555f3d62bcd3dc2228bcfba023518d462bb6689114a3505ccf7c7c3061d2775a8e7a37ec3c8b9dea6e8fbc56ba599610f237abc38cedff58e75799bdc52
DIST mysql-boost-5.7.29.tar.gz 51417554 BLAKE2B 652ce9f99419387e9bcc37afeb1b46438784752e963c3aa1877f17650c31d8b058b4052da97c3a7e9454e758c259d6c311e0518f9a75909fce9741150b82164c SHA512 38acf7c2a10b20c59230ad05cd2cd6996c4c582233c1be573ead08e5c6684275790da07a036570363f89b4d61547b306589b0b98ed5fca70723a3f2cbc21fe11
DIST mysql-boost-5.7.30.tar.gz 51363998 BLAKE2B 7897ad74b685c3b30e7ecdf132fdfa72f3416c05e8d0086cb8f7674b6c4f377fff9abc51ed258cc4dfeab50a2cb393af9076d9c1f9a83a26521facbaf223afa1 SHA512 b75d41d0c72d16c6f8d5393dab6e476b7993d296eb5683c12417ce2da3db2052fdab2a152f6e7c545315d21bfa35f26a247cb6cdab83d3418b5d34ed7f5f9560
DIST mysql-boost-5.7.31.tar.gz 51382559 BLAKE2B 86430ee01b0b066ffbd1c876c7d09afecdd57f99cfe07417f406345bcdb14cc6fd33a2d4d92dfe15e87f34ec476bf34d62508ac3f99fb3e11957458e0d6ec20b SHA512 d7fc1927c860562d121658031bcbd58d36a942340423bf7b692cef84c29e67b56d009c9f9bb10cde8acabd6f9db58c67eb542349eccc4719fb38c8570738700a
DIST mysql-boost-5.7.32.tar.gz 52882168 BLAKE2B dd112fa1d8bd29d86fba076675b5b7c9c98b6fb876aed45a00e8a25be716102fc9aa688b7170bef07b1c9f9751737277774d8fb2c64c21e181ecae58f89b4a8a SHA512 33a617d040efd065ea1c2ad84be537f851480abd5cc8a6879b7f170bc4e6db9432bd03f2a6bc680b71f17839c508cab0e7ef1a3aba032197da1b7943c916c77a
+DIST mysql-boost-5.7.33.tar.gz 52912380 BLAKE2B bca09314ae73932f6095799faa016998e65655cf5ea74d5596dcdc785e77014fe0b29a6c123e8618771f4a20a19978df00f7b79eea329aeb4b536ae71a4bef94 SHA512 1d1e1e5934fb17ff731fea45b88d4af6a394c2fbf0177a87803b18cb0eb4fb8d4939f82fc22b6cbc2af64022a44e206cd23e2e88ce11cc119c3ea22129d54e7a
DIST mysql-boost-8.0.19.tar.gz 264147972 BLAKE2B 61a5ccbef1a7a675c85e4e6bda8e5285bdb931e6ee14d4710bf13dfd9157d1095200db2886dc93ea7251d3d59245f35c0bef5ba88ba6aac209b1e080f3b07dc4 SHA512 5ffc03f005ab2585694902e926b6cb2b10059b2b030549eccd3949f9c3b2f02626d02529f940dec003f2d69683856fd1c720ff12f89dfbdc48befaf24a9c4d01
DIST mysql-boost-8.0.20.tar.gz 266282970 BLAKE2B 2aeb9d6c575ed9dc2d00d3e51e6391c59ffa39156491d9ed2c07e19bb2efb88a14d5a9d4b537c137d71854e39fa3a7fc2b93618118d4fd062e92ba2d83783c6f SHA512 7a962e9ddec7069008c5ab6ac2801515e2661ca2875afc6141541c03e2f941f4255b3c0d806a4df2fd2f2f1d12323aeb1e456c1d364777a18ccebefad7b22a99
DIST mysql-boost-8.0.21.tar.gz 278292192 BLAKE2B 9e5a14d1401f58f6f620c8691d2d4d3ada122a79a4e081380050961f0add93bf32b682c60ea2a6e58f50a4fcedbd323d8efe2d5f3e1f2bba5010e201a2df5d44 SHA512 18128edd7d9604ea69bd308f372d6663ef3629503969148e3a2117175c4ef625358b31b96e0e1b8d10a87037719e3cb61d5c71eee1e26ab0e0a1731977a2d7c1
DIST mysql-boost-8.0.22.tar.gz 285934450 BLAKE2B 1ba0c9bb9a0cb74af4842d3b746f8b690c122cfbf2c6d5201ce95e59a257427a8683dd8d5c2be31dfe9ece4761366c1287fa7b841c45db222725bf76b0639bc6 SHA512 792f2ada93ec67a4679228478c6b798e81d9e9f6d13c7f4977cb7682738a4aae3cb483294edc6b2fde16c3960e51af8786216c063ab500840afd39a609e4b612
+DIST mysql-boost-8.0.23.tar.gz 291039175 BLAKE2B 3a7d3e05c774085d6078d0d3effd58d2df47521615356a2aa5efc2ea2ef8457e19ad57a054926ccff0a4752ca71d0464daa7fe9a3ac6c1b1d3bd86a9a82dfc58 SHA512 b8c2e2ac772b7b730f8b3bac7a5afb205da173b3639500606e7d1fac74832a0134027951855a2dc81af015e6158c924927ad63b9e1f2e7c823d45d4c4961c3f8
DIST mysql-extras-20190822-1908Z.tar.bz2 338830 BLAKE2B bc197f8e541206548d8982814e82e028d699ba9c41aec8d5191bcc46581f7880ed2741dbe2206fde44a5e8d8d54bbcf40efbd0709b357636c4c8fdb2ccc3a7bb SHA512 be469e55f7e9966638600d6836a44258c74e5600240fafe2d79eaeebe7d1695b043678184b5d18ee9946f28154bc2529586a7f860b510180a30c82454ed575c8
DIST mysql-extras-20200125-1945Z.tar.bz2 344906 BLAKE2B 0e87875efbc221ded43d6f080dc7dce4277b676b538950120c94b962e51d054093286486e5d83ea3e38e1b2d0b12cf81873df50e1cebbe4cff33b54297e6a17a SHA512 5fcc5d372998db2b8aef32661ff71290791c20c1195a6210ca79c0fda12008906e665f9dc878d3df5a38a95e23ff05b910daa861002c17a1b6de71ef0520bee1
DIST mysql-extras-20200317-0103Z.tar.bz2 344905 BLAKE2B c4c8bb2acea16663ab32cf291d0a2d52af04448a507ad3a6dc22dfdef4d6ba427582d66e5923d05cd51565286f85c8df5ccabef9a67a4a500574d21e1f708f27 SHA512 d1d34817faf0a1271f906213eea9081c204d745b14f96166f17d5c60a29ec58c05926e7216f135b6e9d5df2ceab373f10fc4e6a652514d99ba34a336571dce1f
diff --git a/dev-db/mysql/mysql-5.7.33.ebuild b/dev-db/mysql/mysql-5.7.33.ebuild
new file mode 100644
index 000000000000..546fc699fb67
--- /dev/null
+++ b/dev-db/mysql/mysql-5.7.33.ebuild
@@ -0,0 +1,1244 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_MAKEFILE_GENERATOR=emake
+
+inherit check-reqs cmake flag-o-matic linux-info \
+ multiprocessing prefix toolchain-funcs multilib-minimal
+
+# Patch version
+PATCH_SET="https://dev.gentoo.org/~whissi/dist/mysql/${PN}-5.7.33-patches-01.tar.xz"
+
+SRC_URI="https://cdn.mysql.com/Downloads/MySQL-5.7/${PN}-boost-${PV}.tar.gz
+ https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-${PV}.tar.gz
+ http://downloads.mysql.com/archives/MySQL-5.7/${PN}-boost-${PV}.tar.gz
+ ${PATCH_SET}"
+
+HOMEPAGE="https://www.mysql.com/"
+DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
+LICENSE="GPL-2"
+SLOT="5.7/18"
+IUSE="cjk client-libs cracklib debug experimental jemalloc latin1 libressl numa +perl profiling
+ selinux +server static static-libs systemtap tcmalloc test"
+
+# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
+RESTRICT="!test? ( test ) libressl? ( test )"
+
+REQUIRED_USE="?? ( tcmalloc jemalloc )"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-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"
+
+# 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="
+ sys-libs/ncurses:0=
+ client-libs? (
+ >=sys-libs/zlib-1.2.3:0=[${MULTILIB_USEDEP},static-libs?]
+ !libressl? ( >=dev-libs/openssl-1.0.0:0=[${MULTILIB_USEDEP},static-libs?] )
+ libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP},static-libs?] )
+ )
+ !client-libs? (
+ dev-db/mysql-connector-c[${MULTILIB_USEDEP},static-libs?]
+ >=sys-libs/zlib-1.2.3:0=
+ !libressl? ( >=dev-libs/openssl-1.0.0:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ server? (
+ >=app-arch/lz4-0_p131:=
+ cjk? ( app-text/mecab:= )
+ experimental? (
+ dev-libs/libevent:=[ssl]
+ dev-libs/protobuf:=
+ net-libs/libtirpc:=
+ )
+ jemalloc? ( dev-libs/jemalloc:0= )
+ kernel_linux? (
+ dev-libs/libaio:0=
+ sys-process/procps:0=
+ )
+ numa? ( sys-process/numactl )
+ )
+ systemtap? ( >=dev-util/systemtap-1.3:0= )
+ tcmalloc? ( dev-util/google-perftools: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:=[ssl]
+ experimental? ( net-libs/rpcsvc-proto )
+ )
+ static? ( sys-libs/ncurses[static-libs] )
+ test? (
+ acct-group/mysql acct-user/mysql
+ dev-perl/JSON
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !dev-db/mariadb !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
+ !dev-db/mysql:0
+ !dev-db/mysql:8.0
+ client-libs? ( !dev-db/mariadb-connector-c[mysqlcompat] !dev-db/mysql-connector-c dev-libs/protobuf:= )
+ selinux? ( sec-policy/selinux-mysql )
+ server? (
+ !prefix? (
+ acct-group/mysql acct-user/mysql
+ 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 )"
+
+mysql_init_vars() {
+ : ${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mysql"}
+ : ${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
+ : ${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
+ : ${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
+ MY_DATADIR="${MY_LOCALSTATEDIR}"
+
+ export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+ export MY_LOCALSTATEDIR MY_LOGDIR
+ export MY_DATADIR
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use server ; then
+ CHECKREQS_DISK_BUILD="3G"
+
+ if has test $FEATURES ; then
+ CHECKREQS_DISK_BUILD="9G"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ CHECKREQS_DISK_BUILD="3G"
+
+ if has test ${FEATURES} ; then
+ CHECKREQS_DISK_BUILD="9G"
+
+ # Bug #213475 - MySQL _will_ object strenuously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if ! has userpriv ${FEATURES} ; then
+ die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+ fi
+
+ local aio_max_nr=$(sysctl -n fs.aio-max-nr 2>/dev/null)
+ [[ -z "${aio_max_nr}" || ${aio_max_nr} -lt 250000 ]] \
+ && die "FEATURES=test will require fs.aio-max-nr=250000 at minimum!"
+
+ if use latin1 ; then
+ # Upstream only supports tests with default charset
+ die "Testing with USE=latin1 is not supported."
+ fi
+ fi
+
+ if use kernel_linux ; then
+ if use numa ; then
+ linux-info_get_any_version
+
+ 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
+ fi
+
+ use server && check-reqs_pkg_setup
+ fi
+}
+
+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 "${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}
+
+ mv -f "${WORKDIR}/${P}" "${S}" || die
+}
+
+src_prepare() {
+ eapply "${WORKDIR}"/mysql-patches
+
+ 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
+
+ # 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
+
+ # 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}"/extra/libevent \
+ "${S}"/zlib \
+ || die
+
+ # Don't clash with dev-db/mysql-connector-c
+ rm \
+ man/my_print_defaults.1 \
+ man/perror.1 \
+ man/zlib_decompress.1 \
+ || die
+
+ 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
+
+ cmake_src_prepare
+}
+
+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 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')"
+ -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_SSL=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="${S}/boost"
+ )
+ if use test ; then
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
+ else
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+ 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_PROTOBUF=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
+ )
+
+ else
+ mycmakeargs+=(
+ -DWITHOUT_SERVER=1
+ -DWITH_EMBEDDED_SERVER=OFF
+ -DEXTRA_CHARSETS=none
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ if use client-libs ; then
+ multilib-minimal_src_compile
+ else
+ multilib_src_compile
+ fi
+}
+
+multilib_src_compile() {
+ cmake_src_compile
+}
+
+# Official test instructions:
+# ulimit -n 16500 && \
+# USE='latin1 perl server' \
+# FEATURES='test userpriv -usersandbox' \
+# ebuild mysql-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
+
+ einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
+
+ # Run CTest (test-units)
+ cmake_src_test
+ retstatus_unit=$?
+
+ # Ensure that parallel runs don't die
+ export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ if [[ -z "${MTR_PARALLEL}" ]] ; then
+ local -x MTR_PARALLEL=$(makeopts_jobs)
+
+ if [[ ${MTR_PARALLEL} -gt 4 ]] ; then
+ # Running multiple tests in parallel usually require higher ulimit
+ # and fs.aio-max-nr setting. In addition, tests like main.multi_update
+ # are known to hit timeout when system is busy.
+ # To avoid test failure we will limit MTR_PARALLEL to 4 instead of
+ # using "auto".
+ local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})"
+ info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!"
+ einfo "${info_msg}"
+ unset info_msg
+ MTR_PARALLEL=4
+ fi
+ else
+ einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
+ fi
+
+ # 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 MySQL 5.7 for now and are believed to be
+ # false positives:
+ #
+ local t
+
+ for t in \
+ auth_sec.keyring_udf \
+ innodb.import_compress_encrypt \
+ perfschema.privilege_table_io \
+ ; do
+ _disable_test "$t" "False positives in Gentoo"
+ done
+
+ # Unstable tests
+ # - main.xa_prepared_binlog_off: https://bugs.mysql.com/bug.php?id=83340
+ # - rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch: https://bugs.mysql.com/bug.php?id=89223
+ # - rpl.rpl_non_direct_stm_mixing_engines: MDEV-14489
+ for t in \
+ main.xa_prepared_binlog_off \
+ rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch \
+ rpl.rpl_non_direct_stm_mixing_engines \
+ ; do
+ _disable_test "$t" "Unstable test"
+ done
+
+ for t in \
+ gis.geometry_class_attri_prop \
+ gis.geometry_property_function_issimple \
+ gis.gis_bugs_crashes \
+ gis.spatial_op_testingfunc_mix \
+ gis.spatial_analysis_functions_buffer \
+ gis.spatial_analysis_functions_distance \
+ gis.spatial_utility_function_distance_sphere \
+ gis.spatial_utility_function_simplify \
+ gis.spatial_analysis_functions_centroid \
+ main.with_recursive \
+ ; do
+ _disable_test "$t" "Known rounding error with latest AMD processors"
+ done
+
+ if ! hash zip 1>/dev/null 2>&1 ; then
+ # no need to force dep app-arch/zip for one test
+ _disable_test "innodb.partition_upgrade_create" "Requires app-arch/zip"
+ fi
+
+ 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 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.mysqldump_bugs \
+ 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
+
+ if has_version '>=dev-libs/openssl-1.1.1' ; then
+ # Tests are expecting <openssl-1.1.1 default cipher
+ for t in \
+ auth_sec.cert_verify \
+ auth_sec.mysql_ssl_connection \
+ auth_sec.openssl_cert_generation \
+ auth_sec.ssl_auto_detect \
+ auth_sec.ssl_mode \
+ auth_sec.tls \
+ binlog.binlog_grant_alter_user \
+ encryption.innodb_onlinealter_encryption \
+ main.grant_alter_user_qa \
+ main.grant_user_lock_qa \
+ main.mysql_ssl_default \
+ main.openssl_1 \
+ main.plugin_auth_sha256 \
+ main.plugin_auth_sha256_2 \
+ main.plugin_auth_sha256_server_default \
+ main.plugin_auth_sha256_server_default_tls \
+ main.plugin_auth_sha256_tls \
+ main.ssl \
+ main.ssl_8k_key \
+ main.ssl_bug75311 \
+ main.ssl_ca \
+ main.ssl_cipher \
+ main.ssl_compress \
+ main.ssl_crl \
+ main.ssl_ecdh \
+ main.ssl_verify_identity \
+ x.connection_tls_version \
+ x.connection_openssl \
+ ; do
+ _disable_test "$t" "Requires <dev-libs/openssl-1.1.1"
+ 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_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
+ 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 section="$1"
+ local flag="--${2}="
+ local extra_options="${3}"
+ local cmd=(
+ "${my_print_defaults_binary}"
+ "${extra_options}"
+ "${section}"
+ )
+ local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") )
+
+ if [[ ${#results[@]} -gt 0 ]] ; then
+ # When option is set multiple times only return last value
+ echo "${results[-1]}"
+ fi
+ }
+
+ _mktemp_dry() {
+ # emktemp has no --dry-run option
+ local template="${1}"
+
+ if [[ -z "${template}" ]] ; then
+ if [[ -z "${T}" ]] ; then
+ template="/tmp/XXXXXXX"
+ else
+ template="${T}/XXXXXXX"
+ fi
+ fi
+
+ local template_wo_X=${template//X/}
+ local n_X
+ let n_X=${#template}-${#template_wo_X}
+ if [[ ${n_X} -lt 3 ]] ; then
+ echo "${FUNCNAME[0]}: too few X's in template ‘${template}’" >&2
+ return
+ fi
+
+ local attempts=0
+ local character tmpfile
+ while [[ true ]] ; do
+ let attempts=attempts+1
+
+ new_file=
+ while read -n1 character ; do
+ if [[ "${character}" == "X" ]] ; then
+ tmpfile+="${RANDOM:0:1}"
+ else
+ tmpfile+="${character}"
+ fi
+ done < <(echo -n "${template}")
+
+ if [[ ! -f "${tmpfile}" ]]
+ then
+ echo "${tmpfile}"
+ return
+ fi
+
+ if [[ ${attempts} -ge 100 ]] ; then
+ echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2
+ return
+ fi
+ done
+ }
+
+ local mysqld_binary="${EROOT}/usr/sbin/mysqld"
+ if [[ ! -x "${mysqld_binary}" ]] ; then
+ die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local mysql_binary="${EROOT}/usr/bin/mysql"
+ if [[ ! -x "${mysql_binary}" ]] ; then
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults"
+ if [[ ! -x "${my_print_defaults_binary}" ]] ; then
+ die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!"
+ fi
+
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ MYSQL_USER=mysql
+ if use prefix ; then
+ MYSQL_USER=$(id -u -n 2>/dev/null)
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ die "Failed to determine current username!"
+ fi
+ fi
+ fi
+
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ MYSQL_GROUP=mysql
+ if use prefix ; then
+ MYSQL_GROUP=$(id -g -n 2>/dev/null)
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ die "Failed to determine current user groupname!"
+ fi
+ fi
+ fi
+
+ # my_print_defaults needs to read stuff in $HOME/.my.cnf
+ local -x HOME="${EROOT}/root"
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Read currently set data directory
+ MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+
+ # 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 "${MY_DATADIR}" ]] ; then
+ die "Sorry, unable to find MY_DATADIR!"
+ elif [[ -d "${MY_DATADIR}/mysql" ]] ; then
+ ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!"
+ ewarn "Please rename or delete its content if you wish to initialize a new data directory."
+ die "${PN} data directory at '${MY_DATADIR}' looks already initialized!"
+ fi
+
+ MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_TMPDIR=${MYSQL_TMPDIR%/}
+ # These are dir+prefix
+ MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
+ MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
+
+ # Create missing directories.
+ # Always check if mysql user can write to directory even if we just
+ # created directory because a parent directory might be not
+ # accessible for that user.
+ PID_DIR="${EROOT}/run/mysqld"
+ if [[ ! -d "${PID_DIR}" ]] ; then
+ einfo "Creating ${PN} PID directory '${PID_DIR}' ..."
+ install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \
+ || die "Failed to create PID directory '${PID_DIR}'!"
+ fi
+
+ local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_pid_dir_testfile}" ]] \
+ && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_pid_dir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!"
+ else
+ rm "${_pid_dir_testfile}" || die
+ unset _pid_dir_testfile
+ fi
+
+ if [[ ! -d "${MY_DATADIR}" ]] ; then
+ einfo "Creating ${PN} data directory '${MY_DATADIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \
+ || die "Failed to create ${PN} data directory '${MY_DATADIR}'!"
+ fi
+
+ local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_datadir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_datadir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!"
+ else
+ rm "${_my_datadir_testfile}" || die
+ unset _my_datadir_testfile
+ fi
+
+ if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then
+ einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \
+ || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!"
+ fi
+
+ if [[ -z "${MYSQL_TMPDIR}" ]] ; then
+ MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")"
+ [[ -z "${MYSQL_TMPDIR}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!"
+
+ mkdir "${MYSQL_TMPDIR}" || die
+ chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die
+ fi
+
+ # Now we need to test MYSQL_TMPDIR...
+ local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_tmpdir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_tmpdir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!"
+ else
+ rm "${_my_tmpdir_testfile}" || die
+ unset _my_tmpdir_testfile
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" && ! -d "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \
+ || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'"
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_logbin_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_logbin_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!"
+ else
+ rm "${_my_logbin_testfile}" || die
+ unset _my_logbin_testfile
+ fi
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" && ! -d "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \
+ || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_relaylog_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_relaylog_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!"
+ else
+ rm "${_my_relaylog_testfile}" || die
+ unset _my_relaylog_testfile
+ fi
+ fi
+
+ local mysql_install_log="$(_mktemp_dry "${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log")"
+ if [[ -z "${mysql_install_log}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysql_install_log}" || die
+ chown ${MYSQL_USER} "${mysql_install_log}" || die
+ fi
+
+ local mysqld_logfile="$(_mktemp_dry "${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log")"
+ if [[ -z "${mysqld_logfile}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysqld_logfile}" || die
+ chown ${MYSQL_USER} "${mysqld_logfile}" || die
+ fi
+
+ echo ""
+ einfo "Detected settings:"
+ einfo "=================="
+ einfo "MySQL User:\t\t\t\t${MYSQL_USER}"
+ einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}"
+ einfo "MySQL DATA directory:\t\t${MY_DATADIR}"
+ einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}"
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}"
+ fi
+
+ einfo "PID DIR:\t\t\t\t${PID_DIR}"
+ einfo "Install db log:\t\t\t${mysql_install_log}"
+ einfo "Install server log:\t\t\t${mysqld_logfile}"
+
+ 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
+ local pwd1="a"
+ local pwd2="b"
+
+ echo
+ einfo "No password for mysql 'root' user was specified via environment"
+ einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config"
+ einfo "file like '${HOME}/.my.cnf'."
+ einfo "To continue please provide a password for the mysql 'root' user"
+ einfo "now on console:"
+ ewarn "NOTE: Please 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
+
+ echo
+ fi
+
+ local -a mysqld_options
+
+ # Fix bug 446200. Don't reference host my.cnf, needs to come first,
+ # see http://bugs.mysql.com/bug.php?id=31312
+ use prefix && mysqld_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
+
+ local opt optexp optfull
+ 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}" && mysqld_options+=( "${optfull}" )
+ done
+
+ # Prepare timezones, see
+ # https://dev.mysql.com/doc/mysql/en/time-zone-support.html
+ local tz_sql="$(_mktemp_dry "${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql")"
+ [[ -z "${tz_sql}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql' failed!"
+
+ echo "USE mysql;" >"${tz_sql}"
+ "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null
+ if [[ $? -ne 0 ]] ; then
+ die "mysql_tzinfo_to_sql failed!"
+ fi
+
+ # --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=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--initialize-insecure"
+ "--init-file='${tz_sql}'"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ "--log-error='${mysql_install_log}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Initializing ${PN} data directory: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1
+
+ if [[ $? -ne 0 ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2
+ die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!"
+ fi
+
+ rm "${tz_sql}" || die
+
+ local x=${RANDOM}
+ local socket="${EROOT}${PID_DIR}/mysqld${x}.sock"
+ local pidfile="${EROOT}${PID_DIR}/mysqld${x}.pid"
+ unset x
+
+ cmd=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ --max_allowed_packet=8M
+ --net_buffer_length=16K
+ "--socket='${socket}'"
+ "--pid-file='${pidfile}'"
+ "--log-error='${mysqld_logfile}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Starting mysqld to finalize initialization: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 &
+
+ echo -n "Waiting for mysqld to accept connections "
+ local maxtry=15
+ while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ if [[ -S "${socket}" ]] ; then
+ # Even with a socket we don't know if mysqld will abort
+ # start due to an error so just wait a little bit more...
+ maxtry=5
+ while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+ fi
+
+ echo
+
+ if [[ ! -S "${socket}" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2
+ die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!"
+ fi
+
+ local mysql_logfile="${TMPDIR}/set_root_pw.log"
+ touch "${mysql_logfile}" || die
+
+ 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 BY '${MYSQL_ROOT_PASSWORD}'"
+ cmd=(
+ "${mysql_binary}"
+ --no-defaults
+ "--socket='${socket}'"
+ -hlocalhost
+ "-e \"${sql}\""
+ )
+ eval "${cmd[@]}" >"${mysql_logfile}" 2>&1
+ local rc=$?
+ eend ${rc}
+
+ if [[ ${rc} -ne 0 ]] ; then
+ # Poor man's solution which tries to avoid having password
+ # in log. NOTE: sed can fail if user didn't follow advice
+ # and included character which will require escaping...
+ sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null
+
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}"
+ die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!"
+ fi
+
+ # Stop the server
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ echo -n "Stopping the server "
+ pkill -F "${pidfile}" &>/dev/null
+
+ maxtry=10
+ while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ echo
+
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ # We somehow failed to stop server.
+ # However, not a fatal error. Just warn the user.
+ ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!"
+ fi
+ fi
+
+ einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!"
+}
diff --git a/dev-db/mysql/mysql-8.0.23.ebuild b/dev-db/mysql/mysql-8.0.23.ebuild
new file mode 100644
index 000000000000..28619bb74858
--- /dev/null
+++ b/dev-db/mysql/mysql-8.0.23.ebuild
@@ -0,0 +1,1159 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_MAKEFILE_GENERATOR=emake
+
+inherit check-reqs cmake flag-o-matic linux-info \
+ multiprocessing prefix toolchain-funcs
+
+MY_PV="${PV//_pre*}"
+MY_P="${PN}-${MY_PV}"
+
+# Patch version
+PATCH_SET="https://dev.gentoo.org/~whissi/dist/mysql/${PN}-8.0.23-patches-01.tar.xz"
+
+SRC_URI="https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-boost-${MY_PV}.tar.gz
+ https://cdn.mysql.com/archives/mysql-8.0/mysql-boost-${MY_PV}.tar.gz
+ http://downloads.mysql.com/archives/MySQL-8.0/${PN}-boost-${MY_PV}.tar.gz
+ ${PATCH_SET}"
+
+HOMEPAGE="https://www.mysql.com/"
+DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
+LICENSE="GPL-2"
+SLOT="8.0"
+IUSE="cjk cracklib debug jemalloc latin1 libressl numa +perl profiling
+ router selinux +server tcmalloc test"
+
+# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
+RESTRICT="!test? ( test ) libressl? ( test )"
+
+REQUIRED_USE="?? ( tcmalloc jemalloc )
+ cjk? ( server )
+ jemalloc? ( server )
+ numa? ( server )
+ profiling? ( server )
+ router? ( server )
+ tcmalloc? ( server )"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-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"
+
+# Be warned, *DEPEND are version-dependant
+# These are used for both runtime and compiletime
+COMMON_DEPEND="
+ >=app-arch/lz4-0_p131:=
+ app-arch/zstd:=
+ sys-libs/ncurses:0=
+ >=sys-libs/zlib-1.2.3:0=
+ libressl? ( dev-libs/libressl:0= )
+ !libressl? ( >=dev-libs/openssl-1.0.0:0= )
+ server? (
+ dev-libs/icu:=
+ dev-libs/libevent:=[ssl,threads]
+ >=dev-libs/protobuf-3.8:=
+ net-libs/libtirpc:=
+ cjk? ( app-text/mecab:= )
+ jemalloc? ( dev-libs/jemalloc:0= )
+ kernel_linux? (
+ dev-libs/libaio:0=
+ sys-process/procps:0=
+ )
+ numa? ( sys-process/numactl )
+ tcmalloc? ( dev-util/google-perftools:0= )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
+ virtual/yacc
+ server? ( net-libs/rpcsvc-proto )
+ test? (
+ acct-group/mysql acct-user/mysql
+ dev-perl/JSON
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !dev-db/mariadb !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
+ !dev-db/mysql:0
+ !dev-db/mysql:5.7
+ selinux? ( sec-policy/selinux-mysql )
+ !prefix? (
+ acct-group/mysql acct-user/mysql
+ 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 )"
+
+mysql_init_vars() {
+ : ${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mysql"}
+ : ${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
+ : ${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
+ : ${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
+ MY_DATADIR="${MY_LOCALSTATEDIR}"
+
+ export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+ export MY_LOCALSTATEDIR MY_LOGDIR
+ export MY_DATADIR
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use server ; then
+ CHECKREQS_DISK_BUILD="2G"
+
+ if has test $FEATURES ; then
+ CHECKREQS_DISK_BUILD="9G"
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ CHECKREQS_DISK_BUILD="2G"
+
+ if has test ${FEATURES} ; then
+ CHECKREQS_DISK_BUILD="9G"
+
+ # Bug #213475 - MySQL _will_ object strenuously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if ! has userpriv ${FEATURES} ; then
+ die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+ fi
+
+ local aio_max_nr=$(sysctl -n fs.aio-max-nr 2>/dev/null)
+ [[ -z "${aio_max_nr}" || ${aio_max_nr} -lt 250000 ]] \
+ && die "FEATURES=test will require fs.aio-max-nr=250000 at minimum!"
+
+ if use latin1 ; then
+ # Upstream only supports tests with default charset
+ die "Testing with USE=latin1 is not supported."
+ fi
+ fi
+
+ if use kernel_linux ; then
+ if use numa ; then
+ linux-info_get_any_version
+
+ 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
+ fi
+
+ use server && check-reqs_pkg_setup
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+
+ mv -f "${WORKDIR}/${MY_P}" "${S}" || die
+}
+
+src_prepare() {
+ eapply "${WORKDIR}"/mysql-patches
+
+ # Avoid rpm call which would trigger sandbox, #692368
+ sed -i \
+ -e 's/MY_RPM rpm/MY_RPM rpmNOTEXISTENT/' \
+ CMakeLists.txt || 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
+
+ # Remove man pages for client-lib tools we don't install
+ rm \
+ man/my_print_defaults.1 \
+ man/perror.1 \
+ man/zlib_decompress.1 \
+ || die
+
+ cmake_src_prepare
+}
+
+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
+
+ CMAKE_BUILD_TYPE="RelWithDebInfo"
+
+ # debug hack wrt #497532
+ mycmakeargs=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
+ -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_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)
+ # Using bundled editline to get CTRL+C working
+ -DWITH_EDITLINE=bundled
+ -DWITH_ZLIB=system
+ -DWITH_SSL=system
+ -DWITH_LIBWRAP=0
+ -DENABLED_LOCAL_INFILE=1
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DWITH_DEFAULT_COMPILER_OPTIONS=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)
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ -DWITH_CURL=system
+ -DWITH_BOOST="${S}/boost"
+ -DWITH_ROUTER=$(usex router ON OFF)
+ )
+
+ if is-flagq -fno-lto ; then
+ einfo "LTO disabled via {C,CXX,F,FC}FLAGS"
+ mycmakeargs+=( -DWITH_LTO=OFF )
+ elif is-flagq -flto ; then
+ einfo "LTO forced via {C,CXX,F,FC}FLAGS"
+ myconf+=( -DWITH_LTO=ON )
+ else
+ # Disable automagic
+ myconf+=( -DWITH_LTO=OFF )
+ fi
+
+ if use test ; then
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
+ else
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+ fi
+
+ mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
+
+ mycmakeargs+=(
+ -DWITH_ICU=system
+ -DWITH_LZ4=system
+ # Our dev-libs/rapidjson doesn't carry necessary fixes for std::regex
+ -DWITH_RAPIDJSON=bundled
+ -DWITH_ZSTD=system
+ )
+
+ 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."
+ ewarn "Tests will probably fail!"
+
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
+ -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
+ )
+ elif use latin1 ; then
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=latin1
+ -DDEFAULT_COLLATION=latin1_swedish_ci
+ )
+ else
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=utf8mb4
+ -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci
+ )
+ fi
+
+ if use server ; then
+ mycmakeargs+=(
+ -DWITH_EXTRA_CHARSETS=all
+ -DWITH_DEBUG=$(usex debug)
+ -DWITH_MECAB=$(usex cjk system OFF)
+ -DWITH_LIBEVENT=system
+ -DWITH_PROTOBUF=system
+ -DWITH_NUMA=$(usex numa ON OFF)
+ )
+
+ if use jemalloc ; then
+ mycmakeargs+=( -DWITH_JEMALLOC=ON )
+ elif use tcmalloc ; then
+ mycmakeargs+=( -DWITH_TCMALLOC=ON )
+ fi
+
+ 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
+
+ # 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
+ )
+ else
+ mycmakeargs+=(
+ -DWITHOUT_SERVER=1
+ -DWITH_SYSTEMD=no
+ )
+ fi
+
+ cmake_src_configure
+}
+
+# Official test instructions:
+# ulimit -n 16500 && \
+# USE='perl server' \
+# FEATURES='test userpriv' \
+# ebuild mysql-X.X.XX.ebuild \
+# digest clean package
+src_test() {
+ _disable_test() {
+ local rawtestname bug reason
+ rawtestname="${1}" ; shift
+ bug="${1}" ; shift
+ reason="${@}"
+ ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})"
+ echo ${rawtestname} : BUG#${bug} ${reason} >> "${T}/disabled.def"
+ }
+
+ local TESTDIR="${BUILD_DIR}/mysql-test"
+ local retstatus_unit
+ local retstatus_tests
+
+ # Run CTest (test-units)
+ cmake_src_test
+ retstatus_unit=$?
+
+ # Ensure that parallel runs don't die
+ export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ if [[ -z "${MTR_PARALLEL}" ]] ; then
+ local -x MTR_PARALLEL=$(makeopts_jobs)
+
+ if [[ ${MTR_PARALLEL} -gt 4 ]] ; then
+ # Running multiple tests in parallel usually require higher ulimit
+ # and fs.aio-max-nr setting. In addition, tests like main.multi_update
+ # are known to hit timeout when system is busy.
+ # To avoid test failure we will limit MTR_PARALLEL to 4 instead of
+ # using "auto".
+ local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})"
+ info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!"
+ einfo "${info_msg}"
+ unset info_msg
+ MTR_PARALLEL=4
+ fi
+ else
+ einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
+ fi
+
+ # 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"
+
+ local -a disabled_tests
+ disabled_tests+=( "auth_sec.atomic_rename_user;0;Depends on user running test" )
+ disabled_tests+=( "auth_sec.keyring_file_data_qa;0;Won't work with user privileges" )
+ disabled_tests+=( "gis.spatial_analysis_functions_buffer;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.gis_bugs_crashes;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.geometry_class_attri_prop;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.spatial_utility_function_distance_sphere;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.geometry_property_function_issimple;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.spatial_analysis_functions_centroid;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.spatial_operators_intersection;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.spatial_utility_function_simplify;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.spatial_op_testingfunc_mix;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "gis.spatial_analysis_functions_distance;5452;Known rounding error with latest AMD processors (PS)" )
+ disabled_tests+=( "main.cast;0;Needs update for 2021" )
+ disabled_tests+=( "main.mysql_load_data_local_dir;0;Known test failure - no upstream bug yet" )
+ disabled_tests+=( "main.subquery_bugs;0;Known rounding error with latest AMD processors -- no upstream bug yet" )
+ disabled_tests+=( "main.window_std_var;0;Known rounding error with latest AMD processors -- no upstream bug yet" )
+ disabled_tests+=( "main.window_std_var_optimized;0;Known rounding error with latest AMD processors -- no upstream bug yet" )
+ disabled_tests+=( "main.with_recursive;0;Known rounding error with latest AMD processors -- no upstream bug yet" )
+ disabled_tests+=( "rpl_gtid.rpl_gtid_stm_drop_table;90612;Known test failure" )
+ disabled_tests+=( "rpl_gtid.rpl_multi_source_mtr_includes;0;Known failure - no upstream bug yet" )
+ disabled_tests+=( "sys_vars.myisam_data_pointer_size_func;87935;Test will fail on slow hardware")
+ disabled_tests+=( "x.connection;0;Known failure - no upstream bug yet" )
+ disabled_tests+=( "main.mysqlpump_basic_lz4;0;Extra tool output causes false positive" )
+ disabled_tests+=( "x.message_compressed_payload;0;False positive caused by protobuff-3.11+" )
+ disabled_tests+=( "x.message_protobuf_nested;0;False positive caused by protobuff-3.11+" )
+
+ if ! hash zip 1>/dev/null 2>&1 ; then
+ # no need to force dep app-arch/zip for one test
+ disabled_tests+=( "innodb.discarded_partition_create;0;Requires app-arch/zip" )
+ disabled_tests+=( "innodb.partition_upgrade_create;0;Requires app-arch/zip" )
+ fi
+
+ local test_infos_str test_infos_arr
+ for test_infos_str in "${disabled_tests[@]}" ; do
+ IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}"
+
+ if [[ ${#test_infos_arr[@]} != 3 ]] ; then
+ die "Invalid test data set, not matching format: ${test_infos_str}"
+ fi
+
+ _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}"
+ done
+ unset test_infos_str test_infos_arr
+
+ # 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() {
+ cmake_src_install
+
+ # 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 "${ED}/${MY_SHAREDSTATEDIR#${EPREFIX}}/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-8.0.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
+ eprefixify "${TMPDIR}/50-distro-client.cnf"
+ doins "${TMPDIR}/50-distro-client.cnf"
+
+ mycnf_src="my.cnf-8.0.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|utf8mb4|latin1|g" \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+
+ eprefixify "${TMPDIR}/my.cnf.ok"
+
+ newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
+
+ #Remove mytop if perl is not selected
+ [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
+
+ if use router ; then
+ rm -rf \
+ "${ED}/usr/LICENSE.router" \
+ "${ED}/usr/README.router" \
+ "${ED}/usr/run" \
+ "${ED}/usr/var" \
+ || die
+ fi
+
+ # Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them.
+ find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
+}
+
+pkg_postinst() {
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Create log directory securely if it does not exist
+ # NOTE: $MY_LOGDIR contains $EPREFIX by default
+ [[ -d "${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${MY_LOGDIR}"
+
+ # 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
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ einfo
+ elog "You might want to run:"
+ elog " \"emerge --config =${CATEGORY}/${PF}\""
+ elog "if this is a new install."
+ einfo
+ else
+ einfo
+ elog "Upgrade process for ${PN}-8.x has changed. Please read"
+ elog "https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html"
+ einfo
+ fi
+}
+
+pkg_config() {
+ _getoptval() {
+ local section="$1"
+ local flag="--${2}="
+ local extra_options="${3}"
+ local cmd=(
+ "${my_print_defaults_binary}"
+ "${extra_options}"
+ "${section}"
+ )
+ local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") )
+
+ if [[ ${#results[@]} -gt 0 ]] ; then
+ # When option is set multiple times only return last value
+ echo "${results[-1]}"
+ fi
+ }
+
+ _mktemp_dry() {
+ # emktemp has no --dry-run option
+ local template="${1}"
+
+ if [[ -z "${template}" ]] ; then
+ if [[ -z "${T}" ]] ; then
+ template="/tmp/XXXXXXX"
+ else
+ template="${T}/XXXXXXX"
+ fi
+ fi
+
+ local template_wo_X=${template//X/}
+ local n_X
+ let n_X=${#template}-${#template_wo_X}
+ if [[ ${n_X} -lt 3 ]] ; then
+ echo "${FUNCNAME[0]}: too few X's in template ‘${template}’" >&2
+ return
+ fi
+
+ local attempts=0
+ local character tmpfile
+ while [[ true ]] ; do
+ let attempts=attempts+1
+
+ new_file=
+ while read -n1 character ; do
+ if [[ "${character}" == "X" ]] ; then
+ tmpfile+="${RANDOM:0:1}"
+ else
+ tmpfile+="${character}"
+ fi
+ done < <(echo -n "${template}")
+
+ if [[ ! -f "${tmpfile}" ]]
+ then
+ echo "${tmpfile}"
+ return
+ fi
+
+ if [[ ${attempts} -ge 100 ]] ; then
+ echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2
+ return
+ fi
+ done
+ }
+
+ local mysqld_binary="${EROOT}/usr/sbin/mysqld"
+ if [[ ! -x "${mysqld_binary}" ]] ; then
+ die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local mysql_binary="${EROOT}/usr/bin/mysql"
+ if [[ ! -x "${mysql_binary}" ]] ; then
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults"
+ if [[ ! -x "${my_print_defaults_binary}" ]] ; then
+ die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!"
+ fi
+
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ MYSQL_USER=mysql
+ if use prefix ; then
+ MYSQL_USER=$(id -u -n 2>/dev/null)
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ die "Failed to determine current username!"
+ fi
+ fi
+ fi
+
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ MYSQL_GROUP=mysql
+ if use prefix ; then
+ MYSQL_GROUP=$(id -g -n 2>/dev/null)
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ die "Failed to determine current user groupname!"
+ fi
+ fi
+ fi
+
+ # my_print_defaults needs to read stuff in $HOME/.my.cnf
+ local -x HOME="${EROOT}/root"
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Read currently set data directory
+ MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+
+ # 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 "${MY_DATADIR}" ]] ; then
+ die "Sorry, unable to find MY_DATADIR!"
+ elif [[ -d "${MY_DATADIR}/mysql" ]] ; then
+ ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!"
+ ewarn "Please rename or delete its content if you wish to initialize a new data directory."
+ die "${PN} data directory at '${MY_DATADIR}' looks already initialized!"
+ fi
+
+ MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_TMPDIR=${MYSQL_TMPDIR%/}
+ # These are dir+prefix
+ MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
+ MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
+
+ # Create missing directories.
+ # Always check if mysql user can write to directory even if we just
+ # created directory because a parent directory might be not
+ # accessible for that user.
+ PID_DIR="${EROOT}/run/mysqld"
+ if [[ ! -d "${PID_DIR}" ]] ; then
+ einfo "Creating ${PN} PID directory '${PID_DIR}' ..."
+ install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \
+ || die "Failed to create PID directory '${PID_DIR}'!"
+ fi
+
+ local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_pid_dir_testfile}" ]] \
+ && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_pid_dir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!"
+ else
+ rm "${_pid_dir_testfile}" || die
+ unset _pid_dir_testfile
+ fi
+
+ if [[ ! -d "${MY_DATADIR}" ]] ; then
+ einfo "Creating ${PN} data directory '${MY_DATADIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \
+ || die "Failed to create ${PN} data directory '${MY_DATADIR}'!"
+ fi
+
+ local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_datadir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_datadir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!"
+ else
+ rm "${_my_datadir_testfile}" || die
+ unset _my_datadir_testfile
+ fi
+
+ if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then
+ einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \
+ || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!"
+ fi
+
+ if [[ -z "${MYSQL_TMPDIR}" ]] ; then
+ MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")"
+ [[ -z "${MYSQL_TMPDIR}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!"
+
+ mkdir "${MYSQL_TMPDIR}" || die
+ chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die
+ fi
+
+ # Now we need to test MYSQL_TMPDIR...
+ local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_tmpdir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_tmpdir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!"
+ else
+ rm "${_my_tmpdir_testfile}" || die
+ unset _my_tmpdir_testfile
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" && ! -d "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \
+ || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'"
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_logbin_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_logbin_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!"
+ else
+ rm "${_my_logbin_testfile}" || die
+ unset _my_logbin_testfile
+ fi
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" && ! -d "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \
+ || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_relaylog_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_relaylog_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!"
+ else
+ rm "${_my_relaylog_testfile}" || die
+ unset _my_relaylog_testfile
+ fi
+ fi
+
+ local mysql_install_log="$(_mktemp_dry "${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log")"
+ if [[ -z "${mysql_install_log}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysql_install_log}" || die
+ chown ${MYSQL_USER} "${mysql_install_log}" || die
+ fi
+
+ local mysqld_logfile="$(_mktemp_dry "${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log")"
+ if [[ -z "${mysqld_logfile}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysqld_logfile}" || die
+ chown ${MYSQL_USER} "${mysqld_logfile}" || die
+ fi
+
+ echo ""
+ einfo "Detected settings:"
+ einfo "=================="
+ einfo "MySQL User:\t\t\t\t${MYSQL_USER}"
+ einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}"
+ einfo "MySQL DATA directory:\t\t${MY_DATADIR}"
+ einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}"
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}"
+ fi
+
+ einfo "PID DIR:\t\t\t\t${PID_DIR}"
+ einfo "Install db log:\t\t\t${mysql_install_log}"
+ einfo "Install server log:\t\t\t${mysqld_logfile}"
+
+ local -a config_files
+
+ local config_file="${EROOT}/etc/mysql/mysql.d/50-distro-client.cnf"
+ if [[ -f "${config_file}" ]] ; then
+ config_files+=( "${config_file}" )
+ else
+ ewarn "Client configuration '${config_file}' not found; Skipping configuration of default authentication plugin for client ..."
+ fi
+
+ config_file="${EROOT}/etc/mysql/mysql.d/50-distro-server.cnf"
+ if [[ -f "${config_file}" ]] ; then
+ config_files+=( "${config_file}" )
+ else
+ ewarn "Server configuration '${config_file}' not found; Skipping configuration of default authentication plugin for mysqld ..."
+ fi
+
+ if [[ ${#config_files[@]} -gt 0 ]] ; then
+ if [[ -z "${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" ]] ; then
+ local user_answer
+
+ echo
+ einfo "Please select default authentication plugin (enter number or plugin name):"
+ einfo "1) caching_sha2_password [MySQL 8.0 default]"
+ einfo "2) mysql_native_password [MySQL 5.7 default]"
+ einfo
+ einfo "For details see:"
+ einfo "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password"
+ read -p " >" user_answer
+ echo
+
+ case "${user_answer}" in
+ 1|caching_sha2_password)
+ MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=caching_sha2_password
+ ;;
+ 2|mysql_native_password)
+ MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=mysql_native_password
+ ;;
+ '')
+ die "No authentication plugin selected!"
+ ;;
+ *)
+ die "Authentication plugin '${user_answer}' is unknown/unsupported!"
+ ;;
+ esac
+
+ echo "Selected authentication plugin: ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" >> "${mysql_install_log}"
+
+ unset user_answer
+ fi
+
+ local cfg_option cfg_option_tabs cfg_section
+ for config_file in "${config_files[@]}" ; do
+ cfg_option="default-authentication-plugin"
+ cfg_section="mysqld"
+ cfg_option_tabs="\t\t"
+ if [[ "${config_file}" == *client.cnf ]] ; then
+ cfg_option="default-auth"
+ cfg_section="client"
+ cfg_option_tabs="\t\t\t\t"
+ fi
+
+ if grep -qE "^(loose-)?${cfg_option}\b.*=" "${config_file}" 2>/dev/null ; then
+ einfo "Ensuring that ${cfg_option} is set to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..."
+ sed -i \
+ -e "s/^\(loose-\)\?${cfg_option}\b.*=.*/loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}/" \
+ "${config_file}" || die "Failed to change ${cfg_option} in '${config_file}'!"
+ else
+ einfo "Setting ${cfg_option} to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..."
+ sed -i \
+ -e "/^\[${cfg_section}\]$/a loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" \
+ "${config_file}" || die "Failed to add ${cfg_option} to '${config_file}'!"
+ fi
+ done
+ unset cfg_option cfg_option_tabs cfg_section
+ fi
+ unset config_files config_file
+
+ echo
+
+ 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
+ local pwd1="a"
+ local pwd2="b"
+
+ echo
+ einfo "No password for mysql 'root' user was specified via environment"
+ einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config"
+ einfo "file like '${HOME}/.my.cnf'."
+ einfo "To continue please provide a password for the mysql 'root' user"
+ einfo "now on console:"
+ ewarn "NOTE: Please 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
+
+ echo
+ fi
+
+ local -a mysqld_options
+
+ # Fix bug 446200. Don't reference host my.cnf, needs to come first,
+ # see http://bugs.mysql.com/bug.php?id=31312
+ use prefix && mysqld_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
+
+ local opt optexp optfull
+ 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}" && mysqld_options+=( "${optfull}" )
+ done
+
+ # Prepare timezones, see
+ # https://dev.mysql.com/doc/mysql/en/time-zone-support.html
+ local tz_sql="$(_mktemp_dry "${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql")"
+ [[ -z "${tz_sql}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql' failed!"
+
+ echo "USE mysql;" >"${tz_sql}"
+ "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null
+ if [[ $? -ne 0 ]] ; then
+ die "mysql_tzinfo_to_sql failed!"
+ fi
+
+ # --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=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--initialize-insecure"
+ "--init-file='${tz_sql}'"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ "--log-error='${mysql_install_log}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Initializing ${PN} data directory: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1
+
+ if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql.ibd" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2
+ die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!"
+ fi
+
+ rm "${tz_sql}" || die
+
+ local x=${RANDOM}
+ local socket="${EROOT}${PID_DIR}/mysqld${x}.sock"
+ local pidfile="${EROOT}${PID_DIR}/mysqld${x}.pid"
+ unset x
+
+ cmd=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ --max_allowed_packet=8M
+ --net_buffer_length=16K
+ "--socket='${socket}'"
+ "--pid-file='${pidfile}'"
+ "--log-error='${mysqld_logfile}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Starting mysqld to finalize initialization: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 &
+
+ echo -n "Waiting for mysqld to accept connections "
+ local maxtry=15
+ while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ if [[ -S "${socket}" ]] ; then
+ # Even with a socket we don't know if mysqld will abort
+ # start due to an error so just wait a little bit more...
+ maxtry=5
+ while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+ fi
+
+ echo
+
+ if [[ ! -S "${socket}" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2
+ die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!"
+ fi
+
+ local mysql_logfile="${TMPDIR}/set_root_pw.log"
+ touch "${mysql_logfile}" || die
+
+ 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 BY '${MYSQL_ROOT_PASSWORD}'"
+ cmd=(
+ "${mysql_binary}"
+ --no-defaults
+ "--socket='${socket}'"
+ -hlocalhost
+ "-e \"${sql}\""
+ )
+ eval "${cmd[@]}" >"${mysql_logfile}" 2>&1
+ local rc=$?
+ eend ${rc}
+
+ if [[ ${rc} -ne 0 ]] ; then
+ # Poor man's solution which tries to avoid having password
+ # in log. NOTE: sed can fail if user didn't follow advice
+ # and included character which will require escaping...
+ sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null
+
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}"
+ die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!"
+ fi
+
+ # Stop the server
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ echo -n "Stopping the server "
+ pkill -F "${pidfile}" &>/dev/null
+
+ maxtry=10
+ while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ echo
+
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ # We somehow failed to stop server.
+ # However, not a fatal error. Just warn the user.
+ ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!"
+ fi
+ fi
+
+ einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!"
+}
diff --git a/dev-db/mysqltuner/mysqltuner-1.7.17.ebuild b/dev-db/mysqltuner/mysqltuner-1.7.17.ebuild
index f9caa472df48..511d0291d647 100644
--- a/dev-db/mysqltuner/mysqltuner-1.7.17.ebuild
+++ b/dev-db/mysqltuner/mysqltuner-1.7.17.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/major/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
RDEPEND="
dev-lang/perl
diff --git a/dev-db/mytop/files/mytop-1.6-getopt-long-2.38-fixup.patch b/dev-db/mytop/files/mytop-1.6-getopt-long-2.38-fixup.patch
deleted file mode 100644
index b911f9067baa..000000000000
--- a/dev-db/mytop/files/mytop-1.6-getopt-long-2.38-fixup.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Getopt-Long-2.38 is stricter about what it allows.
-
-diff -Nuar mytop-1.6.orig/mytop mytop-1.6/mytop
---- mytop-1.6.orig/mytop 2009-04-10 00:47:31.007111359 -0700
-+++ mytop-1.6/mytop 2009-04-10 00:50:39.875391905 -0700
-@@ -153,7 +153,7 @@
- "idle|i" => \$config{idle},
- "resolve|r" => \$config{resolve},
- "prompt!" => \$config{prompt},
-- "long|!" => \$config{long_nums},
-+ "long!" => \$config{long_nums},
- "mode|m=s" => \$config{mode},
- "sort=s" => \$config{sort},
- );
diff --git a/dev-db/mytop/files/mytop-1.6-global-status.patch b/dev-db/mytop/files/mytop-1.6-global-status.patch
deleted file mode 100644
index ae75ac7867af..000000000000
--- a/dev-db/mytop/files/mytop-1.6-global-status.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-Use GLOBAL STATUS instead of implicit session status.
-
-As of MySQL-5.0.72, many of the status variables split for session and global
-variants. Importantly, the Com_* and Questions ones did, and this broke the
-statistics at the top of mytop.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-MySQL-Bug: 41131
-MySQL-Bug-URL: http://bugs.mysql.com/bug.php?id=41131
-
-diff -Nuar --exclude '*~' mytop-1.6.orig/mytop mytop-1.6/mytop
---- mytop-1.6.orig/mytop 2007-02-16 20:57:46.000000000 -0800
-+++ mytop-1.6/mytop 2008-11-30 15:18:05.818845253 -0800
-@@ -98,7 +98,7 @@
- my %qcache = (); ## The query cache--used for full query info support.
- my %ucache = (); ## The user cache--used for full killing by user
- my %dbcache = (); ## The db cache. This should be merged at some point.
--my %statcache = (); ## The show status cache for GetShowStatus()
-+my %statcache = (); ## The show global status cache for GetShowStatus()
-
- my (%STATUS, %OLD_STATUS); # header stuff.
-
-@@ -710,7 +710,7 @@
- ##
- if ($config{header})
- {
-- my @recs = Hashes("show status");
-+ my @recs = Hashes("show global status");
-
- ## if the server died or we lost connectivity
- if (not @recs)
-@@ -755,7 +755,7 @@
-
- ## Query Cache info
- ##
-- ## mysql> show status like 'qcache%';
-+ ## mysql> show global status like 'qcache%';
- ## +-------------------------+----------+
- ## | Variable_name | Value |
- ## +-------------------------+----------+
-@@ -1064,7 +1064,7 @@
-
- sub GetQPS()
- {
-- my($data) = Hashes('SHOW STATUS LIKE "Questions"');
-+ my($data) = Hashes('SHOW GLOBAL STATUS LIKE "Questions"');
- my $num = $data->{Value};
-
- if (not defined $questions) ## first time?
-@@ -1126,7 +1126,7 @@
- }
-
- # Variable_name and Value pairs come back...
-- my @data = Hashes("SHOW STATUS LIKE 'Com_%'");
-+ my @data = Hashes("SHOW GLOBAL STATUS LIKE 'Com_%'");
- my %cmd_data;
- my %cmd_delta;
- my %cmd_pct;
-@@ -1216,7 +1216,7 @@
- sub GetShowStatus()
- {
- Clear() unless $config{batchmode};
-- my @rows = Hashes("SHOW STATUS");
-+ my @rows = Hashes("SHOW GLOBAL STATUS");
-
- printf "%32s %10s %10s\n", 'Counter', 'Total', 'Change';
- printf "%32s %10s %10s\n", '-------', '-----', '------';
-@@ -1543,7 +1543,7 @@
-
- And you obviously need access to a MySQL server (version 3.22.x or
- 3.23.x) with the necessary security to run the I<SHOW PROCESSLIST> and
--I<SHOW STATUS> commands.
-+I<SHOW GLOBAL STATUS> commands.
-
- If you are a Windows user, using ActiveState's Perl, you can use PPM
- (the Perl Package Manager) to install the MySQL and Term::ReadKey
-@@ -1599,7 +1599,7 @@
- notice features from each of them here.
-
- B<mytop> will connect to a MySQL server and periodically run the
--I<SHOW PROCESSLIST> and I<SHOW STATUS> commands and attempt to
-+I<SHOW PROCESSLIST> and I<SHOW GLOBAL STATUS> commands and attempt to
- summarize the information from them in a useful format.
-
- =head2 The Display
-@@ -1817,7 +1817,7 @@
-
- =item B<c>
-
--Show "command counters" based on the Com_* values in SHOW STATUS.
-+Show "command counters" based on the Com_* values in SHOW GLOBAL STATUS.
- This is a new feature. Feedback welcome.
-
- =item B<d>
-@@ -1904,7 +1904,7 @@
-
- Some performance information is not available when talking to a
- version 3.22.x MySQL server. Additional information (about threads
--mostly) was added to the output of I<SHOW STATUS> in MySQL 3.23.x and
-+mostly) was added to the output of I<SHOW GLOBAL STATUS> in MySQL 3.23.x and
- B<mytop> makes use of it. If the information is not available, you
- will simply see zeros where the real numbers should be.
-
diff --git a/dev-db/mytop/files/mytop-1.6-queries-vs-questions-mysql-5.0.76.patch b/dev-db/mytop/files/mytop-1.6-queries-vs-questions-mysql-5.0.76.patch
deleted file mode 100644
index f1e139fe7471..000000000000
--- a/dev-db/mytop/files/mytop-1.6-queries-vs-questions-mysql-5.0.76.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-In MySQL 5.0.72 the Questions variable was changed to only contain the number
-of client-initiated queries, NOT the number of overall queries. This caused
-problems with the select/insert/update/delete percentages because Com_* was
-still based on the overall queries.
-
-MySQL 5.0.76 introduced a new variable 'Queries' with the behavior of the old
-Questions variable.
-
-Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
-MySQL-Bug: 41131
-MySQL-Bug-URL: http://bugs.mysql.com/?id=41131
-
-====
-Revision 2:
-The first revision missed changing the instances of $OLD_STATUS{Questions}.
-
-diff -Nuar mytop-1.6.orig/mytop mytop-1.6/mytop
---- mytop-1.6.orig/mytop 2009-02-14 17:28:38.696187159 -0800
-+++ mytop-1.6/mytop 2009-02-14 17:36:31.192890507 -0800
-@@ -800,8 +800,15 @@
-
- ## Queries per second...
-
-- my $avg_queries_per_sec = sprintf("%.2f", $STATUS{Questions} / $STATUS{Uptime});
-- my $num_queries = $STATUS{Questions};
-+ my ($num_queries, $old_num_queries);
-+ if(defined($STATUS{Queries})) {
-+ $num_queries = $STATUS{Queries};
-+ $old_num_queries = $OLD_STATUS{Queries};
-+ } else {
-+ $num_queries = $STATUS{Questions};
-+ $old_num_queries = $OLD_STATUS{Questions};
-+ }
-+ my $avg_queries_per_sec = sprintf("%.2f", $num_queries / $STATUS{Uptime});
-
- my @t = localtime(time);
-
-@@ -820,25 +827,25 @@
-
-
- printf " Queries: %-5s qps: %4.0f Slow: %7s Se/In/Up/De(%%): %02.0f/%02.0f/%02.0f/%02.0f \n",
-- make_short( $STATUS{Questions} ), # q total
-- $STATUS{Questions} / $STATUS{Uptime}, # qps, average
-+ make_short( $num_queries ), # q total
-+ $num_queries / $STATUS{Uptime}, # qps, average
- make_short( $STATUS{Slow_queries} ), # slow
-
- # hmm. a Qcache hit is really a select and should be counted.
-- 100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) ) / $STATUS{Questions},
-- 100 * ($STATUS{Com_insert} + $STATUS{Com_replace} ) / $STATUS{Questions},
-- 100 * ($STATUS{Com_update} ) / $STATUS{Questions},
-- 100 * $STATUS{Com_delete} / $STATUS{Questions};
-+ 100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) ) / $num_queries,
-+ 100 * ($STATUS{Com_insert} + $STATUS{Com_replace} ) / $num_queries,
-+ 100 * ($STATUS{Com_update} ) / $num_queries,
-+ 100 * $STATUS{Com_delete} / $num_queries;
-
- $lines_left--;
-
- if ($t_delta)
- {
-- my $q_diff = ( $STATUS{Questions} - $OLD_STATUS{Questions} );
--# print("q_diff: $STATUS{Questions} - $OLD_STATUS{Questions} / $t_delta = $q_diff\n");
-+ my $q_diff = ( $num_queries - $old_num_queries );
-+# print("q_diff: $num_queries - $old_num_queries / $t_delta = $q_diff\n");
-
- printf(" qps now: %4.0f Slow qps: %3.1f Threads: %4.0f (%4.0f/%4.0f) %02.0f/%02.0f/%02.0f/%02.0f \n",
-- ( $STATUS{Questions} - $OLD_STATUS{Questions} ) / $t_delta,
-+ ( $num_queries - $old_num_queries ) / $t_delta,
- ( # slow now (qps)
- ($STATUS{Slow_queries} ) ?
- ( $STATUS{Slow_queries} - $OLD_STATUS{Slow_queries} ) / $t_delta :
diff --git a/dev-db/percona-server/files/my.cnf.distro-client b/dev-db/percona-server/files/my.cnf.distro-client
deleted file mode 100644
index a5a0dcb0c16a..000000000000
--- a/dev-db/percona-server/files/my.cnf.distro-client
+++ /dev/null
@@ -1,21 +0,0 @@
-# @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
-loose-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
deleted file mode 100644
index d4ed30c1f089..000000000000
--- a/dev-db/percona-server/files/my.cnf.distro-server
+++ /dev/null
@@ -1,28 +0,0 @@
-# @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-toolkit/Manifest b/dev-db/percona-toolkit/Manifest
index 9f756954cd95..1d5cba8a2090 100644
--- a/dev-db/percona-toolkit/Manifest
+++ b/dev-db/percona-toolkit/Manifest
@@ -3,3 +3,4 @@ DIST percona-toolkit-3.0.13.tar.gz 10855538 BLAKE2B 30dfbd3c56da64de10ce5d960a9b
DIST percona-toolkit-3.0.9.tar.gz 15197340 BLAKE2B 095d8c0b26853caa6d2515de1d8fb8ff13b3084caa46498c8c789cd4e7b18473d41992701e393ad91cd7fdda8b3e56a099600285aeb4ba788110d36a028f76b6 SHA512 56a8732cfdbd58d0602e482d7bf049d2049104b7ae203d756db81a052cd837f16d2a35f75def4f23748534d0d2eb6441cb9fe49175a931fbcdbb6adeb42f1c53
DIST percona-toolkit-3.1.0.tar.gz 18106856 BLAKE2B 4a08e70a03d80e86e2fd7ba4ac77be9568643faf46bb653ef9e18015b95d36936034369a8adf9de4e09d2ca6cd25a845b140d6dd2c41027597f08d74f328ad26 SHA512 6dd2de997fe9627897dad453277544142cbdcba41bf30de21ee10c292c671bc089df0e299a8e386af082511c57ac53621b8e11f4ae43e98ea41eeca0c76f652f
DIST percona-toolkit-3.2.1.tar.gz 15521123 BLAKE2B 7f8222a2afe2c0700d8f965bb5f8d2ef99c1136b977454ef04133fa8dfeb0192c49552dfde90a2d4d69116c2ba7c4a998fc330f64546691982946624bf24efef SHA512 17fd9f10d2d5671c3ce75dfeba501b9c34b216844b8d8ceb03fadbfb6396cedb7b672d52af7a831739a417d6fcc5b538b4772ffdb9b55816d94fac87e88ba472
+DIST percona-toolkit-3.3.0.tar.gz 15342520 BLAKE2B fcafede75cf15ad61efe18eac057cedab11e570cc6a17d48345cd046638b6b1c89b8f233f26cd051301ea0d6bdd03996b4007fc09a84cd44464beb3ca7150b70 SHA512 87bb5bcccabf782eafc0e363f3a5d75e9e28d5edd9d4278df5f455c90207296dc9035f85311567bd210109a2796484010d8a11fa4d4a5bee09f228aedb6b3bb2
diff --git a/dev-db/percona-toolkit/percona-toolkit-3.3.0.ebuild b/dev-db/percona-toolkit/percona-toolkit-3.3.0.ebuild
new file mode 100644
index 000000000000..2baf33ca254c
--- /dev/null
+++ b/dev-db/percona-toolkit/percona-toolkit-3.3.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit perl-module
+
+DESCRIPTION="Advanced command-line tools to perform a variety of MySQL and system tasks"
+HOMEPAGE="https://www.percona.com/software/mysql-tools/percona-toolkit"
+SRC_URI="https://www.percona.com/downloads/${PN}/${PV}/source/tarball/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 Artistic )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+# Package warrants IUSE doc
+IUSE=""
+
+COMMON_DEPEND="dev-perl/DBI
+ dev-perl/DBD-mysql
+ virtual/perl-Time-HiRes"
+RDEPEND="${COMMON_DEPEND}
+ dev-perl/JSON
+ dev-perl/libwww-perl
+ dev-perl/Role-Tiny
+ virtual/perl-File-Path
+ virtual/perl-Getopt-Long
+ virtual/perl-Time-Local
+ virtual/perl-Digest-MD5
+ virtual/perl-IO-Compress
+ virtual/perl-File-Temp
+ virtual/perl-File-Spec
+ virtual/perl-Scalar-List-Utils
+ dev-perl/TermReadKey"
+DEPEND="${COMMON_DEPEND}
+ virtual/perl-ExtUtils-MakeMaker"
+
+# Bug #501904 - CVE-2014-2029
+# sed -i -e '/^=item --\[no\]version-check/,/^default: yes/{/^default: yes/d}' bin/*
+# ^ is *-no-versioncheck.patch
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.7-no-versioncheck.patch
+ "${FILESDIR}"/${PN}-3.0.10-slave-delay-fix.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "s/=> 'percona-toolkit',/=> 'Percona::Toolkit',/g" \
+ Makefile.PL || die
+}
diff --git a/dev-db/percona-xtrabackup/Manifest b/dev-db/percona-xtrabackup/Manifest
index f81887d0dc01..e615bdce7bd5 100644
--- a/dev-db/percona-xtrabackup/Manifest
+++ b/dev-db/percona-xtrabackup/Manifest
@@ -1,5 +1,8 @@
DIST boost_1_59_0.tar.gz 83709983 BLAKE2B 8c6676fa05fa401a6ecb3b890d95aceb4421ec48dd0eab38ce8d170c618e177c82dc67a165938f6be1a01daab24ce41888f5442dbc19ad3dd41368a01a6f89e4 SHA512 05fdbe5637543defdbc630b921515425885593d16db14534ed7b9aa60925ade8fb598d50cb894aed6dae688e789047216daa1bf03fa1aeb6b531060d9dae52ae
DIST boost_1_70_0.tar.gz 116000903 BLAKE2B aefeddf5671295ae46fcfed033cef37cca1c70f88d7d3305636e0add98c277fc8170c7e3e0de58ff83a64389b5b430b81077b6852da5941aa4867845a7b08554 SHA512 3d8800d0aa864fb5484a5339ab75dee9bceca063122108e92d971f1d1295a9f09399b2dd88b117da7f0c4558b4f9fb1494eda1e3035498557bbe90e8f058668f
+DIST boost_1_73_0.tar.bz2 109247910 BLAKE2B 5995ff6ca21f45988b187b94bf743795cca97531baa8355f488be0987b9426289dd85d6ce25b7eb03ccd690109f05ba56252a95bca50505ad9cd66f4e0e234e8 SHA512 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668
DIST percona-xtrabackup-2.4.15.tar.gz 57357749 BLAKE2B fcc64736230636a3a5584a300229e0507f00bcd64a3d0b8e00f834b15ec757347a55a85521dd0aea939761c3a26b1ef99466ff7e633133b8088cd290bd835444 SHA512 789b6870d3ad06861126f67190717ffb31224628d1b9631ec5f39d0a41b3c66aaf2127e3ec4b38d3e8f7858a1438a74f0e89b07b9f4248b637b2ed39143ab599
DIST percona-xtrabackup-2.4.20.tar.gz 59782001 BLAKE2B 25deaa3044d89d6f884734bbaee20004d792f4b0bf86bd0d456177cd2b149c29af13900b32e29f92c04cf810b34584ec2d9a74b443be27b8c7dca54b330ced99 SHA512 bac5d276bb78209eacc34ea9950dc128a636c549795b6b071597ac3c8a43fefe9db085a42827b8176647affc2fcfc6caa51462dbc0ae7a1a716ba6fdc9092478
+DIST percona-xtrabackup-2.4.21.tar.gz 61901220 BLAKE2B 77245818015d4e9c22d05cfeb254ff570ab490c43f9d2fd0e1c499e1e3fefb143b4659fb929740a563e2344b3cd7dfb408931c6d24b277f6df06886dfa83126e SHA512 8b14ef4620fdf836a090d07e5aeb78141eacf081a2cf1069d91af1ba5206e36e3e195f8acb06609f334661d6ad27937b31e997b0f1aabb9cef612d35fabd0284
DIST percona-xtrabackup-8.0.13.tar.gz 272887474 BLAKE2B d0ac4c602c7c3197ca0a7c361f9658bd2da00bdac5c6dc0a4d56b92e04e4e6c86f22b70e7cf2b375f121983ea7f134edae93116c91945b2c3314a51565033ae5 SHA512 b1fdb0dea1c8b6e39b5451153f01c8ce0dcf411fd88fe8f9f686e562e0950ff9270a39574230ada928b734cc8bb4517da0f01310e75d5c9beba0e35cfeaa11ff
+DIST percona-xtrabackup-8.0.22-15.tar.gz 294237178 BLAKE2B 819d7594bc41e0adc1e6f2632e6ad50de7a2416c7577f48ea83948bed1b14c0c552c4c44597c84c86fa292bcbbaace185978956acdc39070f81ede6701f4af52 SHA512 f5295e2f1e3ee71931295f89dbd708eed936c4912ab3b6c122eb63795ee2e5154011ddf95cfad005a89c7f086f087f7fb19068d098b49202c697a95b58ee7672
diff --git a/dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-fix-building-against-ICU-68.patch b/dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-fix-building-against-ICU-68.patch
new file mode 100644
index 000000000000..b3e1662a0cf6
--- /dev/null
+++ b/dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-fix-building-against-ICU-68.patch
@@ -0,0 +1,28 @@
+From 16048ed60bef16d4bf1e361a59e7899845b9426a Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Sun, 20 Dec 2020 21:47:33 +0100
+Subject: [PATCH 10/10] Fix building against >=ICU-68
+
+Link: https://github.com/unicode-org/icu/commit/a18df7ba2834afc2b577a1d5a7d906868ade6fa9
+Bug: https://bugs.gentoo.org/759070
+Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
+---
+ sql/mysqld.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sql/mysqld.cc b/sql/mysqld.cc
+index c400e5584..5d2ebfaea 100644
+--- a/sql/mysqld.cc
++++ b/sql/mysqld.cc
+@@ -7323,7 +7323,7 @@ int mysqld_main(int argc, char **argv)
+ if (opt_keyring_migration_source || opt_keyring_migration_destination ||
+ migrate_connect_options) {
+ Migrate_keyring mk;
+- my_getopt_skip_unknown = TRUE;
++ my_getopt_skip_unknown = true;
+ if (mk.init(remaining_argc, remaining_argv, opt_keyring_migration_source,
+ opt_keyring_migration_destination, opt_keyring_migration_user,
+ opt_keyring_migration_host, opt_keyring_migration_password,
+--
+2.29.2
+
diff --git a/dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-remove-rpm.patch b/dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-remove-rpm.patch
new file mode 100644
index 000000000000..91f67c437168
--- /dev/null
+++ b/dev-db/percona-xtrabackup/files/percona-xtrabackup-8.0.22-remove-rpm.patch
@@ -0,0 +1,31 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -222,28 +222,6 @@ ENDIF()
+ OPTION(FORCE_UNSUPPORTED_COMPILER "Disable compiler version checks" OFF)
+ MARK_AS_ADVANCED(WITHOUT_SERVER FORCE_UNSUPPORTED_COMPILER)
+
+-# Use 'uname -r' and 'rpm -qf /' to figure out host system.
+-# For Docker images we cannot trust uname, so use rpm instead.
+-IF(UNIX)
+- FIND_PROGRAM(MY_UNAME uname /bin /usr/bin /usr/local/bin /sbin)
+- IF(MY_UNAME)
+- EXECUTE_PROCESS(COMMAND ${MY_UNAME} -s
+- OUTPUT_VARIABLE MY_HOST_SYSTEM_NAME
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- RESULT_VARIABLE MY_UNAME_RESULT
+- )
+- EXEC_PROGRAM(${MY_UNAME} ARGS -r OUTPUT_VARIABLE MY_HOST_SYSTEM_VERSION)
+- ENDIF()
+- FIND_PROGRAM(MY_RPM rpm /bin /usr/bin)
+- IF(MY_RPM)
+- EXECUTE_PROCESS(COMMAND ${MY_RPM} -qf /
+- OUTPUT_VARIABLE MY_HOST_FILESYSTEM_NAME
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- RESULT_VARIABLE MY_RPM_RESULT
+- )
+- ENDIF()
+-ENDIF()
+-
+ # See comments above, about CMAKE_MINIMUM_REQUIRED VERSION and macOS 11.
+ IF(APPLE)
+ IF(MY_HOST_SYSTEM_VERSION VERSION_GREATER_EQUAL 20)
diff --git a/dev-db/percona-xtrabackup/metadata.xml b/dev-db/percona-xtrabackup/metadata.xml
index 6638c33cdd15..06f90a2b1752 100644
--- a/dev-db/percona-xtrabackup/metadata.xml
+++ b/dev-db/percona-xtrabackup/metadata.xml
@@ -1,7 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="project">
+ <email>mysql-bugs@gentoo.org</email>
+ <name>MySQL</name>
+ </maintainer>
<upstream>
<remote-id type="github">percona/percona-xtrabackup</remote-id>
</upstream>
diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.21.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.21.ebuild
new file mode 100644
index 000000000000..967e9fa2e0e1
--- /dev/null
+++ b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.21.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_MAKEFILE_GENERATOR="emake"
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Hot backup utility for MySQL based servers"
+HOMEPAGE="https://www.percona.com/software/mysql-database/percona-xtrabackup"
+SRC_URI="https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-${PV}/source/tarball/${P}.tar.gz
+ mirror://sourceforge/boost/boost_1_59_0.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ app-arch/lz4:0=
+ app-editors/vim-core
+ dev-libs/libaio
+ dev-libs/libedit
+ dev-libs/libev
+ dev-libs/libevent:0=
+ dev-libs/libgcrypt:0=
+ dev-libs/libgpg-error
+ dev-python/sphinx
+ net-misc/curl
+ sys-libs/zlib:="
+
+RDEPEND="
+ ${DEPEND}
+ !dev-db/percona-xtrabackup-bin
+ dev-perl/DBD-mysql"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.6-remove-boost-version-check.patch
+ "${FILESDIR}"/${PN}-2.4.20-fix-gcc10.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_CONFIG=xtrabackup_release
+ -DBUILD_SHARED_LIBS=OFF
+ -DWITH_BOOST="${WORKDIR}/boost_1_59_0"
+ -DWITH_EDITLINE=system
+ -DWITH_LIBEVENT=system
+ -DWITH_LZ4=system
+ -DWITH_SSL=system
+ -DWITH_ZLIB=system
+ -DWITH_PIC=ON
+ )
+
+ local CMAKE_BUILD_TYPE="Release"
+ cmake_src_configure
+}
+
+src_install() {
+ local p="${BUILD_DIR}/storage/innobase/xtrabackup"
+
+ dobin "${p}"/src/{xbcloud/xbcloud,xbcrypt,xbstream,xtrabackup}
+ dosym xtrabackup /usr/bin/innobackupex
+
+ einstalldocs
+ doman "${p}"/doc/source/build/man/*
+}
diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-8.0.22.15.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-8.0.22.15.ebuild
new file mode 100644
index 000000000000..1f27bfcbcf14
--- /dev/null
+++ b/dev-db/percona-xtrabackup/percona-xtrabackup-8.0.22.15.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CMAKE_MAKEFILE_GENERATOR="emake"
+
+inherit cmake flag-o-matic
+
+MY_BOOST_VERSION="1.73.0"
+MY_PV=$(ver_rs 3 '-')
+MY_PV="${MY_PV//_pre*}"
+MY_PN="Percona-XtraBackup"
+MY_P="${PN}-${MY_PV}"
+MY_MAJOR_PV=$(ver_cut 1-2)
+
+DESCRIPTION="Hot backup utility for MySQL based servers"
+HOMEPAGE="https://www.percona.com/software/mysql-database/percona-xtrabackup"
+SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz
+ https://dl.bintray.com/boostorg/release/${MY_BOOST_VERSION}/source/boost_$(ver_rs 1- _ ${MY_BOOST_VERSION}).tar.bz2
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ app-arch/lz4:0=
+ app-editors/vim-core
+ dev-libs/icu:=
+ dev-libs/libaio
+ dev-libs/libedit
+ dev-libs/libev
+ dev-libs/libevent:0=
+ dev-libs/libgcrypt:0=
+ dev-libs/libgpg-error
+ dev-libs/openssl:0=
+ dev-libs/protobuf:=
+ dev-libs/rapidjson
+ dev-libs/re2:=
+ dev-python/sphinx
+ net-misc/curl
+ sys-libs/zlib:="
+
+RDEPEND="
+ ${DEPEND}
+ !dev-db/percona-xtrabackup-bin
+ dev-perl/DBD-mysql"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.22-remove-rpm.patch
+ "${FILESDIR}"/${PN}-8.0.22-fix-building-against-ICU-68.patch
+)
+
+S="${WORKDIR}/percona-xtrabackup-${MY_PV}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_CONFIG=xtrabackup_release
+ -DBUILD_SHARED_LIBS=OFF
+ -DWITH_BOOST="${WORKDIR}/boost_$(ver_rs 1- _ ${MY_BOOST_VERSION})"
+ -DWITH_SYSTEM_LIBS=ON
+ )
+ local CMAKE_BUILD_TYPE="Release"
+ cmake_src_configure
+}
+
+src_install() {
+ local p="${BUILD_DIR}/storage/innobase/xtrabackup"
+
+ dobin "${p}"/xbcloud_osenv
+ dobin "${BUILD_DIR}"/runtime_output_directory/{xbcloud,xbcrypt,xbstream,xtrabackup}
+
+ dolib.so "${BUILD_DIR}"/plugin_output_directory/{keyring_file.so,keyring_vault.so}
+
+ doman "${p}"/doc/source/build/man/*
+}
diff --git a/dev-db/pgcli/pgcli-3.1.0.ebuild b/dev-db/pgcli/pgcli-3.1.0.ebuild
index de832c6dd2fa..b690eaed8d7f 100644
--- a/dev-db/pgcli/pgcli-3.1.0.ebuild
+++ b/dev-db/pgcli/pgcli-3.1.0.ebuild
@@ -31,7 +31,6 @@ BDEPEND="
test? (
dev-db/postgresql
dev-python/mock[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
)"
distutils_enable_tests pytest
diff --git a/dev-db/pgrouting/pgrouting-3.1.1.ebuild b/dev-db/pgrouting/pgrouting-3.1.1.ebuild
index 519683a61f95..0c0d27fd5710 100644
--- a/dev-db/pgrouting/pgrouting-3.1.1.ebuild
+++ b/dev-db/pgrouting/pgrouting-3.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -16,7 +16,7 @@ HOMEPAGE="https://pgrouting.org/"
LICENSE="GPL-2 MIT Boost-1.0"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
SRC_URI="https://github.com/pgRouting/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
IUSE=""
diff --git a/dev-db/redis/files/redis-6.0.3-sharedlua.patch b/dev-db/redis/files/redis-6.0.3-sharedlua.patch
deleted file mode 100644
index 20df7983d7a8..000000000000
--- a/dev-db/redis/files/redis-6.0.3-sharedlua.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/deps/lua/src/lua_cjson.c b/deps/lua/src/lua_cjson.c
-index c26c0d7..fa50c41 100644
---- a/deps/lua/src/lua_cjson.c
-+++ b/deps/lua/src/lua_cjson.c
-@@ -46,7 +46,7 @@
- #include "strbuf.h"
- #include "fpconv.h"
-
--#include "../../../src/solarisfixes.h"
-+#include "solarisfixes.h"
-
- #ifndef CJSON_MODNAME
- #define CJSON_MODNAME "cjson"
-diff --git a/src/Makefile b/src/Makefile
-index b8c05c3..e5a7cc2 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -16,7 +16,7 @@ release_hdr := $(shell sh -c './mkreleasehdr.sh')
- uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
- uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
- OPTIMIZATION?=-O2
--DEPENDENCY_TARGETS=hiredis linenoise lua
-+DEPENDENCY_TARGETS=hiredis linenoise
- NODEPS:=clean distclean
-
- # Default settings
-@@ -76,6 +76,7 @@ endif
- FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
- FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
- FINAL_LIBS=-lm
-+FINAL_LIBS+=@LUA_LIBS@
- DEBUG=-g -ggdb
-
- # Linux ARM needs -latomic at linking time
-@@ -149,7 +150,7 @@ endif
- endif
- endif
- # Include paths to dependencies
--FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src
-+FINAL_CFLAGS+= -I../deps/hiredis -I../deps/linenoise @LUA_CFLAGS@
-
- # Determine systemd support and/or build preference (defaulting to auto-detection)
- BUILD_WITH_SYSTEMD=no
-@@ -217,6 +218,7 @@ endif
- REDIS_SERVER_NAME=redis-server
- REDIS_SENTINEL_NAME=redis-sentinel
- REDIS_SERVER_OBJ=adlist.o quicklist.o ae.o anet.o dict.o server.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o ziplist.o release.o networking.o util.o object.o db.o replication.o rdb.o t_string.o t_list.o t_set.o t_zset.o t_hash.o config.o aof.o pubsub.o multi.o debug.o sort.o intset.o syncio.o cluster.o crc16.o endianconv.o slowlog.o scripting.o bio.o rio.o rand.o memtest.o crcspeed.o crc64.o bitops.o sentinel.o notify.o setproctitle.o blocked.o hyperloglog.o latency.o sparkline.o redis-check-rdb.o redis-check-aof.o geo.o lazyfree.o module.o evict.o expire.o geohash.o geohash_helper.o childinfo.o defrag.o siphash.o rax.o t_stream.o listpack.o localtime.o lolwut.o lolwut5.o lolwut6.o acl.o gopher.o tracking.o connection.o tls.o sha256.o timeout.o setcpuaffinity.o
-+REDIS_SERVER_OBJ+=fpconv.o strbuf.o lua_bit.o lua_cjson.o lua_cmsgpack.o lua_struct.o
- REDIS_CLI_NAME=redis-cli
- REDIS_CLI_OBJ=anet.o adlist.o dict.o redis-cli.o zmalloc.o release.o ae.o crcspeed.o crc64.o siphash.o crc16.o
- REDIS_BENCHMARK_NAME=redis-benchmark
-@@ -268,7 +270,7 @@ endif
-
- # redis-server
- $(REDIS_SERVER_NAME): $(REDIS_SERVER_OBJ)
-- $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a ../deps/lua/src/liblua.a $(FINAL_LIBS)
-+ $(REDIS_LD) -o $@ $^ ../deps/hiredis/libhiredis.a $(FINAL_LIBS)
-
- # redis-sentinel
- $(REDIS_SENTINEL_NAME): $(REDIS_SERVER_NAME)
diff --git a/dev-db/redis/redis-6.0.9-r1.ebuild b/dev-db/redis/redis-6.0.9-r1.ebuild
new file mode 100644
index 000000000000..399e7163e310
--- /dev/null
+++ b/dev-db/redis/redis-6.0.9-r1.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic systemd toolchain-funcs
+
+DESCRIPTION="A persistent caching system, key-value and data structures database"
+HOMEPAGE="https://redis.io"
+SRC_URI="http://download.redis.io/releases/${P}.tar.gz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="+jemalloc luajit ssl tcmalloc test"
+RESTRICT="!test? ( test )"
+SLOT="0"
+
+# Redis does NOT build with Lua 5.2 or newer at this time.
+# This should link correctly with both unslotted & slotted Lua, without
+# changes.
+COMMON_DEPEND="
+ jemalloc? ( >=dev-libs/jemalloc-5.1:= )
+ luajit? ( dev-lang/luajit:2 )
+ !luajit? ( || ( dev-lang/lua:5.1 =dev-lang/lua-5.1*:0 ) )
+ ssl? ( dev-libs/openssl:0= )
+ tcmalloc? ( dev-util/google-perftools )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ acct-group/redis
+ acct-user/redis
+"
+
+BDEPEND="
+ ${COMMON_DEPEND}
+ virtual/pkgconfig
+"
+
+# Tcl is only needed in the CHOST test env
+DEPEND="
+ ${COMMON_DEPEND}
+ test? (
+ dev-lang/tcl:0=
+ ssl? ( dev-tcltk/tls )
+ )"
+
+REQUIRED_USE="?? ( jemalloc tcmalloc )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.2.3-config.patch
+ "${FILESDIR}"/${PN}-5.0-shared.patch
+ "${FILESDIR}"/${PN}-6.0.9-sharedlua.patch
+ "${FILESDIR}"/${PN}-5.0.8-ppc-atomic.patch
+ "${FILESDIR}"/${PN}-sentinel-5.0-config.patch
+)
+
+src_prepare() {
+ default
+
+ # unstable on jemalloc
+ > tests/unit/memefficiency.tcl || die
+
+ # Copy lua modules into build dir
+ cp "${S}"/deps/lua/src/{fpconv,lua_bit,lua_cjson,lua_cmsgpack,lua_struct,strbuf}.c "${S}"/src || die
+ cp "${S}"/deps/lua/src/{fpconv,strbuf}.h "${S}"/src || die
+ # Append cflag for lua_cjson
+ # https://github.com/antirez/redis/commit/4fdcd213#diff-3ba529ae517f6b57803af0502f52a40bL61
+ append-cflags "-DENABLE_CJSON_GLOBAL"
+
+ # now we will rewrite present Makefiles
+ local makefiles="" MKF
+ for MKF in $(find -name 'Makefile' | cut -b 3-); do
+ mv "${MKF}" "${MKF}.in"
+ sed -i -e 's:$(CC):@CC@:g' \
+ -e 's:$(CFLAGS):@AM_CFLAGS@:g' \
+ -e 's: $(DEBUG)::g' \
+ -e 's:$(OBJARCH)::g' \
+ -e 's:ARCH:TARCH:g' \
+ -e '/^CCOPT=/s:$: $(LDFLAGS):g' \
+ "${MKF}.in" \
+ || die "Sed failed for ${MKF}"
+ makefiles+=" ${MKF}"
+ done
+ # autodetection of compiler and settings; generates the modified Makefiles
+ cp "${FILESDIR}"/configure.ac-3.2 configure.ac || die
+
+ # Use the correct pkgconfig name for Lua
+ if false && has_version 'dev-lang/lua:5.3'; then
+ # Lua5.3 gives:
+ #lua_bit.c:83:2: error: #error "Unknown number type, check LUA_NUMBER_* in luaconf.h"
+ LUAPKGCONFIG=lua5.3
+ elif false && has_version 'dev-lang/lua:5.2'; then
+ # Lua5.2 fails with:
+ # scripting.c:(.text+0x1f9b): undefined reference to `lua_open'
+ # Because lua_open because lua_newstate in 5.2
+ LUAPKGCONFIG=lua5.2
+ elif has_version 'dev-lang/lua:5.1'; then
+ LUAPKGCONFIG=lua5.1
+ else
+ LUAPKGCONFIG=lua
+ fi
+ # The upstream configure script handles luajit specially, and is not
+ # effected by these changes.
+ einfo "Selected LUAPKGCONFIG=${LUAPKGCONFIG}"
+ sed -i \
+ -e "/^AC_INIT/s|, [0-9].+, |, $PV, |" \
+ -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
+ -e "/PKG_CHECK_MODULES.*\<LUA\>/s,lua5.1,${LUAPKGCONFIG},g" \
+ configure.ac || die "Sed failed for configure.ac"
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with luajit)
+
+ # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
+ # also, don't define ANSI/c99 for lua twice
+ sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
+}
+
+src_compile() {
+ local myconf=""
+
+ if use jemalloc; then
+ myconf+="MALLOC=jemalloc"
+ elif use tcmalloc; then
+ myconf+="MALLOC=tcmalloc"
+ else
+ myconf+="MALLOC=libc"
+ fi
+
+ if use ssl; then
+ myconf+=" BUILD_TLS=yes"
+ fi
+
+ tc-export AR CC RANLIB
+ emake V=1 ${myconf} AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
+}
+
+src_test() {
+ # Known to fail with FEATURES=usersandbox
+ if has usersandbox ${FEATURES}; then
+ ewarn "You are emerging ${P} with 'usersandbox' enabled." \
+ "Expect some test failures or emerge with 'FEATURES=-usersandbox'!"
+ fi
+
+ if use ssl; then
+ ./utils/gen-test-certs.sh
+ ./runtest --tls
+ else
+ ./runtest
+ fi
+}
+
+src_install() {
+ insinto /etc/
+ doins redis.conf sentinel.conf
+ use prefix || fowners redis:redis /etc/{redis,sentinel}.conf
+ fperms 0644 /etc/{redis,sentinel}.conf
+
+ newconfd "${FILESDIR}/redis.confd-r1" redis
+ newinitd "${FILESDIR}/redis.initd-5" redis
+
+ systemd_newunit "${FILESDIR}/redis.service-3" redis.service
+ systemd_newtmpfilesd "${FILESDIR}/redis.tmpfiles-2" redis.conf
+
+ newconfd "${FILESDIR}/redis-sentinel.confd" redis-sentinel
+ newinitd "${FILESDIR}/redis-sentinel.initd" redis-sentinel
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ dodoc 00-RELEASENOTES BUGS CONTRIBUTING MANIFESTO README.md
+
+ dobin src/redis-cli
+ dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
+ fperms 0750 /usr/sbin/redis-benchmark
+ dosym redis-server /usr/sbin/redis-sentinel
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o redis -g redis
+ fi
+ keepdir /var/{log,lib}/redis
+}
diff --git a/dev-db/redis/redis-6.0.9-r100.ebuild b/dev-db/redis/redis-6.0.9-r100.ebuild
index edf7ba3433b5..592612d878aa 100644
--- a/dev-db/redis/redis-6.0.9-r100.ebuild
+++ b/dev-db/redis/redis-6.0.9-r100.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="https://redis.io"
SRC_URI="http://download.redis.io/releases/${P}.tar.gz"
LICENSE="BSD"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x86-solaris"
IUSE="+jemalloc tcmalloc test"
RESTRICT="!test? ( test )"
SLOT="0"
diff --git a/dev-db/redis/redis-6.0.9.ebuild b/dev-db/redis/redis-6.0.9.ebuild
index 7d33e4f13ef5..f24b4fcfe9be 100644
--- a/dev-db/redis/redis-6.0.9.ebuild
+++ b/dev-db/redis/redis-6.0.9.ebuild
@@ -10,7 +10,7 @@ HOMEPAGE="https://redis.io"
SRC_URI="http://download.redis.io/releases/${P}.tar.gz"
LICENSE="BSD"
-KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 x86 ~amd64-linux ~x86-linux ~x86-solaris"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x86-solaris"
IUSE="+jemalloc luajit tcmalloc test"
RESTRICT="!test? ( test )"
SLOT="0"
diff --git a/dev-db/slony1/Manifest b/dev-db/slony1/Manifest
index 5d9a2618bdd0..6379e5ca5a24 100644
--- a/dev-db/slony1/Manifest
+++ b/dev-db/slony1/Manifest
@@ -1,8 +1,2 @@
DIST slony1-2.2.10-docs.tar.bz2 1445193 BLAKE2B 071f5faf2f7cae822b484f13ede6a8ede5278a065c55d2199f38e2dd195922cbc78982633316792978b968295d69e36651ae0367682ad45afab295e61e5329fa SHA512 d603abccc1ec7922fe8025ab178e6d12b28ffc763848be8d1f9fc93519b9928aa65ed6bcc1d678f2ad9f79818de06da39ec1f69d60de61c5e6fe42137c7c3112
DIST slony1-2.2.10.tar.bz2 1464652 BLAKE2B a07a830501be13f33fc189128851cee02c8d8ca51a8a54f6b97028d65eb17937817c9ab6b5ebbcaa092e96fb00f57959806e5003e016df5e7034583de601084c SHA512 1b41addb7a0be0a130c2efcab1b241e3158d10a5a6e203d83f28353e303dd524e224ab9c04a7e37a0f89cd944237b90feeb8910eb35f717926aa3ad28dbe2d0f
-DIST slony1-2.2.6-docs.tar.bz2 1450956 BLAKE2B 949d0736eb9ab021767b80b4240e30a8cd11daa218cac6d722827a8db98f2b54cc093031e02d0cd14cb1eb60d56dc160dcd1c2e0708e7228fdac31ef26d2fcf4 SHA512 b5a870d5688ca24c0a9012d7da539917c74ee697f1b1ae663ead3cb1032345c0d8f5fc5bddc2ca2fec5d738fb9ca74822343cce8739b3b4b478928f26d214a0d
-DIST slony1-2.2.6.tar.bz2 1465709 BLAKE2B 87e581638aab5ac9f51437fc43b65f200c29e012fa2b5331d4a7972359bb345c8d5aec9917fbc348ce8338115f8270d6e55025905aa5aba642090a8486d0a3fc SHA512 5aeadb9ed72b83d303596e4f8513409a1f826f25fe283ca6aa969a7563172bbc5f5360f876fa87780f6a6fc70cb55688a2daf678b9cf91972a3c403cb76184b8
-DIST slony1-2.2.7-docs.tar.bz2 252020 BLAKE2B 315d54c008fca121fac12385602e729c7bb6a7a90db502165625c1138da6b87f147410555ca6bc315ba766fd6fed22b6c5dcbe06c9481dd37b9e9c8832209b02 SHA512 7735aae634788acae77eb2cc64f51a851e3b804fb1ca860eddc237734aa6182bd7dfcdae485cd89682c413f55003ea67d91c4c24922b4fdef79ac34793022e56
-DIST slony1-2.2.7.tar.bz2 1464923 BLAKE2B aee11f92d634a6c2eaf84dd48faf6cac7a27956474aaa9070f1d4fad3e70b0af09475abda149e096f1b238d68237c0b43b18880440bd4c2d66f5c0f4ad789e99 SHA512 22700e1574c91d4a4be5b78aac967eebc039440897364780891c2c76ed5b8e07c03205f0fbcd4870ee7c620d62b175987c46c43750524c6e5f9009044cc24f9a
-DIST slony1-2.2.9-docs.tar.bz2 1445251 BLAKE2B eafd17370e333a706fd563440b7948513db19a05e23f6a0a118e0f8927b5b52c99f46953c3c9ce2d8e9f04371a35ff390e0e542f295f4e926b7002642fc913b0 SHA512 88d1c26d668b4a021c7b53cb5c2a9b140485595460d1444997ae49e4b77910f58860d603777f1836fdfa1231d2e44ad5cdf8e82c0a03df5278c9de7de3101c5b
-DIST slony1-2.2.9.tar.bz2 1464548 BLAKE2B 6a2f3e21679ed1542066016bdc9e97aa7b5885fe15770d5015f26deb16e4d9634b930d9f13a8dbba6b1e89bf28cdcc28b3181f12efbf9b549a75c6e62755c099 SHA512 c42d7604ae2eda9b83bfa608ca13a4a25b2a4b77301a591b9308eda964d263490a02acdfd5b1a7e7751c24b2a7cb5d9410c58deaf82bdb3c422456af65c2b3f5
diff --git a/dev-db/slony1/slony1-2.2.10.ebuild b/dev-db/slony1/slony1-2.2.10.ebuild
index 0e854d2ba2ca..944ca9c71151 100644
--- a/dev-db/slony1/slony1-2.2.10.ebuild
+++ b/dev-db/slony1/slony1-2.2.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -20,7 +20,7 @@ SRC_URI="https://slony.info/downloads/${MAJ_PV}/source/${P}.tar.bz2
LICENSE="BSD GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
+KEYWORDS="amd64 ppc x86"
DEPEND="${POSTGRES_DEP}
perl? ( dev-perl/DBD-Pg )
diff --git a/dev-db/slony1/slony1-2.2.6.ebuild b/dev-db/slony1/slony1-2.2.6.ebuild
deleted file mode 100644
index 205a3f03d698..000000000000
--- a/dev-db/slony1/slony1-2.2.6.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-POSTGRES_COMPAT=( 9.{5..6} 10 )
-POSTGRES_USEDEP="server,threads"
-
-inherit eutils postgres-multi versionator
-
-IUSE="doc perl"
-
-DESCRIPTION="A replication system for the PostgreSQL Database Management System"
-HOMEPAGE="https://slony.info/"
-
-# ${P}-docs.tar.bz2 contains man pages as well as additional documentation
-MAJ_PV=$(get_version_component_range 1-2)
-SRC_URI="http://main.slony.info/downloads/${MAJ_PV}/source/${P}.tar.bz2
- http://main.slony.info/downloads/${MAJ_PV}/source/${P}-docs.tar.bz2"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="amd64 ppc x86"
-
-DEPEND="${POSTGRES_DEP}
- perl? ( dev-perl/DBD-Pg )
-"
-
-RDEPEND=${DEPEND}
-
-REQUIRE_USE="${POSTGRES_REQ_USE}"
-
-RESTRICT="test"
-
-src_configure() {
- local slot_bin_dir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/bin"
- use perl && myconf=" --with-perltools=\"${slot_bin_dir}\""
- postgres-multi_foreach econf ${myconf} \
- --with-pgconfigdir="${slot_bin_dir}" \
- --with-slonybindir="${slot_bin_dir}"
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
-
- dodoc INSTALL README SAMPLE TODO UPGRADING share/slon.conf-sample
-
- if use doc ; then
- cd "${S}"/doc
- dohtml -r *
- fi
-
- newinitd "${FILESDIR}"/slony1.init slony1
- newconfd "${FILESDIR}"/slony1.conf slony1
-}
-
-pkg_postinst() {
- # Slony-I installs its executables into a directory that is
- # processed by the PostgreSQL eselect module. Call it here so that
- # the symlinks will be created.
- ebegin "Refreshing PostgreSQL $(postgresql-config show) symlinks"
- postgresql-config update
- eend $?
-}
diff --git a/dev-db/slony1/slony1-2.2.7.ebuild b/dev-db/slony1/slony1-2.2.7.ebuild
deleted file mode 100644
index 7d5ce56a2245..000000000000
--- a/dev-db/slony1/slony1-2.2.7.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-POSTGRES_COMPAT=( 9.{5..6} {10..11} )
-POSTGRES_USEDEP="server,threads"
-
-inherit eutils postgres-multi versionator
-
-IUSE="doc perl"
-
-DESCRIPTION="A replication system for the PostgreSQL Database Management System"
-HOMEPAGE="https://slony.info/"
-
-# ${P}-docs.tar.bz2 contains man pages as well as additional documentation
-MAJ_PV=$(get_version_component_range 1-2)
-SRC_URI="http://main.slony.info/downloads/${MAJ_PV}/source/${P}.tar.bz2
- http://main.slony.info/downloads/${MAJ_PV}/source/${P}-docs.tar.bz2"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-
-DEPEND="${POSTGRES_DEP}
- perl? ( dev-perl/DBD-Pg )
-"
-
-RDEPEND=${DEPEND}
-
-REQUIRE_USE="${POSTGRES_REQ_USE}"
-
-src_configure() {
- local slot_bin_dir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/bin"
- use perl && myconf=" --with-perltools=\"${slot_bin_dir}\""
- postgres-multi_foreach econf ${myconf} \
- --with-pgconfigdir="${slot_bin_dir}" \
- --with-slonybindir="${slot_bin_dir}"
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
-
- dodoc INSTALL README SAMPLE TODO UPGRADING share/slon.conf-sample
-
- if use doc ; then
- cd "${S}"/doc
- dohtml -r *
- fi
-
- newinitd "${FILESDIR}"/slony1.init slony1
- newconfd "${FILESDIR}"/slony1.conf slony1
-}
-
-pkg_postinst() {
- # Slony-I installs its executables into a directory that is
- # processed by the PostgreSQL eselect module. Call it here so that
- # the symlinks will be created.
- ebegin "Refreshing PostgreSQL $(postgresql-config show) symlinks"
- postgresql-config update
- eend $?
-}
diff --git a/dev-db/slony1/slony1-2.2.9.ebuild b/dev-db/slony1/slony1-2.2.9.ebuild
deleted file mode 100644
index 0e854d2ba2ca..000000000000
--- a/dev-db/slony1/slony1-2.2.9.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( 9.{5..6} {10..13} )
-POSTGRES_USEDEP="server,threads"
-
-inherit postgres-multi
-
-IUSE="doc perl"
-
-DESCRIPTION="A replication system for the PostgreSQL Database Management System"
-HOMEPAGE="https://slony.info/"
-
-MAJ_PV=$(ver_cut 1-2)
-SRC_URI="https://slony.info/downloads/${MAJ_PV}/source/${P}.tar.bz2
- doc? ( https://slony.info/downloads/${MAJ_PV}/source/${P}-docs.tar.bz2 )
-"
-
-LICENSE="BSD GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-
-DEPEND="${POSTGRES_DEP}
- perl? ( dev-perl/DBD-Pg )
-"
-RDEPEND=${DEPEND}
-
-REQUIRE_USE="${POSTGRES_REQ_USE}"
-
-# Testing requires a more complex setup than we benefit from being able
-# to perform.
-# https://slony.info/documentation/2.2/testing.html
-RESTRICT="test"
-
-src_unpack() {
- unpack ${P}.tar.bz2
-
- if use doc ; then
- # The docs tarball will unpack over the source directory. So, we
- # clear the adminguide directory now to make it easier to
- # install later.
- rm ${P}/doc/adminguide/* || die
- unpack ${P}-docs.tar.bz2
- fi
-}
-
-src_configure() {
- local slot_bin_dir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/bin"
- use perl && myconf=" --with-perltools=\"${slot_bin_dir}\""
- postgres-multi_foreach econf ${myconf} \
- --with-pgconfigdir="${slot_bin_dir}" \
- --with-slonybindir="${slot_bin_dir}"
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
-
- dodoc README SAMPLE TODO UPGRADING share/slon.conf-sample
- use doc && postgres-multi_forbest dodoc -r doc/adminguide
-
- newinitd "${FILESDIR}"/slony1.init slony1
- newconfd "${FILESDIR}"/slony1.conf slony1
-}
-
-pkg_postinst() {
- # Slony-I installs its executables into a directory that is
- # processed by the PostgreSQL eselect module. Call it here so that
- # the symlinks will be created.
- ebegin "Refreshing PostgreSQL $(postgresql-config show) symlinks"
- postgresql-config update
- eend $?
-}