diff options
| author | Liguros - Gitlab CI/CD [master] <gitlab@liguros.net> | 2021-01-27 18:53:03 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [master] <gitlab@liguros.net> | 2021-01-27 18:53:03 +0000 |
| commit | 3482ddf943eff7b8848f1fb31350b99ce349e86a (patch) | |
| tree | 9c9bb6ec6679e9dc44a84d87ba611989409b12ca /dev-db | |
| parent | 8e8120eabdd28020aa69c7a60505cce2edd20adc (diff) | |
| download | baldeagleos-repo-21.1.3.tar.gz baldeagleos-repo-21.1.3.tar.xz baldeagleos-repo-21.1.3.zip | |
Updating liguros repov21.1.3
Diffstat (limited to 'dev-db')
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 $? -} |
