summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/barman/Manifest3
-rw-r--r--dev-db/barman/barman-2.19.ebuild44
-rw-r--r--dev-db/barman/barman-3.10.0.ebuild (renamed from dev-db/barman/barman-3.2.0.ebuild)6
-rw-r--r--dev-db/barman/barman-3.9.0.ebuild4
-rw-r--r--dev-db/citus/Manifest1
-rw-r--r--dev-db/citus/citus-12.1.3.ebuild35
-rw-r--r--dev-db/datadraw/datadraw-3.1.1.ebuild4
-rw-r--r--dev-db/etcd/Manifest10
-rw-r--r--dev-db/etcd/etcd-3.4.31.ebuild (renamed from dev-db/etcd/etcd-3.4.28.ebuild)4
-rw-r--r--dev-db/etcd/etcd-3.5.12.ebuild (renamed from dev-db/etcd/etcd-3.5.10.ebuild)11
-rw-r--r--dev-db/etcd/etcd-3.5.13.ebuild81
-rw-r--r--dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild8
-rw-r--r--dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild6
-rw-r--r--dev-db/gqlplus/gqlplus-1.16-r2.ebuild4
-rw-r--r--dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild4
-rw-r--r--dev-db/influxdb/Manifest3
-rw-r--r--dev-db/influxdb/influxdb-2.7.5.ebuild284
-rw-r--r--dev-db/kdb/kdb-3.2.0-r2.ebuild5
-rw-r--r--dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild4
-rw-r--r--dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild4
-rw-r--r--dev-db/libdbi/libdbi-0.9.0.ebuild4
-rw-r--r--dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild4
-rw-r--r--dev-db/litecli/Manifest1
-rw-r--r--dev-db/litecli/litecli-1.10.0.ebuild4
-rw-r--r--dev-db/litecli/litecli-1.10.1.ebuild34
-rw-r--r--dev-db/litedb/litedb-5.0.17-r2.ebuild4
-rw-r--r--dev-db/lmdb++/Manifest2
-rw-r--r--dev-db/lmdb++/lmdb++-0.9.14.0.ebuild4
-rw-r--r--dev-db/lmdb/Manifest1
-rw-r--r--dev-db/lmdb/lmdb-0.9.32.ebuild66
-rw-r--r--dev-db/mariadb/Manifest2
-rw-r--r--dev-db/mariadb/mariadb-10.11.7.ebuild1320
-rw-r--r--dev-db/mariadb/mariadb-10.6.17.ebuild1331
-rw-r--r--dev-db/mongodb/Manifest2
-rw-r--r--dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch24
-rw-r--r--dev-db/mongodb/metadata.xml3
-rw-r--r--dev-db/mongodb/mongodb-4.4.29.ebuild188
-rw-r--r--dev-db/mongodb/mongodb-5.0.26.ebuild206
-rw-r--r--dev-db/mycli/Manifest2
-rw-r--r--dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch11
-rw-r--r--dev-db/mycli/mycli-1.27.2.ebuild (renamed from dev-db/mycli/mycli-1.27.0.ebuild)18
-rw-r--r--dev-db/mydumper/Manifest2
-rw-r--r--dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch29
-rw-r--r--dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch25
-rw-r--r--dev-db/mydumper/metadata.xml2
-rw-r--r--dev-db/mydumper/mydumper-0.14.5.2.ebuild16
-rw-r--r--dev-db/mydumper/mydumper-0.15.2.8.ebuild (renamed from dev-db/mydumper/mydumper-0.15.1.3.ebuild)22
-rw-r--r--dev-db/myodbc/Manifest1
-rw-r--r--dev-db/myodbc/files/myodbc-8.0.32-include-string.patch14
-rw-r--r--dev-db/myodbc/myodbc-8.0.32.ebuild130
-rw-r--r--dev-db/mysql-connector-c++/Manifest2
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild58
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild58
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild45
-rw-r--r--dev-db/mysql-connector-c/Manifest1
-rw-r--r--dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch23
-rw-r--r--dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild123
-rw-r--r--dev-db/mysql-init-scripts/files/init.d-2.34
-rw-r--r--dev-db/mysql-init-scripts/files/init.d-s6-2.34
-rw-r--r--dev-db/mysql-init-scripts/files/init.d-supervise-2.36
-rw-r--r--dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r8.ebuild (renamed from dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r7.ebuild)0
-rw-r--r--dev-db/mysql/Manifest2
-rw-r--r--dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch76
-rw-r--r--dev-db/mysql/mysql-8.0.36.ebuild1271
-rw-r--r--dev-db/mysqltuner/Manifest1
-rw-r--r--dev-db/mysqltuner/mysqltuner-2.2.12.ebuild34
-rw-r--r--dev-db/mysqltuner/mysqltuner-2.5.2.ebuild2
-rw-r--r--dev-db/oracle-instantclient/Manifest7
-rw-r--r--dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch22
-rw-r--r--dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild310
-rw-r--r--dev-db/percona-toolkit/Manifest3
-rw-r--r--dev-db/percona-toolkit/percona-toolkit-3.5.7.ebuild (renamed from dev-db/percona-toolkit/percona-toolkit-3.5.1.ebuild)16
-rw-r--r--dev-db/pg_activity/Manifest2
-rw-r--r--dev-db/pg_activity/pg_activity-3.5.1.ebuild (renamed from dev-db/pg_activity/pg_activity-3.4.2.ebuild)4
-rw-r--r--dev-db/pgbouncer/Manifest4
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.20.0.ebuild78
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.20.1.ebuild78
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.22.1.ebuild (renamed from dev-db/pgbouncer/pgbouncer-1.21.0.ebuild)2
-rw-r--r--dev-db/pgpool2/Manifest2
-rw-r--r--dev-db/pgpool2/pgpool2-4.3.2.ebuild91
-rw-r--r--dev-db/pgpool2/pgpool2-4.3.7.ebuild91
-rw-r--r--dev-db/pgpool2/pgpool2-4.3.8.ebuild10
-rw-r--r--dev-db/pgpool2/pgpool2-4.4.4.ebuild10
-rw-r--r--dev-db/pgpool2/pgpool2-4.4.5.ebuild10
-rw-r--r--dev-db/pgpool2/pgpool2-9999.ebuild10
-rw-r--r--dev-db/pgrouting/pgrouting-3.6.1.ebuild4
-rw-r--r--dev-db/pgxnclient/pgxnclient-1.3.2.ebuild4
-rw-r--r--dev-db/postgresql/Manifest16
-rw-r--r--dev-db/postgresql/postgresql-12.17.ebuild452
-rw-r--r--dev-db/postgresql/postgresql-12.19-r2.ebuild (renamed from dev-db/postgresql/postgresql-12.18.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-13.13.ebuild464
-rw-r--r--dev-db/postgresql/postgresql-13.15-r2.ebuild (renamed from dev-db/postgresql/postgresql-13.14.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-14.10.ebuild464
-rw-r--r--dev-db/postgresql/postgresql-14.12-r2.ebuild (renamed from dev-db/postgresql/postgresql-14.11.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-15.5.ebuild466
-rw-r--r--dev-db/postgresql/postgresql-15.7-r2.ebuild (renamed from dev-db/postgresql/postgresql-15.6.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-16.3-r2.ebuild (renamed from dev-db/postgresql/postgresql-16.2.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-17_beta1.ebuild (renamed from dev-db/postgresql/postgresql-16.1.ebuild)48
-rw-r--r--dev-db/postgresql/postgresql-9999.ebuild314
-rw-r--r--dev-db/pspg/Manifest1
-rw-r--r--dev-db/pspg/metadata.xml3
-rw-r--r--dev-db/pspg/pspg-5.8.5.ebuild33
-rw-r--r--dev-db/psqlodbc/Manifest1
-rw-r--r--dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild37
-rw-r--r--dev-db/qdbm/files/qdbm-ruby.patch81
-rw-r--r--dev-db/qdbm/metadata.xml7
-rw-r--r--dev-db/qdbm/qdbm-1.8.78-r5.ebuild (renamed from dev-db/qdbm/qdbm-1.8.78-r4.ebuild)16
-rw-r--r--dev-db/redict/Manifest1
-rw-r--r--dev-db/redict/files/redict-7.3.0-config.patch40
-rw-r--r--dev-db/redict/files/redict-7.3.0-system-hiredict.patch240
-rw-r--r--dev-db/redict/files/redict-7.3.0-system-jemalloc.patch173
-rw-r--r--dev-db/redict/files/redict-sentinel-7.3.0-config.patch27
-rw-r--r--dev-db/redict/files/redict-sentinel.confd16
-rw-r--r--dev-db/redict/files/redict-sentinel.initd23
-rw-r--r--dev-db/redict/files/redict.confd20
-rw-r--r--dev-db/redict/files/redict.initd26
-rw-r--r--dev-db/redict/files/redict.logrotate6
-rw-r--r--dev-db/redict/files/redict.service14
-rw-r--r--dev-db/redict/files/redict.tmpfiles2
-rw-r--r--dev-db/redict/metadata.xml20
-rw-r--r--dev-db/redict/redict-7.3.0-r1.ebuild159
-rw-r--r--dev-db/redis/Manifest4
-rw-r--r--dev-db/redis/redis-7.0.14-r1.ebuild187
-rw-r--r--dev-db/redis/redis-7.2.3-r1.ebuild200
-rw-r--r--dev-db/redis/redis-7.2.4-r1.ebuild2
-rw-r--r--dev-db/redis/redis-7.2.5.ebuild (renamed from dev-db/redis/redis-7.2.1-r1.ebuild)17
-rw-r--r--dev-db/rqlite/Manifest3
-rw-r--r--dev-db/rqlite/rqlite-8.23.0.ebuild (renamed from dev-db/rqlite/rqlite-7.17.0.ebuild)13
-rw-r--r--dev-db/slony1/slony1-2.2.10-r1.ebuild11
-rw-r--r--dev-db/spatialite/spatialite-5.0.1-r2.ebuild9
-rw-r--r--dev-db/spatialite/spatialite-5.1.0-r1.ebuild7
-rw-r--r--dev-db/sqlcl-bin/Manifest2
-rw-r--r--dev-db/sqlcl-bin/sqlcl-bin-23.4.0.023.2321.ebuild (renamed from dev-db/sqlcl-bin/sqlcl-bin-23.3.0.270.1251.ebuild)0
-rw-r--r--dev-db/sqlite/Manifest4
-rw-r--r--dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch112
-rw-r--r--dev-db/sqlite/sqlite-3.45.1-r1.ebuild2
-rw-r--r--dev-db/sqlite/sqlite-3.45.2.ebuild427
-rw-r--r--dev-db/sqlite/sqlite-3.45.3.ebuild427
-rw-r--r--dev-db/sqlite/sqlite-9999.ebuild12
-rw-r--r--dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r2.ebuild (renamed from dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r1.ebuild)2
-rw-r--r--dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild67
-rw-r--r--dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild6
-rw-r--r--dev-db/sqliteman/metadata.xml5
-rw-r--r--dev-db/sqliteman/sqliteman-1.2.2-r6.ebuild (renamed from dev-db/sqliteman/sqliteman-1.2.2-r5.ebuild)6
-rw-r--r--dev-db/sqlmap/Manifest1
-rw-r--r--dev-db/sqlmap/sqlmap-1.8.2.ebuild60
-rw-r--r--dev-db/timescaledb/Manifest1
-rw-r--r--dev-db/timescaledb/timescaledb-2.15.0.ebuild67
-rw-r--r--dev-db/tinycdb/Manifest1
-rw-r--r--dev-db/tinycdb/tinycdb-0.78.ebuild52
-rw-r--r--dev-db/tinycdb/tinycdb-0.81.ebuild2
-rw-r--r--dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild4
152 files changed, 8097 insertions, 3371 deletions
diff --git a/dev-db/barman/Manifest b/dev-db/barman/Manifest
index c098f680d79f..888a8fdff7a4 100644
--- a/dev-db/barman/Manifest
+++ b/dev-db/barman/Manifest
@@ -1,3 +1,2 @@
-DIST barman-2.19.tar.gz 1423229 BLAKE2B db316bad10774ff5825af7409ecc69cd502fe447dd91efc52c04ae23d8e5c21e682fcde351b23dea437817d6207765a6cba355399aea0c5799b0f34be55ee524 SHA512 042912aac1e02994fbbe270f9bf6f4340b9b7ba5b1fdb5d588bdf95098a970ed398e002d1d56731f9b96c8bd0c7e0b71463ab6c08517ce3c1f2c77d1a92618ff
-DIST barman-3.2.0.tar.gz 1463937 BLAKE2B 9daff4dc1374aef5dfd8eff48438464265189223c7b5e7b39045cdf39362c0d266e437f8ff98aac3c045ab94f09ecc59cd34dd7847b783649cf5e18ab3e85280 SHA512 73b86ce55a034bc1bb4f130ef06f2e05c4a7b5c221b49c9ff1cf2f3693e42a5b30613232e823c5b4a87d201bdc8c3b2137de3b189268354145cc3866526095ab
+DIST barman-3.10.0.tar.gz 1851778 BLAKE2B 8e481676ae8a41e5a38a206966e26523237ee13f7201d219c405f355795e9755778d5495be3274bb67a931820b069d96be21adbcefc471380f98cd5f41fc1a08 SHA512 d01f4e940a46964aa8359614195c2bdc423c5a57e18331ccd798e0d52a2bd8f6adf299d42c5e1ac47ece5100cb1a828093badd8e1b181b20e4480cf368c8d1d0
DIST barman-3.9.0.tar.gz 1819096 BLAKE2B 712ec047f9409014495afd868a9bbe889b6b2d54a511770a95e9c62513d7042673b7c1ebec31d45729211a1da0e55dfdc5cdc0ef62d84e7efa26b2b9fbff5feb SHA512 e5b4796a470f43e4ea79383defabd31cd4d33d8dfc06495bc4485bd1bc5cfab701c3719567bcc302de3f157e9ef08a6848776daa2cf9c537fb2829b7931111fd
diff --git a/dev-db/barman/barman-2.19.ebuild b/dev-db/barman/barman-2.19.ebuild
deleted file mode 100644
index 61731d231f6b..000000000000
--- a/dev-db/barman/barman-2.19.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_10 )
-
-inherit distutils-r1
-
-DESCRIPTION="Administration tool for disaster recovery of PostgreSQL servers"
-HOMEPAGE="https://www.pgbarman.org https://sourceforge.net/projects/pgbarman/"
-SRC_URI="https://github.com/2ndquadrant-it/barman/archive/release/${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${PN}-release-${PV}"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- dev-python/boto3[${PYTHON_USEDEP}]
- dev-python/argh[${PYTHON_USEDEP}]
- dev-python/psycopg:2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/argcomplete[${PYTHON_USEDEP}]
- net-misc/rsync
- dev-db/postgresql[server]
-"
-
-BDEPEND="
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- default
-
- sed -i -e \
- "s/^ def test_xlog_segment_mask(.*:/ @pytest.mark.xfail(reason='Test fails on Gentoo')\n\0/" \
- tests/test_xlog.py || die
-}
diff --git a/dev-db/barman/barman-3.2.0.ebuild b/dev-db/barman/barman-3.10.0.ebuild
index d56829dfff5c..d7a56ecd1e99 100644
--- a/dev-db/barman/barman-3.2.0.ebuild
+++ b/dev-db/barman/barman-3.10.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DISTUTILS_USE_PEP517="setuptools"
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
RESTRICT="test" # missing azure sdk
diff --git a/dev-db/barman/barman-3.9.0.ebuild b/dev-db/barman/barman-3.9.0.ebuild
index 1c3e0f925562..d7a56ecd1e99 100644
--- a/dev-db/barman/barman-3.9.0.ebuild
+++ b/dev-db/barman/barman-3.9.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517="setuptools"
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
RESTRICT="test" # missing azure sdk
diff --git a/dev-db/citus/Manifest b/dev-db/citus/Manifest
index 3e0a2d22cbba..ba05405e6711 100644
--- a/dev-db/citus/Manifest
+++ b/dev-db/citus/Manifest
@@ -1,3 +1,4 @@
DIST citus-11.3.1.tar.gz 6623462 BLAKE2B ef07fb1e6cf0dd3f49600c3befcb300d47244393dd3bbe01450a8cb7bdb40adf1b7c6d7cf473ac80c466fc5dd4d6e0f5a62d1a587804d74011dda65731431028 SHA512 481d74cdf0e8de86b918fc73ed72f988f42679a827a39e7d89e2d0ebb0447d629dbaf323099dc97e886ea3012539200831f580bfe0cf3a12ef1f3a7bfe3fab42
DIST citus-12.0.1.tar.gz 6740395 BLAKE2B ca004f8026d94c1ed70c9c7450726287aff415c13b80b93d25a19fbae9a79cbbeaec51521fc7922d5574c75bddb9537d42d656121ca586f4512afe773be5bf76 SHA512 db9b882c63ef6ab848a85d547390d4fc61b97056485dcc8fa51c289a302b78d0de959e29c27a91c494fd3e20491f6a96e96436d8766d02b2770f0e375b94564e
DIST citus-12.1.2.tar.gz 6897486 BLAKE2B 6cbd65cf0cefc5bbe4abcedbeaece8c9a123a05d0d6b812d95cea69153843fd187ff67ce0e99e19758f43569b7e38379294c3c1551f7751ffcb5a6d025800f1a SHA512 00ca6d7053c91671c894bb2afec25ba2a38aae50b6f363a1e63e08e4f3016e43739c9a48b20d93afecb5cc0f2d886fd12318dd8f54f67c052baca2d421882828
+DIST citus-12.1.3.tar.gz 6905546 BLAKE2B 6ece3bb20dfdad3d9413a17dc4b9177ae3cb8829e692b37bd226c60cbb1fa1e827e9de6f833d31c65835ab040593e0cc5fe4b6b0c8b0314306313cd88533e622 SHA512 2bcd5fa83e4fa56b90a3a3873229d3c5a294a0483d031d04ebd9602132883dc54485ca0907b867cd545f9b131a5f8cdeecb2e7e500b46d87f01aa5d5a34ff16f
diff --git a/dev-db/citus/citus-12.1.3.ebuild b/dev-db/citus/citus-12.1.3.ebuild
new file mode 100644
index 000000000000..6f1052ed0c2d
--- /dev/null
+++ b/dev-db/citus/citus-12.1.3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+POSTGRES_COMPAT=( 14 15 16 )
+
+inherit postgres-multi
+
+DESCRIPTION="Open-source postgresql extension for clustering/multi-node setups"
+HOMEPAGE="https://www.citusdata.com/"
+
+MY_PV="${PV/beta0/beta}"
+SRC_URI="https://github.com/citusdata/citus/archive/refs/tags/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+IUSE=""
+LICENSE="POSTGRESQL AGPL-3"
+
+KEYWORDS="~amd64"
+
+SLOT=0
+
+RESTRICT="test"
+
+DEPEND="${POSTGRES_DEP}
+ app-arch/lz4
+ app-arch/zstd
+ "
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ postgres-multi_foreach econf
+}
diff --git a/dev-db/datadraw/datadraw-3.1.1.ebuild b/dev-db/datadraw/datadraw-3.1.1.ebuild
index 584245a0341e..dfc0fa528d3d 100644
--- a/dev-db/datadraw/datadraw-3.1.1.ebuild
+++ b/dev-db/datadraw/datadraw-3.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit toolchain-funcs
DESCRIPTION="feature rich database generator for high performance C applications"
HOMEPAGE="http://datadraw.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${PN}/${PN}${PV}/${PN}${PV}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PN}${PV}/${PN}${PV}.tar.gz"
LICENSE="LGPL-2"
SLOT="0"
diff --git a/dev-db/etcd/Manifest b/dev-db/etcd/Manifest
index 1b1dbbe68100..a66e5e34c31e 100644
--- a/dev-db/etcd/Manifest
+++ b/dev-db/etcd/Manifest
@@ -1,6 +1,8 @@
DIST etcd-3.4.26-deps.tar.xz 39352316 BLAKE2B 8b1a30d645b1ea756ac944d2d3f7e0c5b9491bab54d4d74c6525c519e5297a1e8e2a97f70a50a5681cf8941d2e4978d5c3717fccb552042bcd42e7c4bd2b29a8 SHA512 eb3af2910030a165699158a3dfe7e1267f29c0720865026da2a95941c7e1e19db793e177e9ca5a9f3b134c1a9a83b4a0613a32a30282b68fe3aef75b8dacae59
DIST etcd-3.4.26.tar.gz 6043999 BLAKE2B 03f3bd0388e59dea9300b9a811b426ce03f1001750259dcd8386566efaa64783746f0353f83c1d01960004a77cea08a194aba394d91808aad15b5d4bb8f151cf SHA512 b2048070adb1df6e98c06e0e951f7940815dab238fe4ba49c36681a638f39eb7e40fed691baf70410d01467965094d70f008d0046b1b550b2ac1ed19ac89ca47
-DIST etcd-3.4.28-deps.tar.xz 66108144 BLAKE2B 81bef927202231a7b8a1856327d371060b15aadf6189dd3950946a8274df5eb6845b6a645f27f8c231d1bf6baef40777b433e0f9f96f6faf136cef53ec66220f SHA512 5cf3810309c28559a3b793a2c7e329aea13f0e1ec83a033bf8d1f34b4aa7a357446bbe654f56175b52822c08e22e335be39592955b369ddc91a276c90c582820
-DIST etcd-3.4.28.tar.gz 6052858 BLAKE2B 8c6dbebf3570c88e53ff5d13b0192502bc93d50076b9b66bd3ef4a313e734a1dc630366203b8e5d22ce29e9e8498e5e9304a6b02973d2defd4b65425ee24becb SHA512 409f82c9979ee34327f0f1f6fd171ccbeb6a044ca4e1f137dd803172e2b79f5f14d68eea67b12c90401dc93fe830b7adf77f8c06c2730f3205d367a957fc43cc
-DIST etcd-3.5.10-deps.tar.xz 95341332 BLAKE2B 45aed0b80e5c0b3100b870b3f663a09ca8998f52e462a5a618c871d9baed898bd7bf23d2d1f33ff6eb3ad40fcd6692d4c9e5501b27cdc93a4be23aea464ac769 SHA512 59acb7de1a89014c75054cd06659f3220fd0a361e16a26d7bb26c2177266493808f9817dd7393df04c4ab14d46ddfd9ec9a36442e9656cf871971034ff1c99ed
-DIST etcd-3.5.10.tar.gz 4073085 BLAKE2B d6b6c60dee15ffc42e3510837eefc543d16bdbda532828cd6a846f9d12921e24df948b93b4951f8e660be9967e540f59ecba558094558f67ec5aa4059dee60de SHA512 965e8666653c6012643b01fd9e1bbd3b01294590985e91c54a81ea9f6940ebdf4d6c48f04b082a094e09b4959eba92e0bfed46d364ff54d8791ab7d42d2a725c
+DIST etcd-3.4.31-deps.tar.xz 2212704 BLAKE2B 8b30941eefdb3811fb331014b69eb8d5b9c691b8ace1004432e5b05bb787bb3ba3ce872f881af2a559d7b955fae890a4ec0e8b10daa06cf388447af1b6a92679 SHA512 85915f5738493bfe3c09208649e26cfdc612df900916686006a437c44aad5afb2ab69b0840550e37544a50b79d2d3718e2cbdfd037e47bcaa8e33a8a6a95105f
+DIST etcd-3.4.31.tar.gz 6072806 BLAKE2B 30aa5b79d2fd0ba639bc766c104d5df28af50ae5398d860af3b3aff91c143ccd899538b341501386bac55dedc00086654de6e4ab9b237053b199a8de2fa509ec SHA512 4a7e366ced86ea86a324ab972ea47be56456c0aa8744e5ec07d499a56bdc9179ebc3bc2f33bd67c2d341181a5bcc703abc5a7c2e57879169a351457b4a0274f3
+DIST etcd-3.5.12-deps.tar.xz 3935756 BLAKE2B c043cc55f59549734f38b1a734106bd25a1bbeb47f84e00a6b4308bad6086a6f0e0f3dee151bf1708bac269be124c782ea48c3761ee5e1d130a002989f99f2d3 SHA512 caae360e315756fe933bd87a7ce543d904084a745b5e42844a293bbf17c121d245f9f3645cd9992de5203c9efe4efcd4226ba294afb5a3550c114de78dad3110
+DIST etcd-3.5.12.tar.gz 4083299 BLAKE2B 85615cf9095a440ef73aa59f5582293de543f7e473c8049712ff13646276c9441039c96c4e42aaedfddcfb3baede8d37f0ef68bb5ddabdb3f4833c8591ee1c8c SHA512 6fc8bd64ad63cff71c7645253273418fb3fa262c2da1742dc345576caa733af7cd75acad2f57610c5883e6bf16cffd36bc5a0c89cbbb0793c00c2a4db1c6d14b
+DIST etcd-3.5.13-deps.tar.xz 5004004 BLAKE2B effc3c3fb8e6fff789f96030e485fb887b0f973e5943e66f744ce2d41c65c0756a81850be8f8cca96f50214a59e0eeac694c4669d809ddcee0771acc1703d9ff SHA512 ed80d70a14cf049e3af22757ad5cc4abd1ce563e00e0d422d38c82d66fe4381822ef1344de3ef803dedc2bfc038dabb520ad58fd489b8916529d24357628f002
+DIST etcd-3.5.13.tar.gz 4089792 BLAKE2B be7a46af3978108b7e25adabe736ac111a01ab7fcb8e142b75c0c87aa33905d42d10b721ebc982e834110388669d028e6a612c9745e2f5c93210dd05ffccba7d SHA512 dc85d80079b61e96eb06eb573d41d8972060392e49140a2414c283ea9edfef7b01d5554e50c7ab37c6ad079b373ae12a1b84dbcc533addc1d4d30a2a5abf7b7b
diff --git a/dev-db/etcd/etcd-3.4.28.ebuild b/dev-db/etcd/etcd-3.4.31.ebuild
index 9084f1072095..468971161050 100644
--- a/dev-db/etcd/etcd-3.4.28.ebuild
+++ b/dev-db/etcd/etcd-3.4.31.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd tmpfiles
-GIT_COMMIT=adf6bd245
+GIT_COMMIT=950cd5fbe
DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
HOMEPAGE="https://github.com/etcd-io/etcd"
diff --git a/dev-db/etcd/etcd-3.5.10.ebuild b/dev-db/etcd/etcd-3.5.12.ebuild
index ab2651f2f3fc..e61a29b82bd5 100644
--- a/dev-db/etcd/etcd-3.5.10.ebuild
+++ b/dev-db/etcd/etcd-3.5.12.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd tmpfiles
-GIT_COMMIT=0223ca52b
+GIT_COMMIT=e7b3bb6cc
DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
HOMEPAGE="https://github.com/etcd-io/etcd"
@@ -12,7 +12,7 @@ SRC_URI+=" https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
LICENSE="Apache-2.0 BSD BSD-2 MIT"
SLOT="0"
-KEYWORDS="~amd64 ~loong ~riscv"
+KEYWORDS="amd64 ~loong ~riscv"
IUSE="doc +server"
COMMON_DEPEND="server? (
@@ -25,12 +25,13 @@ RDEPEND="${COMMON_DEPEND}"
# Tests fail with this error:
# fatal error: checkptr: unsafe pointer conversion
RESTRICT="test"
+PATCHES=("${S}/go-mod-sum.patch")
src_prepare() {
export GO_BUILD_FLAGS="-v -x"
default
- sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|"\
- -i "${S}"/build || die
+ sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|" \
+ -i "${S}"/build.sh || die
sed -e 's:\(for p in \)shellcheck :\1 :' \
-e 's:^ gofmt \\$:\\:' \
-e 's:^ govet \\$:\\:' \
diff --git a/dev-db/etcd/etcd-3.5.13.ebuild b/dev-db/etcd/etcd-3.5.13.ebuild
new file mode 100644
index 000000000000..77d02b80751b
--- /dev/null
+++ b/dev-db/etcd/etcd-3.5.13.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module systemd tmpfiles
+GIT_COMMIT=c9063a0dc
+
+DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
+HOMEPAGE="https://github.com/etcd-io/etcd"
+SRC_URI="https://github.com/etcd-io/etcd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
+
+LICENSE="Apache-2.0"
+LICENSE+=" BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~riscv"
+IUSE="doc +server"
+
+COMMON_DEPEND="server? (
+ acct-group/etcd
+ acct-user/etcd
+ )"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+# Tests fail with this error:
+# fatal error: checkptr: unsafe pointer conversion
+RESTRICT="test"
+PATCHES=("${S}/go-mod-sum.patch")
+
+src_prepare() {
+ export GO_BUILD_FLAGS="-v -x"
+ default
+ sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|" \
+ -i "${S}"/build.sh || die
+ sed -e 's:\(for p in \)shellcheck :\1 :' \
+ -e 's:^ gofmt \\$:\\:' \
+ -e 's:^ govet \\$:\\:' \
+ -e 's:^ govet_shadow \\$:\\:' \
+ -i "${S}"/test || die
+
+ sed -e "s|GO_BUILD_FLAGS=\"[^\"]*\"|GO_BUILD_FLAGS=\"${GO_BUILD_FLAGS}\"|" \
+ -e "s|go test |go test ${GO_BUILD_FLAGS} |" \
+ -i ./test || die
+}
+
+src_compile() {
+ ./build.sh || die
+}
+
+src_test() {
+ ./test || die
+}
+
+src_install() {
+ dobin bin/etcdctl
+ use doc && dodoc -r Documentation
+ if use server; then
+ insinto /etc/${PN}
+ sed -e 's|^data-dir:|\0 /var/lib/etcd|' -i etcd.conf.yml.sample || die
+ newins etcd.conf.yml.sample etcd.conf.yml
+ dobin bin/etcd
+ dodoc README.md
+ systemd_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
+ newtmpfiles "${FILESDIR}/${PN}.tmpfiles.d.conf" ${PN}.conf
+ newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd-r1 ${PN}
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}.logrotated" "${PN}"
+ keepdir /var/lib/${PN} /var/log/${PN}
+ fowners ${PN}:${PN} /var/lib/${PN} /var/log/${PN}
+ fperms 0700 /var/lib/${PN}
+ fperms 0755 /var/log/${PN}
+ fi
+}
+
+pkg_postinst() {
+ if use server; then
+ tmpfiles_process ${PN}.conf
+ fi
+}
diff --git a/dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild b/dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild
index cf1793d314a8..5fd90979b8e5 100644
--- a/dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild
+++ b/dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_P=${PN/f/F}-$(ver_rs 4 '-')
-inherit autotools flag-o-matic
+inherit autotools flag-o-matic toolchain-funcs
DESCRIPTION="Relational database offering many ANSI SQL:2003 and some SQL:2008 features"
HOMEPAGE="https://www.firebirdsql.org/"
@@ -91,6 +91,10 @@ src_prepare() {
-e 's:ISQL :FBSQL :w /dev/stdout' \
src/msgs/messages2.sql | wc -l)" "6" "src/msgs/messages2.sql" # 6 lines
+ # bug #917662, bug #924659
+ filter-lto
+ append-flags -fno-strict-aliasing $(test-flags-CXX -fno-lifetime-dse)
+
# use gentoo's CXXFLAGS instead of whatever firebird decided on
# doesn't replace all firebird's CXXFLAGS, but at least this is last,
# so it can do some overrides
diff --git a/dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild b/dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild
index 171554c2aebe..6f2ba7ca3b89 100644
--- a/dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild
+++ b/dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -93,6 +93,10 @@ src_configure() {
filter-flags -fprefetch-loop-arrays
filter-mfpmath sse
+ # bug #917662, bug #924659
+ filter-lto
+ append-flags -fno-strict-aliasing $(test-flags-CXX -fno-lifetime-dse)
+
# otherwise this doesnt build with gcc-6
# http://tracker.firebirdsql.org/browse/CORE-5099
append-cflags -fno-sized-deallocation -fno-delete-null-pointer-checks
diff --git a/dev-db/gqlplus/gqlplus-1.16-r2.ebuild b/dev-db/gqlplus/gqlplus-1.16-r2.ebuild
index 0d2c4b3310e7..ea1d31916619 100644
--- a/dev-db/gqlplus/gqlplus-1.16-r2.ebuild
+++ b/dev-db/gqlplus/gqlplus-1.16-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="a front-end for Oracle program sqlplus with command-line editing"
HOMEPAGE="https://gitlab.com/jessp011/gqlplus"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz
https://dev.gentoo.org/~grobian/distfiles/gqlplus-1.16-sqlplus-handling-fixes.patch"
LICENSE="GPL-2"
diff --git a/dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild b/dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild
index 8c19f12a1155..b41ee414d576 100644
--- a/dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild
+++ b/dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -12,7 +12,7 @@ MY_P="${PN}_${MY_PV}"
DESCRIPTION="The leading SQL relational database engine written in Java"
HOMEPAGE="http://hsqldb.org"
-SRC_URI="mirror://sourceforge/${PN}/${MY_P}.zip"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.zip"
LICENSE="BSD GPL-2"
SLOT="0"
diff --git a/dev-db/influxdb/Manifest b/dev-db/influxdb/Manifest
index 747e0c19b0f5..11b7a47c667e 100644
--- a/dev-db/influxdb/Manifest
+++ b/dev-db/influxdb/Manifest
@@ -66,6 +66,9 @@ DIST influxdb-1.8.10.tar.gz 12082933 BLAKE2B 511202025bd0c2305b8fa3b8be439f6e294
DIST influxdb-2.7.3-assets.tar.gz 19829786 BLAKE2B 1ca0fe1a6265329b226eb4de0d1310e71b766bcd8d05f636e3ee0c75c2b9f50c90b8c7f38225c0380b3074f84eb07805a7d42cf06cfbdac3b8b1ffad3befb8e5 SHA512 85f49e3e5a262fcecb801b3ba91157557fa30933a9cc210f2ad7395d3165225fba2f50190e452f76b2567adb765aba297dbcb425d388851f742edd55375da135
DIST influxdb-2.7.3-deps.tar.xz 421383868 BLAKE2B 0590a5023de66cb01772ed2d18f993f8e706e1dfd8fb1a7f191bfe0244baa16610537f87b20fd16b840b04afc7b5f97cc751a8ba1bc9f179f31bada73b51052e SHA512 f0130c57db60fa3ff622cf646d234f1bc47eccded070ad959df541f8c0ce3a9feefeb86f9bf1b7fbdf562347d40e8eabd42ad65b5a415dec9e74b9542ca31a6e
DIST influxdb-2.7.3.tar.gz 14249851 BLAKE2B d859330ece0aa0dc0eb2ce7246d0ee7a1f25796dd436d102b402255a4c463a93e0369287228b4f840ee333aa3509882aaadddfae901e9e2842cfed6d582032c4 SHA512 4d9f2faa742fda0366d3386487461d6dd06f6ad27589db3b87ce37242ee9b335e96028d6685683d2691cd2424a1a8d2fff535056eb290af0a1152883767f02b5
+DIST influxdb-2.7.5-assets.tar.gz 19829786 BLAKE2B 1ca0fe1a6265329b226eb4de0d1310e71b766bcd8d05f636e3ee0c75c2b9f50c90b8c7f38225c0380b3074f84eb07805a7d42cf06cfbdac3b8b1ffad3befb8e5 SHA512 85f49e3e5a262fcecb801b3ba91157557fa30933a9cc210f2ad7395d3165225fba2f50190e452f76b2567adb765aba297dbcb425d388851f742edd55375da135
+DIST influxdb-2.7.5-deps.tar.xz 459263596 BLAKE2B 13c6a2e3539960ec01b2d9132c54e47e4f178e66fa5eba07b63969c657fb4a69fa700a59d90201b768d52b57b449fbf330ae91463e22b818a5f7bf3918937d91 SHA512 cfc4bef0e33e29c54c529a20711753ac5da3c8a89af3a81bcb9612e745254fca9850751f69eec05f7c22959f8a7b240fc52d96b1dba7ed36c907d6c9206618b9
+DIST influxdb-2.7.5.tar.gz 14259860 BLAKE2B edcb6228bcc1267bdeb93bb0e34e65d4e97873f10a6e45a919e21e3aa82b2f8ddc02d77c05ea37ec5b5e04222b34e5e74af99dbe85af63fa78dff841316024fc SHA512 895dfc031a18551822dd6ba17a4bdf5e6cef2bd67aa373188b8263a6ab389bd7b6c001ebe47bb945307cf71de2b03a9fa48d2bcc60cda8cbf1b569a09572395e
DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
DIST io-lifetimes-1.0.10.crate 37294 BLAKE2B 9b8836c4bf30e6d102fd9973ac66f067c3ff8bc2806e55f26368ebdc9854f2e9cc6eecc8014f9a0b22a968a6eea8be243fcb7a641d2d0dfc747ee08a6a1450bb SHA512 4b2cde9522780a408c5d4e6406286bc5dd3a0de1a99675129e9856e5d889498a127fd5dd7c937a7542135abc2213b60bfb6258b7871b8709dcdd79d60455bea9
DIST itertools-0.10.5.crate 115354 BLAKE2B f24734bdfedf1dba48554e39b43669efcd4a43656eeb2c511096060daeaf049e1ad3eab232e757057750ce94aabad9fc8a0cf29a997edc6c4b167301c3443391 SHA512 d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3
diff --git a/dev-db/influxdb/influxdb-2.7.5.ebuild b/dev-db/influxdb/influxdb-2.7.5.ebuild
new file mode 100644
index 000000000000..32422fb6df90
--- /dev/null
+++ b/dev-db/influxdb/influxdb-2.7.5.ebuild
@@ -0,0 +1,284 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ adler32@1.2.0
+ ahash@0.7.6
+ aho-corasick@0.7.20
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ anyhow@1.0.70
+ arrayvec@0.5.2
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitflags@2.0.2
+ bumpalo@3.12.0
+ cast@0.3.0
+ cc@1.0.79
+ cfg-if@1.0.0
+ chrono@0.4.24
+ clap@2.34.0
+ codespan-reporting@0.11.1
+ colored@2.0.0
+ core-foundation-sys@0.8.4
+ crc32fast@1.3.2
+ criterion-plot@0.4.5
+ criterion@0.3.6
+ crossbeam-channel@0.5.7
+ crossbeam-deque@0.8.3
+ crossbeam-epoch@0.9.14
+ crossbeam-utils@0.8.15
+ csv-core@0.1.10
+ csv@1.2.1
+ ctor@0.1.26
+ cxx-build@1.0.94
+ cxx@1.0.94
+ cxxbridge-flags@1.0.94
+ cxxbridge-macro@1.0.94
+ derivative@2.2.0
+ derive_more@0.99.17
+ diff@0.1.13
+ dissimilar@1.0.6
+ either@1.8.1
+ ena@0.14.2
+ env_logger@0.9.3
+ errno-dragonfly@0.1.2
+ errno@0.3.0
+ expect-test@1.4.1
+ fallible-iterator@0.2.0
+ fallible-streaming-iterator@0.1.9
+ fastrand@1.9.0
+ flatbuffers@22.12.6
+ fnv@1.0.7
+ form_urlencoded@1.1.0
+ getrandom@0.2.8
+ half@1.8.2
+ hashbrown@0.12.3
+ hashlink@0.8.1
+ heck@0.3.3
+ hermit-abi@0.1.19
+ hermit-abi@0.2.6
+ hermit-abi@0.3.1
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.1
+ iana-time-zone@0.1.56
+ idna@0.3.0
+ indexmap@1.9.3
+ instant@0.1.12
+ io-lifetimes@1.0.10
+ itertools@0.10.5
+ itoa@1.0.6
+ js-sys@0.3.61
+ lazy_static@1.4.0
+ libc@0.2.141
+ libflate@1.3.0
+ libflate_lz77@1.2.0
+ libsqlite3-sys@0.26.0
+ link-cplusplus@1.0.8
+ linux-raw-sys@0.3.1
+ lock_api@0.4.9
+ log@0.4.17
+ lsp-types@0.91.1
+ maplit@1.0.2
+ memchr@2.5.0
+ memoffset@0.8.0
+ num-integer@0.1.45
+ num-traits@0.2.15
+ num_cpus@1.15.0
+ once_cell@1.17.1
+ oorandom@11.1.3
+ ordered-float@3.6.0
+ output_vt100@0.1.3
+ pad@0.1.6
+ parking_lot@0.11.2
+ parking_lot_core@0.8.6
+ percent-encoding@2.2.0
+ pkg-config@0.3.26
+ plotters-backend@0.3.4
+ plotters-svg@0.3.3
+ plotters@0.3.4
+ pretty@0.11.3
+ pretty_assertions@1.3.0
+ proc-macro-error-attr@1.0.4
+ proc-macro-error@1.0.4
+ proc-macro2@1.0.56
+ pulldown-cmark@0.9.2
+ quote@1.0.26
+ rayon-core@1.11.0
+ rayon@1.7.0
+ redox_syscall@0.2.16
+ redox_syscall@0.3.5
+ regex-syntax@0.6.29
+ regex@1.7.3
+ rle-decode-fast@1.0.3
+ rusqlite@0.29.0
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ rustix@0.37.7
+ ryu@1.0.13
+ salsa-macros@0.17.0-pre.2
+ salsa@0.17.0-pre.2
+ same-file@1.0.6
+ scopeguard@1.1.0
+ scratch@1.0.5
+ semver@1.0.17
+ serde@1.0.159
+ serde_cbor@0.11.2
+ serde_derive@1.0.159
+ serde_json@1.0.95
+ serde_repr@0.1.12
+ smallvec@1.10.0
+ strsim@0.8.0
+ structopt-derive@0.4.18
+ structopt@0.3.26
+ syn@1.0.109
+ syn@2.0.13
+ tempfile@3.5.0
+ termcolor@1.2.0
+ textwrap@0.11.0
+ thiserror-impl@1.0.40
+ thiserror@1.0.40
+ tinytemplate@1.2.1
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ typed-arena@2.0.2
+ unicase@2.6.0
+ unicode-bidi@0.3.13
+ unicode-ident@1.0.8
+ unicode-normalization@0.1.22
+ unicode-segmentation@1.10.1
+ unicode-width@0.1.10
+ url@2.3.1
+ vcpkg@0.2.15
+ vec_map@0.8.2
+ version_check@0.9.4
+ walkdir@2.3.3
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.84
+ wasm-bindgen-macro-support@0.2.84
+ wasm-bindgen-macro@0.2.84
+ wasm-bindgen-shared@0.2.84
+ wasm-bindgen@0.2.84
+ web-sys@0.3.61
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-sys@0.45.0
+ windows-sys@0.48.0
+ windows-targets@0.42.2
+ windows-targets@0.48.0
+ windows@0.48.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.0
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.0
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.0
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.0
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.0
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.0
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.0
+ yansi@0.5.1
+"
+
+inherit cargo go-module systemd
+
+DESCRIPTION="Scalable datastore for metrics, events, and real-time analytics"
+HOMEPAGE="https://www.influxdata.com"
+
+FLUX_PV="0.194.5"
+
+SRC_URI="https://github.com/influxdata/influxdb/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://github.com/influxdata/ui/releases/download/OSS-v2.7.1/build.tar.gz -> ${P}-assets.tar.gz"
+SRC_URI+=" https://gentoo.kropotkin.rocks/go-pkgs/${P}-deps.tar.xz"
+SRC_URI+=" ${CARGO_CRATE_URIS}"
+
+LICENSE="Apache-2.0 BSD BSD-2 EPL-2.0 ISC MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="virtual/pkgconfig"
+
+DEPEND="
+ acct-group/influxdb
+ acct-user/influxdb
+"
+RDEPEND="${DEPEND}"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ default
+
+ local data_dir
+ data_dir="${S}/static/data"
+ mkdir "${data_dir}" || die
+ mv "${WORKDIR}/build" "${data_dir}" || die
+}
+
+src_compile() {
+ mv "${WORKDIR}/go-mod" "${WORKDIR}/go-mod-tmp" || die
+ mv "${WORKDIR}/go-mod-tmp/github.com/influxdata/pkg-config@v0.2.11/go-mod" "${WORKDIR}/go-mod" || die
+ cd "${WORKDIR}"/go-mod-tmp/github.com/influxdata/pkg-config* || die
+ ego build .
+ mv "${WORKDIR}/go-mod" "${WORKDIR}/go-mod-tmp/github.com/influxdata/pkg-config@v0.2.11" || die
+ mv "${WORKDIR}/go-mod-tmp" "${WORKDIR}/go-mod" || die
+
+ cd "${WORKDIR}/go-mod/github.com/influxdata/flux@v${FLUX_PV}/libflux" || die
+ cargo_src_compile
+
+ cd "${S}" || die
+
+ export PKG_CONFIG="${WORKDIR}/go-mod/github.com/influxdata/pkg-config@v0.2.11/pkg-config"
+ ego generate ./static
+ GOBIN="${S}/bin" \
+ ego install \
+ -tags 'assets,noasm,sqlite_json,sqlite_foreign_keys' \
+ -ldflags="-X main.version=${PV}" \
+ ./...
+}
+
+src_test() {
+ ego test ./tests
+}
+
+src_install() {
+ dobin bin/influx*
+ dodoc *.md
+ cd .circleci/scripts/package/influxdb2/fs || die
+ systemd_dounit usr/lib/influxdb/scripts/influxdb.service
+ exeinto /usr/lib/influxdb/scripts
+ doexe usr/lib/influxdb/scripts/influxd-systemd-start.sh
+ exeinto /usr/share/influxdb
+ doexe usr/share/influxdb/influxdb2-upgrade.sh
+ newconfd "${FILESDIR}"/influxdb.confd-r1 influxdb
+ newinitd "${FILESDIR}"/influxdb.initd-r1 influxdb
+ keepdir /var/log/influxdb
+ fowners influxdb:influxdb /var/log/influxdb
+
+ newenvd - "99${PN}" <<-_EOF_
+ INFLUXD_CONFIG_PATH="/etc/influxdb"
+ _EOF_
+}
+
+pkg_postinst() {
+ elog "Upgrading from InfluxDB1.x requires migration of time series data."
+ elog "See https://docs.influxdata.com/influxdb/v2.7/upgrade/v1-to-v2/"
+ elog "Keep in mind that some applications not compatible with InfluxDB 2.x"
+ elog "may stop working."
+
+ ewarn "The InfluxDB command line client has been moved to dev-db/influx-cli"
+ ewarn "You will need to install it separately"
+}
diff --git a/dev-db/kdb/kdb-3.2.0-r2.ebuild b/dev-db/kdb/kdb-3.2.0-r2.ebuild
index 2e2a884ebb5a..f62284ddcc1d 100644
--- a/dev-db/kdb/kdb-3.2.0-r2.ebuild
+++ b/dev-db/kdb/kdb-3.2.0-r2.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ECM_QTHELP="true"
ECM_TEST="true"
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{9..12} )
KFMIN=5.82.0
QTMIN=5.15.2
inherit ecm kde.org python-any-r1
@@ -61,6 +61,7 @@ pkg_setup() {
src_configure() {
local mycmakeargs=(
+ -DCMAKE_CXX_STANDARD=17
-DKDB_DEBUG_GUI=$(usex debug)
$(cmake_use_find_package mysql MySQL)
$(cmake_use_find_package postgres PostgreSQL)
diff --git a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild
index 94df2fd46940..55f80228a0b7 100644
--- a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild
+++ b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="The libdbi-drivers project maintains drivers for libdbi"
HOMEPAGE="http://libdbi-drivers.sourceforge.net/"
-SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${P}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${P}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
diff --git a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild
index 243151ab44aa..0f7e30695892 100644
--- a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild
+++ b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="The libdbi-drivers project maintains drivers for libdbi"
HOMEPAGE="https://libdbi-drivers.sourceforge.net/"
-SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${P}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${P}/${P}.tar.gz"
LICENSE="LGPL-2.1+"
SLOT="0"
diff --git a/dev-db/libdbi/libdbi-0.9.0.ebuild b/dev-db/libdbi/libdbi-0.9.0.ebuild
index 522fc495b9bd..88e08dd0b03b 100644
--- a/dev-db/libdbi/libdbi-0.9.0.ebuild
+++ b/dev-db/libdbi/libdbi-0.9.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="A database-independent abstraction layer in C"
HOMEPAGE="http://libdbi.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
diff --git a/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild b/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild
index 7fb107403c2a..20ad11e77055 100644
--- a/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild
+++ b/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,7 +6,7 @@ EAPI=8
inherit flag-o-matic
DESCRIPTION="Provides a subset of the well-known JDBC 2.0(tm) and runs on top of ODBC"
-SRC_URI="mirror://sourceforge/libodbcxx/${P}.tar.bz2"
+SRC_URI="https://downloads.sourceforge.net/libodbcxx/${P}.tar.bz2"
HOMEPAGE="http://libodbcxx.sourceforge.net/"
LICENSE="LGPL-2.1"
diff --git a/dev-db/litecli/Manifest b/dev-db/litecli/Manifest
index c5b049c04ec9..a0467c888fe4 100644
--- a/dev-db/litecli/Manifest
+++ b/dev-db/litecli/Manifest
@@ -1 +1,2 @@
DIST litecli-1.10.0.tar.gz 887727 BLAKE2B 141a13760ce24530a72d2a1fb1c896378f1f35a9354b8a6b553792607337b2ea861481f995f1ff016ac4fca1c7bde1aada4c193acd388fdf03095900b137c303 SHA512 aa497fe050f4e1135f2c63f4c0cbab736400158c546a0391f3eca956b38132349ad2eb46505beb52651f74bc5ff1a2ba9b0254e7a6a86d79e461fdd0508fb412
+DIST litecli-1.10.1.tar.gz 887832 BLAKE2B 304feead856a148726f729abd46d91fb2d0bbf7d99e05d437814c0e254f7e957f132317194e01e4dd62ddcdd2dda15c1fcba71c3086f286dd6aeb4aefe419f64 SHA512 f53c04a101f8abe52e81450309b6eab766742b0d26900608024ac8112efdc959787ea3c5997e9647529f65a17544ee31cc70f14b503a9ad3566d545568d822dd
diff --git a/dev-db/litecli/litecli-1.10.0.ebuild b/dev-db/litecli/litecli-1.10.0.ebuild
index fc8f2ae015b3..4efad25ead82 100644
--- a/dev-db/litecli/litecli-1.10.0.ebuild
+++ b/dev-db/litecli/litecli-1.10.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/dbcli/litecli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
RDEPEND="
>=dev-python/click-4.1[${PYTHON_USEDEP}]
diff --git a/dev-db/litecli/litecli-1.10.1.ebuild b/dev-db/litecli/litecli-1.10.1.ebuild
new file mode 100644
index 000000000000..ae7764cb1ede
--- /dev/null
+++ b/dev-db/litecli/litecli-1.10.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="sqlite"
+inherit distutils-r1
+
+DESCRIPTION="CLI for SQLite with auto-completion and syntax highlighting"
+HOMEPAGE="https://litecli.com/ https://github.com/dbcli/litecli"
+SRC_URI="https://github.com/dbcli/litecli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/click-4.1[${PYTHON_USEDEP}]
+ >=dev-python/cli-helpers-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/configobj-5.0.5[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.3[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.5[${PYTHON_USEDEP}]
+ dev-python/sqlparse[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-db/litedb/litedb-5.0.17-r2.ebuild b/dev-db/litedb/litedb-5.0.17-r2.ebuild
index c80809087ccb..f50faa02587b 100644
--- a/dev-db/litedb/litedb-5.0.17-r2.ebuild
+++ b/dev-db/litedb/litedb-5.0.17-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -243,7 +243,7 @@ else
-> ${P}.tar.gz"
S="${WORKDIR}/${MY_PN}-${PV}"
- KEYWORDS="~amd64"
+ KEYWORDS="amd64"
fi
SRC_URI+=" ${NUGET_URIS} "
diff --git a/dev-db/lmdb++/Manifest b/dev-db/lmdb++/Manifest
index 3fe4301e3c50..01c14d23350a 100644
--- a/dev-db/lmdb++/Manifest
+++ b/dev-db/lmdb++/Manifest
@@ -1,2 +1,2 @@
-DIST lmdbxx-0.9.14.0.tar.gz 14732 BLAKE2B c6c1217dc7bd56051152cba594b7aa571a055e5c155f777639569abbe38360f808dcd2858ca124db97e37147aa4e90df68fd1a8d23137b5e6663df0c2f0a84be SHA512 8eff8c89e0cb9989d8a0cedfd483856aeb2fcf810d59cf8afca3086034711ff22f2bb88ba967ef745d36fdaa1b5e79fb75655af764cddcdb2ac59fc255da670d
+DIST lmdbxx-0.9.14.0.tar.xz 13404 BLAKE2B 6832ca8424e2a7ee180f592b0ef57ace3373ead94c7acbbcfb632f75013bba8ebb8e82fc2335729344d21f7cd6b564d85579d6104b5f41052472ac892a350fba SHA512 b591c7e1189a035c703d336d3083d07b998c37743f4f2c35dfe003a7cbe239ca840cfd43b9d84b87ee7c48bbe06defe54d37c8ba85ecf1e73aadfe6deac26868
DIST lmdbxx-1.0.0.tar.gz 52441 BLAKE2B 203173132a9c84c2d6a53799f8acc92dac5bd075b69f7b25e8eee3341933ccdd868eb190cef07371469856e32fc42215c5395db61f141863f60a5d0a2b888790 SHA512 54f6c4863273b4de8aed6bc19f353c7a66d8ae633198e9784c55cea8e54460e4030ebe45e91a7c820aade084933f21cd4193ef8c04bb2aef11bf252281404171
diff --git a/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild b/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild
index 62c9abb00e81..e743d0e60d4c 100644
--- a/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild
+++ b/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -8,7 +8,7 @@ S="${WORKDIR}/${MY_P}"
DESCRIPTION="C++11 wrapper for the LMDB database library"
HOMEPAGE="http://lmdbxx.sourceforge.net/"
-SRC_URI="mirror://sourceforge/lmdbxx/${PV}/${MY_P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/lmdbxx/${PV}/${MY_P}.tar.xz"
LICENSE="public-domain"
SLOT="0"
diff --git a/dev-db/lmdb/Manifest b/dev-db/lmdb/Manifest
index 8b9290f5a694..3de8f185e0a8 100644
--- a/dev-db/lmdb/Manifest
+++ b/dev-db/lmdb/Manifest
@@ -1 +1,2 @@
DIST openldap-LMDB_0.9.31.tar.gz 145086 BLAKE2B 8df437c27cb9d40b71a8e9f516c503676dade2342c9d618dcfff6081bf0034f67d1216a6a25a364e7dacd588acb2e254b98486efade12307fa3ad7977be5ed54 SHA512 318aa89b7e39f98f636dba01620f866ddc255d81a2d4def8a9d9fdd80878608db1ac7b60bde58e954aba802d94df42786a9cd00d0c7e11646f09fd5d64821ac4
+DIST openldap-LMDB_0.9.32.tar.gz 149188 BLAKE2B 8c15585a10644b791e54d3344c91ad1d86da0af06b02361685ec365309c8188dfd253d7a10f8708cd7f22363f99cc71aaaa170cc3349183f06d0765216cc19ef SHA512 3b8d45085f7a679e27f4b1d8b0a62531d4897d27c2a17f424462da07bd88f6c8fe8d64f866203c9e301b353dff1036fc48d9801917e97cfe7d3fd28f2d918d7a
diff --git a/dev-db/lmdb/lmdb-0.9.32.ebuild b/dev-db/lmdb/lmdb-0.9.32.ebuild
new file mode 100644
index 000000000000..192658950b08
--- /dev/null
+++ b/dev-db/lmdb/lmdb-0.9.32.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit flag-o-matic multilib multilib-minimal toolchain-funcs
+
+MY_P="${PN^^}_${PV}"
+
+DESCRIPTION="An ultra-fast, ultra-compact key-value embedded data store"
+HOMEPAGE="https://symas.com/lmdb/technical/"
+SRC_URI="https://git.openldap.org/openldap/openldap/-/archive/${MY_P}/openldap-${MY_P}.tar.gz"
+S="${WORKDIR}/openldap-${MY_P}/libraries/liblmdb"
+
+LICENSE="OPENLDAP"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="static-libs"
+
+src_prepare() {
+ default
+ if [[ ${CHOST} == *-darwin* && ${CHOST#*-darwin} -lt 10 ]] ; then
+ # posix_memalign isn't available before 10.6, but on OSX
+ # malloc is always aligned for any addressable type
+ sed -i -e '/(__APPLE__)/a#define HAVE_MEMALIGN 1\n#define memalign(X,Y) malloc(X)' mdb.c || die
+ fi
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local soname="-Wl,-soname,liblmdb$(get_libname 0)"
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ soname="-dynamiclib -install_name ${EPREFIX}/usr/$(get_libdir)/liblmdb$(get_libname 0)"
+ replace-flags -O[123456789] -O1
+ fi
+ sed -i -e "s!^CC.*!CC = $(tc-getCC)!" \
+ -e "s!^CFLAGS.*!CFLAGS = ${CFLAGS}!" \
+ -e "s!^AR.*!AR = $(tc-getAR)!" \
+ -e "s!^SOEXT.*!SOEXT = $(get_libname)!" \
+ -e "/^prefix/s!/usr/local!${EPREFIX}/usr!" \
+ -e "/^libdir/s!lib\$!$(get_libdir)!" \
+ -e "s!shared!shared ${soname}!" \
+ "Makefile" || die
+}
+
+multilib_src_compile() {
+ emake LDLIBS+=" -pthread"
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+
+ mv "${ED}"/usr/$(get_libdir)/liblmdb$(get_libname) \
+ "${ED}"/usr/$(get_libdir)/liblmdb$(get_libname 0) || die
+ dosym liblmdb$(get_libname 0) /usr/$(get_libdir)/liblmdb$(get_libname)
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins "${FILESDIR}/lmdb.pc"
+ sed -i -e "s!@PACKAGE_VERSION@!${PV}!" \
+ -e "s!@prefix@!${EPREFIX}/usr!g" \
+ -e "s!@libdir@!$(get_libdir)!" \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/lmdb.pc || die
+
+ if ! use static-libs; then
+ rm "${ED}"/usr/$(get_libdir)/liblmdb.a || die
+ fi
+}
diff --git a/dev-db/mariadb/Manifest b/dev-db/mariadb/Manifest
index 993df4a61536..d0ec58a3a7ae 100644
--- a/dev-db/mariadb/Manifest
+++ b/dev-db/mariadb/Manifest
@@ -2,8 +2,10 @@ DIST mariadb-10.11.3-patches-01.tar.xz 4984 BLAKE2B abc78c83505c745ab7320b99dcda
DIST mariadb-10.11.5.tar.gz 99709948 BLAKE2B 97429df4f0a10eb72c74dd0e951954b7c096a6b42fdaa97c682d1409e2a21716171a2b66aae6ec8ab3f4371bed57aff1f054554d398242e413d5c8e7ad988da4 SHA512 851e6508c1e495afa608a8bcd5c62faa5800e69cc1ba81b9366bf250e07ce8a9801a4ee07ecbaec4b57180c9b3bf2ed8acb7f5f03dd37a87a53928bfd4dfe559
DIST mariadb-10.11.6-patches-01.tar.xz 4980 BLAKE2B 62edcb60484d61683eb7733bb29f2f7e227d943cf95ff84373f25a8e438b1ca8d3b4a1e3f46f70722dd9abd43679e12f4cef1c2bfb3d01f8f23f68f6ab7cbd50 SHA512 2bdaaa026ac95d6edf50a1f46e77f8295e98504f978bb55d405267faf56150c17e52682a0334132eae1230c814b5cf458616e1abefb1dd580d160f952e5294f1
DIST mariadb-10.11.6.tar.gz 99586625 BLAKE2B 8fa1d8b8c1f0206ecb8bf754f918d22f42befc816c7bb9f83641b0d71d737177f593d244477fc399cd7a3c3fa3e97f96af329d83e8848c9850f59cbb05ecab48 SHA512 3d77f7be4a26d5a36af56150a5f8ed5e21adeed9bc8ea1bd694e47a25a571bd73468eada7c96e0dfe5a6c81bef625abf71a56d228cf43a738e555e3c0d824a6a
+DIST mariadb-10.11.7.tar.gz 100584592 BLAKE2B 621204ded34097a643d0766292dca8b30d4d28f509db9159939c6b0735959e9fcf563a6c1760daff0a659fa5b3d7da7e0282add4b96b45c3004cdcf23e5312f6 SHA512 a6ebc9ba88b52e5d339b176b6fa48c03fcbe5bb590740a02c1bbd083a3d62e619937e645de2504a9f9adeed2f67127fab0307dece524b7c5217ad5df0f3ccc71
DIST mariadb-10.6.13-patches-01.tar.xz 4984 BLAKE2B 625d04310b02aad4fec4b633e9fab06636364f3c5ed3cb88e89acd4224786c3c9ed478b636ac699e77a888b73dab12cb279df41d6095e93e9c4ae3a159570286 SHA512 1e6ac167bfd77570e8ff5955aaa9a101d9387ac4857d856f1fb8c9a489c4c2a154481b9385584435e8dc95baef0dd3ef6831c7de2d6f004401cc338edcaa9d12
DIST mariadb-10.6.14.tar.gz 95286643 BLAKE2B 4a186f3f52b63ab7321aa7556776ff8a986bd602d78dc6a143cc3bfdfd8cc09b0a22688cba02b8907f4b3f0d1e7c640f5caad768c1e89486d6af24e6cf3168a8 SHA512 11b88480ac61303172e98ed3271c8172e840cded5175caba1469d6ec063df647b536ee6e95f110abd8d95d95c9b8d7edf1cb611113be225d5e8eeb2041f86438
DIST mariadb-10.6.15.tar.gz 98204031 BLAKE2B 4534b82f1c1e16ce2c7c21879714e24b20fada36ef10a8a0dbe770c1d99055822fcaf146646b19b459cfd948bff0662d23f1f661a843919f90a354838bda7ee6 SHA512 61b5af8c2f8bd2f641aaa708941563d5f6ecc118acc9a154c009c3ae1d50e7360ae59241f87e5c2111775a3ffeb42a64f4853e9c7096b58d68a3695b5d0ef97c
DIST mariadb-10.6.16-patches-01.tar.xz 4956 BLAKE2B a178930f7abe474e1419509c0bbabf783e1b931cfc3f4b4bddf426d9671d4e69e62a800d759f424f957562091c634049e594332ab15dc758e98d26c48ba69d1d SHA512 42969e6881cf2548c48fcce7f8439c9d56596ef038d55affcada45f4cd42a3666617f5786b69fe9ba42f11b06e85f43b722f2190aa7ed5badb461c48282751e5
DIST mariadb-10.6.16.tar.gz 98224346 BLAKE2B f5b51df0b8665b817e81b5f0550019627fb41fa682c5cf5acfac30add46442ad9338da39283b09f97f2108e3677c249c2b7395c9c9f5b97e8648c879d654c7f1 SHA512 05d509d5f7a672b897f42674884df0debcae0b75c4eaa6d67645343c596c81c0c41d474a59150108428bf9f2c4468ca05650afb616aac5d1ea09fd2cea258a7f
+DIST mariadb-10.6.17.tar.gz 99067793 BLAKE2B 9df7592eb11a92fc4cbf4f1913e11f7ae652effde44358ee930726473a40fc26e46e02dc79e8b16068df37c82afe6b3141305624174d2e44c53107065c57b1ee SHA512 e07cf3e90d93d6139969875b11d6df3210b2c9f69257688b392843a7caed0dc3b75ba8904384fd0a55c24ece624e04b68c005a3731ee68f3957787a27b52ad56
diff --git a/dev-db/mariadb/mariadb-10.11.7.ebuild b/dev-db/mariadb/mariadb-10.11.7.ebuild
new file mode 100644
index 000000000000..4659641ec020
--- /dev/null
+++ b/dev-db/mariadb/mariadb-10.11.7.ebuild
@@ -0,0 +1,1320 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+SUBSLOT="18"
+
+JAVA_PKG_OPT_USE="jdbc"
+
+inherit systemd flag-o-matic prefix toolchain-funcs \
+ multiprocessing java-pkg-opt-2 cmake
+
+HOMEPAGE="https://mariadb.org/"
+SRC_URI="mirror://mariadb/${PN}-${PV}/source/${P}.tar.gz
+ https://github.com/hydrapolic/gentoo-dist/raw/master/mariadb/mariadb-10.11.6-patches-01.tar.xz"
+
+DESCRIPTION="An enhanced, drop-in replacement for MySQL"
+LICENSE="GPL-2 LGPL-2.1+"
+SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}"
+IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4
+ innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga
+ numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx
+ sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc
+ test xml yassl"
+
+RESTRICT="!bindist? ( bindist ) !test? ( test )"
+
+REQUIRED_USE="jdbc? ( extraengine server !static )
+ ?? ( tcmalloc jemalloc )
+ static? ( yassl !pam )
+ test? ( extraengine )"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~x86"
+
+# 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="
+ dev-libs/libfmt:=
+ >=dev-libs/libpcre2-10.34:=
+ >=sys-apps/texinfo-4.7-r1
+ sys-libs/ncurses:0=
+ >=sys-libs/zlib-1.2.3:0=
+ virtual/libcrypt:=
+ !bindist? (
+ sys-libs/binutils-libs:0=
+ >=sys-libs/readline-4.1:0=
+ )
+ jemalloc? ( dev-libs/jemalloc:0= )
+ kerberos? ( virtual/krb5 )
+ kernel_linux? (
+ dev-libs/libaio:0=
+ sys-libs/liburing:=
+ sys-process/procps:0=
+ )
+ server? (
+ app-arch/bzip2
+ app-arch/xz-utils
+ backup? ( app-arch/libarchive:0= )
+ columnstore? (
+ app-arch/snappy:=
+ dev-libs/boost:=
+ dev-libs/libxml2:2=
+ )
+ cracklib? ( sys-libs/cracklib:0= )
+ extraengine? (
+ odbc? ( dev-db/unixODBC:0= )
+ xml? ( dev-libs/libxml2:2= )
+ )
+ innodb-lz4? ( app-arch/lz4 )
+ innodb-lzo? ( dev-libs/lzo )
+ innodb-snappy? ( app-arch/snappy:= )
+ mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 )
+ numa? ( sys-process/numactl )
+ oqgraph? (
+ dev-libs/boost:=
+ dev-libs/judy:0=
+ )
+ pam? ( sys-libs/pam:0= )
+ s3? ( net-misc/curl )
+ systemd? ( sys-apps/systemd:= )
+ )
+ systemtap? ( >=dev-debug/systemtap-1.3:0= )
+ tcmalloc? ( dev-util/google-perftools:0= )
+ yassl? ( net-libs/gnutls:0= )
+ !yassl? (
+ >=dev-libs/openssl-1.0.0:0=
+ )
+"
+BDEPEND="app-alternatives/yacc"
+DEPEND="${COMMON_DEPEND}
+ server? (
+ extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) )
+ test? ( acct-group/mysql acct-user/mysql )
+ )
+ static? ( sys-libs/ncurses[static-libs] )
+"
+RDEPEND="${COMMON_DEPEND}
+ !dev-db/mysql !dev-db/percona-server
+ !dev-db/mariadb:10.3
+ !dev-db/mariadb:10.4
+ !dev-db/mariadb:10.5
+ !dev-db/mariadb:10.6
+ !dev-db/mariadb:10.7
+ !dev-db/mariadb:10.8
+ !dev-db/mariadb:10.9
+ !dev-db/mariadb:10.10
+ !dev-db/mariadb:11.0
+ selinux? ( sec-policy/selinux-mysql )
+ server? (
+ columnstore? ( dev-db/mariadb-connector-c )
+ extraengine? ( jdbc? ( >=virtual/jre-1.8 ) )
+ galera? (
+ sys-apps/iproute2
+ =sys-cluster/galera-26*
+ sst-rsync? ( sys-process/lsof )
+ sst-mariabackup? ( net-misc/socat[ssl] )
+ )
+ !prefix? ( dev-db/mysql-init-scripts acct-group/mysql acct-user/mysql )
+ )
+"
+# For other stuff to bring us in
+# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL
+PDEPEND="perl? ( dev-perl/DBD-MariaDB )"
+
+mysql_init_vars() {
+ MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"}
+ MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
+ MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
+ MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
+
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR=""
+ if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
+ MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \
+ | sed -ne '/datadir/s|^--datadir=||p' \
+ | tail -n1)
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
+ | sed -e 's/.*=\s*//' \
+ | tail -n1)
+ fi
+ fi
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR="${MY_LOCALSTATEDIR}"
+ einfo "Using default MY_DATADIR"
+ fi
+ elog "MySQL MY_DATADIR is ${MY_DATADIR}"
+
+ if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
+ if [[ -e "${MY_DATADIR}" ]] ; then
+ # If you get this and you're wondering about it, see bug #207636
+ elog "MySQL datadir found in ${MY_DATADIR}"
+ elog "A new one will not be created."
+ PREVIOUS_DATADIR="yes"
+ else
+ PREVIOUS_DATADIR="no"
+ fi
+ export PREVIOUS_DATADIR
+ fi
+ else
+ if [[ ${EBUILD_PHASE} == "config" ]]; then
+ local new_MY_DATADIR
+ new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \
+ | sed -ne '/datadir/s|^--datadir=||p' \
+ | tail -n1)
+
+ if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then
+ ewarn "MySQL MY_DATADIR has changed"
+ ewarn "from ${MY_DATADIR}"
+ ewarn "to ${new_MY_DATADIR}"
+ MY_DATADIR="${new_MY_DATADIR}"
+ fi
+ fi
+ fi
+
+ export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+ export MY_LOCALSTATEDIR MY_LOGDIR
+ export MY_DATADIR
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if has test ${FEATURES} ; then
+ # 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
+ fi
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A}
+
+ mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die
+}
+
+src_prepare() {
+ eapply "${WORKDIR}"/mariadb-patches
+ eapply "${FILESDIR}"/${PN}-10.6.11-gssapi.patch
+ eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch
+
+ eapply_user
+
+ _disable_plugin() {
+ echo > "${S}/plugin/${1}/CMakeLists.txt" || die
+ }
+ _disable_engine() {
+ echo > "${S}/storage/${1}/CMakeLists.txt" || die
+ }
+
+ if use jemalloc; then
+ echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt"
+ elif use tcmalloc; then
+ echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt"
+ fi
+
+ local plugin
+ local server_plugins=( handler_socket auth_socket feedback metadata_lock_info
+ locale_info qc_info server_audit sql_errlog auth_ed25519 )
+ local test_plugins=( audit_null auth_examples daemon_example fulltext
+ debug_key_management example_key_management versioning )
+ if ! use server; then # These plugins are for the server
+ for plugin in "${server_plugins[@]}" ; do
+ _disable_plugin "${plugin}"
+ done
+ fi
+
+ if ! use test; then # These plugins are only used during testing
+ for plugin in "${test_plugins[@]}" ; do
+ _disable_plugin "${plugin}"
+ done
+ _disable_engine test_sql_discovery
+ echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die
+ fi
+
+ _disable_engine example
+
+ if ! use oqgraph ; then # avoids extra library checks
+ _disable_engine oqgraph
+ fi
+
+ if use mroonga ; then
+ # Remove the bundled groonga
+ # There is no CMake flag, it simply checks for existance
+ rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga"
+ else
+ _disable_engine mroonga
+ fi
+
+ # Fix static bindings in galera replication
+ sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \
+ "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die
+ sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \
+ "${S}"/wsrep-lib/src/CMakeLists.txt || die
+
+ # Fix galera_recovery.sh script
+ sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \
+ scripts/galera_recovery.sh || die
+
+ sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \
+ "${S}"/scripts/mysql_install_db.sh || die
+
+ cmake_src_prepare
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ # bug #855233 (MDEV-11914, MDEV-25633) at least
+ filter-lto
+ # bug 508724 mariadb cannot use ld.gold
+ tc-ld-disable-gold
+ # Bug #114895, bug #110149
+ filter-flags "-O" "-O[01]"
+
+ # It fails on alpha without this
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ 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
+ local 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/mariadb
+ -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin
+ -DINSTALL_SCRIPTDIR=bin
+ -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql"
+ -DINSTALL_SBINDIR=sbin
+ -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb"
+ -DWITH_COMMENT="Gentoo Linux ${PF}"
+ -DWITH_UNIT_TESTS=$(usex test ON OFF)
+ -DWITH_LIBEDIT=0
+ -DWITH_ZLIB=system
+ -DWITHOUT_LIBWRAP=1
+ -DENABLED_LOCAL_INFILE=1
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DWITH_DEFAULT_COMPILER_OPTIONS=0
+ -DWITH_DEFAULT_FEATURE_SET=0
+ -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)"
+ # 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)
+ -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)"
+ -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
+ -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF)
+ -DCONC_WITH_EXTERNAL_ZLIB=YES
+ -DWITH_EXTERNAL_ZLIB=YES
+ -DSUFFIX_INSTALL_DIR=""
+ -DWITH_UNITTEST=OFF
+ -DWITHOUT_CLIENTLIBS=YES
+ -DCLIENT_PLUGIN_DIALOG=OFF
+ -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF
+ -DCLIENT_PLUGIN_CLIENT_ED25519=OFF
+ -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC
+ -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF
+ )
+ if use test ; then
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test )
+ else
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+ fi
+
+ if ! use yassl ; then
+ mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC )
+ else
+ mycmakeargs+=( -DWITH_SSL=bundled )
+ fi
+
+ # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
+ mycmakeargs+=(
+ -DWITH_READLINE=$(usex bindist 1 0)
+ -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
+ -DENABLE_DTRACE=$(usex systemtap)
+ )
+
+ if use server ; then
+ # Connect and Federated{,X} must be treated special
+ # otherwise they will not be built as plugins
+ if ! use extraengine ; then
+ mycmakeargs+=(
+ -DPLUGIN_CONNECT=NO
+ -DPLUGIN_FEDERATED=NO
+ -DPLUGIN_FEDERATEDX=NO
+ )
+ fi
+
+ mycmakeargs+=(
+ -DWITH_PCRE=system
+ -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO)
+ -DPLUGIN_SPHINX=$(usex sphinx YES NO)
+ -DPLUGIN_AUTH_PAM=$(usex pam YES NO)
+ -DPLUGIN_AWS_KEY_MANAGEMENT=NO
+ -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO)
+ -DPLUGIN_SEQUENCE=$(usex extraengine YES NO)
+ -DPLUGIN_SPIDER=$(usex extraengine YES NO)
+ -DPLUGIN_S3=$(usex s3 YES NO)
+ -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO)
+ -DCONNECT_WITH_MYSQL=1
+ -DCONNECT_WITH_LIBXML2=$(usex xml)
+ -DCONNECT_WITH_ODBC=$(usex odbc)
+ -DCONNECT_WITH_JDBC=$(usex jdbc)
+ # Build failure and autodep wrt bug 639144
+ -DCONNECT_WITH_MONGO=OFF
+ -DWITH_WSREP=$(usex galera)
+ -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
+ -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
+ -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
+ -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO)
+ -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
+ -DWITH_MARIABACKUP=$(usex backup ON OFF)
+ -DWITH_LIBARCHIVE=$(usex backup ON OFF)
+ -DINSTALL_SQLBENCHDIR=""
+ -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO)
+ # systemd is only linked to for server notification
+ -DWITH_SYSTEMD=$(usex systemd yes no)
+ -DWITH_NUMA=$(usex numa ON OFF)
+ )
+
+ if use test ; then
+ # This is needed for the new client lib which tests a real, open server
+ mycmakeargs+=( -DSKIP_TESTS=ON )
+ fi
+
+ 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=utf8mb4
+ -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci
+ )
+ else
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=latin1
+ -DDEFAULT_COLLATION=latin1_swedish_ci
+ )
+ fi
+ mycmakeargs+=(
+ -DEXTRA_CHARSETS=all
+ -DMYSQL_USER=mysql
+ -DDISABLE_SHARED=$(usex static YES NO)
+ -DWITH_DEBUG=$(usex debug)
+ -DWITH_EMBEDDED_SERVER=OFF
+ -DWITH_PROFILING=$(usex profiling)
+ )
+
+ if use static; then
+ mycmakeargs+=( -DWITH_PIC=1 )
+ fi
+
+ if use jemalloc || use tcmalloc ; then
+ mycmakeargs+=( -DWITH_SAFEMALLOC=OFF )
+ fi
+
+ # Storage engines
+ mycmakeargs+=(
+ -DWITH_ARCHIVE_STORAGE_ENGINE=1
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1
+ -DWITH_CSV_STORAGE_ENGINE=1
+ -DWITH_HEAP_STORAGE_ENGINE=1
+ -DWITH_INNOBASE_STORAGE_ENGINE=1
+ -DWITH_MYISAMMRG_STORAGE_ENGINE=1
+ -DWITH_MYISAM_STORAGE_ENGINE=1
+ -DWITH_PARTITION_STORAGE_ENGINE=1
+ )
+ else
+ mycmakeargs+=(
+ -DWITHOUT_SERVER=1
+ -DWITH_EMBEDDED_SERVER=OFF
+ -DEXTRA_CHARSETS=none
+ -DINSTALL_SQLBENCHDIR=
+ -DWITH_SYSTEMD=no
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+# Official test instructions:
+# USE='extraengine perl server' \
+# FEATURES='test userpriv' \
+# ebuild mariadb-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_tests
+
+ if ! use server ; then
+ einfo "Skipping server tests due to minimal build."
+ return 0
+ fi
+
+ # 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
+
+ # 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
+
+ # create directories because mysqladmin might run out of order
+ mkdir -p "${T}"/var-tests{,/log} || die
+
+ if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then
+ touch "${S}"/mysql-test/unstable-tests || die
+ fi
+
+ cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die
+
+ local -a disabled_tests
+ disabled_tests+=( "compat/oracle.plugin;0;Needs example plugin which Gentoo disables" )
+ disabled_tests+=( "innodb_gis.1;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "innodb_gis.gis;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "main.gis;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "main.explain_non_select;0;Sporadically failing test" )
+ disabled_tests+=( "main.func_time;0;Dependent on time test was written" )
+ disabled_tests+=( "main.mysql_upgrade;27044;Sporadically failing test" )
+ disabled_tests+=( "main.plugin_auth;0;Needs client libraries built" )
+ disabled_tests+=( "main.selectivity_no_engine;26320;Sporadically failing test" )
+ disabled_tests+=( "main.stat_tables;0;Sporadically failing test" )
+ disabled_tests+=( "main.stat_tables_innodb;0;Sporadically failing test" )
+ disabled_tests+=( "main.upgrade_MDEV-19650;25096;Known to be broken" )
+ disabled_tests+=( "mariabackup.*;0;Broken test suite" )
+ disabled_tests+=( "perfschema.nesting;23458;Known to be broken" )
+ disabled_tests+=( "perfschema.prepared_statements;0;Broken test suite" )
+ disabled_tests+=( "perfschema.privilege_table_io;27045;Sporadically failing test" )
+ disabled_tests+=( "plugins.auth_ed25519;0;Needs client libraries built" )
+ disabled_tests+=( "plugins.cracklib_password_check;0;False positive due to varying policies" )
+ disabled_tests+=( "plugins.two_password_validations;0;False positive due to varying policies" )
+ disabled_tests+=( "roles.acl_statistics;0;False positive due to a user count mismatch caused by previous test" )
+ disabled_tests+=( "spider.*;0;Fails with network sandbox" )
+ disabled_tests+=( "sys_vars.wsrep_on_without_provider;25625;Known to be broken" )
+
+ if ! use latin1 ; then
+ disabled_tests+=( "funcs_1.is_columns_mysql;0;Requires USE=latin1" )
+ disabled_tests+=( "main.information_schema;0;Requires USE=latin1" )
+ disabled_tests+=( "main.sp2;24177;Requires USE=latin1" )
+ disabled_tests+=( "main.system_mysql_db;0;Requires USE=latin1" )
+ disabled_tests+=( "main.upgrade_MDEV-19650;24178;Requires USE=latin1" )
+ 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
+
+ # run mysql-test tests
+ pushd "${TESTDIR}" &>/dev/null || die
+ perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def"
+ retstatus_tests=$?
+
+ popd &>/dev/null || die
+
+ # Cleanup is important for these testcases.
+ pkill -9 -f "${S}/ndb" 2>/dev/null
+ pkill -9 -f "${S}/sql" 2>/dev/null
+
+ local failures=""
+ [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests"
+
+ [[ -z "${failures}" ]] || die "Test failures: ${failures}"
+ einfo "Tests successfully completed"
+}
+
+src_install() {
+ cmake_src_install
+
+ # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used
+ if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then
+ rm "${ED}/usr/include/mysql/server/private/config.h" || die
+ fi
+
+ # 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-10.2" "${TMPDIR}/my.cnf" || die
+ eprefixify "${TMPDIR}/my.cnf"
+ doins "${TMPDIR}/my.cnf"
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}/mariadb.d"
+ cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
+ eprefixify "${TMPDIR}/50-distro-client.cnf"
+ doins "${TMPDIR}/50-distro-client.cnf"
+
+ if use server ; then
+ mycnf_src="my.cnf.distro-server"
+ sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
+ "${FILESDIR}/${mycnf_src}" \
+ > "${TMPDIR}/my.cnf.ok" || die
+ if use prefix ; then
+ sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+ if use latin1 ; then
+ sed -i \
+ -e "/character-set/s|utf8|latin1|g" \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+ eprefixify "${TMPDIR}/my.cnf.ok"
+ newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
+
+ einfo "Including support files and sample configurations"
+ docinto "support-files"
+ local script
+ for script in \
+ "${S}"/support-files/magic
+ do
+ [[ -f "$script" ]] && dodoc "${script}"
+ done
+
+ docinto "scripts"
+ for script in "${S}"/scripts/mysql* ; do
+ [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}"
+ done
+ # Manually install supporting files that conflict with other packages
+ # but are needed for galera and initial installation
+ exeinto /usr/libexec/mariadb
+ doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror"
+
+ if use pam ; then
+ keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir
+ fi
+ fi
+
+ # Conflicting files
+ conflicting_files=()
+
+ # We prefer my_print_defaults from dev-db/mysql-connector-c
+ conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" )
+
+ # Remove bundled mytop in favor of dev-db/mytop
+ conflicting_files+=( "${ED}/usr/bin/mytop" )
+ conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" )
+
+ local conflicting_file
+ for conflicting_file in "${conflicting_files[@]}" ; do
+ if [[ -e "${conflicting_file}" ]] ; then
+ rm -v "${conflicting_file}" || die
+ fi
+ done
+
+ # Fix a dangling symlink when galera is not built
+ if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then
+ rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die
+ fi
+
+ # Remove dangling symlink
+ rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die
+
+ # Remove broken SST scripts that are incompatible
+ local scriptremove
+ for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do
+ if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then
+ rm "${ED}/usr/bin/${scriptremove}" || die
+ fi
+ done
+}
+
+pkg_preinst() {
+ java-pkg-opt-2_pkg_preinst
+}
+
+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 use pam; then
+ einfo
+ elog "This install includes the PAM authentication plugin."
+ elog "To activate and configure the PAM plugin, please read:"
+ elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/"
+ einfo
+ chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die
+ fi
+
+ 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
+
+ if use galera ; then
+ einfo
+ elog "Be sure to edit the my.cnf file to activate your cluster settings."
+ elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\""
+ elog "The first time the cluster is activated, you should add"
+ elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node."
+ elog "This option should then be removed for subsequent starts."
+ einfo
+ if [[ -n "${REPLACING_VERSIONS}" ]] ; then
+ local rver
+ for rver in ${REPLACING_VERSIONS} ; do
+ if ver_test "${rver}" -lt "10.4.0" ; then
+ ewarn "Upgrading galera from a previous version requires admin restart of the entire cluster."
+ ewarn "Please refer to https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-104/#galera-4"
+ ewarn "for more information"
+ fi
+ done
+ fi
+ fi
+ fi
+
+ # Note about configuration change
+ einfo
+ elog "This version of mariadb reorganizes the configuration from a single my.cnf"
+ elog "to several files in /etc/mysql/${PN}.d."
+ elog "Please backup any changes you made to /etc/mysql/my.cnf"
+ elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension."
+ elog "You may have as many files as needed and they are read alphabetically."
+ elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
+ einfo
+}
+
+pkg_config() {
+ _getoptval() {
+ local section="${1}"
+ local option="--${2}"
+ local extra_options="${3}"
+ local cmd=(
+ "${my_print_defaults_binary}"
+ "${extra_options}"
+ "${section}"
+ )
+
+ local values=()
+ local parameters=( $(eval "${cmd[@]}" 2>/dev/null) )
+ for parameter in "${parameters[@]}"
+ do
+ # my_print_defaults guarantees output of options, one per line,
+ # in the form that they would be specified on the command line.
+ # So checking for --option=* should be safe.
+ case ${parameter} in
+ ${option}=*)
+ values+=( "${parameter#*=}" )
+ ;;
+ esac
+ done
+
+ if [[ ${#values[@]} -gt 0 ]] ; then
+ # Option could have been set multiple times
+ # in which case only the last occurrence
+ # contains the current value
+ echo "${values[-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 mysql_binary="${EROOT}/usr/bin/mysql"
+ if [[ ! -x "${mysql_binary}" ]] ; then
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ 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_install_db_binary="${EROOT}/usr/bin/mysql_install_db"
+ if [[ ! -x "${mysql_install_db_binary}" ]] ; then
+ die "'${mysql_install_db_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 [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then
+ # Only create directory when MYSQL_LOG_BIN is an absolute path
+ 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 [[ "${MYSQL_LOG_BIN}" == /* ]] ; then
+ # Only test when MYSQL_LOG_BIN is an absolute path
+ 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 [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then
+ # Only create directory when MYSQL_RELAY_LOG is an absolute path
+ 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 [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then
+ # Only test when MYSQL_RELAY_LOG is an absolute path
+ 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 SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null)
+ [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir"
+
+ # Limit access
+ chmod 0770 "${SETUP_TMPDIR}" || die
+ chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die
+
+ local mysql_install_log="${SETUP_TMPDIR}/install_db.log"
+ local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log"
+
+ 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 [[ "${MYSQL_LOG_BIN}" == /* ]] ; then
+ # Absolute path for binary log files specified
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}"
+ fi
+
+ if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then
+ # Absolute path for relay log files specified
+ 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}"
+
+ 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}"
+ grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" )
+ done
+
+ # Prepare timezones, see
+ # https://dev.mysql.com/doc/mysql/en/time-zone-support.html
+ local tz_sql="${SETUP_TMPDIR}/tz.sql"
+
+ 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
+
+ local cmd=(
+ "${mysql_install_db_binary}"
+ "${mysqld_options[@]}"
+ "--init-file='${tz_sql}'"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ "--log-error='${mysql_install_log}'"
+ "--rpm"
+ "--cross-bootstrap"
+ "--skip-test-db"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Initializing ${PN} data directory: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1
+
+ if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; 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
+
+ local x=${RANDOM}
+ local socket="${PID_DIR}/mysqld.${x}.sock"
+ [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!"
+ local pidfile="${PID_DIR}/mysqld.${x}.pid"
+ [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!"
+ 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="${SETUP_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
+
+ rm -r "${SETUP_TMPDIR}" || die
+
+ einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!"
+}
diff --git a/dev-db/mariadb/mariadb-10.6.17.ebuild b/dev-db/mariadb/mariadb-10.6.17.ebuild
new file mode 100644
index 000000000000..07dceb2a13e5
--- /dev/null
+++ b/dev-db/mariadb/mariadb-10.6.17.ebuild
@@ -0,0 +1,1331 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+SUBSLOT="18"
+
+JAVA_PKG_OPT_USE="jdbc"
+
+inherit systemd flag-o-matic prefix toolchain-funcs \
+ multiprocessing java-pkg-opt-2 cmake
+
+HOMEPAGE="https://mariadb.org/"
+SRC_URI="mirror://mariadb/${PN}-${PV}/source/${P}.tar.gz
+ https://github.com/hydrapolic/gentoo-dist/raw/master/mariadb/mariadb-10.6.16-patches-01.tar.xz"
+
+DESCRIPTION="An enhanced, drop-in replacement for MySQL"
+LICENSE="GPL-2 LGPL-2.1+"
+SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}"
+IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4
+ innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga
+ numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx
+ sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc
+ test xml yassl"
+
+RESTRICT="!bindist? ( bindist ) !test? ( test )"
+
+REQUIRED_USE="jdbc? ( extraengine server !static )
+ ?? ( tcmalloc jemalloc )
+ static? ( yassl !pam )
+ test? ( extraengine )"
+
+KEYWORDS="amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv x86"
+
+# 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="
+ >=dev-libs/libpcre2-10.34:=
+ >=sys-apps/texinfo-4.7-r1
+ sys-libs/ncurses:0=
+ >=sys-libs/zlib-1.2.3:0=
+ virtual/libcrypt:=
+ !bindist? (
+ sys-libs/binutils-libs:0=
+ >=sys-libs/readline-4.1:0=
+ )
+ jemalloc? ( dev-libs/jemalloc:0= )
+ kerberos? ( virtual/krb5 )
+ kernel_linux? (
+ dev-libs/libaio:0=
+ sys-libs/liburing:=
+ sys-process/procps:0=
+ )
+ server? (
+ app-arch/bzip2
+ app-arch/xz-utils
+ backup? ( app-arch/libarchive:0= )
+ columnstore? (
+ app-arch/snappy:=
+ dev-libs/boost:=
+ dev-libs/libxml2:2=
+ )
+ cracklib? ( sys-libs/cracklib:0= )
+ extraengine? (
+ odbc? ( dev-db/unixODBC:0= )
+ xml? ( dev-libs/libxml2:2= )
+ )
+ innodb-lz4? ( app-arch/lz4 )
+ innodb-lzo? ( dev-libs/lzo )
+ innodb-snappy? ( app-arch/snappy:= )
+ mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 )
+ numa? ( sys-process/numactl )
+ oqgraph? (
+ dev-libs/boost:=
+ dev-libs/judy:0=
+ )
+ pam? ( sys-libs/pam:0= )
+ s3? ( net-misc/curl )
+ systemd? ( sys-apps/systemd:= )
+ )
+ systemtap? ( >=dev-debug/systemtap-1.3:0= )
+ tcmalloc? ( dev-util/google-perftools:0= )
+ yassl? ( net-libs/gnutls:0= )
+ !yassl? (
+ >=dev-libs/openssl-1.0.0:0=
+ )
+"
+BDEPEND="app-alternatives/yacc"
+DEPEND="${COMMON_DEPEND}
+ server? (
+ extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) )
+ test? ( acct-group/mysql acct-user/mysql )
+ )
+ static? ( sys-libs/ncurses[static-libs] )
+"
+RDEPEND="${COMMON_DEPEND}
+ !dev-db/mysql !dev-db/mariadb-galera !dev-db/percona-server !dev-db/mysql-cluster
+ !dev-db/mariadb:0
+ !dev-db/mariadb:5.5
+ !dev-db/mariadb:10.1
+ !dev-db/mariadb:10.2
+ !dev-db/mariadb:10.3
+ !dev-db/mariadb:10.4
+ !dev-db/mariadb:10.5
+ !dev-db/mariadb:10.7
+ !dev-db/mariadb:10.8
+ !dev-db/mariadb:10.9
+ !dev-db/mariadb:10.10
+ !dev-db/mariadb:10.11
+ !dev-db/mariadb:11.0
+ !<virtual/mysql-5.6-r11
+ !<virtual/libmysqlclient-18-r1
+ selinux? ( sec-policy/selinux-mysql )
+ server? (
+ columnstore? ( dev-db/mariadb-connector-c )
+ extraengine? ( jdbc? ( >=virtual/jre-1.8 ) )
+ galera? (
+ sys-apps/iproute2
+ =sys-cluster/galera-26*
+ sst-rsync? ( sys-process/lsof )
+ sst-mariabackup? ( net-misc/socat[ssl] )
+ )
+ !prefix? ( dev-db/mysql-init-scripts acct-group/mysql acct-user/mysql )
+ )
+"
+# For other stuff to bring us in
+# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL
+PDEPEND="perl? ( dev-perl/DBD-MariaDB )"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # These don't exist on Linux
+ pthread_threadid_np
+ getthrid
+)
+
+mysql_init_vars() {
+ MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"}
+ MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
+ MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
+ MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
+
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR=""
+ if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
+ MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \
+ | sed -ne '/datadir/s|^--datadir=||p' \
+ | tail -n1)
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
+ | sed -e 's/.*=\s*//' \
+ | tail -n1)
+ fi
+ fi
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR="${MY_LOCALSTATEDIR}"
+ einfo "Using default MY_DATADIR"
+ fi
+ elog "MySQL MY_DATADIR is ${MY_DATADIR}"
+
+ if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
+ if [[ -e "${MY_DATADIR}" ]] ; then
+ # If you get this and you're wondering about it, see bug #207636
+ elog "MySQL datadir found in ${MY_DATADIR}"
+ elog "A new one will not be created."
+ PREVIOUS_DATADIR="yes"
+ else
+ PREVIOUS_DATADIR="no"
+ fi
+ export PREVIOUS_DATADIR
+ fi
+ else
+ if [[ ${EBUILD_PHASE} == "config" ]]; then
+ local new_MY_DATADIR
+ new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \
+ | sed -ne '/datadir/s|^--datadir=||p' \
+ | tail -n1)
+
+ if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then
+ ewarn "MySQL MY_DATADIR has changed"
+ ewarn "from ${MY_DATADIR}"
+ ewarn "to ${new_MY_DATADIR}"
+ MY_DATADIR="${new_MY_DATADIR}"
+ fi
+ fi
+ fi
+
+ export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+ export MY_LOCALSTATEDIR MY_LOGDIR
+ export MY_DATADIR
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if has test ${FEATURES} ; then
+ # 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
+ fi
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A}
+
+ mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die
+}
+
+src_prepare() {
+ eapply "${WORKDIR}"/mariadb-patches
+ eapply "${FILESDIR}"/${PN}-10.6.11-gssapi.patch
+ eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch
+
+ eapply_user
+
+ _disable_plugin() {
+ echo > "${S}/plugin/${1}/CMakeLists.txt" || die
+ }
+ _disable_engine() {
+ echo > "${S}/storage/${1}/CMakeLists.txt" || die
+ }
+
+ if use jemalloc; then
+ echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt"
+ elif use tcmalloc; then
+ echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt"
+ fi
+
+ local plugin
+ local server_plugins=( handler_socket auth_socket feedback metadata_lock_info
+ locale_info qc_info server_audit sql_errlog auth_ed25519 )
+ local test_plugins=( audit_null auth_examples daemon_example fulltext
+ debug_key_management example_key_management versioning )
+ if ! use server; then # These plugins are for the server
+ for plugin in "${server_plugins[@]}" ; do
+ _disable_plugin "${plugin}"
+ done
+ fi
+
+ if ! use test; then # These plugins are only used during testing
+ for plugin in "${test_plugins[@]}" ; do
+ _disable_plugin "${plugin}"
+ done
+ _disable_engine test_sql_discovery
+ echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die
+ fi
+
+ _disable_engine example
+
+ if ! use oqgraph ; then # avoids extra library checks
+ _disable_engine oqgraph
+ fi
+
+ if use mroonga ; then
+ # Remove the bundled groonga
+ # There is no CMake flag, it simply checks for existance
+ rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga"
+ else
+ _disable_engine mroonga
+ fi
+
+ # Fix static bindings in galera replication
+ sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \
+ "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die
+ sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \
+ "${S}"/wsrep-lib/src/CMakeLists.txt || die
+
+ # Fix galera_recovery.sh script
+ sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \
+ scripts/galera_recovery.sh || die
+
+ sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \
+ "${S}"/scripts/mysql_install_db.sh || die
+
+ cmake_src_prepare
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ # bug #855233 (MDEV-11914, MDEV-25633) at least
+ filter-lto
+ # bug 508724 mariadb cannot use ld.gold
+ tc-ld-disable-gold
+ # Bug #114895, bug #110149
+ filter-flags "-O" "-O[01]"
+
+ # It fails on alpha without this
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ 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
+ local 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/mariadb
+ -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin
+ -DINSTALL_SCRIPTDIR=bin
+ -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql"
+ -DINSTALL_SBINDIR=sbin
+ -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb"
+ -DWITH_COMMENT="Gentoo Linux ${PF}"
+ -DWITH_UNIT_TESTS=$(usex test ON OFF)
+ -DWITH_LIBEDIT=0
+ -DWITH_ZLIB=system
+ -DWITHOUT_LIBWRAP=1
+ -DENABLED_LOCAL_INFILE=1
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DWITH_DEFAULT_COMPILER_OPTIONS=0
+ -DWITH_DEFAULT_FEATURE_SET=0
+ -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)"
+ # 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)
+ -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)"
+ -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
+ -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF)
+ -DCONC_WITH_EXTERNAL_ZLIB=YES
+ -DWITH_EXTERNAL_ZLIB=YES
+ -DSUFFIX_INSTALL_DIR=""
+ -DWITH_UNITTEST=OFF
+ -DWITHOUT_CLIENTLIBS=YES
+ -DCLIENT_PLUGIN_DIALOG=OFF
+ -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF
+ -DCLIENT_PLUGIN_CLIENT_ED25519=OFF
+ -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC
+ -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF
+ )
+ if use test ; then
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test )
+ else
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+ fi
+
+ if ! use yassl ; then
+ mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC )
+ else
+ mycmakeargs+=( -DWITH_SSL=bundled )
+ fi
+
+ # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
+ mycmakeargs+=(
+ -DWITH_READLINE=$(usex bindist 1 0)
+ -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
+ -DENABLE_DTRACE=$(usex systemtap)
+ )
+
+ if use server ; then
+ # Connect and Federated{,X} must be treated special
+ # otherwise they will not be built as plugins
+ if ! use extraengine ; then
+ mycmakeargs+=(
+ -DPLUGIN_CONNECT=NO
+ -DPLUGIN_FEDERATED=NO
+ -DPLUGIN_FEDERATEDX=NO
+ )
+ fi
+
+ mycmakeargs+=(
+ -DWITH_PCRE=system
+ -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO)
+ -DPLUGIN_SPHINX=$(usex sphinx YES NO)
+ -DPLUGIN_AUTH_PAM=$(usex pam YES NO)
+ -DPLUGIN_AWS_KEY_MANAGEMENT=NO
+ -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO)
+ -DPLUGIN_SEQUENCE=$(usex extraengine YES NO)
+ -DPLUGIN_SPIDER=$(usex extraengine YES NO)
+ -DPLUGIN_S3=$(usex s3 YES NO)
+ -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO)
+ -DCONNECT_WITH_MYSQL=1
+ -DCONNECT_WITH_LIBXML2=$(usex xml)
+ -DCONNECT_WITH_ODBC=$(usex odbc)
+ -DCONNECT_WITH_JDBC=$(usex jdbc)
+ # Build failure and autodep wrt bug 639144
+ -DCONNECT_WITH_MONGO=OFF
+ -DWITH_WSREP=$(usex galera)
+ -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
+ -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
+ -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
+ -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO)
+ -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
+ -DWITH_MARIABACKUP=$(usex backup ON OFF)
+ -DWITH_LIBARCHIVE=$(usex backup ON OFF)
+ -DINSTALL_SQLBENCHDIR=""
+ -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO)
+ # systemd is only linked to for server notification
+ -DWITH_SYSTEMD=$(usex systemd yes no)
+ -DWITH_NUMA=$(usex numa ON OFF)
+ )
+
+ if use test ; then
+ # This is needed for the new client lib which tests a real, open server
+ mycmakeargs+=( -DSKIP_TESTS=ON )
+ fi
+
+ 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=utf8mb4
+ -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci
+ )
+ else
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=latin1
+ -DDEFAULT_COLLATION=latin1_swedish_ci
+ )
+ fi
+ mycmakeargs+=(
+ -DEXTRA_CHARSETS=all
+ -DMYSQL_USER=mysql
+ -DDISABLE_SHARED=$(usex static YES NO)
+ -DWITH_DEBUG=$(usex debug)
+ -DWITH_EMBEDDED_SERVER=OFF
+ -DWITH_PROFILING=$(usex profiling)
+ )
+
+ if use static; then
+ mycmakeargs+=( -DWITH_PIC=1 )
+ fi
+
+ if use jemalloc || use tcmalloc ; then
+ mycmakeargs+=( -DWITH_SAFEMALLOC=OFF )
+ fi
+
+ # Storage engines
+ mycmakeargs+=(
+ -DWITH_ARCHIVE_STORAGE_ENGINE=1
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1
+ -DWITH_CSV_STORAGE_ENGINE=1
+ -DWITH_HEAP_STORAGE_ENGINE=1
+ -DWITH_INNOBASE_STORAGE_ENGINE=1
+ -DWITH_MYISAMMRG_STORAGE_ENGINE=1
+ -DWITH_MYISAM_STORAGE_ENGINE=1
+ -DWITH_PARTITION_STORAGE_ENGINE=1
+ )
+ else
+ mycmakeargs+=(
+ -DWITHOUT_SERVER=1
+ -DWITH_EMBEDDED_SERVER=OFF
+ -DEXTRA_CHARSETS=none
+ -DINSTALL_SQLBENCHDIR=
+ -DWITH_SYSTEMD=no
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+# Official test instructions:
+# USE='extraengine perl server' \
+# FEATURES='test userpriv' \
+# ebuild mariadb-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_tests
+
+ if ! use server ; then
+ einfo "Skipping server tests due to minimal build."
+ return 0
+ fi
+
+ # 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
+
+ # 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
+
+ # create directories because mysqladmin might run out of order
+ mkdir -p "${T}"/var-tests{,/log} || die
+
+ if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then
+ touch "${S}"/mysql-test/unstable-tests || die
+ fi
+
+ cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die
+
+ local -a disabled_tests
+ disabled_tests+=( "compat/oracle.plugin;0;Needs example plugin which Gentoo disables" )
+ disabled_tests+=( "innodb_gis.1;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "innodb_gis.gis;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "main.gis;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "main.explain_non_select;0;Sporadically failing test" )
+ disabled_tests+=( "main.func_time;0;Dependent on time test was written" )
+ disabled_tests+=( "main.mysql_upgrade;27044;Sporadically failing test" )
+ disabled_tests+=( "main.plugin_auth;0;Needs client libraries built" )
+ disabled_tests+=( "main.selectivity_no_engine;26320;Sporadically failing test" )
+ disabled_tests+=( "main.stat_tables;0;Sporadically failing test" )
+ disabled_tests+=( "main.stat_tables_innodb;0;Sporadically failing test" )
+ disabled_tests+=( "main.upgrade_MDEV-19650;25096;Known to be broken" )
+ disabled_tests+=( "mariabackup.*;0;Broken test suite" )
+ disabled_tests+=( "perfschema.nesting;23458;Known to be broken" )
+ disabled_tests+=( "perfschema.prepared_statements;0;Broken test suite" )
+ disabled_tests+=( "perfschema.privilege_table_io;27045;Sporadically failing test" )
+ disabled_tests+=( "plugins.auth_ed25519;0;Needs client libraries built" )
+ disabled_tests+=( "plugins.cracklib_password_check;0;False positive due to varying policies" )
+ disabled_tests+=( "plugins.two_password_validations;0;False positive due to varying policies" )
+ disabled_tests+=( "roles.acl_statistics;0;False positive due to a user count mismatch caused by previous test" )
+ disabled_tests+=( "spider.*;0;Fails with network sandbox" )
+ disabled_tests+=( "sys_vars.wsrep_on_without_provider;25625;Known to be broken" )
+
+ if ! use latin1 ; then
+ disabled_tests+=( "funcs_1.is_columns_mysql;0;Requires USE=latin1" )
+ disabled_tests+=( "main.information_schema;0;Requires USE=latin1" )
+ disabled_tests+=( "main.sp2;24177;Requires USE=latin1" )
+ disabled_tests+=( "main.system_mysql_db;0;Requires USE=latin1" )
+ disabled_tests+=( "main.upgrade_MDEV-19650;24178;Requires USE=latin1" )
+ 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
+
+ # run mysql-test tests
+ pushd "${TESTDIR}" &>/dev/null || die
+ perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def"
+ retstatus_tests=$?
+
+ popd &>/dev/null || die
+
+ # Cleanup is important for these testcases.
+ pkill -9 -f "${S}/ndb" 2>/dev/null
+ pkill -9 -f "${S}/sql" 2>/dev/null
+
+ local failures=""
+ [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests"
+
+ [[ -z "${failures}" ]] || die "Test failures: ${failures}"
+ einfo "Tests successfully completed"
+}
+
+src_install() {
+ cmake_src_install
+
+ # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used
+ if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then
+ rm "${ED}/usr/include/mysql/server/private/config.h" || die
+ fi
+
+ # 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-10.2" "${TMPDIR}/my.cnf" || die
+ eprefixify "${TMPDIR}/my.cnf"
+ doins "${TMPDIR}/my.cnf"
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}/mariadb.d"
+ cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
+ eprefixify "${TMPDIR}/50-distro-client.cnf"
+ doins "${TMPDIR}/50-distro-client.cnf"
+
+ if use server ; then
+ mycnf_src="my.cnf.distro-server"
+ sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
+ "${FILESDIR}/${mycnf_src}" \
+ > "${TMPDIR}/my.cnf.ok" || die
+ if use prefix ; then
+ sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+ if use latin1 ; then
+ sed -i \
+ -e "/character-set/s|utf8|latin1|g" \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+ eprefixify "${TMPDIR}/my.cnf.ok"
+ newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
+
+ einfo "Including support files and sample configurations"
+ docinto "support-files"
+ local script
+ for script in \
+ "${S}"/support-files/magic
+ do
+ [[ -f "$script" ]] && dodoc "${script}"
+ done
+
+ docinto "scripts"
+ for script in "${S}"/scripts/mysql* ; do
+ [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}"
+ done
+ # Manually install supporting files that conflict with other packages
+ # but are needed for galera and initial installation
+ exeinto /usr/libexec/mariadb
+ doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror"
+
+ if use pam ; then
+ keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir
+ fi
+ fi
+
+ # Conflicting files
+ conflicting_files=()
+
+ # We prefer my_print_defaults from dev-db/mysql-connector-c
+ conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" )
+
+ # Remove bundled mytop in favor of dev-db/mytop
+ conflicting_files+=( "${ED}/usr/bin/mytop" )
+ conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" )
+
+ local conflicting_file
+ for conflicting_file in "${conflicting_files[@]}" ; do
+ if [[ -e "${conflicting_file}" ]] ; then
+ rm -v "${conflicting_file}" || die
+ fi
+ done
+
+ # Fix a dangling symlink when galera is not built
+ if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then
+ rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die
+ fi
+
+ # Remove dangling symlink
+ rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die
+
+ # Remove broken SST scripts that are incompatible
+ local scriptremove
+ for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do
+ if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then
+ rm "${ED}/usr/bin/${scriptremove}" || die
+ fi
+ done
+}
+
+pkg_preinst() {
+ java-pkg-opt-2_pkg_preinst
+}
+
+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 use pam; then
+ einfo
+ elog "This install includes the PAM authentication plugin."
+ elog "To activate and configure the PAM plugin, please read:"
+ elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/"
+ einfo
+ chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die
+ fi
+
+ 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
+
+ if use galera ; then
+ einfo
+ elog "Be sure to edit the my.cnf file to activate your cluster settings."
+ elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\""
+ elog "The first time the cluster is activated, you should add"
+ elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node."
+ elog "This option should then be removed for subsequent starts."
+ einfo
+ if [[ -n "${REPLACING_VERSIONS}" ]] ; then
+ local rver
+ for rver in ${REPLACING_VERSIONS} ; do
+ if ver_test "${rver}" -lt "10.4.0" ; then
+ ewarn "Upgrading galera from a previous version requires admin restart of the entire cluster."
+ ewarn "Please refer to https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-104/#galera-4"
+ ewarn "for more information"
+ fi
+ done
+ fi
+ fi
+ fi
+
+ # Note about configuration change
+ einfo
+ elog "This version of mariadb reorganizes the configuration from a single my.cnf"
+ elog "to several files in /etc/mysql/${PN}.d."
+ elog "Please backup any changes you made to /etc/mysql/my.cnf"
+ elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension."
+ elog "You may have as many files as needed and they are read alphabetically."
+ elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
+ einfo
+}
+
+pkg_config() {
+ _getoptval() {
+ local section="${1}"
+ local option="--${2}"
+ local extra_options="${3}"
+ local cmd=(
+ "${my_print_defaults_binary}"
+ "${extra_options}"
+ "${section}"
+ )
+
+ local values=()
+ local parameters=( $(eval "${cmd[@]}" 2>/dev/null) )
+ for parameter in "${parameters[@]}"
+ do
+ # my_print_defaults guarantees output of options, one per line,
+ # in the form that they would be specified on the command line.
+ # So checking for --option=* should be safe.
+ case ${parameter} in
+ ${option}=*)
+ values+=( "${parameter#*=}" )
+ ;;
+ esac
+ done
+
+ if [[ ${#values[@]} -gt 0 ]] ; then
+ # Option could have been set multiple times
+ # in which case only the last occurrence
+ # contains the current value
+ echo "${values[-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 mysql_binary="${EROOT}/usr/bin/mysql"
+ if [[ ! -x "${mysql_binary}" ]] ; then
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ 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_install_db_binary="${EROOT}/usr/bin/mysql_install_db"
+ if [[ ! -x "${mysql_install_db_binary}" ]] ; then
+ die "'${mysql_install_db_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 [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then
+ # Only create directory when MYSQL_LOG_BIN is an absolute path
+ 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 [[ "${MYSQL_LOG_BIN}" == /* ]] ; then
+ # Only test when MYSQL_LOG_BIN is an absolute path
+ 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 [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then
+ # Only create directory when MYSQL_RELAY_LOG is an absolute path
+ 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 [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then
+ # Only test when MYSQL_RELAY_LOG is an absolute path
+ 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 SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null)
+ [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir"
+
+ # Limit access
+ chmod 0770 "${SETUP_TMPDIR}" || die
+ chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die
+
+ local mysql_install_log="${SETUP_TMPDIR}/install_db.log"
+ local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log"
+
+ 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 [[ "${MYSQL_LOG_BIN}" == /* ]] ; then
+ # Absolute path for binary log files specified
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}"
+ fi
+
+ if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then
+ # Absolute path for relay log files specified
+ 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}"
+
+ 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}"
+ grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" )
+ done
+
+ # Prepare timezones, see
+ # https://dev.mysql.com/doc/mysql/en/time-zone-support.html
+ local tz_sql="${SETUP_TMPDIR}/tz.sql"
+
+ 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
+
+ local cmd=(
+ "${mysql_install_db_binary}"
+ "${mysqld_options[@]}"
+ "--init-file='${tz_sql}'"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ "--log-error='${mysql_install_log}'"
+ "--rpm"
+ "--cross-bootstrap"
+ "--skip-test-db"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Initializing ${PN} data directory: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1
+
+ if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; 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
+
+ local x=${RANDOM}
+ local socket="${PID_DIR}/mysqld.${x}.sock"
+ [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!"
+ local pidfile="${PID_DIR}/mysqld.${x}.pid"
+ [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!"
+ 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="${SETUP_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
+
+ rm -r "${SETUP_TMPDIR}" || die
+
+ einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!"
+}
diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest
index 259768739a73..d432e2c66186 100644
--- a/dev-db/mongodb/Manifest
+++ b/dev-db/mongodb/Manifest
@@ -1,2 +1,4 @@
+DIST mongodb-4.4.29.gh.tar.gz 51651007 BLAKE2B 9e9bd08ce87659fcf788964ec1bff80baef5bb9c2f5bd4968588511d289b9baf9fc68812f72ee89f90fb557dcc8d2ecbb3f607ca8e31c2212ec9633c0b99da37 SHA512 3c32a918c8b5587b04ee9263788c250a9bbd64f34ed2c19939e78607456215697966e596c2cfd160604b629188e4bdf3fff071db268bb3c25de3077a7c2ef335
+DIST mongodb-5.0.26.gh.tar.gz 57252091 BLAKE2B a4663a4dbac90118b56646816b178680a6bd99be6abb582fdfdb662c8ddf14eb9db18ed97260a37b2d04bf11715e6cfaa34bb12c4f4b08426e3afa90908f0b3c SHA512 efd56649006bb61070a2f255e8d843e4ddab33562ec9454afe55848dcc3ce8ee90431f70c9362b14e52c4a49a162ea3075a869a6fd71f63efdd5f4358703fea4
DIST mongodb-src-r4.4.20.tar.gz 50883098 BLAKE2B 3ef2fddc4d926e372033449a14b0a71c606b6f8a9bb6767ff32c8da5a9287bf2972fae9dd83eab3ad934b1341c3edeed7708afd46f9a096819e9eca48aca40f5 SHA512 70b264b6a6f3ec16c8b0750d47026928f6250cb7a1a64d980c400ffbcc3af1b9c6301fe098d209fb8461cba4534b7c2edffdcdeb0548e627da107cc23d9a6b9c
DIST mongodb-src-r5.0.16.tar.gz 56217257 BLAKE2B d78704c0cff4f8c1da20fdc5e083634c6dbe539136de58410ae6b86c9c5cd8044926425545ae07a7011a5febec5abb6f67773b8e539a4ac16daa1ad0ffc6a070 SHA512 d5fccd6cd3ee3f70457bd96a8eff66ca9872df37e196f1baf26993b6c080297d77504020e5554eaf3a2e92bb2730a467226b4bef47ab7fdc4de247d91c0143eb
diff --git a/dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch b/dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch
new file mode 100644
index 000000000000..bbcbe34fe6f3
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch
@@ -0,0 +1,24 @@
+ buildscripts/moduleconfig.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/buildscripts/moduleconfig.py b/buildscripts/moduleconfig.py
+index b4d0bba0490..03541fab940 100644
+--- a/buildscripts/moduleconfig.py
++++ b/buildscripts/moduleconfig.py
+@@ -27,7 +27,6 @@ MongoDB SConscript files do.
+ __all__ = ('discover_modules', 'discover_module_directories', 'configure_modules',
+ 'register_module_test') # pylint: disable=undefined-all-variable
+
+-import imp
+ import inspect
+ import os
+
+@@ -71,8 +70,6 @@ def discover_modules(module_root, allowed_modules):
+ print("adding module: %s" % (name))
+ fp = open(build_py, "r")
+ try:
+- module = imp.load_module("module_" + name, fp, build_py,
+- (".py", "r", imp.PY_SOURCE))
+ if getattr(module, "name", None) is None:
+ module.name = name
+ found_modules.append(module)
diff --git a/dev-db/mongodb/metadata.xml b/dev-db/mongodb/metadata.xml
index f8c3c65fba50..1f55f5a2d2d2 100644
--- a/dev-db/mongodb/metadata.xml
+++ b/dev-db/mongodb/metadata.xml
@@ -17,4 +17,7 @@
<flag name="mongosh">Install the MongoDB shell from <pkg>app-admin/mongosh-bin</pkg></flag>
<flag name="tools">Install the MongoDB tools (mongoimport, mongodump...) from <pkg>app-admin/mongo-tools</pkg></flag>
</use>
+ <upstream>
+ <remote-id type="github">mongodb/mongo</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-db/mongodb/mongodb-4.4.29.ebuild b/dev-db/mongodb/mongodb-4.4.29.ebuild
new file mode 100644
index 000000000000..830acd956f53
--- /dev/null
+++ b/dev-db/mongodb/mongodb-4.4.29.ebuild
@@ -0,0 +1,188 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+SCONS_MIN_VERSION="3.3.1"
+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_PV=r${PV/_rc/-rc}
+MY_P=mongo-${MY_PV}
+
+DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
+HOMEPAGE="https://www.mongodb.com"
+SRC_URI="https://github.com/mongodb/mongo/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
+LICENSE="Apache-2.0 SSPL-1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 -riscv"
+IUSE="debug kerberos 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:=[nls]
+ >=dev-libs/libpcre-8.42[cxx]
+ app-arch/zstd:=
+ dev-libs/snowball-stemmer:=
+ net-misc/curl
+ >=sys-libs/zlib-1.2.11:=
+ kerberos? ( dev-libs/cyrus-sasl[kerberos] )
+ ssl? (
+ >=dev-libs/openssl-1.0.1g:0=
+ )"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ sys-libs/ncurses:0=
+ sys-libs/readline:0=
+ debug? ( dev-debug/valgrind )"
+BDEPEND="
+ $(python_gen_any_dep '
+ test? ( dev-python/pymongo[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] )
+ >=dev-build/scons-3.1.1[${PYTHON_USEDEP}]
+ dev-python/cheetah3[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ ')
+"
+PDEPEND="tools? ( >=app-admin/mongo-tools-100 )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.4.1-fix-scons.patch"
+ "${FILESDIR}/${PN}-4.4.8-no-compass.patch"
+ "${FILESDIR}/${PN}-4.4.1-boost.patch"
+ "${FILESDIR}/${PN}-4.4.1-gcc11.patch"
+ "${FILESDIR}/${PN}-4.4.10-boost-1.79.patch"
+ "${FILESDIR}/${PN}-4.4.10-no-force-lld.patch"
+ "${FILESDIR}/${PN}-4.4.10-boost-1.81.patch"
+ "${FILESDIR}/${P}-no-enterprise.patch"
+)
+
+python_check_deps() {
+ if use test; then
+ python_has_version "dev-python/pymongo[${PYTHON_USEDEP}]" || return 1
+ python_has_version "dev-python/requests[${PYTHON_USEDEP}]" || return 1
+ fi
+ python_has_version -b ">=dev-build/scons-3.1.1[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/psutil[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pyyaml[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ if ver_test "$REPLACING_VERSIONS" -lt 4.2; then
+ ewarn "To upgrade from a version earlier than the 4.2-series, you must"
+ ewarn "successively upgrade major releases until you have upgraded"
+ ewarn "to 4.2-series. Then upgrade to 4.4 series."
+ else
+ ewarn "Be sure to set featureCompatibilityVersion to 4.2 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:
+ # for MONGO_GIT_HASH use GitOrigin-RevId from the commit of the tag
+ scons_opts=(
+ AR="$(tc-getAR)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ CCFLAGS="${CXXFLAGS}"
+
+ VERBOSE=1
+ VARIANT_DIR=gentoo
+ MONGO_VERSION="${PV}"
+ MONGO_GIT_HASH="f4dda329a99811c707eb06d05ad023599f9be263"
+
+ --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 ssl && scons_opts+=( --ssl )
+
+ # Needed to avoid forcing FORTIFY_SOURCE
+ # Gentoo's toolchain applies these anyway
+ scons_opts+=( --runtime-hardening=off )
+
+ # 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() {
+ PREFIX="${EPREFIX}/usr" escons "${scons_opts[@]}" --nostrip install-core
+}
+
+# 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() {
+ dobin build/install/bin/{mongo,mongod,mongos}
+
+ 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_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ # see bug #526114
+ pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
+
+ diropts -m0750 -o mongodb -g mongodb
+ keepdir /var/log/${PN}
+}
+
+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-5.0.26.ebuild b/dev-db/mongodb/mongodb-5.0.26.ebuild
new file mode 100644
index 000000000000..a31c0680250e
--- /dev/null
+++ b/dev-db/mongodb/mongodb-5.0.26.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+SCONS_MIN_VERSION="3.3.1"
+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_PV=r${PV/_rc/-rc}
+MY_P=mongo-${MY_PV}
+
+DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
+HOMEPAGE="https://www.mongodb.com"
+SRC_URI="https://github.com/mongodb/mongo/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0 SSPL-1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 -riscv"
+CPU_FLAGS="cpu_flags_x86_avx"
+IUSE="debug kerberos mongosh ssl +tools ${CPU_FLAGS}"
+
+# https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server
+# resmoke needs python packages not yet present in Gentoo
+RESTRICT="test"
+
+RDEPEND="acct-group/mongodb
+ acct-user/mongodb
+ >=app-arch/snappy-1.1.7:=
+ >=dev-cpp/yaml-cpp-0.6.2:=
+ dev-libs/boost:=[nls]
+ >=dev-libs/libpcre-8.42[cxx]
+ app-arch/zstd:=
+ dev-libs/snowball-stemmer:=
+ >=sys-libs/zlib-1.2.12:=
+ kerberos? ( dev-libs/cyrus-sasl[kerberos] )
+ ssl? (
+ >=dev-libs/openssl-1.0.1g:0=
+ )"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ sys-libs/ncurses:0=
+ sys-libs/readline:0=
+ debug? ( dev-debug/valgrind )"
+BDEPEND="
+ $(python_gen_any_dep '
+ >=dev-build/scons-3.1.1[${PYTHON_USEDEP}]
+ dev-python/cheetah3[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ ')
+"
+PDEPEND="
+ mongosh? ( app-admin/mongosh-bin )
+ tools? ( >=app-admin/mongo-tools-100 )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.4.1-boost.patch"
+ "${FILESDIR}/${PN}-4.4.1-gcc11.patch"
+ "${FILESDIR}/${PN}-5.0.2-fix-scons.patch"
+ "${FILESDIR}/${PN}-5.0.2-no-compass.patch"
+ "${FILESDIR}/${PN}-5.0.2-skip-no-exceptions.patch"
+ "${FILESDIR}/${PN}-5.0.2-skip-reqs-check.patch"
+ "${FILESDIR}/${PN}-5.0.2-boost-1.79.patch"
+ "${FILESDIR}/${PN}-5.0.5-no-force-lld.patch"
+ "${FILESDIR}/${PN}-4.4.10-boost-1.81.patch"
+ "${FILESDIR}/${PN}-5.0.5-boost-1.81-extra.patch"
+ "${FILESDIR}/${PN}-5.0.16-arm64-assert.patch"
+ "${FILESDIR}/${PN}-4.4.29-no-enterprise.patch"
+)
+
+python_check_deps() {
+ python_has_version -b ">=dev-build/scons-3.1.1[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/psutil[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pyyaml[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ # Bug 809692 + 890294
+ if use amd64 && ! use cpu_flags_x86_avx; then
+ ewarn "MongoDB 5.0 requires use of the AVX instruction set."
+ ewarn "This ebuild will use --experimental-optimization=-sandybridge which"
+ ewarn "will result in an experimental build of MongoDB as per upstream."
+ ewarn "https://docs.mongodb.com/v5.0/administration/production-notes/"
+ fi
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ if ver_test "$REPLACING_VERSIONS" -lt 4.4; then
+ ewarn "To upgrade from a version earlier than the 4.4-series, you must"
+ ewarn "successively upgrade major releases until you have upgraded"
+ ewarn "to 4.4-series. Then upgrade to 5.0 series."
+ else
+ ewarn "Be sure to set featureCompatibilityVersion to 4.4 before upgrading."
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+
+ # remove bundled libs
+ rm -r src/third_party/{boost,pcre-*,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:
+ # for MONGO_GIT_HASH use GitOrigin-RevId from the commit of the tag
+ scons_opts=(
+ AR="$(tc-getAR)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ CCFLAGS="${CXXFLAGS}"
+
+ VERBOSE=1
+ VARIANT_DIR=gentoo
+ MONGO_VERSION="${PV}"
+ MONGO_GIT_HASH="0b4f1ea980b5380a66425a90b414106a191365f4"
+
+ --disable-warnings-as-errors
+ --jobs="$(makeopts_jobs)"
+ --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 amd64 && scons_opts+=( --experimental-optimization=-sandybridge ) # Bug 890294
+ use debug && scons_opts+=( --dbg=on )
+ use kerberos && scons_opts+=( --use-sasl-client )
+
+ scons_opts+=( --ssl=$(usex ssl on off) )
+
+ # Needed to avoid forcing FORTIFY_SOURCE
+ # Gentoo's toolchain applies these anyway
+ scons_opts+=( --runtime-hardening=off )
+
+ # gold is an option here but we don't really do that anymore
+ if tc-ld-is-lld; then
+ scons_opts+=( --linker=lld )
+ else
+ scons_opts+=( --linker=bfd )
+ fi
+
+ # 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() {
+ PREFIX="${EPREFIX}/usr" ./buildscripts/scons.py "${scons_opts[@]}" install-core || die
+}
+
+src_install() {
+ dobin build/install/bin/{mongo,mongod,mongos}
+
+ 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_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ # see bug #526114
+ pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
+
+ diropts -m0750 -o mongodb -g mongodb
+ keepdir /var/log/${PN}
+}
+
+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/mycli/Manifest b/dev-db/mycli/Manifest
index de5904294910..ffedc59bb7eb 100644
--- a/dev-db/mycli/Manifest
+++ b/dev-db/mycli/Manifest
@@ -1 +1 @@
-DIST mycli-1.27.0.gh.tar.gz 285739 BLAKE2B 9b3ba8b98289721774d7bf06465402440d70772ee4f456f1a14a02a0f0cf90e6c4e6fe2abe36436ea051042bed208868dc469e9ef7c4499a9fdacd519b119199 SHA512 ae6fa9ed9151a39988ea64c5d551a68c92014cbaae4ec6695a727cd008882298d3373d1992768eff0781e881738f72f00dfe4756196c0ba82009758b1ea16b51
+DIST mycli-1.27.2.gh.tar.gz 286537 BLAKE2B 7bff978f9a08561c33f5327f13b8b69226e5c735527a607190a3c5d75f091b9f76b8d432e7a3e315ff250995e0baea7f7e0bede17e0b1cc6654939b7ec82b0ae SHA512 fdf0342b0e850b5232c815e73f44f22c7ea162201588681ccf2f4107b84b87f01fff3999a9720fef454239192356f074f47642ddc760af18973a2aaaac4676cd
diff --git a/dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch b/dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch
deleted file mode 100644
index 7c802a803337..000000000000
--- a/dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/setup.py 2020-04-19 16:15:15.000000000 -0400
-+++ b/setup.py 2020-07-07 13:56:25.181039348 -0400
-@@ -85,7 +85,7 @@
- author_email='mycli-dev@googlegroups.com',
- version=version,
- url='http://mycli.net',
-- packages=find_packages(),
-+ packages=find_packages(exclude=["*.test","*.test.*","test.*","test"]),
- package_data={'mycli': ['myclirc', 'AUTHORS', 'SPONSORS']},
- description=description,
- long_description=description,
diff --git a/dev-db/mycli/mycli-1.27.0.ebuild b/dev-db/mycli/mycli-1.27.2.ebuild
index 6e6fd4275fc0..445b7b84997e 100644
--- a/dev-db/mycli/mycli-1.27.0.ebuild
+++ b/dev-db/mycli/mycli-1.27.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -39,9 +39,8 @@ RDEPEND="
>=dev-python/pyperclip-1.8.1[${PYTHON_USEDEP}]
>=dev-python/sqlglot-5.1.3[${PYTHON_USEDEP}]
>=dev-python/sqlparse-0.3.0[${PYTHON_USEDEP}]
- <dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}]
- ssh? ( dev-python/paramiko[${PYTHON_USEDEP}] )'
- )
+ ssh? ( dev-python/paramiko[${PYTHON_USEDEP}] )
+ ')
"
BDEPEND="
test? (
@@ -52,9 +51,6 @@ BDEPEND="
"
EPYTEST_DESELECT=(
- # Fails after a seemingly benign change in sqlparse 0.4.3
- # https://github.com/dbcli/mycli/issues/1103
- "test/test_smart_completion_public_schema_only.py::test_auto_escaped_col_names"
# Requires a running mysql daemon
"test/test_main.py::test_batch"
"test/test_main.py::test_execute"
@@ -71,12 +67,10 @@ EPYTEST_IGNORE=(
distutils_enable_tests pytest
-PATCHES=( "${FILESDIR}/mycli-1.21.1-fix-test-install.patch" )
-
src_prepare() {
default
- # Remove unnecessary pin, we have paramiko 3.2.0.
- # https://github.com/dbcli/mycli/commit/eaddc5ca3e208d66fd4f400b90eb76089dd35e4c
- sed -i -e 's:==:>=:' setup.py || die
+ # Relax sqlparse requirement, 0.5.0 didn't have major API changes that would necessitate this restriction.
+ # bug #930690
+ sed -i -e '/sqlparse/ s/,<0.5.0//' setup.py || die
}
diff --git a/dev-db/mydumper/Manifest b/dev-db/mydumper/Manifest
index 800df8c84dc6..d5631d1e7320 100644
--- a/dev-db/mydumper/Manifest
+++ b/dev-db/mydumper/Manifest
@@ -1,2 +1,2 @@
DIST mydumper-0.14.5-2.tar.gz 177402 BLAKE2B bcd2658e1d8e452803608f27ed1b2ccc6fe428fcb44117f88a5cb0e6de1536f89c1f0768020da2d954a95cc20fe1315af8a38f477aee7c394540fbb4f001ac8d SHA512 d19c22fb3932f7428f560dcd7cdafc92e035f924ee35320048eca2067e75a297a44aaf08c6f124ef55c604c34311be2eeb0858c6d41be5ea73a68c8c0afa66ab
-DIST mydumper-0.15.1-3.tar.gz 165488 BLAKE2B 696a725528ad4e32ef6a53f29770a74ecadf55640421f744e49d033c2107050d35950fbd407d0d755159c05c662c92d0cb95e21b8595f43dcd2a95cc324194be SHA512 5e62ca872d3bd763a0a2782413fc90875e5b8159a3861eb2c3ec4c8d6ddb9bb6b33998cafdcdc4c014915b436ee89fde1674de0f90c7bec09f0474a7c76bc62d
+DIST mydumper-0.15.2-8.tar.gz 186389 BLAKE2B 84e08fa6460a156771f598a8a0c98c79089490f9f2fe3b90fa49efd519e2270468fe86287bab03612006489a3a1d5ab2442e76cc0f4825c8df95acec30a1c4ba SHA512 f6ca5c5756944bd2704e8a25432db1fbe14ed2a1e88b549c0799c3e0c251e524523ed39797b0b2c15c9d65c0e6e5ce3d93a60a17c77090732a8f909ab24a0126
diff --git a/dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch b/dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch
new file mode 100644
index 000000000000..fe5fc15378d8
--- /dev/null
+++ b/dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch
@@ -0,0 +1,29 @@
+From a7630737a37c11478de265e69605befa89b910b4 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz93@gmail.com>
+Date: Sun, 10 Mar 2024 21:12:29 -0400
+Subject: [PATCH] Do not overwrite the user CFLAGS
+
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 088811c..c051a31 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,10 +35,10 @@ if (WITH_ZSTD)
+ endif (WITH_ZSTD)
+
+ if (WITH_ZSTD)
+- set(CMAKE_C_FLAGS "-Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -g -DZWRAP_USE_ZSTD=1 -Werror -Wno-discarded-qualifiers ${MYSQL_CFLAGS}")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wextra -Wshadow -DZWRAP_USE_ZSTD=1 -Wno-discarded-qualifiers ${MYSQL_CFLAGS}")
+ include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} ${ZSTD_INCLUDE_DIR} )
+ else (WITH_ZSTD)
+- set(CMAKE_C_FLAGS "-Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -g -Werror ${MYSQL_CFLAGS}")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wextra -Wshadow ${MYSQL_CFLAGS}")
+ include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} )
+ endif (WITH_ZSTD)
+
+--
+2.43.2
+
diff --git a/dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch b/dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch
new file mode 100644
index 000000000000..5d6ba09a4df4
--- /dev/null
+++ b/dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch
@@ -0,0 +1,25 @@
+From 925d052aa05cf7d97fe474d7cf64b8491ced68ae Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz93@gmail.com>
+Date: Sun, 10 Mar 2024 21:17:16 -0400
+Subject: [PATCH] Do not overwrite the user CFLAGS
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1fbf228..7741aa9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,7 +39,7 @@ if (MARIADB_FOUND AND NOT MARIADB_SSL AND WITH_SSL)
+ set(WITH_SSL OFF)
+ endif()
+
+-set(CMAKE_C_FLAGS "-std=gnu99 -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -g -Werror ${MYSQL_CFLAGS}")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wextra -Wshadow ${MYSQL_CFLAGS}")
+ include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} )
+
+ OPTION(WITH_ASAN "Build with ASAN" OFF)
+--
+2.43.2
+
diff --git a/dev-db/mydumper/metadata.xml b/dev-db/mydumper/metadata.xml
index 7c00b95bef1c..23e34fafb893 100644
--- a/dev-db/mydumper/metadata.xml
+++ b/dev-db/mydumper/metadata.xml
@@ -10,6 +10,6 @@
<name>Proxy Maintainers</name>
</maintainer>
<upstream>
- <remote-id type="github">maxbube/mydumper</remote-id>
+ <remote-id type="github">mydumper/mydumper</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-db/mydumper/mydumper-0.14.5.2.ebuild b/dev-db/mydumper/mydumper-0.14.5.2.ebuild
index 8777ec59b286..44adc19c83dd 100644
--- a/dev-db/mydumper/mydumper-0.14.5.2.ebuild
+++ b/dev-db/mydumper/mydumper-0.14.5.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit cmake
+inherit cmake flag-o-matic
MY_PV="$(ver_rs 3 -)"
MY_P="${PN}-${MY_PV}"
@@ -30,12 +30,11 @@ BDEPEND="virtual/pkgconfig
PATCHES=(
"${FILESDIR}/${PN}-0.13.1-atomic.patch" #654314
+
+ "${FILESDIR}"/${PN}-0.14-Do-not-overwrite-the-user-CFLAGS.patch
)
src_prepare() {
- # respect user cflags; do not expand ${CMAKE_C_FLAGS} (!)
- sed -i -e 's|-O3 -g -Werror|${CMAKE_C_FLAGS}|' CMakeLists.txt || die
-
# fix doc install path
sed -i -e "s|share/doc/mydumper|share/doc/${PF}|" docs/CMakeLists.txt || die
@@ -43,6 +42,13 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855239
+ #
+ # Fixed upstream in git master:
+ # https://github.com/mydumper/mydumper/pull/1413
+ filter-lto
+
local mycmakeargs=(-DBUILD_DOCS=$(usex doc))
cmake_src_configure
diff --git a/dev-db/mydumper/mydumper-0.15.1.3.ebuild b/dev-db/mydumper/mydumper-0.15.2.8.ebuild
index 10f1909e2f79..3163f03bbf04 100644
--- a/dev-db/mydumper/mydumper-0.15.1.3.ebuild
+++ b/dev-db/mydumper/mydumper-0.15.2.8.ebuild
@@ -1,21 +1,21 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit cmake
+inherit cmake flag-o-matic
MY_PV="$(ver_rs 3 -)"
MY_P="${PN}-${MY_PV}"
DESCRIPTION="A high-performance multi-threaded backup (and restore) toolset for MySQL"
-HOMEPAGE="https://github.com/maxbube/mydumper"
-SRC_URI="https://github.com/maxbube/mydumper/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/mydumper/mydumper"
+SRC_URI="https://github.com/mydumper/mydumper/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="amd64 ~x86"
+KEYWORDS="~amd64 ~x86"
IUSE="doc"
RDEPEND="app-arch/zstd
@@ -30,12 +30,11 @@ BDEPEND="virtual/pkgconfig
PATCHES=(
"${FILESDIR}/${PN}-0.13.1-atomic.patch" #654314
+
+ "${FILESDIR}"/${PN}-0.15-Do-not-overwrite-the-user-CFLAGS.patch
)
src_prepare() {
- # respect user cflags; do not expand ${CMAKE_C_FLAGS} (!)
- sed -i -e 's|-g -Werror|${CMAKE_C_FLAGS}|' CMakeLists.txt || die
-
# fix doc install path
sed -i -e "s|share/doc/mydumper|share/doc/${PF}|" docs/CMakeLists.txt || die
@@ -43,6 +42,13 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855239
+ #
+ # Fixed upstream in git master:
+ # https://github.com/mydumper/mydumper/pull/1413
+ filter-lto
+
local mycmakeargs=(-DBUILD_DOCS=$(usex doc))
cmake_src_configure
diff --git a/dev-db/myodbc/Manifest b/dev-db/myodbc/Manifest
index 9aab17339b8a..36c1165fbe55 100644
--- a/dev-db/myodbc/Manifest
+++ b/dev-db/myodbc/Manifest
@@ -1 +1,2 @@
DIST mysql-connector-odbc-8.0.27-src.tar.gz 3849283 BLAKE2B 6a2500cdd706c0f8cda83dd04d3e573baa0bfbad59c931e20bb25a3f09dd78d2380079d0a20e075c3f44482d58acb6e727f4cbcf490e9d4d7817dd26f98061ee SHA512 4f907b7647425c274d3bd1c3b3ebbb83ac2360f2ee56733dabb501c17b800a26ef1117e16e5b05180ff904bfc642d25393baa861b96a79edf9d35f186a8689b2
+DIST mysql-connector-odbc-8.0.32-src.tar.gz 3845574 BLAKE2B 84adca951149739b79c60ee89416d2e638c5a5880feaed69afbd9de3a671ce505bad04303ccab9f13410f83e8827d9e3ee658b9e1241e66243d3424ac525525b SHA512 8011b131657e214de3f33407893ff990e2238e79a5d0ef76a64797c6f160f0895ed819e81c04054b3b4d439fc0db85c4813c713401db28092a9f6da16f24fb34
diff --git a/dev-db/myodbc/files/myodbc-8.0.32-include-string.patch b/dev-db/myodbc/files/myodbc-8.0.32-include-string.patch
new file mode 100644
index 000000000000..6bf31e1a53eb
--- /dev/null
+++ b/dev-db/myodbc/files/myodbc-8.0.32-include-string.patch
@@ -0,0 +1,14 @@
+# Gentoo Bug: https://bugs.gentoo.org/919501
+
+diff --git a/dltest/dltest.c b/dltest/dltest.c
+index d3b9360..3fb354b 100644
+--- a/dltest/dltest.c
++++ b/dltest/dltest.c
+@@ -28,6 +28,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+
+ #ifdef WIN32
+ #include <windows.h>
diff --git a/dev-db/myodbc/myodbc-8.0.32.ebuild b/dev-db/myodbc/myodbc-8.0.32.ebuild
new file mode 100644
index 000000000000..942a50b491f7
--- /dev/null
+++ b/dev-db/myodbc/myodbc-8.0.32.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="${MAJOR}"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+RDEPEND="
+ dev-db/unixODBC[${MULTILIB_USEDEP}]
+ >=dev-db/mysql-connector-c-8.0:0=[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+# Careful!
+DRIVER_NAME="${PN}-${SLOT}"
+
+PATCHES=(
+ # Patch document path so it doesn't install files to /usr
+ "${FILESDIR}/${MAJOR}-cmake-doc-path.patch"
+ "${FILESDIR}/${PN}-8.0.19-cxxlinkage.patch"
+ "${FILESDIR}/${PN}-8.0.32-include-string.patch"
+)
+
+src_prepare() {
+ # Remove tests
+ sed -i -e "s/ADD_SUBDIRECTORY(test)//" \
+ "${S}/CMakeLists.txt" || die
+
+ cmake_src_prepare
+}
+
+multilib_src_configure() {
+ CMAKE_BUILD_TYPE="RelWithDebInfo"
+
+ mycmakeargs+=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DMYSQLCLIENT_STATIC_LINKING=OFF
+ -DMYSQL_CXX_LINKAGE=YES
+ -DWITH_UNIXODBC=YES
+ -DWITH_DOCUMENTATION_INSTALL_PATH="${EPREFIX}"/usr/share/doc/${PF}
+ -DLIB_SUBDIR="$(get_libdir)/${PN}-${MAJOR}"
+ -DMYSQLCLIENT_NO_THREADS=ON
+ -DDISABLE_GUI=ON
+ # Don't build "libmysql_strings.so" and "libmysql_sys.so" which are only
+ # used internally
+ -DBUILD_SHARED_LIBS=OFF
+ # The NUMA and LIBWRAP options are not really used.
+ # They are just copied from the server code
+ -DWITH_NUMA=OFF
+ -DWITH_LIBWRAP=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_install_all() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ rm -rf "${ED}"/usr/test || die
+
+ 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() {
+ [ -n "${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 bf885879f346..1f03e10738cc 100644
--- a/dev-db/mysql-connector-c++/Manifest
+++ b/dev-db/mysql-connector-c++/Manifest
@@ -1,3 +1 @@
-DIST mysql-connector-c++-8.0.31-src.tar.gz 4201904 BLAKE2B 48385db732572ccf2ba91edca0fbdecf94b3ac5ca6c095e1e2e525e5f9b17749b9cb1ed9732253f9239296d364a69a91d56f60958eb4cf399f16db38f6bd76a8 SHA512 a088936e207926031b6bafe45925bf0c9d2acede9477b605adb09dc875c87965e58e3ecd0332168021122c9def831f0dfdb837ad2c4ea2f140b07b43c9f8bb3c
-DIST mysql-connector-c++-8.0.32-src.tar.gz 4202413 BLAKE2B fe15be7b6ec0c4699ded6e392f3f2e1c12fa9fe033172f6219916fb6ce4ae78d3e8cc882eaf66da606dc1445a59a5cf573f92ee6f1d18178d6c11762dcffb0c0 SHA512 cdfddaf84efe0d49d07c5ef07b5c50bde2f64cbf58d48016573a20ca372b0ba5dab640305d16d8b34032a63f2ceb2954eac108f838fb2f3849a7f3838329df48
DIST mysql-connector-c++-8.0.33-src.tar.gz 4531693 BLAKE2B b8f426742fa343ebc1f1da5ba1fbf7dfc0db39493bafd0f5d16e355d43277d78ff27b183edad31792a7591ac59bbfb4033f3498dc646883988cba189535a8ddf SHA512 a625a28f63161c97d727d90e7b1211273fe931ae1325c2fbeca16e770761e3159abdcaba1fb6eb1a557674fd817bf266875a089c8c2ea4d2dd1553e6fa887ef1
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild
deleted file mode 100644
index 8ee5fb48953d..000000000000
--- a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR=emake
-inherit cmake
-
-URI_DIR="Connector-C++"
-DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
-HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
-SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
-S="${WORKDIR}/${P}-src"
-
-LICENSE="Artistic GPL-2"
-SLOT="0"
-# -ppc, -sparc for bug #711940
-KEYWORDS="amd64 arm ~arm64 -ppc ppc64 -sparc x86"
-IUSE="+legacy"
-
-RDEPEND="
- app-arch/lz4:=
- app-arch/zstd:=
- dev-libs/openssl:=
- dev-libs/protobuf:=
- sys-libs/zlib
- legacy? (
- dev-libs/boost:=
- >=dev-db/mysql-connector-c-8.0.27:=
- )
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.0.27-mysqlclient_r.patch
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUNDLE_DEPENDENCIES=OFF
- -DWITH_PROTOBUF=system
- -DWITH_LZ4=system
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITH_ZSTD=system
- -DWITH_JDBC=$(usex legacy)
- )
-
- if use legacy ; then
- mycmakeargs+=(
- -DWITH_BOOST="${ESYSROOT}"/usr
- -DMYSQLCLIENT_STATIC_BINDING=0
- -DMYSQLCLIENT_STATIC_LINKING=0
- )
- fi
-
- cmake_src_configure
-}
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild
deleted file mode 100644
index 3e1cef8f1ae0..000000000000
--- a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR=emake
-inherit cmake
-
-URI_DIR="Connector-C++"
-DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
-HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
-SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
-S="${WORKDIR}/${P}-src"
-
-LICENSE="Artistic GPL-2"
-SLOT="0"
-# -ppc, -sparc for bug #711940
-KEYWORDS="amd64 arm ~arm64 -ppc ppc64 -sparc x86"
-IUSE="+legacy"
-
-RDEPEND="
- app-arch/lz4:=
- app-arch/zstd:=
- dev-libs/openssl:=
- >=dev-libs/protobuf-3.19.6:=
- sys-libs/zlib
- legacy? (
- dev-libs/boost:=
- >=dev-db/mysql-connector-c-8.0.27:=
- )
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.0.27-mysqlclient_r.patch
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUNDLE_DEPENDENCIES=OFF
- -DWITH_PROTOBUF=system
- -DWITH_LZ4=system
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITH_ZSTD=system
- -DWITH_JDBC=$(usex legacy)
- )
-
- if use legacy ; then
- mycmakeargs+=(
- -DWITH_BOOST="${ESYSROOT}"/usr
- -DMYSQLCLIENT_STATIC_BINDING=0
- -DMYSQLCLIENT_STATIC_LINKING=0
- )
- fi
-
- cmake_src_configure
-}
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild
deleted file mode 100644
index 30dae737eb56..000000000000
--- a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR=emake
-inherit cmake
-
-URI_DIR="Connector-C++"
-DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
-HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
-SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
-S="${WORKDIR}/${P}-src"
-
-LICENSE="Artistic GPL-2"
-SLOT="0"
-# -ppc, -sparc for bug #711940
-KEYWORDS="~amd64 ~arm ~arm64 -ppc ~ppc64 -sparc ~x86"
-
-RDEPEND="
- app-arch/lz4:=
- app-arch/zstd:=
- dev-libs/openssl:=
- sys-libs/zlib
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.0.27-mysqlclient_r.patch
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUNDLE_DEPENDENCIES=OFF
- # Cannot handle protobuf >23, bug #912797
- #-DWITH_PROTOBUF=system
- -DWITH_LZ4=system
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITH_ZSTD=system
- -DWITH_JDBC=OFF
- )
-
- cmake_src_configure
-}
diff --git a/dev-db/mysql-connector-c/Manifest b/dev-db/mysql-connector-c/Manifest
index bba4363fe6e8..b1933a7ac25c 100644
--- a/dev-db/mysql-connector-c/Manifest
+++ b/dev-db/mysql-connector-c/Manifest
@@ -1 +1,2 @@
DIST mysql-boost-8.0.32.tar.gz 436207624 BLAKE2B 8a75fd6fe12d4f870622b3386118737b8f17d116df625ef6187647c870d456823543e0a1e9aa05fff53313c3872df1df23add2508ec735bb7972718fc1e90539 SHA512 937e0d0350cb583bb4de15b080f08ed92b253a6d7c09f13a028855dae154fc84f0c95fb082b818b2fa6fa792cd2d9db8d7dc7a20a2a0d3d2b6839fbd2c821b44
+DIST mysql-boost-8.0.36.tar.gz 438154682 BLAKE2B 066c9dd7f2804ad29808c3bfcf5eae53466f7c40cf1386a9c1f26a0b45dcc3eda8d9618de36e8008e5e4d58b726d6c8ca85aec8d1eda8981f5a49e495b32f046 SHA512 a6c1c009a322b7e7aa2aa607573060414c847c77d48f44a24058ffb89673621f2ebbcc1a4448fa841a87ff721159cc8eaf44a57721c7dc233c130691c16a9d4a
diff --git a/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch
new file mode 100644
index 000000000000..9c8e654ba280
--- /dev/null
+++ b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch
@@ -0,0 +1,23 @@
+diff --git a/utilities/CMakeLists.txt b/utilities/CMakeLists.txt
+index da34524..96c7299 100644
+--- a/utilities/CMakeLists.txt
++++ b/utilities/CMakeLists.txt
+@@ -124,13 +124,11 @@ MYSQL_ADD_EXECUTABLE(perror
+ DEPENDENCIES GenError
+ LINK_LIBRARIES mysys
+ )
+-IF(WITH_LZ4 STREQUAL "bundled")
+- MYSQL_ADD_EXECUTABLE(lz4_decompress
+- lz4_decompress.cc
+- COMPONENT Server
+- LINK_LIBRARIES ext::lz4 mysys
+- )
+-ENDIF()
++MYSQL_ADD_EXECUTABLE(lz4_decompress
++ lz4_decompress.cc
++ COMPONENT Server
++ LINK_LIBRARIES ext::lz4 mysys
++ )
+
+ MYSQL_ADD_EXECUTABLE(zlib_decompress
+ zlib_decompress.cc
diff --git a/dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild b/dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild
new file mode 100644
index 000000000000..724061855292
--- /dev/null
+++ b/dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib flag-o-matic
+
+DESCRIPTION="C client library for MariaDB/MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/"
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/mysql/mysql-server.git"
+
+ inherit git-r3
+else
+ SRC_URI="https://dev.mysql.com/get/Downloads/MySQL-$(ver_cut 1-2)/mysql-boost-${PV}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+ S="${WORKDIR}/mysql-${PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0/21"
+IUSE="ldap static-libs"
+
+RDEPEND="
+ >=app-arch/lz4-1.9.4:=[${MULTILIB_USEDEP}]
+ app-arch/zstd:=[${MULTILIB_USEDEP}]
+ dev-libs/openssl:=[${MULTILIB_USEDEP}]
+ >=sys-libs/zlib-1.2.13:=[${MULTILIB_USEDEP}]
+ ldap? ( dev-libs/cyrus-sasl:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+# Avoid file collisions, #692580
+RDEPEND+="
+ !<dev-db/mysql-5.6.45-r1
+ !=dev-db/mysql-5.7.23*
+ !=dev-db/mysql-5.7.24*
+ !=dev-db/mysql-5.7.25*
+ !=dev-db/mysql-5.7.26-r0
+ !=dev-db/mysql-5.7.27-r0
+ !<dev-db/percona-server-5.7.26.29-r1
+"
+
+DOCS=( README )
+
+# Wrap the config script
+MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.36-always-build-decompress-utilities.patch
+ "${FILESDIR}"/${PN}-8.0.19-do-not-install-comp_err.patch
+ "${FILESDIR}"/${PN}-8.0.27-res_n.patch
+)
+
+src_prepare() {
+ sed -i -e 's/CLIENT_LIBS/CONFIG_CLIENT_LIBS/' "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_src_prepare
+}
+
+multilib_src_configure() {
+ # Code is now requiring C++17 due to https://github.com/mysql/mysql-server/commit/236ab55bedd8c9eacd80766d85edde2a8afacd08
+ append-cxxflags -std=c++17
+
+ local mycmakeargs=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DINSTALL_LAYOUT=RPM
+ -DINSTALL_LIBDIR=$(get_libdir)
+ -DWITH_DEFAULT_COMPILER_OPTIONS=OFF
+ -DENABLED_LOCAL_INFILE=ON
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/run/mysqld/mysqld.sock"
+ # Automagically uses LLD with not using LTO (bug #710272, #775845)
+ -DUSE_LD_LLD=OFF
+ -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
+ -DWITH_BUILD_ID=OFF
+ )
+
+ cmake_src_configure
+}
+
+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-init-scripts/files/init.d-2.3 b/dev-db/mysql-init-scripts/files/init.d-2.3
index 90e7e7536881..1216ac9a67c3 100644
--- a/dev-db/mysql-init-scripts/files/init.d-2.3
+++ b/dev-db/mysql-init-scripts/files/init.d-2.3
@@ -1,12 +1,12 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
extra_commands="checkconfig"
extra_stopped_commands="bootstrap_galera"
description_checkconfig="Verify the server's configuration"
-description_boostrap_galera="Start a new Galera cluster with this server as the initial node"
+description_bootstrap_galera="Start a new Galera cluster with this server as the initial node"
depend() {
use net.lo
diff --git a/dev-db/mysql-init-scripts/files/init.d-s6-2.3 b/dev-db/mysql-init-scripts/files/init.d-s6-2.3
index 5bf62e3ef937..4222de898125 100644
--- a/dev-db/mysql-init-scripts/files/init.d-s6-2.3
+++ b/dev-db/mysql-init-scripts/files/init.d-s6-2.3
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
@@ -41,7 +41,7 @@ extra_commands="checkconfig"
extra_stopped_commands="bootstrap_galera"
description_checkconfig="Verify the server's configuration"
-description_boostrap_galera="Start a new Galera cluster with this server as the initial node"
+description_bootstrap_galera="Start a new Galera cluster with this server as the initial node"
supervisor=s6
name=$(mysql_svcname)
s6_service_timeout_stop="$((1000*${STOP_TIMEOUT:-120}))"
diff --git a/dev-db/mysql-init-scripts/files/init.d-supervise-2.3 b/dev-db/mysql-init-scripts/files/init.d-supervise-2.3
index 1bacbd4d8566..fa7cba8d45c4 100644
--- a/dev-db/mysql-init-scripts/files/init.d-supervise-2.3
+++ b/dev-db/mysql-init-scripts/files/init.d-supervise-2.3
@@ -1,12 +1,12 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
extra_commands="checkconfig"
-extra_stopped_commands="boostrap_galera"
+extra_stopped_commands="bootstrap_galera"
description_checkconfig="Verify the server's configuration"
-description_boostrap_galera="Start a new Galera cluster with this server as the initial node"
+description_bootstrap_galera="Start a new Galera cluster with this server as the initial node"
depend() {
use net.lo
diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r7.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r8.ebuild
index ce3110eecafa..ce3110eecafa 100644
--- a/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r7.ebuild
+++ b/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r8.ebuild
diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index 0672320ea6b4..3efcb891c8b1 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -2,8 +2,10 @@ DIST mysql-5.7.36-patches-01.tar.xz 6396 BLAKE2B ed9783f207d40fc220992c4193bdd8e
DIST mysql-8.0.27-patches-03.tar.xz 9864 BLAKE2B 03136477a97a5bff0c5f1cbc7921a77d9b36e148e94f80463f00f0efd1a6859af4595f9cf15aa492bce043fdc9d6c6328bd64102f8b0127eacbc7795b1785ecb SHA512 8c00c8fef2b01389f59138eaa29399d8a9ce7930b6bdfb7689d1d7bf14a32fbb10a2b8dbe91933b805899ef3af0cf0bda704d4be14249991b381054bcc496058
DIST mysql-8.0.31-patches-01.tar.xz 5464 BLAKE2B c067bf311c83d4aa0f48d56621997bc58820fa0b41bd708eae04b0b54b89d549c5c1b84ca93adcbbdcb008199510ea667a12b1bcd44bf6b6df02062b4551d0a2 SHA512 95af6bb5aa0c407f0a1014f33523608b0df0797fd7fbdbba8a19985258a7c04788d7587c8f67cd1745284522c58297931c8827e31f77e8c89baaeff71a5e0ddc
DIST mysql-8.0.34-patches-01.tar.xz 9304 BLAKE2B e80dd1fab00fb183e0b980763a9b6c3b879357b776b2acc9709527e5d6e2549f801835936433e55fcde2820201edb3dead5d95f31ef617ef9542d2a0bd95efca SHA512 1ac196d609fabd9c978bc8dd3564a45f0d681c292215d8979604d7e402c622d70a1c66ed191ded081c597042298c43154a9bb09bb4566e7fe97991f67d91d999
+DIST mysql-8.0.36-patches-01.tar.xz 10768 BLAKE2B d9b9c6f170e08eee249bbef77713116ad2f1bd05d638f908011c8be406548b9a87a5189d440147c76ac8aef8058d3fdf25d754191a52fef786812ddd6a2409dd SHA512 3f6af0f17e2ded2ec5cc9b0001062bda061e51a17f4f2d1f1fb604590de026a70bd21cecdff28e05adb1b89356fec1c1b33bc9c848e8a20186412d8547452305
DIST mysql-boost-5.7.41.tar.gz 53266489 BLAKE2B 7201d6c53cf711bd121464fc85260e1799f7195f45706b91f3cb8d605fe2bd2639d532b4045a336645a553d9b0b1131cc45140a19483902e5dc37d3e2479b6f5 SHA512 88e1cc4864616ed92880a3f02285763aac2ddfc1cdeeff07e1502c97bbdfd31c9ed9d02f8f6381a352857a85241e4e4eb6bc0d978e3928a68ef49362f670482a
DIST mysql-boost-8.0.27.tar.gz 292184025 BLAKE2B 177209f3c62b0326ca9d021c751a701dec84c1b15c946ab0a68b1b4cf0620468eb3a1df77a918284007a0fde1aaa6a9767d0baed57936612813ef583df51c35e SHA512 6ef2426c0bee46bdf8e2fa5cb159d5ae19f0bed4f7c9bea9b33e0dd922b568c3c68ca063dcbcd7ea6904aaea31877c10064ea10b4bc63fb40d9f31778e3a7891
DIST mysql-boost-8.0.31.tar.gz 334504577 BLAKE2B 0506472c732351a1055be9bbd81212e95280ae464af95cb5b579777dd8fad4634b099fa2830c3095066daf8c586f1d8cd2316e7268fb0d2577dd706c595c9102 SHA512 87b1678de8c2fd640fd6f3ae58266ea63fe240578330e3296d0e5fc209bbe9b0c22996214b6ca4cce8c0d9cc2f9897f4e6723d835b33fc4342983c82929c3d96
DIST mysql-boost-8.0.32.tar.gz 436207624 BLAKE2B 8a75fd6fe12d4f870622b3386118737b8f17d116df625ef6187647c870d456823543e0a1e9aa05fff53313c3872df1df23add2508ec735bb7972718fc1e90539 SHA512 937e0d0350cb583bb4de15b080f08ed92b253a6d7c09f13a028855dae154fc84f0c95fb082b818b2fa6fa792cd2d9db8d7dc7a20a2a0d3d2b6839fbd2c821b44
DIST mysql-boost-8.0.34.tar.gz 439550780 BLAKE2B f50701b7e97e6cec21d6ce0f80f07a8df68a14c637a67841c06f578be8ed01d216dcb3b859a29f1befd4223b99e60675d6fa70f4b227bf6af81804e2c43161d4 SHA512 e5e79ac6870c214cf62c8e2830106d60e09d2e6df30654b84bb5d26864b4eabe777468a223e6ee4c1e22b7f6ec086c73e85e3f4c1fa66912b0e59b606ab46cd6
+DIST mysql-boost-8.0.36.tar.gz 438154682 BLAKE2B 066c9dd7f2804ad29808c3bfcf5eae53466f7c40cf1386a9c1f26a0b45dcc3eda8d9618de36e8008e5e4d58b726d6c8ca85aec8d1eda8981f5a49e495b32f046 SHA512 a6c1c009a322b7e7aa2aa607573060414c847c77d48f44a24058ffb89673621f2ebbcc1a4448fa841a87ff721159cc8eaf44a57721c7dc233c130691c16a9d4a
diff --git a/dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch b/dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch
new file mode 100644
index 000000000000..31a2946a41ed
--- /dev/null
+++ b/dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch
@@ -0,0 +1,76 @@
+From 50a1eae942effb0a9b90724323ef8f2a67e7984a Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@gmail.com>
+Date: Wed, 16 Nov 2022 10:43:31 +0200
+Subject: [PATCH] Change mpl::integral_c to boost::integral_constant to avoid
+ Clang 16 errors when constructing out of range enums (refs #24,
+ https://github.com/boostorg/mpl/issues/69)
+
+--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/int_float_mixture.hpp
++++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/int_float_mixture.hpp
+@@ -16,15 +16,15 @@
+ #include "boost/numeric/conversion/int_float_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'IntFloatMixture'
+- typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, integral_to_float> int2float_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, float_to_integral> float2int_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, float_to_float> float2float_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, integral_to_integral> int2int_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, integral_to_float> int2float_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, float_to_integral> float2int_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, float_to_float> float2float_c ;
+
+ // Metafunction:
+ //
+--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/sign_mixture.hpp
++++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/sign_mixture.hpp
+@@ -16,15 +16,15 @@
+ #include "boost/numeric/conversion/sign_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'SignMixture'
+- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, signed_to_signed> sig2sig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, signed_to_signed> sig2sig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
+
+ // Metafunction:
+ //
+--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
++++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
+@@ -15,15 +15,15 @@
+ #include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'UdtMixture'
+- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
+
+ // Metafunction:
+ //
diff --git a/dev-db/mysql/mysql-8.0.36.ebuild b/dev-db/mysql/mysql-8.0.36.ebuild
new file mode 100644
index 000000000000..91b033ef3d2f
--- /dev/null
+++ b/dev-db/mysql/mysql-8.0.36.ebuild
@@ -0,0 +1,1271 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs cmake edo flag-o-matic linux-info multiprocessing prefix
+
+MY_PV="${PV//_pre*}"
+MY_P="${PN}-${MY_PV}"
+
+# Patch version
+PATCH_SET=( https://github.com/parona-source/mysql-server/releases/download/mysql-8.0.36-patches-01/mysql-8.0.36-patches-01.tar.xz )
+
+DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
+HOMEPAGE="https://www.mysql.com/"
+SRC_URI="https://cdn.mysql.com/Downloads/MySQL-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz"
+SRC_URI+=" https://cdn.mysql.com/archives/mysql-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz"
+SRC_URI+=" https://downloads.mysql.com/archives/MySQL-$(ver_cut 1-2)/${PN}-boost-${MY_PV}.tar.gz"
+SRC_URI+=" ${PATCH_SET[@]}"
+# 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"
+
+LICENSE="GPL-2"
+SLOT="8.0"
+# -ppc for bug #761715
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips -ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+IUSE="cjk cracklib debug jemalloc latin1 numa +perl profiling router selinux +server tcmalloc test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="?? ( tcmalloc jemalloc )
+ cjk? ( server )
+ jemalloc? ( server )
+ numa? ( server )
+ profiling? ( server )
+ router? ( server )
+ tcmalloc? ( server )"
+
+# Be warned, *DEPEND are version-dependent
+# These are used for both runtime and compiletime
+COMMON_DEPEND="
+ >=app-arch/lz4-1.9.4:=
+ >=app-arch/zstd-1.2.0:=
+ >=dev-libs/openssl-1.0.0:=
+ sys-libs/ncurses:=
+ >=sys-libs/zlib-1.2.13:=
+ server? (
+ dev-libs/icu:=
+ dev-libs/libevent:=[ssl,threads(+)]
+ net-libs/libtirpc:=
+ cjk? ( app-text/mecab:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ kernel_linux? (
+ dev-libs/libaio:=
+ sys-process/procps
+ )
+ numa? ( sys-process/numactl )
+ tcmalloc? ( dev-util/google-perftools:= )
+ )
+"
+
+# https://bugs.gentoo.org/623962
+# tests set TZ for tests leading to failures on musl if sys-libs/timezone-data isnt installed
+DEPEND="
+ ${COMMON_DEPEND}
+ app-alternatives/yacc
+ server? ( net-libs/rpcsvc-proto )
+ test? (
+ acct-group/mysql acct-user/mysql
+ dev-perl/Expect
+ dev-perl/JSON
+ sys-libs/timezone-data
+ )
+"
+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 )"
+
+PATCHES=(
+ "${WORKDIR}"/mysql-patches
+ # Needed due to bundled boost-1.77, this fix is included in boost-1.81
+ "${FILESDIR}"/mysql-8.0.36-boost-clang-fix.patch
+)
+
+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="10G"
+
+ if use elibc_musl; then
+ # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server"
+ CHECKREQS_DISK_BUILD="18G"
+ fi
+ 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="10G"
+
+ if use elibc_musl; then
+ # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server"
+ CHECKREQS_DISK_BUILD="18G"
+ fi
+
+ # 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)
+ if [[ -z "${aio_max_nr}" || ${aio_max_nr} -lt 250000 ]] ; then
+ die "FEATURES=test will require fs.aio-max-nr=250000 at minimum!"
+ fi
+
+ 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 && 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
+
+ use server && check-reqs_pkg_setup
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+
+ mv -f "${WORKDIR}/${MY_P}" "${S}" || die
+}
+
+src_prepare() {
+ # 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]"
+
+ # Code is now requiring C++17 due to https://github.com/mysql/mysql-server/commit/236ab55bedd8c9eacd80766d85edde2a8afacd08
+ append-cxxflags -std=c++17
+
+ if has sandbox ${FEATURES} ; then
+ # bug #823656
+ append-cppflags -DGTEST_NO_DEATH_TEST=1
+ fi
+
+ local mycmakeargs=(
+ -Wno-dev # less noise
+
+ -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"
+
+ -DROUTER_INSTALL_LOGROTATEDIR="${EPREFIX}/etc/logrotate.d"
+ -DROUTER_INSTALL_DOCDIR="share/doc/${PF}"
+
+ -DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
+ -DWITH_UNIT_TESTS=$(usex test ON OFF)
+
+ # Enables -Werror
+ -DMYSQL_MAINTAINER_MODE=OFF
+
+ # Causes issues on musl bug #922808
+ -DWITH_BUILD_ID=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
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+
+ -DWITH_CURL=system
+ -DWITH_BOOST="${S}/boost"
+ -DWITH_ROUTER=$(usex router ON OFF)
+ )
+
+ if use debug; then
+ # Debug build type used extensively to add preprocessor definitions
+ local -x CMAKE_BUILD_TYPE="Debug"
+ else
+ # debug hack wrt #497532
+ mycmakeargs+=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+ )
+ fi
+
+ if tc-is-lto ; then
+ mycmakeargs+=( -DWITH_LTO=ON )
+ else
+ mycmakeargs+=( -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
+ # Cannot handle protobuf >23 bug #912797
+ -DWITH_PROTOBUF=bundled
+ -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 test install
+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_tests
+
+ einfo "Official test instructions:"
+ einfo "ulimit -n 16500 && USE='perl server' FEATURES='test userpriv' ebuild ..."
+
+ if ! use server ; then
+ ewarn "Skipping server tests due to minimal build!"
+ return 0
+ fi
+
+ # Ensure that parallel runs don't die
+ local -x MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ local -x MTR_PARALLEL=${MTR_PARALLEL:-$(makeopts_jobs)}
+ einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
+
+ # Disable unit tests, run them separately with eclass defaults
+ local -x MTR_UNIT_TESTS=0
+
+ # Increase test timeouts
+ # bug #923649
+ # https://github.com/gentoo/gentoo/pull/35002#issuecomment-1926101030
+ local -x MTR_SUITE_TIMEOUT=$(( 60 * 40 )) # minutes
+ local -x MTR_TESTCASE_TIMEOUT=60 # minutes
+
+ # Include config for tests, this is for scenarios where mysql wasn't installed previously or if the
+ # configuration was from an older version.
+ sed \
+ -e "s/@GENTOO_PORTAGE_EPREFIX@/${EPREFIX}/" \
+ -e "s/@DATADIR@/${MY_DATADIR}/" \
+ "${FILESDIR}"/my.cnf-8.0.distro-client \
+ "${FILESDIR}"/my.cnf-8.0.distro-server \
+ > "${T}"/my.cnf || die
+ local -X PATH_CONFIG_FILE="${T}/my.cnf"
+
+ # 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" || die
+
+ local -a disabled_tests=(
+ "auth_sec.atomic_rename_user;103512;Depends on user running test"
+ "auth_sec.keyring_file_data_qa;0;Won't work with user privileges"
+ "auth_sec.openssl_without_fips;94718;Known test failure"
+
+ "gis.geometry_class_attri_prop;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.geometry_property_function_issimple;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.gis_bugs_crashes;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_buffer;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_centroid;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_distance;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_op_testingfunc_mix;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_operators_intersection;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_utility_function_distance_sphere;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_utility_function_simplify;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.st_symdifference;5452;Known rounding error with latest AMD processors (PS)"
+
+ "innodb.alter_kill;0;Known test failure -- no upstream bug yet"
+
+ "main.derived_limit;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.explain_tree;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.gis-precise;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.mysql_load_data_local_dir;0;Known test failure -- no upstream bug yet"
+ "main.select_icp_mrr;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_bugs;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_mat_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_all_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.window_std_var;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.window_std_var_optimized;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.with_recursive;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "perfschema.statement_digest_query_sample;0;Test will fail on slow hardware"
+
+ "rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch;0;Unstable test"
+ "rpl_gtid.rpl_multi_source_mtr_includes;97844;Unstable test"
+ "main.partition_datatype;0;Unstable test"
+
+ "sys_vars.myisam_data_pointer_size_func;87935;Test will fail on slow hardware"
+
+ "x.connection;0;Known failure - no upstream bug yet"
+ "main.slow_log;0;Known failure - no upstream bug yet"
+
+ "sys_vars.build_id_basic;0;Requires -DWITH_BUILD_ID=ON"
+ )
+
+ 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"
+ "innodb.partition_upgrade_create;0;Requires app-arch/zip"
+ )
+ fi
+
+ if has_version ">=dev-libs/openssl-3.2" ; then
+ # https://bugs.mysql.com/bug.php?id=113258
+ disabled_tests+=(
+ "rpl.rpl_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2"
+ "auth_sec.wl15800_ciphers_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2"
+ )
+ fi
+
+ if use debug; then
+ disabled_tests+=(
+ "innodb.dblwr_unencrypt;0;Known test failure -- no upstream bug yet"
+ )
+ 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
+
+ local -a CMAKE_SKIP_TESTS=(
+ # timing test, can be unreliable
+ "routertest_harness_net_ts_timer"
+
+ # Could not get local host address: Name or service not known(errno: -2)
+ "routertest_component_bootstrap"
+ "routertest_component_bootstrap_account"
+ "routertest_component_bootstrap_clusterset"
+ "routertest_component_config_overwrites"
+ "routertest_component_rest_api_enable"
+ "routertest_component_routing"
+ "routertest_component_sd_notify"
+ "routertest_component_state_file"
+ "routertest_integration_routing_direct"
+ "routertest_integration_routing_reuse"
+ "routertest_integration_routing_sharing"
+ "routertest_integration_routing_sharing_constrained_pools"
+ "routertest_integration_routing_sharing_restart"
+
+ # TODO: ???
+ "pfs_host-oom"
+ "pfs_user-oom"
+ "pfs"
+ )
+
+ if use debug; then
+ CMAKE_SKIP_TESTS+=(
+ # binary_log::transaction::compression::Payload_event_buffer_istream::~Payload_event_buffer_istream(): Assertion `!m_outstanding_error' failed.
+ "payload_event_buffer_istream"
+ )
+ 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
+ # Enable force restart to ensure success when tests don't cleanup sufficiently.
+ # Anything touching gtid_executed is negatively affected if you have unlucky ordering
+ nonfatal edo perl mysql-test-run.pl \
+ --force --force-restart \
+ --vardir="${T}/var-tests" --tmpdir="${T}/tmp-tests" \
+ --skip-test=tokudb --skip-test-list="${T}/disabled.def" \
+ --retry-failure=0 --max-test-fail=0
+ 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_tests} -eq 0 ]] || failures="${failures} tests"
+
+ cmake_src_test
+
+ [[ -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}"
+ grep -E -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/Manifest b/dev-db/mysqltuner/Manifest
index dd279be50776..6f2a4fd61356 100644
--- a/dev-db/mysqltuner/Manifest
+++ b/dev-db/mysqltuner/Manifest
@@ -1,2 +1 @@
-DIST mysqltuner-2.2.12.tar.gz 5130342 BLAKE2B 9a62f634a18f94d8f844aa93a0c7b2595bf29c9888005c89bdf8c0acb7376548dd745e46b2c0d67bb2ab5b79acd4ce19f6fd99b525bf8794e92b7713020128ac SHA512 84352c3bce74a7288ea1ac5a7c2e513ff0cd35656df5280bedf8738eb4b90ad0cdf039510d874947080720f56f0f947a964cf5152788a7566616e012a5f94c85
DIST mysqltuner-2.5.2.tar.gz 5132683 BLAKE2B 439559c05ed9daad6f21fc90f91b3b39619ca2012a719eca3ba4b5d8cb2d963fb8bc10b0ea2855052ca5716fc98aa62f35bd0288380dceb79c1832150fe7f2a8 SHA512 9fe3d77636e3779ca2ab5f93cd7c480d651f6c26f4e6271adfcee6012aa423579f124ce6858bbf7142b2967f30bc0f0517b5d82ad2a35ecc004b1b621d0bee45
diff --git a/dev-db/mysqltuner/mysqltuner-2.2.12.ebuild b/dev-db/mysqltuner/mysqltuner-2.2.12.ebuild
deleted file mode 100644
index f7d7b73e56c1..000000000000
--- a/dev-db/mysqltuner/mysqltuner-2.2.12.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MY_PN="MySQLTuner-perl"
-
-DESCRIPTION="Makes recommendations for increased performance and stability for MySQL"
-HOMEPAGE="https://github.com/major/MySQLTuner-perl"
-SRC_URI="https://github.com/major/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-RDEPEND="
- dev-lang/perl
- virtual/perl-Getopt-Long
-"
-
-src_compile() {
- :;
-}
-
-src_install() {
- newbin mysqltuner.pl mysqltuner
- dodoc {CONTRIBUTING,INTERNALS,USAGE}.md
- einstalldocs
-
- # Passwords and vulnerabilities are meant to be fed to the script uncompressed.
- dodoc basic_passwords.txt vulnerabilities.csv
- docompress -x "/usr/share/doc/${PF}/basic_passwords.txt" "/usr/share/doc/${PF}/vulnerabilities.csv"
-}
diff --git a/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild b/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild
index 7ce503589cae..0fe8e0faba42 100644
--- a/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild
+++ b/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
RDEPEND="
dev-lang/perl
diff --git a/dev-db/oracle-instantclient/Manifest b/dev-db/oracle-instantclient/Manifest
index a06d0dbd82d1..b2d2676606de 100644
--- a/dev-db/oracle-instantclient/Manifest
+++ b/dev-db/oracle-instantclient/Manifest
@@ -1,28 +1,35 @@
DIST instantclient-basic-linux-19.11.0.0.0dbru.zip 70336706 BLAKE2B 061f6abc83bab7f2e6712e33274783f96caee3d97629d39cacd925af658f737a072207449468e05f89672bcfc7ff98f81d7d9c92a8f844664ce97b4c6afabf27 SHA512 da4db9c64c0f92c2b78cc6b26ff710e3330e937395d62942625921401042af27fdf80d25eb3748c97f4281442ddb72f3ddc5f68171a89ae289f3d2f492c56ef7
DIST instantclient-basic-linux-21.3.0.0.0.zip 74751697 BLAKE2B f9b29d1c98a55946670ce6a5c674f2c9e6a8d6152b0f4d335f41ad9479b0a2bcf9ba791aeba894161c64c5e088b458506c068d4ece386956158cb09f27f91b07 SHA512 b8599ebe0cf867336b1dfb4edb974b934ed29e96aa7b7a866b93c8d8271c8dfacc693b884a9e422272098e09b4c5a2d6badb11fffb57b43ca4eb15907878bb99
DIST instantclient-basic-linux.x64-19.11.0.0.0dbru.zip 75943090 BLAKE2B 6e081d22af1161d1505847c6918cc618f92810d7803f2bb13b3c58f2e8c5bb3aa70d2006fbd1fcc193d3719ecf224c3541f3dc5c5ccfc6105a10c54c51ddd2c9 SHA512 0f7242a1becb062b6c55202587360895529e7ec277b0e41e27466dc01caf4b97cf0a256d0ccb9b71fb86b4802d9c427e0428f0419260b609d94472f89f7f33e6
+DIST instantclient-basic-linux.x64-21.13.0.0.0dbru.zip 83761712 BLAKE2B d7922bb6372bfb5a2c251f373ebf84130ec235ec95fa83a347aadf325f90f3be746de5c031035af7496ba728d75269434137090eb538790149ed051b23ebd63a SHA512 e2cf006fc542917367dbcf82287ac3a4614a5238d2d2dcf8f998fc0b91b3a3177aa2296bdbbea277d68dfe523f72ed32a2bca7dbc113a16bdaf5fe7982742aa3
DIST instantclient-basic-linux.x64-21.3.0.0.0.zip 79375865 BLAKE2B 2215829c6f7df463d0cd1108755976eb5cc6d4fdf41201687236131151d2068a9e3c8762bfdac65ce2890c57cdb2fea6684e6012d836f232a8ff3cb93223deec SHA512 812dd6bb3a3c24b87e40a3df0c2a0dcfe1b5e27524b8e1622c533d8561cd4d674e9d90b8e66f571ee21bf3d1e152092ee986b6ff226d51674f1253f1ffb97ae4
DIST instantclient-jdbc-linux-19.11.0.0.0dbru.zip 1577534 BLAKE2B 954049186c80028567f5ec0bb30aa28f6d9092d8c8be7cfef67f94e397dc26b935cfbbf75bee3b32e56c3697fb5a7e3181f9948ef91177af68c648e102a7db77 SHA512 5717137a6ebf28669347dd6f03f61b7242a332b927b55502b9019d108714c77e3dd31894f6d5260df6553604b0255b657aed46b63262db9f2e7153c067387e0e
DIST instantclient-jdbc-linux-21.3.0.0.0.zip 1578398 BLAKE2B 42fbcd9946ff87f438297751febcaef4d361d36ac9d6538bc52f988f98c51531efb3a2721ba5c3859bf7f8e9092667704c206cc373d6ad099c1e6048077b3662 SHA512 3bb62dbe0738f6800945858acf56780d8049af0d6c6466e926c7173deaecf3dcd277f9a7e57f3b89aef08e73a585b57eded7175809ddf8a53402523ba392c1d5
DIST instantclient-jdbc-linux.x64-19.11.0.0.0dbru.zip 1578059 BLAKE2B f5db4ab8b4424d21bb685b43012f71a228fdf1444e055b44dcf029b3beeefcca96aaddc496ac5912d4b337ec5d2bbd959df6083c18f7921811e996a2d73e5af6 SHA512 b2f906ae887f0421ff2edb80a70d0ede1fa624792e45ebfd205ade3f24dcd3cbc596c3ee64c39d7143810a2a11fafc649ad46cb5549d519dd3a1ffb7476fb537
+DIST instantclient-jdbc-linux.x64-21.13.0.0.0dbru.zip 1579013 BLAKE2B 3a3623fdddd8612c64ad42347c3272923753937d137f6af44b1211540dff0df495793caeb069ea1eb731e25d022728c2dca41eae8123af81070ffb30b509ef68 SHA512 634fdabfa4a2a90b436ff6fbe7227c0667a035a86aa51bb8d1ce3bb9b6a62a8285d3845cc58d29b5ec0a53c66c0314f63fff9412de8b25f4837428ad7863e9c4
DIST instantclient-jdbc-linux.x64-21.3.0.0.0.zip 1578995 BLAKE2B 9913c62abe55d5c5ebe7e9feeb9051b7833d33e3a7bc8b96667336d2ecb8bd8766d268f2eef2f2de247b0edf1d3abb65c56316a3d11b14ebcf782a3c75ed332e SHA512 8d2b7344c99ec0744e147c899e252f34fd29b7dff49b2bbe5497836130fd8e9d01f874b33ddaf7a8cca442d62eb7da56ed547120ffd409bb4731a9b56166bb42
DIST instantclient-odbc-linux-19.11.0.0.0dbru.zip 600428 BLAKE2B b4bcb4131bab1fac2650bee8cf1db4f389e89bbf0e310f9df2a9f1ce29ebf35f8056e350175ceb406e82bd077825cb4e6ad405c5ec00929f2db2630e99630006 SHA512 9a21c2dc06b6e1c4ae7305ce248cbfe45e4ad830a48f3e088be11065471beda002fd5a6bcca71f5095ad70186d742bddffc82bdb79a4368e89c59bfd3f04af4b
DIST instantclient-odbc-linux-21.3.0.0.0.zip 760101 BLAKE2B 68a96fa5e24f5d44f64eabfd142280d620423f15fff62b10094b4425b520a2a31ba54fe6bce2d723700d38ce5a579d31a1c49ef6928eb6f4e342c7c8d98a49aa SHA512 e2e4cf126652580bf2d8f8ace7694881382b745a7adfabbba0c3e6fddcbb9ca7e300b0d18b19c8da029ca8f33c5f8f95baa141da20659ba49c9a8e6f4848b2db
DIST instantclient-odbc-linux.x64-19.11.0.0.0dbru.zip 638686 BLAKE2B c9fa1b8988d85870bb4c2d9cb5c34c1572079c36a51da0ef726250f03ca0b53dbc19990582358011f099ca183d6148f8110cf80c1a17917549f6e38be503f706 SHA512 7d92ff08ea48de0e981cadad15a3c392749b3e20331b25f00f2f96ef7cc11a9802408f18dbfbf36366b0122d6c8fd256d43297c3bd87b4304b0479b1593e35fc
+DIST instantclient-odbc-linux.x64-21.13.0.0.0dbru.zip 798628 BLAKE2B 1cc41d2f1538924debbe0ee04c251abda45be769097103c8782c946772e8ab3c3734f443b5d910d29a308e9a3470fb1c72f5e72b208e347164f8fd44cabe1d5f SHA512 65551dbe35c5ac5bd709973147ef3a1a6cead8f21f4a5675cad6b8b5fc670f0eb0c897fcdeb2f421b1005c1c2763e3c4090c81fa73122f146411a27cdfbdd042
DIST instantclient-odbc-linux.x64-21.3.0.0.0.zip 798599 BLAKE2B d020c68895dbb59e53e2e7ebc599e9016dee123dc03d3ce5f9263e721fa7664ecc6fc8b49b0b498a87b0d24bf74e79854edd66c2b2e7a9367be8e1e9c2cbe159 SHA512 0bf756458f3a856bbe6942d1f4bc30a7261ce3da7524ab8b71f77d9f367767ad75e8ed83e4de18bed1eb8d597f2aa0efe0c713a2e407e801e7ce3f83e152361b
DIST instantclient-precomp-linux-19.11.0.0.0dbru.zip 5194893 BLAKE2B cbfda89f2f97728234aa3aa58d13289be66db0127f1e73675ea2fae348d8dff28e86b85b0a5a8f372dc155a07d6aa71f2096ef5b3cdc3082ca80c107fac06f4b SHA512 196ea51fc11d59212e274669e623d86cd91c6a8d7425cab5a08044d216b118ef2e4597e0c2a904579f35de87b5fb87f9d6a6eeab927af5878c3a7e1e504730b5
DIST instantclient-precomp-linux-21.3.0.0.0.zip 5290951 BLAKE2B 3df4c41019315119d63ec780b9ae23d48823ecb2b9aa61a923c87c3e1f30fd97266030bbbc898d59b402931e02e8b3dcedfb6b96bd41381b583da2b380526f5d SHA512 b1fb267c373410c3c24fbdc4102b3395beaf0609ec3439f730a31ba43c5f2e1b276ce6e7df04de0d542c211dfef3ecadfccfe33f1472653feb42fb25a9dc700a
DIST instantclient-precomp-linux.x64-19.11.0.0.0dbru.zip 6254880 BLAKE2B 0035623721a12c096a38ee64bc41465682214763f123ce9c529c61b6081c6de54bd7835f8b4ef07dca5eafda5354a77fa589c7c54cde412e1bdd4f313e58b3bb SHA512 d322b7896992cef8e48cc48acc68a5730d2a04ba0af5130eafa6ada79b64b16a4bd8cfaa02a28587d0871713579a5215ff46162499cd1f422252ef8dab61b7ab
+DIST instantclient-precomp-linux.x64-21.13.0.0.0dbru.zip 6389884 BLAKE2B 81921e1fb2cda680c1eafca4edc82c69fcb1afe2d573cdfefdd24fd50568cedf3c3992542486aad5acac083679221a14696c19ea6fc016ec8d0c7c8cb1cf7349 SHA512 1552723385e502bafa39853e12781cea3ef5d7a5407040fd8bf6ee878d1246dc8f976192861f60dbd71da1c854271953f98604d707393ce688b1fc726245f88e
DIST instantclient-precomp-linux.x64-21.3.0.0.0.zip 6386663 BLAKE2B fea4e0465330d4309791f9ca58ae169b1ff2cd1f17b003210aab1fe4faa92d6e48ee20bbf7d84f44f437bf5297c69c9c2b5a2e3cfb687c8010f8ba75bb928c9f SHA512 8235236175f35d4634005249ccbe0ea5dec4078fd795545184578cefbb8d45663731c507baac4a952fb9603272aa3ff58197eb23801894bbd240cf5736460d57
DIST instantclient-sdk-linux-19.11.0.0.0dbru.zip 933913 BLAKE2B 08cb6c94cd152f58fe9e52874b40dec56a6f7d3c9913122303b46f75ae2df0e13fff1a375136b6fffabe9ee7a7d844a2b95b1be380b6d957338b09a15c9fe83a SHA512 8d7aff3d066f423021a5babda86b1b378333966fd892146bf46a967495180fc099e9766deab27d81735fee845ab43ee48d8815fd96a73e3a235c4fde74952e40
DIST instantclient-sdk-linux-21.3.0.0.0.zip 1000869 BLAKE2B 3e3f01da8218dad9de699b587ecd37dc465bd5779c7d6919149bcd947e9e9575d35727fe7d1251db8df12214a399b665c62be9e790dbaeaa895b2442ffcdd8fd SHA512 dd88433810e5b72d96747e57b34f7880607fdd0250d04972afed9a9f20c27ce1b74d7030b4de60e03621f98117b7ee93062c6c750b5c2dd104668a0afd45cd47
DIST instantclient-sdk-linux.x64-19.11.0.0.0dbru.zip 933906 BLAKE2B 7d15f4c5a53708fd311ca75c35db5cf1241070217c21acf05f181ad07259135fd64eeb8f84582ce1faa6bbdd9c3fc29c07e44d82ff60fe1bbb9acaf7f70612c3 SHA512 d964612f0bb571c5c1fe78d14f861b2189d917d23e9be936faa637d5a2f8b530dc93a1ae0130346b70897bd1382f23953ff3e7f3163a580b7c6058675ac5fcf2
+DIST instantclient-sdk-linux.x64-21.13.0.0.0dbru.zip 1001591 BLAKE2B 36f3c40da230b66edc9c9462020f6070b7610ea55d20ffc0f2ef3e1729a4ed09edf0d105136939bd6d30ac5a5323fd43efe7327214d7b9d39480fdb553f1480e SHA512 b0d040e0d4e0dc59a35efed58162ec9cb8b1c0440a7d499bffca2da11c9a62ecf91ad5ac840bb5f35da1bbadb552bee757b0cffd8fef71dfadf44ff5f52ce4c3
DIST instantclient-sdk-linux.x64-21.3.0.0.0.zip 1000777 BLAKE2B b593e3ef880a22d712a4e2b0c51f2f68e5d9ab6c3e4124b32de643eab7d3b41b6d5eb46f4ac98af743d90343d29975760048af5b7be0919c40a9b84217b31939 SHA512 5372c151a5b45bb2cdf80c47ea65b4d8ad849cc5a50818917484b952e03c344f2d7f1896a13d51ad9daf7fa9c43226aa011dca03161d6976375f239f782bdd23
DIST instantclient-sqlplus-linux-19.11.0.0.0dbru.zip 884155 BLAKE2B f681321cc43646af74eda4d6da102587123e0f3fb423d978066f014c4729ed046806f9c49cae6928704b4993459089e8d8c1ab4fb1aab912cd6fa7ee27382fe3 SHA512 1f4bc70b070c9a0597f1433913018021e87a7b059784a56e47842afd8a501039def6591f4e7a009f3f4598f23c45aa807578a74082174862ecb444b1855f7b22
DIST instantclient-sqlplus-linux-21.3.0.0.0.zip 909623 BLAKE2B 181da5e352dfea2ee1d87e138601f8b84ae2df278deb1c205bf25e5958a32da13252c8455a8aeb9941de2fc3752fd0510c53f196e8755bedae24e704cb4197a3 SHA512 e4417bccf0abbbfe16fce06b1a18c6e4f58ede1b87a1ab6407f74e3b926aa9d9b4d390c881bd578f95ed4fec6980e8b28cb9f624b8480e1ffac6dc599dcf49a7
DIST instantclient-sqlplus-linux.x64-19.11.0.0.0dbru.zip 911265 BLAKE2B 78215f683458147792be3182eaf9edfde5943e8e470a7bcbe09c82c298df709bc7cdf919e349a9130b8d6313f2f8a1d04ad9b5b3c5ad91d49802ad14c3f15515 SHA512 dd1343ae49917a031cbd8d757d11da46354f157f46dd651afcde09b4b74a9e02008c6370eabf6bd313190629944cc075d6fbd893b491ad3505b7a05dbeecd963
+DIST instantclient-sqlplus-linux.x64-21.13.0.0.0dbru.zip 936856 BLAKE2B b4217412ed0b6f2d5cdff92c4e35a1bde119afaf0e6a5eb543d9b916a6d88fd358ee3396a4cddf2a5bd32252119a20047feaa6118cb086c6b0efc282f51ad080 SHA512 963535debcb8f811b0e2d5da03fdd7024ee6d8963d8d0450721b351a420042e1d3948fb4423dea0b6a3f7f4196ab054a99c202586adf73362640316b7a7171af
DIST instantclient-sqlplus-linux.x64-21.3.0.0.0.zip 936305 BLAKE2B b6021f3ab3badb282f1a13a93beee6caa093b905efe6a647cc8ec9ea84eb3f7de4d9885692fd8d965608ba89964d13b5427af0f8710711f673ec97c528a6063c SHA512 9c6e87b4d319fc2bc35b2bd492b9608023d0f90b6230a66c75d9cd4d9fdea9b5dab178751cd188f9d1368f639d40f342ef1c71773dc4f9e9d8a199f4b46deaee
DIST instantclient-tools-linux-19.11.0.0.0dbru.zip 1020021 BLAKE2B e2a615e0ffb4608af05931a8b49406c85db5d549761319c7116395fae206fe6cc0cf56b49e6c3968419e63616f2d07ad6ec3ed70c862fb2394b8dc0ce9f6dbb0 SHA512 255593c1e62a11f41793619c856d316815d77fa83cc9efee1d5366dc86b32e9909b042f7ac81ad693aafb8c34cdcc8faa7eebf816a90d037d36ce461df33f469
DIST instantclient-tools-linux-21.3.0.0.0.zip 1083935 BLAKE2B e0caed4063d3322322beea599053fc40f1e08470d03c4bbe7cb5b46e5f4ba4759d313ea714806facd35d24924cb83e6d9d7d3a44bcf1da62c6c80d0321f33ce9 SHA512 301c126a3d2fefe36400c2287515ff6716a68a3273ae1450393d04509447d68e3bd2cc0412c5c078923421ff80534c3fa56123df61fbf92ea42965e3eed80bce
DIST instantclient-tools-linux.x64-19.11.0.0.0dbru.zip 1085194 BLAKE2B 321e1cd7704f6a5ad33a9ca0eed35feb4d8e4a3ac2b5a5d11f992569f0024ae8ef5b8fb42b02d627ee4a81d2ae9170367ba7107e0f975f89d189c576eef45edd SHA512 d355b0a457ede28b20004b4709ada5bb2c2c8a72a20a19df07bc4fb8607f78ed4d24bbf07a9f2157873b544de7a43406faa27374a0f2d6a47d63f36478e97d3e
+DIST instantclient-tools-linux.x64-21.13.0.0.0dbru.zip 1150015 BLAKE2B f0263bd528e26658e4ee2f79365d3d891dcb25ef156486a3d39dc4aa819d77784e4638ab970375c9a85604f404930d8cd939a20f6adbcc8d9652bbfac74d91b0 SHA512 8b62c07ceeef342da835ba0d58802beecff366cb89142547732b368f8757e3017eaead4746816f37cbbe0ef053df8de2cadc4f6bed9307b92b15a27bf1523dc3
DIST instantclient-tools-linux.x64-21.3.0.0.0.zip 1149632 BLAKE2B 3ad6ee973f813733e48c58f9a18d1dad321f9fb886d9460c2bc8f9d766d5a021722b34d9d9ea0ffb7a8466a38f5cf816bc55767b668e5cb5ee59b549fe4fc4ca SHA512 4c47b51f4801cab6d71a201c12ddb7a30616050584630107968a50457d4eca0e92f3344505bdd8f36481924a21a508d476c9f26ed111bad846f4a8feab98110d
diff --git a/dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch b/dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch
new file mode 100644
index 000000000000..907d43494bf7
--- /dev/null
+++ b/dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch
@@ -0,0 +1,22 @@
+diff --color -Naru a/sdk/demo/demo.mk b/sdk/demo/demo.mk
+--- a/sdk/demo/demo.mk 2021-08-22 17:20:17.232777697 +0200
++++ b/sdk/demo/demo.mk 2021-08-22 17:24:49.800783794 +0200
+@@ -43,10 +43,15 @@
+ CC=/opt/SunProd/SUNWspro6.1/bin/CC
+ cc=/opt/SunProd/SUNWspro6.1/bin/cc
+
+-ICINCHOME=../
+-ICLIBHOME=../../
++ifeq ($(BUILD32),T)
++LIBDIR=lib
++else
++LIBDIR=lib64
++endif
++ICINCHOME=$(ORACLE_HOME)/include
++ICLIBHOME=$(ORACLE_HOME)/$(LIBDIR)
+ ICLIBPATH=-L$(ICLIBHOME)
+-CCINCLUDES=-I$(ICINCHOME)include
++CCINCLUDES=-I$(ICINCHOME)
+
+ THREADLIBS=-lthread
+ CCLIB=$(ICLIBPATH) -locci -lclntsh $(THREADLIBS)
diff --git a/dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild b/dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild
new file mode 100644
index 000000000000..405f63eaceca
--- /dev/null
+++ b/dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild
@@ -0,0 +1,310 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils
+
+DESCRIPTION="Oracle 21c Instant Client with SDK"
+HOMEPAGE="https://www.oracle.com/database/technologies/instant-client.html"
+
+MY_SOVER=21.1 # the library soname found in the zip files
+
+IUSE="jdbc odbc precomp +sdk +sqlplus tools"
+REQUIRED_USE="precomp? ( sdk )"
+
+MY_PVM=$(ver_cut 1-2)
+MY_P="instantclient_$(ver_rs 1 _ ${MY_PVM})"
+
+MY_PVP=$(ver_cut 5) # p2
+
+MY_URI="https://download.oracle.com/otn_software/linux/instantclient/$(ver_rs 1-5 '' $(ver_cut 1-5))"
+
+# MY_PLAT_x86="Linux x86"
+# MY_BITS_x86=32
+# MY_A_x86="${MY_URI}/${PN/oracle-/}-basic-linux-${PV}.zip"
+# MY_A_x86_jdbc="${MY_A_x86/basic/jdbc}"
+# MY_A_x86_odbc="${MY_A_x86/basic/odbc}"
+# MY_A_x86_precomp="${MY_A_x86/basic/precomp}"
+# MY_A_x86_sdk="${MY_A_x86/basic/sdk}"
+# MY_A_x86_sqlplus="${MY_A_x86/basic/sqlplus}"
+# MY_A_x86_tools="${MY_A_x86/basic/tools}"
+
+MY_PLAT_amd64="Linux x86-64"
+MY_BITS_amd64=64
+MY_A_amd64="${MY_URI}/${PN/oracle-}-basic-linux.x64-${PV}dbru.zip"
+MY_A_amd64_jdbc="${MY_A_amd64/basic/jdbc}"
+MY_A_amd64_odbc="${MY_A_amd64/basic/odbc}"
+MY_A_amd64_precomp="${MY_A_amd64/basic/precomp}"
+MY_A_amd64_sdk="${MY_A_amd64/basic/sdk}"
+MY_A_amd64_sqlplus="${MY_A_amd64/basic/sqlplus}"
+MY_A_amd64_tools="${MY_A_amd64/basic/tools}"
+
+if [[ ${MY_PVP} == p* ]]
+then
+ MY_PVP=-${MY_PVP#p}
+ # Updated 9/22/2017: instantclient-odbc-linux-12.2.0.1.0-2.zip
+ MY_A_x86_odbc="${MY_URI}/${MY_A_x86_odbc%.zip}${MY_PVP}.zip"
+ MY_A_amd64_odbc="${MY_URI}/${MY_A_amd64_odbc%.zip}${MY_PVP}.zip"
+fi
+
+#SRC_URI="
+# x86? (
+# ${MY_A_x86}
+# jdbc? ( ${MY_A_x86_jdbc} )
+# odbc? ( ${MY_A_x86_odbc} )
+# precomp? ( ${MY_A_x86_precomp} )
+# !abi_x86_64? (
+# sdk? ( ${MY_A_x86_sdk} )
+# sqlplus? ( ${MY_A_x86_sqlplus} )
+# tools? ( ${MY_A_x86_tools} )
+# ) )
+SRC_URI="
+ amd64? (
+ ${MY_A_amd64}
+ jdbc? ( ${MY_A_amd64_jdbc} )
+ odbc? ( ${MY_A_amd64_odbc} )
+ precomp? ( ${MY_A_amd64_precomp} )
+ sdk? ( ${MY_A_amd64_sdk} )
+ sqlplus? ( ${MY_A_amd64_sqlplus} )
+ tools? ( ${MY_A_amd64_tools} )
+ )
+"
+
+LICENSE="OTN"
+SLOT="0/${MY_SOVER}"
+KEYWORDS="~amd64"
+RESTRICT="mirror splitdebug test"
+
+RDEPEND="
+ >=dev-libs/libaio-0.3.109-r5
+ odbc? ( dev-db/unixODBC )
+"
+BDEPEND="app-arch/unzip"
+
+S="${WORKDIR}/${MY_P}"
+
+QA_PREBUILT="usr/lib*/oracle/client/*/*"
+
+src_unpack() {
+ local ABI=${ARCH}
+ MY_WORKDIR="${WORKDIR}"
+ MY_S="${S}"
+ MY_PLAT=MY_PLAT_${ABI} ; MY_PLAT=${!MY_PLAT} # platform name
+ MY_BITS=MY_BITS_${ABI} ; MY_BITS=${!MY_BITS} # platform bitwidth
+ MY_A=MY_A_${ABI} ; MY_A=${!MY_A##*/} # runtime distfile
+ MY_A_jdbc=MY_A_${ABI}_jdbc ; MY_A_jdbc=${!MY_A_jdbc##*/} # jdbc distfile
+ MY_A_odbc=MY_A_${ABI}_odbc ; MY_A_odbc=${!MY_A_odbc##*/} # odbc distfile
+ MY_A_precomp=MY_A_${ABI}_precomp; MY_A_precomp=${!MY_A_precomp##*/} # precomp distfile
+ MY_A_sdk=MY_A_${ABI}_sdk ; MY_A_sdk=${!MY_A_sdk##*/} # sdk distfile
+ MY_A_sqlplus=MY_A_${ABI}_sqlplus; MY_A_sqlplus=${!MY_A_sqlplus##*/} # sqlplus distfile
+ MY_A_tools=MY_A_${ABI}_tools ; MY_A_tools=${!MY_A_tools##*/} # tools distfile
+
+ mkdir -p "${MY_WORKDIR}" || die
+ cd "${MY_WORKDIR}" || die
+ unpack ${MY_A}
+ use jdbc && unpack ${MY_A_jdbc}
+ use odbc && unpack ${MY_A_odbc}
+ use precomp && unpack ${MY_A_precomp}
+ use sdk && unpack ${MY_A_sdk}
+ use sqlplus && unpack ${MY_A_sqlplus}
+ use tools && unpack ${MY_A_tools}
+}
+
+src_prepare() {
+ local PATCHES=()
+ if use precomp; then
+ # Not supporting COBOL for now
+ rm -f sdk/demo/*procob*
+ fi
+ if use sdk; then
+ PATCHES+=( "${FILESDIR}"/21.13.0.0.0-makefile.patch )
+ rm sdk/include/ldap.h || die #299562
+ fi
+ default
+}
+
+# silence configure&compile messages from multilib-minimal
+src_configure() { :; }
+src_compile() { :; }
+
+src_install() {
+ # all content goes here without version number, bug#578402
+ local oracle_home=/usr/$(get_libdir)/oracle/client
+ local oracle_home_to_root=../../../.. # for dosym
+ local ldpath=
+
+ local ABI=${ARCH}
+
+ einfo "Installing runtime for ${MY_PLAT} ..."
+
+ cd "${MY_S}" || die
+
+ # shared libraries
+ into "${oracle_home}"
+ dolib.so lib*.so*
+ use precomp && dolib.a cobsqlintf.o
+
+ # ensure to be linkable
+ [[ -e libocci.so ]] ||
+ dosym libocci.so.${MY_SOVER} \
+ "${oracle_home}"/$(get_libdir)/libocci.so
+ [[ -e libclntsh.so ]] ||
+ dosym libclntsh.so.${MY_SOVER} \
+ "${oracle_home}"/$(get_libdir)/libclntsh.so
+
+ # java archives
+ insinto "${oracle_home}"/$(get_libdir)
+ doins *.jar
+
+ # runtime library path
+ ldpath+=${ldpath:+:}${oracle_home}/$(get_libdir)
+
+ # Vanilla filesystem layout does not support multilib
+ # installation, so we need to move the libs into the
+ # ABI specific libdir. However, ruby-oci8 build system
+ # detects an instantclient along the shared libraries,
+ # and does expect the sdk right there.
+ use sdk && dosym ../sdk "${oracle_home}"/$(get_libdir)/sdk
+
+ local DOCS=( BASIC_README )
+ local HTML_DOCS=()
+ local paxbins=( adrci genezi uidrvci )
+ local scripts=()
+
+ if use jdbc; then
+ DOCS+=( JDBC_README )
+ fi
+ if use odbc; then
+ DOCS+=( ODBC_README )
+ HTML_DOCS+=( help )
+ scripts+=( odbc_update_ini.sh )
+ fi
+ if use precomp; then
+ DOCS+=( PRECOMP_README )
+ paxbins+=( sdk/proc )
+ # Install pcscfg.cfg into /etc/oracle, as the user probably
+ # wants to add the include path for the compiler headers
+ # here and we do not want this to be overwritten.
+ insinto /etc/oracle
+ doins precomp/admin/pcscfg.cfg
+ sed -i -e "s%^sys_include=.*%sys_include=(${oracle_home}/sdk/include,${EPREFIX}/usr/include)%" \
+ "${ED}"/etc/oracle/pcscfg.cfg || die
+ dosym ../../${oracle_home_to_root}/etc/oracle/pcscfg.cfg "${oracle_home}/precomp/admin/pcscfg.cfg"
+ dosym ../.."${oracle_home}"/bin/proc /usr/bin/proc
+ # Not supporting COBOL for now
+ # paxbins+=( sdk/{procob,rtsora} )
+ # doins precomp/admin/pcbcfg.cfg
+ fi
+ if use sdk; then
+ einfo "Installing SDK ..."
+ DOCS+=( SDK_README )
+ scripts+=( sdk/ott )
+ insinto "${oracle_home}"/$(get_libdir)
+ doins sdk/ottclasses.zip
+ insinto "${oracle_home}"/sdk
+ doins -r sdk/{admin,demo,include}
+ # Some build systems simply expect ORACLE_HOME/include.
+ dosym sdk/include "${oracle_home}"/include
+ # Some build systems do not know the instant client,
+ # expecting headers in rdbms/public, see bug#669316.
+ # Additionally, some (probably older ruby-oci8) do
+ # require rdbms/public to be a real directory.
+ insinto "${oracle_home}"/rdbms/public
+ doins -r sdk/include/*
+ # Others (like the DBD::Oracle perl module) know the Oracle
+ # eXpress Edition's client, parsing an rdbms/demo/demo_xe.mk.
+ dosym ../../sdk/demo/demo.mk "${oracle_home}"/rdbms/demo/demo_xe.mk
+ # And some do expect /usr/include/oracle/<ver>/client/include,
+ # querying 'sqlplus' for the version number, also see bug#652096.
+ dosym ../../../.."${oracle_home}"/sdk/include /usr/include/oracle/${MY_PVM}/client
+ fi
+ if use sqlplus; then
+ DOCS+=( SQLPLUS_README )
+ paxbins+=( sqlplus )
+ insinto "${oracle_home}"/sqlplus/admin
+ doins glogin.sql
+ dosym ../.."${oracle_home}"/bin/sqlplus /usr/bin/sqlplus
+ fi
+ if use tools; then
+ DOCS+=( TOOLS_README )
+ paxbins+=( exp expdp imp impdp sqlldr wrc )
+ fi
+
+ einfo "Installing binaries for ${MY_PLAT} ..."
+ into "${oracle_home}"
+ dobin ${paxbins[*]} ${scripts[*]}
+ pushd "${ED}${oracle_home}/bin" >/dev/null || die
+ pax-mark -c ${paxbins[*]#*/} || die
+ popd >/dev/null || die
+
+ einstalldocs
+
+ # create path for tnsnames.ora
+ insinto /etc/oracle
+ doins "${FILESDIR}"/tnsnames.ora.sample
+
+ # Add OCI libs to library path
+ {
+ echo "# ${EPREFIX}/etc/env.d/50${PN}"
+ echo "# Do not edit this file, but 99${PN} instead"
+ echo
+ echo "ORACLE_HOME=${EPREFIX}${oracle_home}"
+ echo "LDPATH=${ldpath}"
+ echo "TNS_ADMIN=${EPREFIX}/etc/oracle/"
+ } > "${T}"/50${PN}
+
+ doenvd "${T}"/50${PN}
+
+ # ensure ORACLE_HOME/lib exists
+# [[ -e ${ED}${oracle_home}/lib/. ]] ||
+# dosym $(get_libdir) "${oracle_home#/}"/lib
+}
+
+pkg_preinst() {
+ if [[ -r ${EROOT}/etc/env.d/99${PN} ]]; then
+ cp "${EROOT}/etc/env.d/99${PN}" "${ED}/etc/env.d/" || die
+ else
+ {
+ echo "# ${EPREFIX}/etc/env.d/99${PN}"
+ echo "# Configure system-wide defaults for your Oracle Instant Client here"
+ echo
+ echo "#$(grep '^ORACLE_HOME=' "${ED}/etc/env.d/50${PN}")"
+ echo "#$(grep '^TNS_ADMIN=' "${ED}/etc/env.d/50${PN}")"
+ echo "#NLS_LANG="
+ } > "${ED}/etc/env.d/99${PN}"
+ fi
+}
+
+pkg_postinst() {
+ elog "${P} does not provide an sqlnet.ora"
+ elog "configuration file, redirecting oracle diagnostics for database-"
+ elog "and network-issues into ~USER/oradiag_USER/ instead."
+ elog "It should be safe to ignore this message in sqlnet.log there:"
+ elog " Directory does not exist for read/write [ORACLE_HOME/client/log] []"
+ elog "See https://bugs.gentoo.org/show_bug.cgi?id=465252 for reference."
+ elog "If you want to directly analyse low-level debug info or don't want"
+ elog "to see it at all, so you really need an sqlnet.ora file, please"
+ elog "consult http://search.oracle.com/search/search?q=sqlnet.ora"
+ elog ""
+ elog "TNS_ADMIN has been set to ${EPREFIX}/etc/oracle by default,"
+ elog "put your tnsnames.ora there or configure TNS_ADMIN"
+ elog "to point to your user specific configuration."
+ if use precomp; then
+ elog ""
+ elog "The proc precompiler uses the system library headers, which in"
+ elog "turn include the headers of the used compiler."
+ elog "To make proc work, please add the compiler header path of your"
+ elog "preferred compiler to sys_include in:"
+ elog " ${EPREFIX}/etc/oracle/pcscfg.cfg"
+ elog "Remember to update this setting when you switch or update the"
+ elog "compiler."
+ elog "For gcc, the headers are usually found in a path matching the"
+ elog "following pattern:"
+ elog " ${EPREFIX}/usr/lib/gcc/*/*/include"
+ elog "The exact details depend on the architecture and the version of"
+ elog "the compiler to be used."
+ fi
+ ewarn "Please re-source your shell settings for ORACLE_HOME"
+ ewarn " changes, such as: source ${EPREFIX}/etc/profile"
+}
diff --git a/dev-db/percona-toolkit/Manifest b/dev-db/percona-toolkit/Manifest
index 45e40278b2eb..62b4a28cf654 100644
--- a/dev-db/percona-toolkit/Manifest
+++ b/dev-db/percona-toolkit/Manifest
@@ -1,3 +1,4 @@
-DIST percona-toolkit-3.5.1.tar.gz 14700246 BLAKE2B 58e1ae76a2fce32dd16fde3a9caae2a470882e737893cc22f67cf810533ceafa95c5b26ec390cc58b2b9f0db3a2323fe78c00a631da107e6dbbbef73e65c1bb4 SHA512 33ec22c2fc1c3cc855caead7ac7ca153328e280500f56e24e074cca6a2ba95572430369908cb557eedfcadfb7246fbb5670c943673aa41d5210dc38603aeb492
DIST percona-toolkit-3.5.3.tar.gz 14673470 BLAKE2B f0eeaaf20924a75ff68eb623d4027fd8402169bbd8479e91ec174638f20109cee33a3e93b19dd88cd860a3f572db7e0a645fb1bd96e63f52c5d261167ad5eae8 SHA512 80abe6fe1d690d8faff01d72918c5b5da188819389d0fafe8f88f23489b609aa9730b0c7c2b284eb057e0cc3ae8ccb5b83849b31ff61291d8ab75d58abcdf85f
DIST percona-toolkit-3.5.5.tar.gz 14847253 BLAKE2B f26b88581b84a12fd2b353984b2dbfbf43056388a48821739e70f43a28f448fc7caea99bdb0f5284b91ce04436e0969da1eec85e66054bfc1e8ff2771dede6d2 SHA512 0fb367e2a967c1a459e2d8a70f3db6c75043caf4127c14472b2bdfdb89415286c9f52929e326fa4f402d73a4c3e95b4cf8b0ee0f0624e54e382e44eb653bfaf9
+DIST percona-toolkit-3.5.7-deps.tar.xz 108954608 BLAKE2B 788246531bdf3e1faa7d310fdd920b2fa42d9d82a75d730bb143047d0ce0c22d23ee86cf58bd646aae3dac503d88793040168be15fc74a7686979233a8d65dc1 SHA512 54a0698c5e3ae0fe30b6e253a31829db4c4656cccd48107126a5b99c148fe1ed9515d91e79784e1970569bfe8853d1b5cb74cf968dbc2d08e95aec6ef209659d
+DIST percona-toolkit-3.5.7.tar.gz 138784243 BLAKE2B a589c884348ad820ccadbb871ad85bf89a21ae49e8cea34fa019c61ab53302a5b7db03f01ae191138e15f61c77068388cb5d3863f360a7207d9f9075e9100385 SHA512 cfe232aa5b59d262242348ec18b676d0d8c7752dddadd1f027772346e02d329f5bc53b96dfdb82fbdb18524095f88ad0721e4b4c6ed611c727c0a5cde85998bd
diff --git a/dev-db/percona-toolkit/percona-toolkit-3.5.1.ebuild b/dev-db/percona-toolkit/percona-toolkit-3.5.7.ebuild
index 488a2c186226..40dc0b2abad8 100644
--- a/dev-db/percona-toolkit/percona-toolkit-3.5.1.ebuild
+++ b/dev-db/percona-toolkit/percona-toolkit-3.5.7.ebuild
@@ -1,17 +1,18 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit perl-module
+inherit go-module 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"
+SRC_URI="https://www.percona.com/downloads/${PN}/${PV}/source/tarball/${P}.tar.gz
+ https://github.com/hydrapolic/gentoo-dist/releases/download/${P}/${P}-deps.tar.xz"
LICENSE="|| ( GPL-2 Artistic )"
SLOT="0"
-KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~amd64 ~x86"
# Package warrants IUSE doc
IUSE=""
@@ -42,10 +43,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.0.10-slave-delay-fix.patch
)
-src_prepare() {
+src_install() {
default
-
- sed -i \
- -e "s/=> 'percona-toolkit',/=> 'Percona::Toolkit',/g" \
- Makefile.PL || die
+ dobin bin/*
}
diff --git a/dev-db/pg_activity/Manifest b/dev-db/pg_activity/Manifest
index 7815c6858608..4b17cda8ea28 100644
--- a/dev-db/pg_activity/Manifest
+++ b/dev-db/pg_activity/Manifest
@@ -1 +1 @@
-DIST pg_activity-3.4.2.tar.gz 432160 BLAKE2B 3f9a54a9f58c2d107e01e15aad1e8bb58c2df589cb8f0d58288636c16adfad2156f2c140506dc15bd6eb26a75a441afbf9db8a2db0766a17867fd5b8ed50b9bc SHA512 adcc12277341c60a8959103c30d38bdc76d2315130f1bb92239e5c2c8d20f8fc4a786be3fe1f97e3c142e6c74303a631017e1a3e6feaf18266b7fd42c2e155f3
+DIST pg_activity-3.5.1.tar.gz 436863 BLAKE2B 8312b2145ba89b807fb5e4e76f8eb57ad1f33079735e1be4a6ef7614034bbfbbb428567e90d7b8a6bc16dd65af186a3f6742e09584cef6136a7f8b3763724806 SHA512 f44f1ca08a250e35c056441f11c19e3618fba82a36f367df211ceb5787983ff76d2637a155de80c998680f9c0f79d66fcb38873d1b04368e73b5a06e650789c5
diff --git a/dev-db/pg_activity/pg_activity-3.4.2.ebuild b/dev-db/pg_activity/pg_activity-3.5.1.ebuild
index bb4c7b32493d..778d01d26dde 100644
--- a/dev-db/pg_activity/pg_activity-3.4.2.ebuild
+++ b/dev-db/pg_activity/pg_activity-3.5.1.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit distutils-r1
diff --git a/dev-db/pgbouncer/Manifest b/dev-db/pgbouncer/Manifest
index 55b0060c363d..f6710438c8f5 100644
--- a/dev-db/pgbouncer/Manifest
+++ b/dev-db/pgbouncer/Manifest
@@ -1,5 +1,3 @@
DIST pgbouncer-1.16.1.tar.gz 591450 BLAKE2B 137193ad614586d708598fd7003af4dee69f03f88a7235ba4074b63d57ffc3ee1c41fbccb49c5df7c23a2272b33810f8c2a9084d98e2e695a3b5f5ec317e0227 SHA512 9ecb7c7ae136d85e3da434094909df3a6ff06ce8586a1848c0c00914d87a877aecbb26ea30ad8230062160f3177621cc16deb4a490e9a2a649c8032dacb86341
-DIST pgbouncer-1.20.0.tar.gz 638020 BLAKE2B 1aa253b4f211e70e882e9b7789bfcdee3436b56d88d0448a122a6975deb379ff6034f563f3ec87997a3f8c2f0e6c25a09916989d486542356a5a5d41ef6e2039 SHA512 6386f80bb8dcdf6e9882f94dde1c5ff4b58cd6eb877233952e483d5fa765072588f12dfb39eab5989dee54eaa595db541042654ad47c1ea4b754304ecc69f3dd
-DIST pgbouncer-1.20.1.tar.gz 638844 BLAKE2B 9b71b72b9baf3ce49d4b9c6597581d20a2666b5450d89bc716a4df6df0c8a8aaf92735a76033eccf358412934a3af92e1a8ed7e4ca0e863441f2d6bf43eefdc7 SHA512 7669005ac1d46d1cb5b42c853fc0fb5e495c8583c206658bf6c59f797d04eb9170a3d467a48863708ee69034ff71ac6fbbca752b239de644ef6225d46fb98e76
-DIST pgbouncer-1.21.0.tar.gz 668211 BLAKE2B 36dd43d301d1837876806688bc87febb6ae4fd40014e7e7301978026a4866b736c2c174d3b1e19a4e7bf5f8ca85025d2a0cd5711f2e4fa95e455f59ed1dbe381 SHA512 881701deae508e8e664402c0da533b25027259443551cda2974867453ad033ec5cfe8027ca3dac96a5134c57faff385c3c1e5711539e1acd6815761c9e3caee8
DIST pgbouncer-1.22.0.tar.gz 670589 BLAKE2B feb0138c09eb2e3f865f9c372d1924f9fbe67785a52534f8b99783c0bc2d5a54a6fd8b0554ea8ac7d4e8e108fd2296a3a9ae19cb75d628052c45e4a57fd037cd SHA512 1d8f4b352103e17a3905ec0677362954f4b9f606f6dc00011514c2ec46d8c4e8d17b24e9ca92794ccaf4c86c9c77ac062e6be92be7856192b7c534b5a4911163
+DIST pgbouncer-1.22.1.tar.gz 677351 BLAKE2B c67eba10b51ae74fb77ad61f7c597b687769e75b687ff9682c16d0ac0b32c0e9d20d4c90cd5803331d128f3f388800faa38dd9965b86c5a75688455db1a06d6b SHA512 ac63fe877f68745f1faab096ee9d9e185de9cab97d4fef121c2c551fa0e69ea22342dc8b5ce75cadff755314e5493a5440f0748b5ee9f524f71d871ec1861530
diff --git a/dev-db/pgbouncer/pgbouncer-1.20.0.ebuild b/dev-db/pgbouncer/pgbouncer-1.20.0.ebuild
deleted file mode 100644
index da2f7fb9f694..000000000000
--- a/dev-db/pgbouncer/pgbouncer-1.20.0.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Lightweight connection pooler for PostgreSQL"
-HOMEPAGE="https://www.pgbouncer.org/"
-SRC_URI="https://www.pgbouncer.org/downloads/files/${PV}/pgbouncer-${PV}.tar.gz"
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="+c-ares debug doc pam ssl systemd udns"
-
-# At-most-one-of, one can be enabled but not both
-REQUIRED_USE="?? ( c-ares udns )"
-
-RDEPEND="
- >=dev-libs/libevent-2.0:=
- acct-user/pgbouncer
- c-ares? ( >=net-dns/c-ares-1.10 )
- ssl? ( >=dev-libs/openssl-1.0.1:=[-bindist(-)] )
- systemd? ( sys-apps/systemd )
- udns? ( >=net-libs/udns-0.1 )
-"
-
-DEPEND="${RDEPEND}"
-
-# Tests require a local database server, wants to fiddle with iptables,
-# and doesn't support overriding.
-RESTRICT="test"
-
-src_prepare() {
- eapply "${FILESDIR}"/pgbouncer-1.12-dirs.patch
-
- default
-}
-
-src_configure() {
- # --enable-debug is only used to disable stripping
- econf \
- --docdir=/usr/share/doc/${PF} \
- --enable-debug \
- $(use_with c-ares cares) \
- $(use_enable debug cassert) \
- $(use_with pam) \
- $(use_with ssl openssl) \
- $(use_with systemd) \
- $(use_with udns)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- dodoc AUTHORS
- use doc && dodoc doc/*.md
-
- newconfd "${FILESDIR}/${PN}.confd-r1" "${PN}"
- newinitd "${FILESDIR}/${PN}.initd-r2" "${PN}"
-
- insinto /etc
- doins etc/pgbouncer.ini
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/logrotate" pgbouncer
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]] ; then
- einfo "Please read the config.txt for Configuration Directives"
- einfo
- einfo "For Administration Commands, see:"
- einfo " man pgbouncer"
- einfo
- einfo "By default, PgBouncer does not have access to any database."
- einfo "GRANT the permissions needed for your application and make sure that it"
- einfo "exists in PgBouncer's auth_file."
- fi
-}
diff --git a/dev-db/pgbouncer/pgbouncer-1.20.1.ebuild b/dev-db/pgbouncer/pgbouncer-1.20.1.ebuild
deleted file mode 100644
index da2f7fb9f694..000000000000
--- a/dev-db/pgbouncer/pgbouncer-1.20.1.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Lightweight connection pooler for PostgreSQL"
-HOMEPAGE="https://www.pgbouncer.org/"
-SRC_URI="https://www.pgbouncer.org/downloads/files/${PV}/pgbouncer-${PV}.tar.gz"
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="+c-ares debug doc pam ssl systemd udns"
-
-# At-most-one-of, one can be enabled but not both
-REQUIRED_USE="?? ( c-ares udns )"
-
-RDEPEND="
- >=dev-libs/libevent-2.0:=
- acct-user/pgbouncer
- c-ares? ( >=net-dns/c-ares-1.10 )
- ssl? ( >=dev-libs/openssl-1.0.1:=[-bindist(-)] )
- systemd? ( sys-apps/systemd )
- udns? ( >=net-libs/udns-0.1 )
-"
-
-DEPEND="${RDEPEND}"
-
-# Tests require a local database server, wants to fiddle with iptables,
-# and doesn't support overriding.
-RESTRICT="test"
-
-src_prepare() {
- eapply "${FILESDIR}"/pgbouncer-1.12-dirs.patch
-
- default
-}
-
-src_configure() {
- # --enable-debug is only used to disable stripping
- econf \
- --docdir=/usr/share/doc/${PF} \
- --enable-debug \
- $(use_with c-ares cares) \
- $(use_enable debug cassert) \
- $(use_with pam) \
- $(use_with ssl openssl) \
- $(use_with systemd) \
- $(use_with udns)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- dodoc AUTHORS
- use doc && dodoc doc/*.md
-
- newconfd "${FILESDIR}/${PN}.confd-r1" "${PN}"
- newinitd "${FILESDIR}/${PN}.initd-r2" "${PN}"
-
- insinto /etc
- doins etc/pgbouncer.ini
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/logrotate" pgbouncer
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]] ; then
- einfo "Please read the config.txt for Configuration Directives"
- einfo
- einfo "For Administration Commands, see:"
- einfo " man pgbouncer"
- einfo
- einfo "By default, PgBouncer does not have access to any database."
- einfo "GRANT the permissions needed for your application and make sure that it"
- einfo "exists in PgBouncer's auth_file."
- fi
-}
diff --git a/dev-db/pgbouncer/pgbouncer-1.21.0.ebuild b/dev-db/pgbouncer/pgbouncer-1.22.1.ebuild
index 7c1d9e9a01ad..1647a74fb4c5 100644
--- a/dev-db/pgbouncer/pgbouncer-1.21.0.ebuild
+++ b/dev-db/pgbouncer/pgbouncer-1.22.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-db/pgpool2/Manifest b/dev-db/pgpool2/Manifest
index 7f212bb30d09..e03f686b6883 100644
--- a/dev-db/pgpool2/Manifest
+++ b/dev-db/pgpool2/Manifest
@@ -1,5 +1,3 @@
-DIST pgpool-II-4.3.2.tar.gz 5846769 BLAKE2B 82cfe7095ad303ac3a910c533d6e57edb4e3d5b28a9a9bffb2df473dd3087ec329d3a77f9490d9bb738d5d1a443020d96d0e9a1b1d6adecc04cce5d1caa04e7d SHA512 771426257eddb5c48504c80a2c8cccf44a18f7ea50df55654b7e9e017bda561a73a3e1f0db79785785ff6893d6df26f73b55310d0184ef3301838d12290d3d4c
-DIST pgpool-II-4.3.7.tar.gz 4901679 BLAKE2B 40c280a9d399246da77661a856d64691c213361193ba6af46a70c03c9193021a9f44dd9bfdfc7335c269675d04e9469d033ce55757799a7009d35d1493c50d6e SHA512 dd84b94a60fb1e75de2c14f83b3637491a4673b15dc7c23dbb8e26e69d32f617a85159f7c276a88a62d741b7758d84e94949ea6aa8f505be0960d8fffdaa10b6
DIST pgpool-II-4.3.8.tar.gz 4939785 BLAKE2B fbccfa89311c85394d48c9ff25ce68baea15a80bb87efdf9c7d06280f0a532b8bf656f7ad144b9f813293bf6bd43a7d0cead78fff422eef55598ee2a7cd6380e SHA512 93f623900f24454a1913dcf29be508a47ae3c5f7fd360d3546f48b88b93dcc66886de01a5d9b0f53fb955d1eeded1e5329c3ca1fbca4c3f16aabea79e869d9a3
DIST pgpool-II-4.4.4.tar.gz 4973024 BLAKE2B 2fa41442bc9bf677a17d98388f9977b97fb609cdd6f1494d9f4de2356b04de5a3725478381d67cc04a01f3ff964bd3dfe159d9c41c13980e477a5f0c4c198413 SHA512 fb80df3df2894e7f2cf820a2b32e04ef6447a8137341db65c3a141679ea0fcbae7d5824c1904cb19aae7b05ef9fe641ac294dbc58cdbc6231444f0c4e508e7dc
DIST pgpool-II-4.4.5.tar.gz 4992570 BLAKE2B 638812144e8ac58e56e0b9dbe6aadfa90140c05ed46da1d795d0e22515dacd3a126afa6082881ca84c031693a205c895ea69d01fc7a14f870344bae9b454c57f SHA512 cd2fb2f715aed70d67522ab1852fa7df059d5379f9d4860be82a3d32d78701c5bce75e3e1304eda6a67670475aa367a2631cce517a4d2e4eb6b07c1e74901dd9
diff --git a/dev-db/pgpool2/pgpool2-4.3.2.ebuild b/dev-db/pgpool2/pgpool2-4.3.2.ebuild
deleted file mode 100644
index d46c7c75826a..000000000000
--- a/dev-db/pgpool2/pgpool2-4.3.2.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( 9.6 {10..15} )
-
-inherit autotools postgres-multi
-
-MY_P="${PN/2/-II}-${PV}"
-
-DESCRIPTION="Connection pool server for PostgreSQL"
-HOMEPAGE="https://www.pgpool.net/"
-SRC_URI="https://www.pgpool.net/download.php?f=${MY_P}.tar.gz -> ${MY_P}.tar.gz"
-LICENSE="BSD"
-SLOT="0"
-
-KEYWORDS="amd64 x86"
-
-IUSE="doc memcached pam ssl static-libs"
-
-RDEPEND="
- ${POSTGRES_DEP}
- acct-user/pgpool
- net-libs/libnsl:0=
- virtual/libcrypt:=
- memcached? ( dev-libs/libmemcached )
- pam? ( sys-auth/pambase )
- ssl? ( dev-libs/openssl:0= )
-"
-DEPEND="${RDEPEND}
- sys-devel/bison
- virtual/pkgconfig
-"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- eapply \
- "${FILESDIR}/pgpool-4.2.0-configure-memcached.patch" \
- "${FILESDIR}/pgpool-configure-pam.patch" \
- "${FILESDIR}/pgpool-4.2.0-configure-pthread.patch" \
- "${FILESDIR}/pgpool-4.3.1-run_paths.patch"
-
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- postgres-multi_foreach econf \
- --disable-rpath \
- --sysconfdir="${EPREFIX}/etc/${PN}" \
- --with-pgsql-includedir='/usr/include/postgresql-@PG_SLOT@' \
- --with-pgsql-libdir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/$(get_libdir)" \
- $(use_enable static-libs static) \
- $(use_with memcached) \
- $(use_with pam) \
- $(use_with ssl openssl)
-}
-
-src_compile() {
- # Even though we're only going to do an install for the best slot
- # available, the extension bits in src/sql need some things outside
- # of that directory built, too.
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C src/sql
-}
-
-src_install() {
- # We only need the best stuff installed
- postgres-multi_forbest emake DESTDIR="${D}" install
-
- # Except for the extension and .so files that each PostgreSQL slot needs
- postgres-multi_foreach emake DESTDIR="${D}" -C src/sql install
-
- newinitd "${FILESDIR}/${PN}.initd" ${PN}
- newconfd "${FILESDIR}/${PN}.confd" ${PN}
-
- # Documentation!
- dodoc NEWS TODO
- doman doc/src/sgml/man{1,8}/*
- use doc && dodoc -r doc/src/sgml/html
-
- # mv some files that get installed to /usr/share/pgpool-II so that
- # they all wind up in the same place
- mv "${ED}/usr/share/${PN/2/-II}" "${ED}/usr/share/${PN}" || die
-
- # One more thing: Evil la files!
- find "${ED}" -name '*.la' -exec rm -f {} +
-}
diff --git a/dev-db/pgpool2/pgpool2-4.3.7.ebuild b/dev-db/pgpool2/pgpool2-4.3.7.ebuild
deleted file mode 100644
index d46c7c75826a..000000000000
--- a/dev-db/pgpool2/pgpool2-4.3.7.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( 9.6 {10..15} )
-
-inherit autotools postgres-multi
-
-MY_P="${PN/2/-II}-${PV}"
-
-DESCRIPTION="Connection pool server for PostgreSQL"
-HOMEPAGE="https://www.pgpool.net/"
-SRC_URI="https://www.pgpool.net/download.php?f=${MY_P}.tar.gz -> ${MY_P}.tar.gz"
-LICENSE="BSD"
-SLOT="0"
-
-KEYWORDS="amd64 x86"
-
-IUSE="doc memcached pam ssl static-libs"
-
-RDEPEND="
- ${POSTGRES_DEP}
- acct-user/pgpool
- net-libs/libnsl:0=
- virtual/libcrypt:=
- memcached? ( dev-libs/libmemcached )
- pam? ( sys-auth/pambase )
- ssl? ( dev-libs/openssl:0= )
-"
-DEPEND="${RDEPEND}
- sys-devel/bison
- virtual/pkgconfig
-"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- eapply \
- "${FILESDIR}/pgpool-4.2.0-configure-memcached.patch" \
- "${FILESDIR}/pgpool-configure-pam.patch" \
- "${FILESDIR}/pgpool-4.2.0-configure-pthread.patch" \
- "${FILESDIR}/pgpool-4.3.1-run_paths.patch"
-
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- postgres-multi_foreach econf \
- --disable-rpath \
- --sysconfdir="${EPREFIX}/etc/${PN}" \
- --with-pgsql-includedir='/usr/include/postgresql-@PG_SLOT@' \
- --with-pgsql-libdir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/$(get_libdir)" \
- $(use_enable static-libs static) \
- $(use_with memcached) \
- $(use_with pam) \
- $(use_with ssl openssl)
-}
-
-src_compile() {
- # Even though we're only going to do an install for the best slot
- # available, the extension bits in src/sql need some things outside
- # of that directory built, too.
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C src/sql
-}
-
-src_install() {
- # We only need the best stuff installed
- postgres-multi_forbest emake DESTDIR="${D}" install
-
- # Except for the extension and .so files that each PostgreSQL slot needs
- postgres-multi_foreach emake DESTDIR="${D}" -C src/sql install
-
- newinitd "${FILESDIR}/${PN}.initd" ${PN}
- newconfd "${FILESDIR}/${PN}.confd" ${PN}
-
- # Documentation!
- dodoc NEWS TODO
- doman doc/src/sgml/man{1,8}/*
- use doc && dodoc -r doc/src/sgml/html
-
- # mv some files that get installed to /usr/share/pgpool-II so that
- # they all wind up in the same place
- mv "${ED}/usr/share/${PN/2/-II}" "${ED}/usr/share/${PN}" || die
-
- # One more thing: Evil la files!
- find "${ED}" -name '*.la' -exec rm -f {} +
-}
diff --git a/dev-db/pgpool2/pgpool2-4.3.8.ebuild b/dev-db/pgpool2/pgpool2-4.3.8.ebuild
index d46c7c75826a..b0b928ab667f 100644
--- a/dev-db/pgpool2/pgpool2-4.3.8.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.3.8.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
POSTGRES_COMPAT=( 9.6 {10..15} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-4.4.4.ebuild b/dev-db/pgpool2/pgpool2-4.4.4.ebuild
index 7c58c30c4de0..f296ca0fb0a6 100644
--- a/dev-db/pgpool2/pgpool2-4.4.4.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.4.4.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
POSTGRES_COMPAT=( {10..16} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-4.4.5.ebuild b/dev-db/pgpool2/pgpool2-4.4.5.ebuild
index 7c58c30c4de0..f296ca0fb0a6 100644
--- a/dev-db/pgpool2/pgpool2-4.4.5.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.4.5.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
POSTGRES_COMPAT=( {10..16} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-9999.ebuild b/dev-db/pgpool2/pgpool2-9999.ebuild
index 0de82e93599a..aec380cbbd43 100644
--- a/dev-db/pgpool2/pgpool2-9999.ebuild
+++ b/dev-db/pgpool2/pgpool2-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ EGIT_REPO_URI="https://git.postgresql.org/git/pgpool2.git"
POSTGRES_COMPAT=( 9.6 {10..15} )
-inherit autotools git-r3 postgres-multi
+inherit autotools flag-o-matic git-r3 postgres-multi
DESCRIPTION="Connection pool server for PostgreSQL"
HOMEPAGE="https://www.pgpool.net/"
@@ -53,6 +53,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgrouting/pgrouting-3.6.1.ebuild b/dev-db/pgrouting/pgrouting-3.6.1.ebuild
index dfac3a1976d6..9c53fe72688e 100644
--- a/dev-db/pgrouting/pgrouting-3.6.1.ebuild
+++ b/dev-db/pgrouting/pgrouting-3.6.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -15,7 +15,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/pgxnclient/pgxnclient-1.3.2.ebuild b/dev-db/pgxnclient/pgxnclient-1.3.2.ebuild
index 49bdb174b36a..586adb9e7094 100644
--- a/dev-db/pgxnclient/pgxnclient-1.3.2.ebuild
+++ b/dev-db/pgxnclient/pgxnclient-1.3.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{9..12} )
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 pypi
diff --git a/dev-db/postgresql/Manifest b/dev-db/postgresql/Manifest
index f4d4bca5dbf6..9ea61657bb98 100644
--- a/dev-db/postgresql/Manifest
+++ b/dev-db/postgresql/Manifest
@@ -1,10 +1,6 @@
-DIST postgresql-12.17.tar.bz2 21181616 BLAKE2B dda4b06d8d36d3257e1eea251ccbdf38f1ce63ca811045b7b8d156d2b54614304b83b30ad3b1ead4e7ad74fa9f42acc8934f648902e17a4f7c89a117dc8e3c03 SHA512 8bf67475db4ec5baf058ca976ea3e416df39cd9d15131be3fa3c161edbfa93f74251d33b29d23b3084c95bbb73fb6606f4615e528129674047a75a86e7417373
-DIST postgresql-12.18.tar.bz2 21208935 BLAKE2B cadb1d168185d0f73752af2a58f34bde79db51716ffbc4e974efa759ac5ebd3b340a17acc965a1fd30899321c5aef597b93f947277a35c1159bc9ff7ac4b4254 SHA512 723105a2b280ed9116615fa5fe29034a8588e474ed622de2c439f95e5b621b8865224e02553b71cba8d0288b1ee9fea077b20bd77fe2c858cd988b417efa56c0
-DIST postgresql-13.13.tar.bz2 21563452 BLAKE2B ee4b2d022c1b3003dc9c4da96e5900878a2fc70b3033470d0fb972131e063a047895e86d5d1e36297885f2821f0ef3af966cabe32941efba4bd11bdd0557e44f SHA512 d7b1076cdc406ac83440c75d18e6dc6db9af709615344978ba0135b45a127082b1d3c6ad6d8cd6259d67ddf38cfcee37dd78dcfbf8e4a710b724c67cf36170a7
-DIST postgresql-13.14.tar.bz2 21584146 BLAKE2B 67b1c85cac910f445a393060646e901e03eccf9c00d3b4d41b12acc9d94254697c46060f09a4c6ed57ec33b202c18916b03f8b322c3be0f195e0315e7a874933 SHA512 25d545de69d6ac16b044e09939678af97b6574c71d47d98f95f0ef9ad11ff65e864e503ddff119d73fbb3c61e648e31219982d60da7fc2382ba10e0bfc370aa5
-DIST postgresql-14.10.tar.bz2 22298652 BLAKE2B 0c87c02b0b279d29e4a05711312bf89a655359a687c24d1cbb76cd4f6ed7666d31113a18a9976773c36853f00c1ca332af396372524467bb19c2a3bfcddea995 SHA512 f546e62eb158efdeecf091271ee60945604ca7f3683f0b259ee18eb682431158e282bf4f81d8df304c956919788f8077e72aa47c467d32d6aef1ccfe470862a5
-DIST postgresql-14.11.tar.bz2 22354758 BLAKE2B f2ee6246c0e2c236e693e29ae2a581e818be51162a9a93f38aa1520b886557f9628111ad1e25221baa3b0bcb1d2861e2527082cb15dc6ef1493351b4cc13196a SHA512 67289cd638ed7b13e845263d5a34394347f33735d9e2fafd6aa3562989a3a9455ea547d1b5079138648f33b093e77841654188fc74a49c0d6d458a42cfb57ffe
-DIST postgresql-15.5.tar.bz2 23091780 BLAKE2B e3731b973242d4de8b4b78e00842df52e006f08510efc0ff02bf7b8b479e17aa9e1c8116644d9a82f23d4334f527f1a82a1c2eec7f7c199a2fdf500b46740264 SHA512 9ed9d160b3cef99954ccd47a970c107b7e3b0196a7d848f740bf3c52a1c626f6f457814c97f37b9f0467bb07734e19806a15bd9cf3c39445e1d89e75b37064cc
-DIST postgresql-15.6.tar.bz2 23093967 BLAKE2B 8245fd0e0f2b90d504e57021bb0069d0850f5ff409dab2a583581a5b77a39e81a08c6d4c87db15f14f5e1943c1c21451160205ea27e56808a3a4a0f166090c2a SHA512 d9f158d844ec21bc5a7eccad9193dfe026d3df46a011980412ad7d150b3894c01754be0053bed530976047d7eff657204ac321138ba8da6eac8fb7b93b9520ad
-DIST postgresql-16.1.tar.bz2 24605482 BLAKE2B f59859af644134cf0fc9289c0e0d93fe0f877794a1cc8881280d0439605a6e312866a0114d453af8e269e26173fa3742073fe5485901b7cb0af925a5c3506aad SHA512 69f4635e5841452599f13b47df41ce2425ab34b4e4582fd2c635bc78d561fa36c5b03eccb4ae6569872dc74775be1b5a62dee20c9a4f12a43339250128352918
-DIST postgresql-16.2.tar.bz2 24711703 BLAKE2B b863d7b7a1721df237c33a45aed788be9397a432a445f2267619496f1c0210196ff0904c44dbf07ea11f814921c643a6b9182b8a4c992f13578c4fe00868d491 SHA512 3194941cc3f1ec86b6cf4f08c6422d268d99890441f8fc9ab87b6a7fd16c990fa230b544308644cbef54e6960c4984e3703752e40930bdc0537b7bfda3ab7ccf
+DIST postgresql-12.19.tar.bz2 21218699 BLAKE2B d858108017ad9fd1c9813080c18f21cf2574f2b21a9881ae35e0291f3710664890983e71a2cd1c45f10b4c1ff8ab19d9d2383e35217b55e8e67b72b2673bec29 SHA512 c08cb8f902728ea5ab5872fa2e37f8646f6beb4df39425a5a42db30ce86fa499a2059fa57b4eac3089bfba875a85a55144eba5ce6c525c642ba33c82f264b1b5
+DIST postgresql-13.15.tar.bz2 21597871 BLAKE2B 63631ea73e42fb846a9a78473d5929a2c9bf91016ef0808578d6ff6ce1e3d862ae1f8524f26f074f2adb30e55fd941ef6ce9b27c5eaa83f41d165f45958e0445 SHA512 6614b3ccf3ab41f34fc36e75f501853b13e0b9900728b8f8bbf8e3ac22783d18b0f05183beab778eb84ca71665574063fac6e1153bcd86bac252a8a9bbff0d8b
+DIST postgresql-14.12.tar.bz2 22390865 BLAKE2B 09848b504c2c970d4b3a5ee3b7eec951f8966c3fcfdd77cea9a001b305ffa8ad55ea08eee2219abb6eb2e6478dddfcd29889308ee8f72eadb39d777e55f5f848 SHA512 cb6729d0fba8aa705c92beecdc5cd1131e64337db6de038da6f5b75c7d9e65381f93f6ebfac601d5622399b9485e8ec558be53e6a7dcc59350a9b053f8836bf9
+DIST postgresql-15.7.tar.bz2 23112318 BLAKE2B 6a31ca8b833caf9400ce176211005c2b522e3f431717ad6b73c0df842121d3898dcfddce4626f961539a80b09960fb7659703e6f82d5eadff7217789893b9279 SHA512 8a03e2d7a267f0d11c27d90a2fb605725accb41cfebba2b56c735d4af45bb5f977d4ba051a02ac8d31f93253372df3d3b5efdd159e258d6fcc506b73e3ad6e27
+DIST postgresql-16.3.tar.bz2 24737644 BLAKE2B 3390c781631645e9f51f31885d20cfeabf64992af9d56addaf847233e0c652aac8751dcf3a7c041962972de084722aee6070437c0517f729b200baf9e4bda2a3 SHA512 dc1c8d4fbc8e53e9be91dcf1b644b3969bd634f11bf5a1c4fe16619fd386f3349a5509788d43e6a57d099ad75233026d4dd4e0bb180ffc747fd3c1a575c51a5f
+DIST postgresql-17beta1.tar.bz2 21284954 BLAKE2B 611d736e1839350b341f53b5c725f93dc7ebc8d8ae88f92fe5c7b519b23d53afbad0a5af8a6bbdb9dc19cf0097caf0d74cded7fd14f1bd8befe989e93470cea8 SHA512 2844c878d4c2e9b1048eb94cc4db4138ce03d9436a96d597c74aba6b2d75ff4343b127785056357486622d7c89cf3c12e17c7be97efc02a499e0ebb48455462a
diff --git a/dev-db/postgresql/postgresql-12.17.ebuild b/dev-db/postgresql/postgresql-12.17.ebuild
deleted file mode 100644
index 51c7e054b6b5..000000000000
--- a/dev-db/postgresql/postgresql-12.17.ebuild
+++ /dev/null
@@ -1,452 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-12.1-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- econf \
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable !alpha spinlocks) \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_enable nls)
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- emake check
-
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-12.18.ebuild b/dev-db/postgresql/postgresql-12.19-r2.ebuild
index 8365c8725242..b0c6363f0d16 100644
--- a/dev-db/postgresql/postgresql-12.18.ebuild
+++ b/dev-db/postgresql/postgresql-12.19-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
python? ( ${PYTHON_DEPS} )
@@ -83,7 +84,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -398,13 +399,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-13.13.ebuild b/dev-db/postgresql/postgresql-13.13.ebuild
deleted file mode 100644
index 5e8c350bca7f..000000000000
--- a/dev-db/postgresql/postgresql-13.13.ebuild
+++ /dev/null
@@ -1,464 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- eapply "${FILESDIR}"/${PN}-13.3-riscv-spinlocks.patch
-
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-13.8-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- local myconf="\
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_enable nls)"
- if use alpha; then
- myconf+=" --disable-spinlocks"
- else
- # Should be the default but just in case
- myconf+=" --enable-spinlocks"
- fi
- econf ${myconf}
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- emake check
- export LC_CTYPE=${old_ctype}
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-13.14.ebuild b/dev-db/postgresql/postgresql-13.15-r2.ebuild
index 60d28d2d7d08..822fbdabce55 100644
--- a/dev-db/postgresql/postgresql-13.14.ebuild
+++ b/dev-db/postgresql/postgresql-13.15-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
python? ( ${PYTHON_DEPS} )
@@ -83,7 +84,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -406,13 +407,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-14.10.ebuild b/dev-db/postgresql/postgresql-14.10.ebuild
deleted file mode 100644
index 341c1e37a966..000000000000
--- a/dev-db/postgresql/postgresql-14.10.ebuild
+++ /dev/null
@@ -1,464 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm lz4 nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-lz4? ( app-arch/lz4 )
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-14.5-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- local myconf="\
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with lz4) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_enable nls)"
- if use alpha; then
- myconf+=" --disable-spinlocks"
- else
- # Should be the default but just in case
- myconf+=" --enable-spinlocks"
- fi
- econf ${myconf}
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- emake check
- export LC_CTYPE=${old_ctype}
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-14.11.ebuild b/dev-db/postgresql/postgresql-14.12-r2.ebuild
index db34b02f91bd..d141a01baf2c 100644
--- a/dev-db/postgresql/postgresql-14.11.ebuild
+++ b/dev-db/postgresql/postgresql-14.12-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
@@ -84,7 +85,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -406,13 +407,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-15.5.ebuild b/dev-db/postgresql/postgresql-15.5.ebuild
deleted file mode 100644
index aebc9d9ad3be..000000000000
--- a/dev-db/postgresql/postgresql-15.5.ebuild
+++ /dev/null
@@ -1,466 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm lz4 nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib zstd"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-lz4? ( app-arch/lz4 )
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-zstd? ( app-arch/zstd )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-15_beta3-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- local myconf="\
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with lz4) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_with zstd) \
- $(use_enable nls)"
- if use alpha; then
- myconf+=" --disable-spinlocks"
- else
- # Should be the default but just in case
- myconf+=" --enable-spinlocks"
- fi
- econf ${myconf}
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- emake check
- export LC_CTYPE=${old_ctype}
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-15.6.ebuild b/dev-db/postgresql/postgresql-15.7-r2.ebuild
index aaea88b1abe6..740bb9acf2d0 100644
--- a/dev-db/postgresql/postgresql-15.6.ebuild
+++ b/dev-db/postgresql/postgresql-15.7-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
@@ -85,7 +86,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -408,13 +409,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-16.2.ebuild b/dev-db/postgresql/postgresql-16.3-r2.ebuild
index 520395881338..f0ca408471e6 100644
--- a/dev-db/postgresql/postgresql-16.2.ebuild
+++ b/dev-db/postgresql/postgresql-16.3-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -36,10 +37,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( app-crypt/mit-krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
@@ -86,7 +87,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -409,13 +410,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-16.1.ebuild b/dev-db/postgresql/postgresql-17_beta1.ebuild
index f86079824aee..0051e4905613 100644
--- a/dev-db/postgresql/postgresql-16.1.ebuild
+++ b/dev-db/postgresql/postgresql-17_beta1.ebuild
@@ -3,12 +3,13 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS=""
SLOT=$(ver_cut 1)
@@ -21,9 +22,9 @@ LICENSE="POSTGRESQL GPL-2"
DESCRIPTION="PostgreSQL RDBMS"
HOMEPAGE="https://www.postgresql.org/"
-IUSE="debug doc +icu kerberos ldap llvm lz4 nls pam perl python
+IUSE="debug doc +icu kerberos ldap llvm +lz4 nls pam perl python
+readline selinux +server systemd ssl static-libs tcl uuid xml
- zlib zstd"
+ zlib +zstd"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@@ -36,18 +37,17 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( app-crypt/mit-krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:0= )
server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
+ssl? ( >=dev-libs/openssl-0.9.6-r1:0= )
tcl? ( >=dev-lang/tcl-8:0= )
xml? ( dev-libs/libxml2 dev-libs/libxslt )
zlib? ( sys-libs/zlib )
@@ -86,8 +86,20 @@ RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
+# Openjade, docbook, XML, and XSLT are needed to generate manpages and
+# any documentation that may be elected.
+BDEPEND="
+app-text/openjade
+app-text/docbook-dsssl-stylesheets
+app-text/docbook-sgml-dtd:4.5
+app-text/docbook-xml-dtd:4.5
+app-text/docbook-xsl-stylesheets
+dev-libs/libxml2
+dev-libs/libxslt
+"
+
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -173,13 +185,14 @@ src_configure() {
src_compile() {
emake
emake -C contrib
+ emake -C doc
}
src_install() {
emake DESTDIR="${D}" install
emake DESTDIR="${D}" install -C contrib
- dodoc README HISTORY
+ dodoc HISTORY
# man pages are already built, but if we have the target make them,
# they'll be generated from source before being installed so we
@@ -410,13 +423,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-9999.ebuild b/dev-db/postgresql/postgresql-9999.ebuild
index 1fa775af92f2..e5eaa285027b 100644
--- a/dev-db/postgresql/postgresql-9999.ebuild
+++ b/dev-db/postgresql/postgresql-9999.ebuild
@@ -3,25 +3,38 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic git-r3 linux-info meson pam python-single-r1 \
+inherit flag-o-matic linux-info llvm-r1 meson pam python-single-r1 \
systemd tmpfiles
-KEYWORDS=""
+DESCRIPTION="PostgreSQL RDBMS"
+HOMEPAGE="https://www.postgresql.org/"
+LICENSE="POSTGRESQL GPL-2"
-SLOT="9999"
+SLOT=$(ver_cut 1)
-EGIT_REPO_URI="https://git.postgresql.org/git/postgresql.git"
+if [[ $PV = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.postgresql.org/git/postgresql.git"
+else
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
+ MY_PV=${PV/_/}
+ SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
-IUSE="debug +icu kerberos ldap llvm +lz4 nls pam perl python +readline
- selinux server systemd ssl static-libs tcl uuid xml zlib zstd"
+IUSE="debug doc +icu kerberos ldap llvm +lz4 nls pam perl python +readline
+ selinux systemd ssl static-libs tcl test uuid xml zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+REQUIRED_USE="
+llvm? ( ${LLVM_REQUIRED_USE} )
+python? ( ${PYTHON_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
CDEPEND="
>=app-eselect/eselect-postgresql-2.0
@@ -32,20 +45,22 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( app-crypt/mit-krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- sys-devel/llvm:=
- sys-devel/clang:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
+perl? ( >=dev-lang/perl-5.14:= )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:0= )
ssl? ( >=dev-libs/openssl-0.9.6-r1:0= )
systemd? ( sys-apps/systemd )
tcl? ( >=dev-lang/tcl-8:0= )
-uuid? ( dev-libs/ossp-uuid )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
+xml? (
+ dev-libs/libxml2
+ dev-libs/libxslt
+)
zlib? ( sys-libs/zlib )
zstd? ( app-arch/zstd )
"
@@ -73,37 +88,38 @@ uuid? (
DEPEND="${CDEPEND}
>=dev-lang/perl-5.8
-app-text/docbook-dsssl-stylesheets
-app-text/docbook-sgml-dtd:4.5
-app-text/docbook-xml-dtd:4.5
-app-text/docbook-xsl-stylesheets
-app-text/openjade
-dev-libs/libxml2
-dev-libs/libxslt
-sys-devel/bison
app-alternatives/lex
+sys-devel/bison
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
+
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
-pkg_pretend() {
- if ! use server; then
- elog "You are using a live ebuild that uses the current source code as it is"
- elog "available from PostgreSQL's Git repository at emerge time. Given such,"
- elog "the Meson build files may be altered by upstream without notice and the"
- elog "documentation for this live version is not readily available"
- elog "online. Ergo, the ebuild maintainers will not support building a"
- elog "client-only and/or document-free version."
- ewarn "Building server anyway."
- fi
-}
+# Openjade, docbook, XML, and XSLT are needed to generate manpages and
+# any documentation that may be elected.
+BDEPEND="
+app-text/openjade
+app-text/docbook-dsssl-stylesheets
+app-text/docbook-sgml-dtd:4.5
+app-text/docbook-xml-dtd:4.5
+app-text/docbook-xsl-stylesheets
+dev-libs/libxml2
+dev-libs/libxslt
+test? (
+ >=dev-lang/perl-5.14:=
+ dev-perl/IPC-Run
+ virtual/perl-Test-Simple
+ virtual/perl-ExtUtils-MakeMaker
+)
+"
pkg_setup() {
CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use python && python-single-r1_pkg_setup
}
@@ -118,42 +134,30 @@ src_prepare() {
sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
if use pam ; then
- sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
+ sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
-i src/backend/libpq/auth.c || \
die 'PGSQL_PAM_SERVICE rename failed.'
fi
- eapply_user
+ default
}
src_configure() {
- local emesonargs=()
-
case ${CHOST} in
*-darwin*|*-solaris*)
use nls && append-libs intl
;;
esac
+ export LDFLAGS_SL="${LDFLAGS}"
+ export LDFLAGS_EX="${LDFLAGS}"
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="-Duuid=e2fs"
- done
-
- emesonargs+=( ${uuid_config:-"-Duuid=ossp"} )
- fi
-
- use debug && emesonargs+=( "--debug" )
-
- local PO="${EPREFIX}"
- emesonargs+=(
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}"
- --datadir="${PO}/usr/share/postgresql-${SLOT}"
- --includedir="${PO}/usr/include/postgresql-${SLOT}"
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man"
- --sysconfdir="${PO}/etc/postgresql-${SLOT}"
- -Dsystem_tzdata="${PO}/usr/share/zoneinfo"
+ local emesonargs=(
+ --prefix="${EPREFIX}/usr/$(get_libdir)/postgresql-${SLOT}"
+ --datadir="${EPREFIX}/usr/share/postgresql-${SLOT}"
+ --includedir="${EPREFIX}/usr/include/postgresql-${SLOT}"
+ --mandir="${EPREFIX}/usr/share/postgresql-${SLOT}/man"
+ --sysconfdir="${EPREFIX}/etc/postgresql-${SLOT}"
+ -Dsystem_tzdata="${EPREFIX}/usr/share/zoneinfo"
$(meson_feature icu)
$(meson_feature kerberos gssapi)
$(meson_feature ldap)
@@ -170,60 +174,64 @@ src_configure() {
$(meson_feature xml libxslt)
$(meson_feature zlib)
$(meson_feature zstd)
+ $(meson_use !alpha spinlocks)
)
+ use debug && emesonargs+=( "--debug" )
use ssl && emesonargs+=( "-Dssl=openssl" )
- use alpha && emesonargs+=( "-Dspinlocks=false" )
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
+ local i uuid_config=""
+ if use uuid; then
+ for i in ${UTIL_LINUX_LIBC[@]}; do
+ use ${i} && uuid_config="-Duuid=e2fs"
+ done
+
+ emesonargs+=( ${uuid_config:-"-Duuid=ossp"} )
+ fi
meson_src_configure
}
src_compile() {
meson_src_compile
- meson_src_compile {docs,man}
+
+ if use doc ; then
+ # Generates both manpages and HTML documentation.
+ meson_src_compile docs
+ else
+ meson_src_compile man:alias
+ fi
+}
+
+src_test() {
+ if [[ ${UID} -ne 0 ]] ; then
+ # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
+ # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
+ local old_ctype=${LC_CTYPE}
+ export LC_CTYPE=${LC_COLLATE}
+ meson_src_test
+ export LC_CTYPE=${old_ctype}
+ else
+ ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
+ ewarn 'Skipping.'
+ fi
}
src_install() {
meson_src_install
- dodoc README HISTORY doc/TODO
- dodoc -r "${BUILD_DIR}"/doc/src/sgml/html
-
- # postgresql.eselect places the man files of the selected slot, which may
- # not be this ${SLOT}, hence doins instead of doman
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r "${BUILD_DIR}"/doc/src/sgml/man{1,3,7}
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
+ "${FILESDIR}/${PN}.confd-9.3" | newconfd - "${PN}-${SLOT}"
sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
+ "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - "${PN}-${SLOT}"
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
+ insinto "/etc/postgresql-${SLOT}"
+ newins src/bin/psql/psqlrc.sample psqlrc
+ # Create slot specific links to their related executables, so that they're
+ # always available. For example, pg_config9999 is always available whereas
+ # the pg_config is controlled by postgresql.eselect.
local f bn
for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
-mindepth 1 -maxdepth 1)
@@ -233,7 +241,15 @@ src_install() {
"/usr/bin/${bn}${SLOT/.}"
done
- # Create slot specific man pages
+ # Create slot specific man pages so that they're always available. As above
+ # for the executables, make `man pg_config9999` always refer to the same
+ # manpage, whereas postgresql.eselect controls which manpage `man pg_config`
+ # refers. And, since postgresql.eselect controls the manpages, doman would
+ # actually do the wrong thing for us, hence insinto and doins.
+ insinto "/usr/share/postgresql-${SLOT}/man/"
+ doins -r "${BUILD_DIR}"/doc/src/sgml/man{1,3,7}
+ docompress /usr/share/postgresql-"${SLOT}"/man/man{1,3,7}
+
local bn f mansec slotted_name
for mansec in 1 3 7 ; do
local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
@@ -243,54 +259,90 @@ src_install() {
for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
+ slotted_name=${bn%."${mansec}"}${SLOT}.${mansec}
case ${bn} in
TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
+ echo ".so ${rel_manpath}/SELECT.7" > "${slotted_name}"
;;
*)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
+ echo ".so ${rel_manpath}/${bn}" > "${slotted_name}"
;;
esac
done
- popd > /dev/null
+ popd > /dev/null || die "popd failed"
done
+ # All of the use flag influenced installs/removals begin here.
+ use doc && dodoc -r "${BUILD_DIR}"/doc/src/sgml/html
+
+ use pam && pamd_mimic system-auth "${PN}-${SLOT}" auth account session
+
if use prefix ; then
keepdir /run/postgresql
fperms 1775 /run/postgresql
fi
+
+ # Don't delete libpg{port,common}.a (Bug #571046). They're always
+ # needed by extensions utilizing PGXS.
+ use static-libs || \
+ find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
+ -delete
+
+ if use systemd; then
+ newbin "${FILESDIR}/${PN}-check-db-dir" "${PN}-${SLOT}-check-db-dir"
+
+ sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
+ "${FILESDIR}/${PN}.service-9.6-r1" | \
+ systemd_newunit - "${PN}-${SLOT}.service"
+ newtmpfiles "${FILESDIR}/${PN}.tmpfiles" "${PN}-${SLOT}.conf"
+ fi
}
pkg_postinst() {
- use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
+ use systemd && tmpfiles_process "${PN}-${SLOT}.conf"
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
+ # See comment in pkg_postrm().
+ [[ ${SLOT} = $(postgresql-config show) ]] && postgresql-config update
- elog
elog "Gentoo specific documentation:"
elog "https://wiki.gentoo.org/wiki/PostgreSQL"
elog
elog "Official documentation:"
- elog "${EROOT}/usr/share/doc/${PF}/html"
+ if use doc ; then
+ elog "${EROOT}/usr/share/doc/${PF}/html"
+ else
+ elog "https://www.postgresql.org/docs/${SLOT/9999*/devel}/index.html"
+ fi
+ elog
+
+ elog "You can find release notes at:"
+ if use doc ; then
+ elog "${EROOT}/usr/share/doc/${PF}/html/release.html"
+ else
+ elog "https://www.postgresql.org/docs/${SLOT/9999*/devel}/release.html"
+ fi
elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
+
+ elog "If you need a global psqlrc-file, you can place it in:"
+ elog " ${EROOT}/etc/postgresql-${SLOT}/"
elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale, and other options, in:"
+ elog "The next two items only apply when running a server on this machine."
+ elog "------------------------------------------------------------------------"
+ elog "1. You may want to edit PG_INITDB_OPTS in the following file so that it"
+ elog " contains your preferred locale, and other options, before"
+ elog " initializing the cluster:"
elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
+ elog "2. Then, run the following command to initialize database cluster:"
+ elog " emerge --config =${CATEGORY}/${PN}:${SLOT}"
}
pkg_prerm() {
if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+ ewarn "Were you running PostgreSQL ${SLOT} as a server? If no, ignore the rest"
+ ewarn "of this warning."
+ ewarn
ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
@@ -301,7 +353,11 @@ pkg_prerm() {
}
pkg_postrm() {
- postgresql-config update
+ # The links managed by eselect are unversioned only, and would only be
+ # impacted if the selected slot and ebuild slot are the same. For example,
+ # if the selected slot is SLOT+1, then nothing that happened with this
+ # ebuild will impact the unversioned links.
+ [[ ${SLOT} = $(postgresql-config show) ]] && postgresql-config update
}
pkg_config() {
@@ -358,7 +414,7 @@ pkg_config() {
sleep 5
eend 0
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
+ if [[ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ]] ; then
eerror "The given directory, '${DATA_DIR}', is not empty."
eerror "Modify DATA_DIR to point to an empty directory."
die "${DATA_DIR} is not empty."
@@ -366,9 +422,9 @@ pkg_config() {
einfo "Creating the data directory ..."
if [[ ${EUID} == 0 ]] ; then
- mkdir -p "${DATA_DIR}"
- chown -Rf postgres:postgres "${DATA_DIR}"
- chmod 0700 "${DATA_DIR}"
+ mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
+ mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
+ chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
fi
einfo "Initializing the database ..."
@@ -388,13 +444,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
@@ -423,20 +472,3 @@ pkg_config() {
einfo "instead of 'pg_ctl'."
fi
}
-
-src_test() {
- if [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- meson_src_test
- export LC_CTYPE=${old_ctype}
-
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/pspg/Manifest b/dev-db/pspg/Manifest
index 896cb738a04b..2d37fc3e2f6e 100644
--- a/dev-db/pspg/Manifest
+++ b/dev-db/pspg/Manifest
@@ -1,3 +1,4 @@
DIST pspg-5.5.4.tar.gz 2415002 BLAKE2B 1b7712318069c5fe69afe5e7477aa2a415d007a1f41af866726b11e65073c507ed12a51de14fc39ee06df9ccbe2763472332f55dda49167547e6ba590850bb5b SHA512 f13f4d7424d7b172a1fc5f963e7390a53f73f5c53ea4af7a9bed32dabc99f657e46cae550e8d5c7dd756b3496dd2ad665f3fd6551e54f9add1b3aef491709572
DIST pspg-5.5.8.tar.gz 2428371 BLAKE2B 09021f61c51698fd85ccf61c559014b6ffecad72079abf10c7dc50249bffbe34b86afa124a30a8d4f5c360af069ec623a4815288267a2ee225f7030de14b76d4 SHA512 f3fa9bc097ac43ab0113586b3474e9137c84b2ca844c45397a7ec185a01c66daa204f7bf739f7b65f1d741de02be8f7c1ba7df5abaa962008f33f6082c576b9f
DIST pspg-5.8.1.tar.gz 2442046 BLAKE2B 173b7250299927f140597d510e41aacad8be10b58e14094cbca2c2c3648925f71267a44728084ebf10cb832669c601ba121e529d7130b15cb2ab6accb3a9f77e SHA512 1ffcae86559f17e2cafba31a7bf9ba0170f4cdf8f2f5885a3650fea30463327e6a040e7746a8a074302fbb5080ce032a10775da503a5788a622203669609706f
+DIST pspg-5.8.5.tar.gz 2445232 BLAKE2B 90d6ca969bd365fea1801fb9125e4d3c5e92b916c7a13ae949a8170a7566d862d436c5d23358a6433ffa90bbf2551013b2f12a6c204614e0974c1fe6698c580e SHA512 f33be2e0ddd8f56054c82f4f3a8ea531faef2f9ca21a706f894f5419e8122d291a9174495d68dc8637728cc57fe764e63c34b843e8ed8a3b3ff7546a6c904e7e
diff --git a/dev-db/pspg/metadata.xml b/dev-db/pspg/metadata.xml
index 334189f9edab..b852c5503b93 100644
--- a/dev-db/pspg/metadata.xml
+++ b/dev-db/pspg/metadata.xml
@@ -12,4 +12,7 @@
supports searching, selecting rows, columns, or block and export
selected area to clipboard.
</longdescription>
+ <upstream>
+ <remote-id type="github">okbob/pspg</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-db/pspg/pspg-5.8.5.ebuild b/dev-db/pspg/pspg-5.8.5.ebuild
new file mode 100644
index 000000000000..30c83cc68ff9
--- /dev/null
+++ b/dev-db/pspg/pspg-5.8.5.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1
+
+DESCRIPTION="A better pager for CLI database clients and can be used in place of psql"
+HOMEPAGE="https://github.com/okbob/pspg"
+SRC_URI="https://github.com/okbob/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="postgres"
+RESTRICT="test"
+
+RDEPEND="
+sys-libs/ncurses:=
+sys-libs/readline:=
+postgres? ( dev-db/postgresql:= )
+"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ econf $(use_with postgres postgresql)
+}
+
+src_install() {
+ default
+
+ newbashcomp bash-completion.sh ${PN}
+}
diff --git a/dev-db/psqlodbc/Manifest b/dev-db/psqlodbc/Manifest
index d7789a3cd0b5..2933a8c1866b 100644
--- a/dev-db/psqlodbc/Manifest
+++ b/dev-db/psqlodbc/Manifest
@@ -1,3 +1,4 @@
DIST psqlodbc-11.01.0000.tar.gz 919372 BLAKE2B ce84b4bb210c4c3c3f2a3e9eae713c875e4bae491e20f207f740a02af69cb771f504de6b1da06fcd12306d986299e1537184a6787eac80e320eea6d8c13dc142 SHA512 57762bfa9925012946e56a3d5b815af00078299c121ba0142865c06f877cabf314512e4e6efc654589fb409c4dd2cbb9a3b7fd7aa1a6ace361879552774b11d7
DIST psqlodbc-13.00.0000.tar.gz 940031 BLAKE2B 346a06b5b7b16ead1d87b7bdadcd050102b1b30e19d7bf236e134439711e4832b193241d6ea02b5628a64afbfad77b0c6d3bdf921fd3ae3a5cf696a58100e53c SHA512 c8d5cb0ce304e702f3c6f0b2e1c681df283973a8459a820f92df806814659eb15668c38a855a69b44cf5ebe459283bef1ca1cba44df0fe16a361e614f5481bc7
DIST psqlodbc-15.00.0000.tar.gz 945814 BLAKE2B 0170ae9bcd1a77b0655b4d33543a7cca3551d845d8a36dd5d809567e7d7669defb278790f169a80757d41ffb5cbbfda68f0536f4fe25698e85a1fe570736409c SHA512 ae511edb9889e6cc7d05d11ee384db1aa1a52b9cac035b3449b03ab91ada5cc0d737fef34addd4be6a3ef839b68735874ee7125be9ae272328c44631fd2269e2
+DIST psqlodbc-16.00.0000.tar.gz 946997 BLAKE2B 9a4d787b1a29bb8ce874473fb126db7677ebc5e37f502b34c877341aa04c77c8acbb4d2353929631c7949ef9b482091b2dfbddf6934005d66446797bf8abcc22 SHA512 ad971cd29e431225d03faf5ebc0ba7a9f17d20dd70106867f05df8dc1e509413d4db533101a1b3418480ad758b7626c178ec345c5ff7e9409f7fcfbea9427166
diff --git a/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild b/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild
new file mode 100644
index 000000000000..eb924528a69d
--- /dev/null
+++ b/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Official ODBC driver for PostgreSQL"
+HOMEPAGE="https://odbc.postgresql.org/"
+SRC_URI="https://ftp.postgresql.org/pub/odbc/versions/src/${P}.tar.gz"
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="iodbc ssl threads"
+
+DEPEND="dev-db/postgresql:*[ssl?]
+ !iodbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc )
+"
+RDEPEND="${DEPEND}"
+
+# Tests require installation and a server setup for the purpose.
+RESTRICT="test"
+
+DOCS=( readme.txt )
+HTML_DOCS=(
+ docs/config.html
+ docs/config-opt.html
+ docs/editConfiguration.jpg
+ docs/release-7.3.html
+ docs/release.html
+)
+
+src_configure() {
+ econf \
+ $(use_with iodbc) \
+ $(use_with !iodbc unixodbc) \
+ $(use_enable threads pthreads)
+}
diff --git a/dev-db/qdbm/files/qdbm-ruby.patch b/dev-db/qdbm/files/qdbm-ruby.patch
new file mode 100644
index 000000000000..8b1a946d8d8c
--- /dev/null
+++ b/dev-db/qdbm/files/qdbm-ruby.patch
@@ -0,0 +1,81 @@
+--- a/ruby/curia/extconf.rb
++++ b/ruby/curia/extconf.rb
+@@ -2,10 +2,9 @@
+
+ dir_config("curia")
+
+-home = ENV['HOME']
+-$CFLAGS = "-I. -I../.. -I#{home}/include -I/usr/local/include"
+-$LDFLAGS = "-L../.. -L#{home}/lib -L/usr/local/lib"
+-$LIBS = "-L../.. -L#{home}/lib -L/usr/local/lib"
++$CFLAGS << " -I../.. " << ENV["CFLAGS"]
++$LDFLAGS << " -L../.. " << ENV["LDFLAGS"]
++$LIBS << " -L../.."
+
+ have_library("c", "main")
+ have_library("pthread", "main")
+--- a/ruby/curia/mod_curia.c
++++ b/ruby/curia/mod_curia.c
+@@ -84,7 +84,7 @@
+ *************************************************************************************************/
+
+
+-Init_mod_curia(){
++void Init_mod_curia(void){
+ crinit();
+ ccuriaerror = rb_define_class("CuriaError", rb_eStandardError);
+ ccuriaerror_ENOERR = rb_define_class("CuriaError_ENOERR", ccuriaerror);
+--- a/ruby/depot/extconf.rb
++++ b/ruby/depot/extconf.rb
+@@ -2,10 +2,9 @@
+
+ dir_config("depot")
+
+-home = ENV['HOME']
+-$CFLAGS = "-I. -I../.. -I#{home}/include -I/usr/local/include"
+-$LDFLAGS = "-L../.. -L#{home}/lib -L/usr/local/lib"
+-$LIBS = "-L../.. -L#{home}/lib -L/usr/local/lib"
++$CFLAGS << " -I../.. " << ENV["CFLAGS"]
++$LDFLAGS << " -L../.. " << ENV["LDFLAGS"]
++$LIBS << " -L../.."
+
+ have_library("c", "main")
+ have_library("pthread", "main")
+--- a/ruby/depot/mod_depot.c
++++ b/ruby/depot/mod_depot.c
+@@ -83,7 +83,7 @@
+ *************************************************************************************************/
+
+
+-Init_mod_depot(){
++void Init_mod_depot(void){
+ dpinit();
+ cdepoterror = rb_define_class("DepotError", rb_eStandardError);
+ cdepoterror_ENOERR = rb_define_class("DepotError_ENOERR", cdepoterror);
+--- a/ruby/villa/extconf.rb
++++ b/ruby/villa/extconf.rb
+@@ -2,10 +2,9 @@
+
+ dir_config("villa")
+
+-home = ENV['HOME']
+-$CFLAGS = "-I. -I../.. -I#{home}/include -I/usr/local/include"
+-$LDFLAGS = "-L../.. -L#{home}/lib -L/usr/local/lib"
+-$LIBS = "-L../.. -L#{home}/lib -L/usr/local/lib"
++$CFLAGS << " -I../.. " << ENV["CFLAGS"]
++$LDFLAGS << " -L../.. " << ENV["LDFLAGS"]
++$LIBS << " -L../.."
+
+ have_library("c", "main")
+ have_library("pthread", "main")
+--- a/ruby/villa/mod_villa.c
++++ b/ruby/villa/mod_villa.c
+@@ -97,7 +97,7 @@
+ *************************************************************************************************/
+
+
+-Init_mod_villa(){
++void Init_mod_villa(void){
+ vlinit();
+ cvillaerror = rb_define_class("VillaError", rb_eStandardError);
+ cvillaerror_ENOERR = rb_define_class("VillaError_ENOERR", cvillaerror);
diff --git a/dev-db/qdbm/metadata.xml b/dev-db/qdbm/metadata.xml
index 9a97f3478d31..987ce1bc2ed6 100644
--- a/dev-db/qdbm/metadata.xml
+++ b/dev-db/qdbm/metadata.xml
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>hattya@gentoo.org</email>
- </maintainer>
+ <maintainer type="person">
+ <email>hattya@gentoo.org</email>
+ <name>Akinori Hattori</name>
+ </maintainer>
</pkgmetadata>
diff --git a/dev-db/qdbm/qdbm-1.8.78-r4.ebuild b/dev-db/qdbm/qdbm-1.8.78-r5.ebuild
index f1ea111f2075..c4022db45e1f 100644
--- a/dev-db/qdbm/qdbm-1.8.78-r4.ebuild
+++ b/dev-db/qdbm/qdbm-1.8.78-r5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
@@ -14,7 +14,7 @@ SRC_URI="https://fallabs.com/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="bzip2 cxx debug java lzo perl ruby static-libs zlib"
+IUSE="bzip2 cxx java lzo perl ruby static-libs zlib"
RDEPEND="bzip2? ( app-arch/bzip2 )
java? ( >=virtual/jre-1.8:* )
@@ -30,6 +30,7 @@ RUBY_S="${P}/ruby"
PATCHES=(
"${FILESDIR}"/${PN}-configure.patch
"${FILESDIR}"/${PN}-perl.patch
+ "${FILESDIR}"/${PN}-ruby.patch
"${FILESDIR}"/${PN}-ruby19.patch
"${FILESDIR}"/${PN}-runpath.patch
"${FILESDIR}"/${PN}-darwin.patch
@@ -61,14 +62,7 @@ qdbm_foreach_api() {
eautoreconf
;;
configure)
- case "${u}" in
- cgi|java|plus)
- econf $(use_enable debug)
- ;;
- *)
- econf
- ;;
- esac
+ econf
;;
compile)
emake
@@ -99,7 +93,6 @@ src_prepare() {
-e "/^CXXFLAGS/s|$| ${CXXFLAGS}|" \
-e "/^JAVACFLAGS/s|$| ${JAVACFLAGS}|" \
-e 's/make\( \|$\)/$(MAKE)\1/g' \
- -e '/^debug/,/^$/s/LDFLAGS="[^"]*" //' \
Makefile.in {cgi,java,perl,plus,ruby}/Makefile.in || die
find -name "*~" -delete || die
@@ -121,7 +114,6 @@ each_ruby_prepare() {
src_configure() {
econf \
$(use_enable bzip2 bzip) \
- $(use_enable debug) \
$(use_enable lzo) \
$(use_enable zlib) \
--enable-iconv \
diff --git a/dev-db/redict/Manifest b/dev-db/redict/Manifest
new file mode 100644
index 000000000000..a15faf344ca6
--- /dev/null
+++ b/dev-db/redict/Manifest
@@ -0,0 +1 @@
+DIST redict-7.3.0.tar.gz 3414514 BLAKE2B dd2ce2fdd8fbede33ddea9fee34e81535b0948a8963fb0d3391aac32ddf786e5cce996d1d405d81182ef6098ab8389b3c71b95ff9d8cbc68637746538e36999d SHA512 d33f4dfaf728f5a22abe7a6223f3192c39dc41a32e7bcb0f453caaa859f35b512534979c26ced9f4458c19611debd282f37955e930151c0f827035f349647226
diff --git a/dev-db/redict/files/redict-7.3.0-config.patch b/dev-db/redict/files/redict-7.3.0-config.patch
new file mode 100644
index 000000000000..aab0df2e1a45
--- /dev/null
+++ b/dev-db/redict/files/redict-7.3.0-config.patch
@@ -0,0 +1,40 @@
+diff --git a/redict.conf b/redict.conf
+index 465d56f..ef56037 100644
+--- a/redict.conf
++++ b/redict.conf
+@@ -276,7 +276,7 @@ daemonize no
+ #
+ # Note that on modern Linux systems "/run/redict.pid" is more conforming
+ # and should be used instead.
+-pidfile /var/run/redict_6379.pid
++pidfile /run/redict/redict.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -289,7 +289,7 @@ loglevel notice
+ # Specify the log file name. Also the empty string can be used to force
+ # redict to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/redict/redict.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+@@ -441,7 +441,7 @@ rdb-del-sync-files no
+ # The Append Only File will also be created inside this directory.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir /var/lib/redict/
+
+ ################################# REPLICATION #################################
+
+@@ -967,7 +967,7 @@ acllog-max-len 128
+ # limit for maxmemory so that there is some free RAM on the system for replica
+ # output buffers (but this is not needed if the policy is 'noeviction').
+ #
+-# maxmemory <bytes>
++maxmemory 64MB
+
+ # MAXMEMORY POLICY: how redict will select what to remove when maxmemory
+ # is reached. You can select one from the following behaviors:
diff --git a/dev-db/redict/files/redict-7.3.0-system-hiredict.patch b/dev-db/redict/files/redict-7.3.0-system-hiredict.patch
new file mode 100644
index 000000000000..53b9d93087d4
--- /dev/null
+++ b/dev-db/redict/files/redict-7.3.0-system-hiredict.patch
@@ -0,0 +1,240 @@
+# Patch from https://codeberg.org/redict/redict/pulls/44
+# and https://salsa.debian.org/redict-team/redict/-/blob/1d2b9f08f3dcc7ba4f03ddd9066545d0fd6b716e/debian/patches/0005-Fix-hiredict-imports.patch
+# The first patch got upstreamed, the second will be soon
+
+From ffb9f03106de48a2a09d60f691a8852a0cf917ad Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Sun, 14 Apr 2024 11:52:21 +0300
+Subject: [PATCH 1/2] Add ability to use system hiredict
+
+Co-authored-by: Chris Lamb <lamby@debian.org>
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ deps/Makefile | 2 ++
+ src/Makefile | 27 ++++++++++++++++++++++-----
+ 2 files changed, 24 insertions(+), 5 deletions(-)
+
+diff --git a/deps/Makefile b/deps/Makefile
+index 345e1f703..e071cfa03 100644
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -36,7 +36,9 @@ ifneq ($(shell sh -c '[ -f .make-ldflags ] && cat .make-ldflags || echo none'),
+ endif
+
+ distclean:
++ifneq ($(USE_SYSTEM_HIREDICT),yes)
+ -(cd hiredict && $(MAKE) clean) > /dev/null || true
++endif
+ -(cd linenoise && $(MAKE) clean) > /dev/null || true
+ -(cd lua && $(MAKE) clean) > /dev/null || true
+ ifneq ($(USE_SYSTEM_JEMALLOC),yes)
+diff --git a/src/Makefile b/src/Makefile
+index fbcc20f02..8ca30a6df 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -24,7 +24,7 @@ endif
+ ifneq ($(OPTIMIZATION),-O0)
+ OPTIMIZATION+=-fno-omit-frame-pointer
+ endif
+-DEPENDENCY_TARGETS=hiredict linenoise lua hdr_histogram fpconv
++DEPENDENCY_TARGETS=linenoise lua hdr_histogram fpconv
+ NODEPS:=clean distclean
+
+ # Default settings
+@@ -226,7 +226,7 @@ ifdef OPENSSL_PREFIX
+ endif
+
+ # Include paths to dependencies
+-FINAL_CFLAGS+= -I../deps/hiredict -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv
++FINAL_CFLAGS+= -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv
+
+ # Determine systemd support and/or build preference (defaulting to auto-detection)
+ BUILD_WITH_SYSTEMD=no
+@@ -277,6 +277,15 @@ else
+ endif
+ endif
+
++ifeq ($(USE_SYSTEM_HIREDICT),yes)
++ FINAL_LIBS+= $(shell $(PKG_CONFIG) --libs hiredict)
++ FINAL_CFLAGS+= $(shell $(PKG_CONFIG) --cflags hiredict)
++else
++ DEPENDENCY_TARGETS += hiredict
++ FINAL_LIBS+= ../deps/hiredict/libhiredict.a
++ FINAL_CFLAGS+= -I../deps/hiredict
++endif
++
+ # LIBSSL & LIBCRYPTO
+ LIBSSL_LIBS=
+ LIBSSL_PKGCONFIG := $(shell $(PKG_CONFIG) --exists libssl && echo $$?)
+@@ -299,15 +308,23 @@ BUILD_MODULE:=2
+ ifeq ($(BUILD_TLS),yes)
+ FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_YES) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_NO)
+ FINAL_LDFLAGS+=$(OPENSSL_LDFLAGS)
++ifeq ($(USE_SYSTEM_HIREDICT),yes)
++ FINAL_LIBS += $(shell $(PKG_CONFIG) --libs hiredict_ssl) $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
++else
+ FINAL_LIBS += ../deps/hiredict/libhiredict_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
+ endif
++endif
+
+ TLS_MODULE=
+ TLS_MODULE_NAME:=redict-tls$(PROG_SUFFIX).so
+ TLS_MODULE_CFLAGS:=$(FINAL_CFLAGS)
+ ifeq ($(BUILD_TLS),module)
+ FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS)
++ifeq ($(USE_SYSTEM_HIREDICT),yes)
++ TLS_CLIENT_LIBS = $(shell $(PKG_CONFIG) --libs hiredict_ssl) $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
++else
+ TLS_CLIENT_LIBS = ../deps/hiredict/libhiredict_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
++endif
+ TLS_MODULE=$(TLS_MODULE_NAME)
+ TLS_MODULE_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_MODULE)
+ endif
+@@ -406,7 +423,7 @@ endif
+
+ # redict-server
+ $(REDICT_SERVER_NAME): $(REDICT_SERVER_OBJ)
+- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/lua/src/liblua.a ../deps/hdr_histogram/libhdrhistogram.a ../deps/fpconv/libfpconv.a $(FINAL_LIBS)
++ $(REDICT_LD) -o $@ $^ ../deps/lua/src/liblua.a ../deps/hdr_histogram/libhdrhistogram.a ../deps/fpconv/libfpconv.a $(FINAL_LIBS)
+
+ # redict-sentinel
+ $(REDICT_SENTINEL_NAME): $(REDICT_SERVER_NAME)
+@@ -426,11 +443,11 @@ $(TLS_MODULE_NAME): $(REDICT_SERVER_NAME)
+
+ # redict-cli
+ $(REDICT_CLI_NAME): $(REDICT_CLI_OBJ)
+- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/linenoise/linenoise.o $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
++ $(REDICT_LD) -o $@ $^ ../deps/linenoise/linenoise.o $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
+
+ # redict-benchmark
+ $(REDICT_BENCHMARK_NAME): $(REDICT_BENCHMARK_OBJ)
+- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
++ $(REDICT_LD) -o $@ $^ ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
+
+ DEP = $(REDICT_SERVER_OBJ:%.o=%.d) $(REDICT_CLI_OBJ:%.o=%.d) $(REDICT_BENCHMARK_OBJ:%.o=%.d)
+ -include $(DEP)
+--
+2.39.2
+
+
+From bd55c900ac123db05b7243f6e958e311a622fb7d Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Sun, 14 Apr 2024 11:53:13 +0300
+Subject: [PATCH 2/2] Mention USE_SYSTEM_HIREDICT setting in README
+
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ README.md | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/README.md b/README.md
+index ae77a235a..cf4944e6f 100644
+--- a/README.md
++++ b/README.md
+@@ -25,6 +25,8 @@ You can pass the following variables to Redict to customize the build:
+ * `USE_JEMALLOC=no MALLOC=libc`: use the libc allocator rather than jemalloc
+ * `USE_SYSTEM_JEMALLOC=yes`: use the system's installed jemalloc libraries
+ rather than the vendored copy.
++* `USE_SYSTEM_HIREDICT=yes`: use the system's installed hiredict libraries
++ rather than the vendored copy.
+ * `BUILD_TLS=yes`: build with TLS support. Requires OpenSSL.
+ * `USE_SYSTEMD=yes`: build with systemd support. Requires libsystemd.
+ * `PROG_SUFFIX="-suffix"`: Append "-suffix" to executable names
+--
+2.39.2
+
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Subject: Fix hiredict imports
+Forwarded: no
+
+--- a/src/cli_common.c
++++ b/src/cli_common.c
+@@ -13,15 +13,15 @@
+ #include <stdlib.h>
+ #include <fcntl.h>
+ #include <errno.h>
+-#include <hiredict.h>
+-#include <sds.h>
++#include <hiredict/hiredict.h>
++#include <hiredict/sds.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <ctype.h>
+ #ifdef USE_OPENSSL
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
+-#include <hiredict_ssl.h>
++#include <hiredict/hiredict_ssl.h>
+ #endif
+
+ #define UNUSED(V) ((void) V)
+--- a/src/cli_common.h
++++ b/src/cli_common.h
+@@ -7,8 +7,8 @@
+ #ifndef __CLICOMMON_H
+ #define __CLICOMMON_H
+
+-#include <hiredict.h>
+-#include <sds.h>
++#include <hiredict/hiredict.h>
++#include <hiredict/sds.h>
+
+ typedef struct cliSSLconfig {
+ /* Requested SNI, or NULL */
+--- a/src/redict-benchmark.c
++++ b/src/redict-benchmark.c
+@@ -19,13 +19,13 @@
+ #include <math.h>
+ #include <pthread.h>
+
+-#include <sds.h>
++#include <hiredict/sds.h>
+ #include "ae.h"
+-#include <hiredict.h>
++#include <hiredict/hiredict.h>
+ #ifdef USE_OPENSSL
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
+-#include <hiredict_ssl.h>
++#include <hiredict/hiredict_ssl.h>
+ #endif
+ #include "adlist.h"
+ #include "dict.h"
+--- a/src/redict-cli.c
++++ b/src/redict-cli.c
+@@ -23,13 +23,13 @@
+ #include <math.h>
+ #include <termios.h>
+
+-#include <hiredict.h>
++#include <hiredict/hiredict.h>
+ #ifdef USE_OPENSSL
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
+-#include <hiredict_ssl.h>
++#include <hiredict/hiredict_ssl.h>
+ #endif
+-#include <sds.h>
++#include <hiredict/sds.h>
+ #include "dict.h"
+ #include "adlist.h"
+ #include "zmalloc.h"
+--- a/src/sentinel.c
++++ b/src/sentinel.c
+@@ -6,12 +6,12 @@
+ // SPDX-License-Identifier: LGPL-3.0-only
+
+ #include "server.h"
+-#include "hiredict.h"
++#include "hiredict/hiredict.h"
+ #if USE_OPENSSL == 1 /* BUILD_YES */
+ #include "openssl/ssl.h"
+-#include "hiredict_ssl.h"
++#include "hiredict/hiredict_ssl.h"
+ #endif
+-#include "async.h"
++#include "hiredict/async.h"
+
+ #include <ctype.h>
+ #include <arpa/inet.h>
+
diff --git a/dev-db/redict/files/redict-7.3.0-system-jemalloc.patch b/dev-db/redict/files/redict-7.3.0-system-jemalloc.patch
new file mode 100644
index 000000000000..802b573dee83
--- /dev/null
+++ b/dev-db/redict/files/redict-7.3.0-system-jemalloc.patch
@@ -0,0 +1,173 @@
+# Patch comes from https://codeberg.org/redict/redict/pulls/40
+# https://codeberg.org/redict/redict/pulls/42
+# and https://codeberg.org/redict/redict/pulls/43
+# All got merged upstream and should be removed next release.
+
+From 5defea5b98859f4e1162b82120114e222b2a7465 Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Wed, 10 Apr 2024 01:10:49 +0300
+Subject: [PATCH 1/2] Add ability to use system jemalloc
+
+This time, this shouldn't cause CI tests to fail.
+
+Co-authored-by: Chris Lamb <lamby@debian.org>
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ deps/Makefile | 2 ++
+ src/Makefile | 8 +++++++-
+ src/debug.c | 3 +++
+ src/object.c | 5 +++++
+ src/sds.c | 4 ++++
+ src/zmalloc.c | 4 ++++
+ src/zmalloc.h | 4 ++++
+ 7 files changed, 29 insertions(+), 1 deletion(-)
+
+diff --git a/deps/Makefile b/deps/Makefile
+index 9a273aefc..345e1f703 100644
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -39,7 +39,9 @@ distclean:
+ -(cd hiredict && $(MAKE) clean) > /dev/null || true
+ -(cd linenoise && $(MAKE) clean) > /dev/null || true
+ -(cd lua && $(MAKE) clean) > /dev/null || true
++ifneq ($(USE_SYSTEM_JEMALLOC),yes)
+ -(cd jemalloc && [ -f Makefile ] && $(MAKE) distclean) > /dev/null || true
++endif
+ -(cd hdr_histogram && $(MAKE) clean) > /dev/null || true
+ -(cd fpconv && $(MAKE) clean) > /dev/null || true
+ -(rm -f .make-*)
+diff --git a/src/Makefile b/src/Makefile
+index 0739466b6..d399c6eb2 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -266,10 +266,16 @@ ifeq ($(MALLOC),tcmalloc_minimal)
+ endif
+
+ ifeq ($(MALLOC),jemalloc)
++ FINAL_CFLAGS+= -DUSE_JEMALLOC
++ifeq ($(USE_SYSTEM_JEMALLOC),yes)
++ FINAL_CFLAGS+= -DUSE_SYSTEM_JEMALLOC $(shell $(PKG_CONFIG) --cflags jemalloc)
++ FINAL_LIBS := $(shell $(PKG_CONFIG) --libs jemalloc) $(FINAL_LIBS)
++else
+ DEPENDENCY_TARGETS+= jemalloc
+- FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include
++ FINAL_CFLAGS+= -I../deps/jemalloc/include
+ FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS)
+ endif
++endif
+
+ # LIBSSL & LIBCRYPTO
+ LIBSSL_LIBS=
+diff --git a/src/debug.c b/src/debug.c
+index 89d33bfd7..2257d655e 100644
+--- a/src/debug.c
++++ b/src/debug.c
+@@ -56,6 +56,9 @@ void bugReportEnd(int killViaSignal, int sig);
+ void logStackTrace(void *eip, int uplevel, int current_thread);
+ void sigalrmSignalHandler(int sig, siginfo_t *info, void *secret);
+
++#if defined(USE_JEMALLOC) && defined(USE_SYSTEM_JEMALLOC)
++#define je_mallctl mallctl
++#endif
+ /* ================================= Debugging ============================== */
+
+ /* Compute the sha1 of string at 's' with 'len' bytes long.
+diff --git a/src/object.c b/src/object.c
+index cf7811e81..5da8fbcc9 100644
+--- a/src/object.c
++++ b/src/object.c
+@@ -15,6 +15,11 @@
+ #define strtold(a,b) ((long double)strtod((a),(b)))
+ #endif
+
++#if defined(USE_JEMALLOC) && defined(USE_SYSTEM_JEMALLOC)
++#define je_mallctl mallctl
++#define je_malloc_stats_print malloc_stats_print
++#endif
++
+ /* ===================== Creation and parsing of objects ==================== */
+
+ robj *createObject(int type, void *ptr) {
+diff --git a/src/sds.c b/src/sds.c
+index 0a295132c..a1ac73d5a 100644
+--- a/src/sds.c
++++ b/src/sds.c
+@@ -24,6 +24,10 @@
+ #include "sds.h"
+ #include "sdsalloc.h"
+
++#if defined(USE_JEMALLOC) && defined(USE_SYSTEM_JEMALLOC)
++#define je_nallocx nallocx
++#endif
++
+ const char *SDS_NOINIT = "SDS_NOINIT";
+
+ static inline int sdsHdrSize(char type) {
+diff --git a/src/zmalloc.c b/src/zmalloc.c
+index d737e2b14..7187599aa 100644
+--- a/src/zmalloc.c
++++ b/src/zmalloc.c
+@@ -56,6 +56,9 @@ void zlibc_free(void *ptr) {
+ #define free(ptr) tc_free(ptr)
+ /* Explicitly override malloc/free etc when using jemalloc. */
+ #elif defined(USE_JEMALLOC)
++#if defined(USE_SYSTEM_JEMALLOC)
++#define je_mallctl mallctl
++#else
+ #define malloc(size) je_malloc(size)
+ #define calloc(count,size) je_calloc(count,size)
+ #define realloc(ptr,size) je_realloc(ptr,size)
+@@ -63,6 +66,7 @@ void zlibc_free(void *ptr) {
+ #define mallocx(size,flags) je_mallocx(size,flags)
+ #define dallocx(ptr,flags) je_dallocx(ptr,flags)
+ #endif
++#endif
+
+ #define update_zmalloc_stat_alloc(__n) atomicIncr(used_memory,(__n))
+ #define update_zmalloc_stat_free(__n) atomicDecr(used_memory,(__n))
+diff --git a/src/zmalloc.h b/src/zmalloc.h
+index df7d290da..c10858439 100644
+--- a/src/zmalloc.h
++++ b/src/zmalloc.h
+@@ -27,7 +27,11 @@
+ #include <jemalloc/jemalloc.h>
+ #if (JEMALLOC_VERSION_MAJOR == 2 && JEMALLOC_VERSION_MINOR >= 1) || (JEMALLOC_VERSION_MAJOR > 2)
+ #define HAVE_MALLOC_SIZE 1
++#if defined(USE_SYSTEM_JEMALLOC)
++#define zmalloc_size(p) malloc_usable_size(p)
++#else
+ #define zmalloc_size(p) je_malloc_usable_size(p)
++#endif
+ #else
+ #error "Newer version of jemalloc required"
+ #endif
+--
+2.39.2
+
+
+From 940b0fab0318f5f306a67d0818635acc522402c4 Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Wed, 10 Apr 2024 01:11:24 +0300
+Subject: [PATCH 2/2] Mention USE_SYSTEM_JEMALLOC setting in README
+
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ README.md | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/README.md b/README.md
+index 14caf183d..ae77a235a 100644
+--- a/README.md
++++ b/README.md
+@@ -23,6 +23,8 @@ toolchain, and GNU make. To build Redict, simply run "make".
+ You can pass the following variables to Redict to customize the build:
+
+ * `USE_JEMALLOC=no MALLOC=libc`: use the libc allocator rather than jemalloc
++* `USE_SYSTEM_JEMALLOC=yes`: use the system's installed jemalloc libraries
++ rather than the vendored copy.
+ * `BUILD_TLS=yes`: build with TLS support. Requires OpenSSL.
+ * `USE_SYSTEMD=yes`: build with systemd support. Requires libsystemd.
+ * `PROG_SUFFIX="-suffix"`: Append "-suffix" to executable names
+--
+2.39.2
+
diff --git a/dev-db/redict/files/redict-sentinel-7.3.0-config.patch b/dev-db/redict/files/redict-sentinel-7.3.0-config.patch
new file mode 100644
index 000000000000..8ed5da34b598
--- /dev/null
+++ b/dev-db/redict/files/redict-sentinel-7.3.0-config.patch
@@ -0,0 +1,27 @@
+Rebased from original redis-sentinel-5.0-config.patch
+
+diff --git a/sentinel.conf b/sentinel.conf
+index b7b3604f0..a1d7bfea9 100644
+--- a/sentinel.conf
++++ b/sentinel.conf
+@@ -17,7 +17,7 @@ daemonize no
+ # When running daemonized, redict Sentinel writes a pid file in
+ # /var/run/redict-sentinel.pid by default. You can specify a custom pid file
+ # location here.
+-pidfile /var/run/redict-sentinel.pid
++pidfile /run/redict-sentinel.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -31,7 +31,7 @@ loglevel notice
+ # Specify the log file name. Also the empty string can be used to force
+ # Sentinel to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile "/var/log/redict/sentinel.log"
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+--
+2.41.0
+
diff --git a/dev-db/redict/files/redict-sentinel.confd b/dev-db/redict/files/redict-sentinel.confd
new file mode 100644
index 000000000000..e168b46b14f7
--- /dev/null
+++ b/dev-db/redict/files/redict-sentinel.confd
@@ -0,0 +1,16 @@
+# Redict-sentinel user.
+REDICT_SENTINEL_USER="redict"
+
+# Redict-sentinel group.
+REDICT_SENTINEL_GROUP="redict"
+
+# Redict-sentinel configuration file.
+REDICT_SENTINEL_CONF="/etc/redict/sentinel.conf"
+
+# Redict-sentinel working directory.
+REDICT_SENTINEL_DIR="/tmp"
+
+# Specify the network service that corresponds to the "bind" setting
+# in your sentinel.conf. For example, if you bind to 127.0.0.1, this should
+# be set to "net.lo" which provides the loopback interface.
+rc_need="net.lo"
diff --git a/dev-db/redict/files/redict-sentinel.initd b/dev-db/redict/files/redict-sentinel.initd
new file mode 100644
index 000000000000..e3417a33ee57
--- /dev/null
+++ b/dev-db/redict/files/redict-sentinel.initd
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${REDICT_SENTINEL_DIR:=/tmp}
+: ${REDICT_SENTINEL_CONF:=/etc/redict/sentinel.conf}
+: ${REDICT_SENTINEL_USER:=redict}
+: ${REDICT_SENTINEL_GROUP:=redict}
+: ${REDICT_SENTINEL_TIMEOUT:=30}
+
+depend() {
+ use localmount logger
+ after keepalived redict
+ provide redis-sentinel
+}
+
+command="/usr/bin/redict-sentinel"
+command_args="${REDICT_SENTINEL_CONF}"
+command_background="true"
+command_user="${REDICT_SENTINEL_USER}:${REDICT_SENTINEL_GROUP}"
+pidfile="/run/${RC_SVCNAME}.pid"
+retry="${REDICT_SENTINEL_TIMEOUT}"
+start_stop_daemon_args="--chdir \"${REDICT_SENTINEL_DIR}\""
diff --git a/dev-db/redict/files/redict.confd b/dev-db/redict/files/redict.confd
new file mode 100644
index 000000000000..02814e18f140
--- /dev/null
+++ b/dev-db/redict/files/redict.confd
@@ -0,0 +1,20 @@
+# Redict user.
+REDICT_USER="redict"
+
+# Redict group.
+REDICT_GROUP="redict"
+
+# Redict configuration file.
+REDICT_CONF="/etc/redict/redict.conf"
+
+# Redict dump directory.
+REDICT_DIR="/var/lib/redict"
+
+# Redict options.
+# (Redict expects the first argument to be the configuration file.)
+REDICT_OPTS="${REDICT_CONF}"
+
+# Specify the network service that corresponds to the "bind" setting
+# in your redict.conf. For example, if you bind to 127.0.0.1, this should
+# be set to "net.lo" which provides the loopback interface.
+rc_need="net.lo"
diff --git a/dev-db/redict/files/redict.initd b/dev-db/redict/files/redict.initd
new file mode 100644
index 000000000000..6d1916b3e83d
--- /dev/null
+++ b/dev-db/redict/files/redict.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${REDICT_DIR:=/var/lib/redict}
+: ${REDICT_CONF:=/etc/redict/redict.conf}
+: ${REDICT_OPTS:="${REDICT_CONF}"}
+: ${REDICT_USER:=redict}
+: ${REDICT_GROUP:=redict}
+: ${REDICT_TIMEOUT:=30}
+
+# https://bugs.gentoo.org/631002#c10
+# Force '--daemonize no' to override the config file
+command="/usr/bin/redict-server"
+command_args="${REDICT_OPTS} --daemonize no"
+command_background="true"
+command_user="${REDICT_USER}:${REDICT_GROUP}"
+pidfile="/run/${RC_SVCNAME}.pid"
+retry="${REDICT_TIMEOUT}"
+start_stop_daemon_args="--chdir \"${REDICT_DIR}\""
+
+depend() {
+ use localmount logger
+ after keepalived
+ provide redis
+}
diff --git a/dev-db/redict/files/redict.logrotate b/dev-db/redict/files/redict.logrotate
new file mode 100644
index 000000000000..01608529dac4
--- /dev/null
+++ b/dev-db/redict/files/redict.logrotate
@@ -0,0 +1,6 @@
+/var/log/redict/redict.log /var/log/redict/sentinel.log {
+ compress
+ delaycompress
+ notifempty
+ missingok
+}
diff --git a/dev-db/redict/files/redict.service b/dev-db/redict/files/redict.service
new file mode 100644
index 000000000000..2ec1cf7bff1d
--- /dev/null
+++ b/dev-db/redict/files/redict.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=A persistent key-value database
+After=syslog.target network.target
+
+[Service]
+Type=simple
+PIDFile=/run/redict/redict.pid
+ExecStart=/usr/bin/redict-server /etc/redict/redict.conf
+User=redict
+Group=redict
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/dev-db/redict/files/redict.tmpfiles b/dev-db/redict/files/redict.tmpfiles
new file mode 100644
index 000000000000..45e56d32afe7
--- /dev/null
+++ b/dev-db/redict/files/redict.tmpfiles
@@ -0,0 +1,2 @@
+# redict runtime directory
+d /run/redict 0755 redict root -
diff --git a/dev-db/redict/metadata.xml b/dev-db/redict/metadata.xml
new file mode 100644
index 000000000000..e00573fa4b5a
--- /dev/null
+++ b/dev-db/redict/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>navi@vlhl.dev</email>
+ <name>Anna (navi) Figueiredo Gomes</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="codeberg">redict/redict</remote-id>
+ </upstream>
+ <use>
+ <flag name="tcmalloc">
+ Use tcmalloc from <pkg>dev-util/google-perftools</pkg> for allocations.
+ </flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-db/redict/redict-7.3.0-r1.ebuild b/dev-db/redict/redict-7.3.0-r1.ebuild
new file mode 100644
index 000000000000..b53bf105c3a1
--- /dev/null
+++ b/dev-db/redict/redict-7.3.0-r1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
+# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
+
+inherit edo multiprocessing systemd tmpfiles toolchain-funcs
+
+DESCRIPTION="A persistent caching system, key-value, and data structures database"
+HOMEPAGE="https://redict.io"
+
+SRC_URI="https://codeberg.org/redict/redict/archive/${PV/_/-}.tar.gz -> ${P}.tar.gz"
+
+S=${WORKDIR}/${PN}
+
+LICENSE="BSD Boost-1.0 LGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="+jemalloc ssl systemd tcmalloc test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="?? ( jemalloc tcmalloc )"
+
+RDEPEND="
+ acct-group/redict
+ acct-user/redict
+ dev-libs/hiredict:0=[ssl?]
+ jemalloc? ( >=dev-libs/jemalloc-5.1:=[stats] )
+ ssl? ( dev-libs/openssl:0= )
+ systemd? ( sys-apps/systemd:= )
+ tcmalloc? ( dev-util/google-perftools )
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-lang/tcl:0=
+ ssl? ( dev-tcltk/tls )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/redict-7.3.0-config.patch
+ "${FILESDIR}"/redict-sentinel-7.3.0-config.patch
+ "${FILESDIR}"/redict-7.3.0-system-jemalloc.patch
+ "${FILESDIR}"/redict-7.3.0-system-hiredict.patch
+)
+
+src_prepare() {
+ default
+
+ # Respect user CFLAGS in bundled lua
+ sed -i '/LUA_CFLAGS/s: -O2::g' deps/Makefile || die
+}
+
+_build() {
+ tc-export AR CC RANLIB
+ local myconf=(
+ AR="${AR}"
+ CC="${CC}"
+ RANLIB="${RANLIB}"
+ CFLAGS="${CFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ V=1 # verbose
+ OPTIMIZATION=
+ DEBUG=
+ DEBUG_FLAGS=
+ BUILD_TLS=$(usex ssl)
+ USE_SYSTEMD=$(usex systemd)
+ USE_SYSTEM_HIREDICT=yes
+ )
+
+ if use jemalloc; then
+ myconf+=(
+ MALLOC=jemalloc
+ USE_SYSTEM_JEMALLOC=yes
+ )
+ elif use tcmalloc; then
+ myconf+=( MALLOC=tcmalloc )
+ else
+ myconf+=( MALLOC=libc )
+ fi
+
+ emake -C src "${myconf[@]}" "$@"
+}
+
+src_compile() {
+ _build
+}
+
+src_test() {
+ local runtestargs=(
+ --clients "$(makeopts_jobs)" # see bug #649868
+
+ --skiptest "Active defrag eval scripts" # see bug #851654
+ )
+
+ if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
+ ewarn "oom-score-adj related tests will be skipped." \
+ "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
+
+ runtestargs+=(
+ # unit/oom-score-adj was introduced in version 6.2.0
+ --skipunit unit/oom-score-adj # see bug #756382
+
+ # Following test was added in version 7.0.0 to unit/introspection.
+ # It also tries to adjust OOM score.
+ --skiptest "CONFIG SET rollback on apply error"
+ )
+ fi
+
+ if use ssl; then
+ edo ./utils/gen-test-certs.sh
+ runtestargs+=( --tls )
+ fi
+
+ edo ./runtest "${runtestargs[@]}"
+}
+
+src_install() {
+ insinto /etc/redict
+ doins redict.conf sentinel.conf
+ use prefix || fowners -R redict:redict /etc/redict /etc/redict/{redict,sentinel}.conf
+
+ newconfd "${FILESDIR}/redict.confd" redict
+ newinitd "${FILESDIR}/redict.initd" redict
+
+ systemd_newunit "${FILESDIR}/redict.service" redict.service
+ newtmpfiles "${FILESDIR}/redict.tmpfiles" redict.conf
+
+ newconfd "${FILESDIR}/redict-sentinel.confd" redict-sentinel
+ newinitd "${FILESDIR}/redict-sentinel.initd" redict-sentinel
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}/redict.logrotate" "${PN}"
+
+ _build DESTDIR="${ED}" PREFIX="/usr" install
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o redict -g redict
+ fi
+ keepdir /var/{log,lib}/redict
+}
+
+pkg_postinst() {
+ tmpfiles_process redict.conf
+
+ if has_version dev-db/redis && [[ -z "${REPLACING_VERSIONS}" ]]; then
+ ewarn "Redict uses different configuration files than redis:"
+ ewarn "/etc/redict/{redict,sentinel}.conf"
+ ewarn "Please apply your changes to the new configuration files."
+ fi
+}
diff --git a/dev-db/redis/Manifest b/dev-db/redis/Manifest
index a42beeee7489..3e22e9cdf303 100644
--- a/dev-db/redis/Manifest
+++ b/dev-db/redis/Manifest
@@ -1,6 +1,4 @@
DIST redis-6.2.14.tar.gz 2496149 BLAKE2B 689a0c3b558e07f43f8b1480fbf7a083184bbc0ccde0b184dc8a1d89ed22bec9694b7c8605ff729c9e9d582e8cf47c8f9cd9ee0794ea15e07cdb0b886e93c116 SHA512 140d4b23c20d459b65be8c61996e281222f978b51c52cb048039d741801e4027775ad89ed354dc0dce3d47703a08610adafaf6253fea2f973d5b9d20bc1e59ce
-DIST redis-7.0.14.tar.gz 2994188 BLAKE2B ab4325df8f1af1f7b8c634265a1c7001486c305d4210e72045e6434207e4a447e67d41fa07bd3cd5a57da173e7f9893bf386b18b556156cf559019573a7c4f8b SHA512 31d851dd72cea7d1e48c0df5646c91a2f7b72696067c017936984c49912f6e846ba6469c1ee8e361e362c8683912a25f6eee3993ed1a73cfe70051e84ad79b8b
DIST redis-7.0.15.tar.gz 2994329 BLAKE2B fa1bc85c89cb6a6fb18710a4d29c20db44a80ce445d217f39a234a2aad1d79031e9d1fc45415af7b0eb1c169bd88f45f1fe60cab35de38c6fadc839e2a27676d SHA512 83d58f98085f91754f6d87810e7da0d6cf11ffbe11a0f5d3581d5b2c63d2a752ba6b4eda921a04031aedc56ecebe349cd468ab5ad837493f55d2cac0ab3d015a
-DIST redis-7.2.1.tar.gz 3383319 BLAKE2B 92784af3d1df338a8af7475ab7c598309f33f682ad4bb0b827f170c9f20c1a0879b433c6325c90dd6ba17e06e95bf7d8a9a665d6706065ff4c4c8c141d9c93c1 SHA512 7df4afd51dceea0edbb999027c84820a6aebdd58d71b2e93a4861120fa2b9c0801a0e61c70e695845dbff4e9b96907a4215dcacf72d3593ad014cfa584b5cad0
-DIST redis-7.2.3.tar.gz 3384816 BLAKE2B 6aaf1bae377f3885affd140365eb0c2c30079fe40d770af1ac75a50647ce811e6c4dccd4b886db315e7b78e60661fa0bee280d707c1c4490f32086d0793069c3 SHA512 2ce4bbb056372f1180ceb1863106d07b021d32af2379f1f5dfc61e930c2cd0303433af22c7231adc8890ab5581cb41be3b792f19a0b1645108735c86d9fdf68e
DIST redis-7.2.4.tar.gz 3386861 BLAKE2B 852d55f875378248fa15e189308afbe36bca73c2aa2e5423a765a3d6f6895908ac1455148e032f6d1a1087f57af5869bccf8a932684817109f3fcf09b204e639 SHA512 78590fb6680f229905c240ed8ce7a9a7153e5f8563577dbbb26aebf9bfbdcd7495d687f452bd95e0a86c76d772e1c497b506cf8d29bc97b62c9267f7d1e76f72
+DIST redis-7.2.5.tar.gz 3386454 BLAKE2B 5a0e5b0162f684ecd6db4a782a18a3c7bf272ec1ce38e2d2a4b5bc3966d968170f5b968e7f9946fd50d2b942c52298430eeccb386bbb443201eda6ac180c7f2b SHA512 e064a0f380e3a00ab8eb2f10ed7317fd6aa27d64cf00792fab80465036f92d17b166050e71b8a779fdf024528ac736cb54722316811f99951c4e386f4ab2245d
diff --git a/dev-db/redis/redis-7.0.14-r1.ebuild b/dev-db/redis/redis-7.0.14-r1.ebuild
deleted file mode 100644
index ea4ae7fc184e..000000000000
--- a/dev-db/redis/redis-7.0.14-r1.ebuild
+++ /dev/null
@@ -1,187 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
-# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
-
-inherit autotools edo flag-o-matic multiprocessing systemd tmpfiles toolchain-funcs
-
-DESCRIPTION="A persistent caching system, key-value, and data structures database"
-HOMEPAGE="https://redis.io"
-SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
-IUSE="+jemalloc selinux ssl systemd tcmalloc test"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
- jemalloc? ( >=dev-libs/jemalloc-5.1:= )
- ssl? ( dev-libs/openssl:0= )
- systemd? ( sys-apps/systemd:= )
- tcmalloc? ( dev-util/google-perftools )
-"
-
-RDEPEND="
- ${COMMON_DEPEND}
- acct-group/redis
- acct-user/redis
- selinux? ( sec-policy/selinux-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}-6.2.1-config.patch
- "${FILESDIR}"/${PN}-5.0-shared.patch
- "${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
- "${FILESDIR}"/${PN}-sentinel-5.0-config.patch
- "${FILESDIR}"/${PN}-7.0.4-no-which.patch
-)
-
-src_prepare() {
- default
-
- # 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-7.0 configure.ac || die
-
- sed -i \
- -e "/^AC_INIT/s|, __PV__, |, $PV, |" \
- -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
- configure.ac || die "Sed failed for configure.ac"
- eautoreconf
-}
-
-src_configure() {
- econf
-
- # 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
-
- export USE_SYSTEMD=$(usex systemd)
-
- tc-export AR CC RANLIB
- emake V=1 ${myconf} AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
-}
-
-src_test() {
- local runtestargs=(
- --clients "$(makeopts_jobs)" # see bug #649868
-
- --skiptest "Active defrag eval scripts" # see bug #851654
- )
-
- if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
- ewarn "oom-score-adj related tests will be skipped." \
- "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
-
- runtestargs+=(
- # unit/oom-score-adj was introduced in version 6.2.0
- --skipunit unit/oom-score-adj # see bug #756382
-
- # Following test was added in version 7.0.0 to unit/introspection.
- # It also tries to adjust OOM score.
- --skiptest "CONFIG SET rollback on apply error"
- )
- fi
-
- if use ssl; then
- edo ./utils/gen-test-certs.sh
- runtestargs+=( --tls )
- fi
-
- edo ./runtest "${runtestargs[@]}"
-}
-
-src_install() {
- insinto /etc/redis
- doins redis.conf sentinel.conf
- use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
- fperms 0750 /etc/redis
- fperms 0644 /etc/redis/{redis,sentinel}.conf
-
- newconfd "${FILESDIR}/redis.confd-r2" redis
- newinitd "${FILESDIR}/redis.initd-6" redis
-
- systemd_newunit "${FILESDIR}/redis.service-4" redis.service
- newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
-
- newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
- newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- dodoc 00-RELEASENOTES BUGS CONTRIBUTING.md 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
-}
-
-pkg_postinst() {
- tmpfiles_process redis.conf
-
- ewarn "The default redis configuration file location changed to:"
- ewarn " /etc/redis/{redis,sentinel}.conf"
- ewarn "Please apply your changes to the new configuration files."
-}
diff --git a/dev-db/redis/redis-7.2.3-r1.ebuild b/dev-db/redis/redis-7.2.3-r1.ebuild
deleted file mode 100644
index dcdfd9625697..000000000000
--- a/dev-db/redis/redis-7.2.3-r1.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
-# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
-
-inherit autotools edo multiprocessing systemd tmpfiles toolchain-funcs
-
-DESCRIPTION="A persistent caching system, key-value, and data structures database"
-HOMEPAGE="
- https://redis.io
- https://github.com/redis/redis
-"
-SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
-
-LICENSE="BSD Boost-1.0"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
-IUSE="+jemalloc selinux ssl systemd tcmalloc test"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
- jemalloc? ( >=dev-libs/jemalloc-5.1:= )
- ssl? ( dev-libs/openssl:0= )
- systemd? ( sys-apps/systemd:= )
- tcmalloc? ( dev-util/google-perftools )
-"
-
-RDEPEND="
- ${COMMON_DEPEND}
- acct-group/redis
- acct-user/redis
- selinux? ( sec-policy/selinux-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}-6.2.1-config.patch
- "${FILESDIR}"/${PN}-7.2.0-system-jemalloc.patch
- "${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
- "${FILESDIR}"/${PN}-sentinel-7.2.0-config.patch
- "${FILESDIR}"/${PN}-7.0.4-no-which.patch
-)
-
-src_prepare() {
- default
-
- # Respect user CFLAGS in bundled lua
- sed -i '/LUA_CFLAGS/s: -O2::g' deps/Makefile || die
-
- # now we will rewrite present Makefiles
- local makefiles="" MKF
- local mysedconf=(
- -e 's:$(CC):@CC@:g'
- -e 's:$(CFLAGS):@AM_CFLAGS@:g'
- -e 's: $(DEBUG)::g'
-
- -e 's:-Werror ::g'
- -e 's:-Werror=deprecated-declarations ::g'
- )
- for MKF in $(find -name 'Makefile' | cut -b 3-); do
- mv "${MKF}" "${MKF}.in"
- sed -i "${mysedconf[@]}" "${MKF}.in" || die "Sed failed for ${MKF}"
- makefiles+=" ${MKF}"
- done
- # autodetection of compiler and settings; generates the modified Makefiles
- cp "${FILESDIR}"/configure.ac-7.0 configure.ac || die
-
- sed -i \
- -e "/^AC_INIT/s|, __PV__, |, $PV, |" \
- -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
- configure.ac || die "Sed failed for configure.ac"
- eautoreconf
-}
-
-src_configure() {
- econf
-
- # 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() {
- tc-export AR CC RANLIB
-
- local myconf=(
- AR="${AR}"
- CC="${CC}"
- RANLIB="${RANLIB}"
-
- V=1 # verbose
-
- # OPTIMIZATION defaults to -O3. Let's respect user CFLAGS by setting it
- # to empty value.
- OPTIMIZATION=''
- # Disable debug flags in bundled hiredis
- DEBUG_FLAGS=''
-
- BUILD_TLS=$(usex ssl)
- USE_SYSTEMD=$(usex systemd)
- )
-
- if use jemalloc; then
- myconf+=( MALLOC=jemalloc )
- elif use tcmalloc; then
- myconf+=( MALLOC=tcmalloc )
- else
- myconf+=( MALLOC=libc )
- fi
-
- emake "${myconf[@]}"
-}
-
-src_test() {
- local runtestargs=(
- --clients "$(makeopts_jobs)" # see bug #649868
-
- --skiptest "Active defrag eval scripts" # see bug #851654
- )
-
- if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
- ewarn "oom-score-adj related tests will be skipped." \
- "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
-
- runtestargs+=(
- # unit/oom-score-adj was introduced in version 6.2.0
- --skipunit unit/oom-score-adj # see bug #756382
-
- # Following test was added in version 7.0.0 to unit/introspection.
- # It also tries to adjust OOM score.
- --skiptest "CONFIG SET rollback on apply error"
- )
- fi
-
- if use ssl; then
- edo ./utils/gen-test-certs.sh
- runtestargs+=( --tls )
- fi
-
- edo ./runtest "${runtestargs[@]}"
-}
-
-src_install() {
- insinto /etc/redis
- doins redis.conf sentinel.conf
- use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
- fperms 0750 /etc/redis
- fperms 0644 /etc/redis/{redis,sentinel}.conf
-
- newconfd "${FILESDIR}/redis.confd-r2" redis
- newinitd "${FILESDIR}/redis.initd-6" redis
-
- systemd_newunit "${FILESDIR}/redis.service-4" redis.service
- newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
-
- newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
- newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- dodoc 00-RELEASENOTES BUGS CONTRIBUTING.md 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
-}
-
-pkg_postinst() {
- tmpfiles_process redis.conf
-
- ewarn "The default redis configuration file location changed to:"
- ewarn " /etc/redis/{redis,sentinel}.conf"
- ewarn "Please apply your changes to the new configuration files."
-}
diff --git a/dev-db/redis/redis-7.2.4-r1.ebuild b/dev-db/redis/redis-7.2.4-r1.ebuild
index dcdfd9625697..8ccfee0d3429 100644
--- a/dev-db/redis/redis-7.2.4-r1.ebuild
+++ b/dev-db/redis/redis-7.2.4-r1.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
LICENSE="BSD Boost-1.0"
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="+jemalloc selinux ssl systemd tcmalloc test"
RESTRICT="!test? ( test )"
diff --git a/dev-db/redis/redis-7.2.1-r1.ebuild b/dev-db/redis/redis-7.2.5.ebuild
index 8ccfee0d3429..b82b9e409b2f 100644
--- a/dev-db/redis/redis-7.2.1-r1.ebuild
+++ b/dev-db/redis/redis-7.2.5.ebuild
@@ -17,11 +17,11 @@ SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
LICENSE="BSD Boost-1.0"
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="+jemalloc selinux ssl systemd tcmalloc test"
RESTRICT="!test? ( test )"
-COMMON_DEPEND="
+DEPEND="
jemalloc? ( >=dev-libs/jemalloc-5.1:= )
ssl? ( dev-libs/openssl:0= )
systemd? ( sys-apps/systemd:= )
@@ -29,24 +29,21 @@ COMMON_DEPEND="
"
RDEPEND="
- ${COMMON_DEPEND}
+ ${DEPEND}
acct-group/redis
acct-user/redis
selinux? ( sec-policy/selinux-redis )
"
BDEPEND="
- ${COMMON_DEPEND}
+ acct-group/redis
+ acct-user/redis
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 )"
diff --git a/dev-db/rqlite/Manifest b/dev-db/rqlite/Manifest
index eb9b69f8a294..4f54ccf8ec50 100644
--- a/dev-db/rqlite/Manifest
+++ b/dev-db/rqlite/Manifest
@@ -1,2 +1,3 @@
-DIST rqlite-7.17.0-vendor.tar.gz 7267193 BLAKE2B c9957c3d00960842b56e18829f87b03a8f44176652a4e6b578fafa7c58816014acee2fe96876c8112279085ed7331fb5c32e783b59e73f9db694c091757ee437 SHA512 9631f36179491abf7e81edea0ff73ea6322afd32836631d3d46dff996072eef92c3d3de929cec94b622d46cd8e0340089026cdfb3c228b04640cc917f15eee86
DIST rqlite-8.16.8-vendor.tar.gz 7715303 BLAKE2B 50660bdfb8ce9fa8238ae028916d822e9f5d8e027ee4865f543f97f8a49b92a13e549deb07a5b79e7a52c2c9e994cf6891562a15873b09398c74773f82ffc3d2 SHA512 987c9dbe91766f4847233949cd4251aa3d0a56d23b850bbb552d8f9bb255de3908c4fa440c45e730e861e6f4f60e559a41353659ab9d953b978c45ff986ee9b5
+DIST rqlite-8.23.0-deps.tar.xz 3934116 BLAKE2B 3f56e99ab7cc6e9ae6584bfc3bb10ff28a866961a90bb77ee7acc9442d16d37eaa705b5cc85abbf7de3daea77df24ec9b4b65fbff43a11033bc8e0a11bcb089e SHA512 cace762d4f7e3a6d973dcba7ccf40ddc45d05a0cb5669d67a4c9fd4917e826828664779ab2bb293757fb46f2d5fc956d7ecae46b59f4914afe8fadc42d9d95b1
+DIST rqlite-8.23.0.tar.gz 613529 BLAKE2B 0c6c790f1a211a10f14a2f03a231567c186504c05618509733f94a7cacb6b4b23abdbeb119067a4a884ddcbc5862d301ede0a83b3059e9ff55b20876c27f85dc SHA512 6247cf72ac295a5892fe992ec90c7733de311142996d4eead2c69752d71ad55326a5f6c4f26f4c5fee229bd0b75a3379460bf69abe0c473517a8fb3ef322889f
diff --git a/dev-db/rqlite/rqlite-7.17.0.ebuild b/dev-db/rqlite/rqlite-8.23.0.ebuild
index 7e1f211104cf..56c35cd04c40 100644
--- a/dev-db/rqlite/rqlite-7.17.0.ebuild
+++ b/dev-db/rqlite/rqlite-8.23.0.ebuild
@@ -1,20 +1,19 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module
-EGIT_COMMIT=6d22e2be6bc7b40571bd8ecf8366986da2f7198c
+EGIT_COMMIT=47dfcd9d56f544c58795b6ca98a1dfd378a0505f
DESCRIPTION="Replicated SQLite using the Raft consensus protocol"
HOMEPAGE="https://github.com/rqlite/rqlite https://www.philipotoole.com/tag/rqlite/"
-SRC_URI="https://github.com/zmedico/rqlite/archive/v${PV}-vendor.tar.gz -> ${P}-vendor.tar.gz"
+SRC_URI="https://github.com/rqlite/rqlite/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
-LICENSE="MIT Apache-2.0 BSD CC0-1.0 MPL-2.0"
+LICENSE="MIT"
+LICENSE+=" Apache-2.0 BSD CC0-1.0 MPL-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-S=${WORKDIR}/${P}-vendor
src_compile() {
GOBIN="${S}/bin" \
diff --git a/dev-db/slony1/slony1-2.2.10-r1.ebuild b/dev-db/slony1/slony1-2.2.10-r1.ebuild
index 81ec3602d9bd..1115cf1c6835 100644
--- a/dev-db/slony1/slony1-2.2.10-r1.ebuild
+++ b/dev-db/slony1/slony1-2.2.10-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,7 +6,7 @@ EAPI=7
POSTGRES_COMPAT=( 9.6 {10..14} )
POSTGRES_USEDEP="server,threads(+)"
-inherit postgres-multi
+inherit flag-o-matic postgres-multi
IUSE="doc perl"
@@ -27,7 +27,7 @@ DEPEND="${POSTGRES_DEP}
"
RDEPEND=${DEPEND}
-REQUIRE_USE="${POSTGRES_REQ_USE}"
+REQUIRED_USE="${POSTGRES_REQ_USE}"
# Testing requires a more complex setup than we benefit from being able
# to perform.
@@ -47,6 +47,11 @@ src_unpack() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855251
+ # https://github.com/ssinger/slony1-engine/issues/21
+ filter-lto
+
local slot_bin_dir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/bin"
use perl && myconf=" --with-perltools=\"${slot_bin_dir}\""
postgres-multi_foreach econf ${myconf} \
diff --git a/dev-db/spatialite/spatialite-5.0.1-r2.ebuild b/dev-db/spatialite/spatialite-5.0.1-r2.ebuild
index 3b51ff672d08..fceb9a7de979 100644
--- a/dev-db/spatialite/spatialite-5.0.1-r2.ebuild
+++ b/dev-db/spatialite/spatialite-5.0.1-r2.ebuild
@@ -1,8 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+inherit libtool
+
MY_PN="lib${PN}"
MY_P="${MY_PN}-${PV}"
@@ -31,6 +33,11 @@ DEPEND="${RDEPEND}"
REQUIRED_USE="test? ( iconv )"
+src_prepare() {
+ default
+ elibtoolize
+}
+
src_configure() {
# 1) gcp disabled for now to preserve MPL licence
econf \
diff --git a/dev-db/spatialite/spatialite-5.1.0-r1.ebuild b/dev-db/spatialite/spatialite-5.1.0-r1.ebuild
index a509af0c9b1a..ccfc1ed4aa66 100644
--- a/dev-db/spatialite/spatialite-5.1.0-r1.ebuild
+++ b/dev-db/spatialite/spatialite-5.1.0-r1.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+inherit libtool
+
MY_PN="lib${PN}"
MY_P="${MY_PN}-${PV}"
@@ -31,6 +33,11 @@ DEPEND="${RDEPEND}"
REQUIRED_USE="test? ( iconv )"
+src_prepare() {
+ default
+ elibtoolize
+}
+
src_configure() {
# 1) gcp disabled for now to preserve MPL licence
econf \
diff --git a/dev-db/sqlcl-bin/Manifest b/dev-db/sqlcl-bin/Manifest
index 26332a8fd54c..8ea1a36cff4b 100644
--- a/dev-db/sqlcl-bin/Manifest
+++ b/dev-db/sqlcl-bin/Manifest
@@ -1 +1 @@
-DIST sqlcl-23.3.0.270.1251.zip 41859690 BLAKE2B 25ca11e1dc3d66fcd3d70a760090e21491065168298b7bb463c8bf80107e36365cf517bc10d061e45e19918ccf5284837237e5b2fa291f3dc6882a42c8b70c46 SHA512 293cf8c8c5419bafdddfa0cafd258b0506990a7fec55291e5ceb5e290de55d8e73f3b56fdd8cbb6ed9a6393a67cae8eb889ce7e7361f2bfb65bb00be4b283939
+DIST sqlcl-23.4.0.023.2321.zip 70205047 BLAKE2B 8b6a3680aeab30c5611f5c7718c488ba636e265e8d618d4698b26fc66d80b3bf167bee8801c1e909f71a9dc0875802bbda90146847c51f011310188c704e5e80 SHA512 2d5310f29c13f801392f3278dcb6241fc5fdc8da219077c5a63fb7ba461b904e3ecb2e813111a6159d1f6ca81aac1b3bfdc17434fc320423a10cc7303a345d77
diff --git a/dev-db/sqlcl-bin/sqlcl-bin-23.3.0.270.1251.ebuild b/dev-db/sqlcl-bin/sqlcl-bin-23.4.0.023.2321.ebuild
index cfea6a71f095..cfea6a71f095 100644
--- a/dev-db/sqlcl-bin/sqlcl-bin-23.3.0.270.1251.ebuild
+++ b/dev-db/sqlcl-bin/sqlcl-bin-23.4.0.023.2321.ebuild
diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest
index 155c537a1dcc..35aa98d4002b 100644
--- a/dev-db/sqlite/Manifest
+++ b/dev-db/sqlite/Manifest
@@ -1,4 +1,8 @@
DIST sqlite-doc-3440200.zip 10704552 BLAKE2B 3d50ac157bd2793c9167328994334a417835e5381e432fd8028e064869b8eab2ab1d213815d2232850d695bc71626e9d89518b201888a43673274cba2a1b345d SHA512 a7c92af0d3a61a2450511cfb507785c7ab64c21c6dbcf5a8bdef509d25a6b3ca35ce93a25ca827497c27abca77d11b794fbbc783e4d8e131981bf1d4b29f83e8
DIST sqlite-doc-3450100.zip 10746925 BLAKE2B 6e45a33b41b8fd1e0b5ef3a44febf5ed53a19883441f0eaef6d811190a26cd072a49d254a35d5b90f92255082f91d3f7956a6e574b638b34f156f7297588b57e SHA512 dc036737973a29ea2b6cb4fe7ab4468f449e21eed34a773600570ed2e57ed4d195286c75afec91ab76ac55e25a0cc82e73c3b3119a9c8e7b5918bae8a1a3c8c0
+DIST sqlite-doc-3450200.zip 10755940 BLAKE2B 5d70100ae972024a44a0dbe3214e0465b819710dc23e7b68e6995d2a8f66286ef4378b7bbb96bfaab2551954aa09f0aa85ebde60b5a672d5a3e2d6c739393a81 SHA512 5e80255b0030dd6dfc0f93a1d6863a35dc319c6567300ac5f4e16d15c322f0b3fc2681cae7d27de0d23bf6731069d0060b9edddf3d7e0b105c538beab53979dc
+DIST sqlite-doc-3450300.zip 10759906 BLAKE2B 3ad2307d4c5de10f20d0cb58bb673b291a63bf0328c3f1e40e37a4823fadda82e0f1fbfe7c9c76925ab1d1448e76cc4cbce4d4ad15c732f134f1b4b4caee9543 SHA512 8f865302137684c31c4f54d6cbe4ee82126394887930ec50501fb811023bc612878d2dc1c2317e960fe818a277b008a9835475e7a47822fc5ece5fe37aa61e31
DIST sqlite-src-3440200.zip 14070781 BLAKE2B 9d29964ee15da6a104f4857cb5f2621df5b51d043012789793526f34c56097d7b1b1dcaa7672637f2d16bcab4ff775ba2c8415213b79f80636c0ff2aeff883ba SHA512 5c1fed9c399dad75735a1b4451f8f6be474b07652d74500649e60474691923f56156ef6d5bce51b58367c1676371f1184e32584fe9ac4d5dd0c4776fa6f1d9a3
DIST sqlite-src-3450100.zip 14152147 BLAKE2B 815fb3e92b080a7c0014b68451f571c174c656ba26c75f76bfca8b2d4c5373e82f4314ad3d9657ee711194019b4534c51bcd3fe71abfec588df2c5e4cdf2f153 SHA512 475de1c473d2d828038a2afb98d74d52b5e0fd06a5bfc8516e44084ed38b1438310172905fd4fe0a64a736d699095ed286dfdee059ceeb50dfb9bb49131e2005
+DIST sqlite-src-3450200.zip 14156848 BLAKE2B a830dce41fd6c9ef936115460ed4aa9be277688389c50545fcb5e8ee65317d3adaf51873ec789556cf293418f7059868c7ffac229dc30756ba5137431839ec69 SHA512 b6e875ab4ed24cd564330e50a87f35aae43c382f88ca86c2eedf5308c7fab683c1880c0053408e864b0cec1feb7ae81aca8a91979a3ee3975f26037a7983011a
+DIST sqlite-src-3450300.zip 14160555 BLAKE2B 1c16a9b26587ed6b50dcd8373d4328266da0a47da7ffff15d505eddc8df74850a5bca3330bd9ee2b52036ccff9fb8aeebea02ef5713cc933753b4d8a4c15b2e8 SHA512 8f44ffdefd2cf09e7edb7cd78d5416fe7b42e01fe4b4e4803ce9d34c7b1b2971ec170a908a94b4bb11737dd3888675c8ff101ff2b41c53b8db05b5954e947cc9
diff --git a/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch b/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch
new file mode 100644
index 000000000000..153dd82c1e19
--- /dev/null
+++ b/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch
@@ -0,0 +1,112 @@
+https://sqlite.org/forum/forumpost/7dfd585ce1
+https://sqlite.org/src/info/d0fbe779bc2460e1
+
+Index: test/func4.test
+==================================================================
+--- a/test/func4.test
++++ b/test/func4.test
+@@ -1,6 +1,6 @@
+-# 2013 March 10
++# 2023-03-10
+ #
+ # The author disclaims copyright to this source code. In place of
+ # a legal notice, here is a blessing:
+ #
+ # May you do good and not evil.
+@@ -7,11 +7,14 @@
+ # May you find forgiveness for yourself and forgive others.
+ # May you share freely, never taking more than you give.
+ #
+ #***********************************************************************
+ # This file implements regression tests for SQLite library. The focus of
+-# this file is testing the tointeger() and toreal() functions.
++# this file is testing the tointeger() and toreal() functions that are
++# part of the "totype.c" extension. This file does not test the core
++# SQLite library. Failures of tests in this file are related to the
++# ext/misc/totype.c extension.
+ #
+ # Several of the toreal() tests are disabled on platforms where floating
+ # point precision is not high enough to represent their constant integer
+ # expression arguments as double precision floating point values.
+ #
+@@ -21,10 +24,24 @@
+ set tcl_precision 0
+ load_static_extension db totype
+
+ set highPrecision(1) [expr \
+ {[db eval {SELECT tointeger(9223372036854775807 + 1);}] eq {{}}}]
++set highPrecision(2) [expr \
++ {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}]
++
++# highPrecision(3) is only known to be false on i586 with gcc-13 and -O2.
++# It is true on the exact same platform with -O0. Both results seem
++# reasonable, so we'll just very the expectation accordingly.
++#
++set highPrecision(3) [expr \
++ {[db eval {SELECT toreal(9007199254740992 + 1);}] eq {{}}}]
++
++if {!$highPrecision(1) || !$highPrecision(2) || !$highPrecision(3)} {
++ puts "NOTICE: use_long_double: [use_long_double] \
++ highPrecision: $highPrecision(1) $highPrecision(2) $highPrecision(3)"
++}
+
+ do_execsql_test func4-1.1 {
+ SELECT tointeger(NULL);
+ } {{}}
+ do_execsql_test func4-1.2 {
+@@ -193,12 +210,10 @@
+ do_execsql_test func4-1.55 {
+ SELECT tointeger(18446744073709551616 + 1);
+ } {{}}
+
+ ifcapable floatingpoint {
+- set highPrecision(2) [expr \
+- {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}]
+
+ do_execsql_test func4-2.1 {
+ SELECT toreal(NULL);
+ } {{}}
+ do_execsql_test func4-2.2 {
+@@ -339,14 +354,18 @@
+ SELECT toreal(9007199254740992 - 1);
+ } {9007199254740991.0}
+ do_execsql_test func4-2.45 {
+ SELECT toreal(9007199254740992);
+ } {9007199254740992.0}
+- if {$highPrecision(2)} {
++ if {$highPrecision(3)} {
++ do_execsql_test func4-2.46 {
++ SELECT toreal(9007199254740992 + 1);
++ } {{}}
++ } else {
+ do_execsql_test func4-2.46 {
+ SELECT toreal(9007199254740992 + 1);
+- } {{}}
++ } {9007199254740992.0}
+ }
+ do_execsql_test func4-2.47 {
+ SELECT toreal(9007199254740992 + 2);
+ } {9007199254740994.0}
+ do_execsql_test func4-2.48 {
+@@ -624,14 +643,18 @@
+ SELECT tointeger(toreal(9007199254740992 - 1));
+ } {9007199254740991}
+ do_execsql_test func4-5.22 {
+ SELECT tointeger(toreal(9007199254740992));
+ } {9007199254740992}
+- if {$highPrecision(2)} {
++ if {$highPrecision(3)} {
+ do_execsql_test func4-5.23 {
+ SELECT tointeger(toreal(9007199254740992 + 1));
+ } {{}}
++ } else {
++ do_execsql_test func4-5.23 {
++ SELECT tointeger(toreal(9007199254740992 + 1));
++ } {9007199254740992}
+ }
+ do_execsql_test func4-5.24 {
+ SELECT tointeger(toreal(9007199254740992 + 2));
+ } {9007199254740994}
+ if {$highPrecision(1)} {
+
+
diff --git a/dev-db/sqlite/sqlite-3.45.1-r1.ebuild b/dev-db/sqlite/sqlite-3.45.1-r1.ebuild
index 038ad093c2be..0e04537b49cf 100644
--- a/dev-db/sqlite/sqlite-3.45.1-r1.ebuild
+++ b/dev-db/sqlite/sqlite-3.45.1-r1.ebuild
@@ -24,7 +24,7 @@ else
"
S="${WORKDIR}/${PN}-src-${SRC_PV}"
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
LICENSE="public-domain"
diff --git a/dev-db/sqlite/sqlite-3.45.2.ebuild b/dev-db/sqlite/sqlite-3.45.2.ebuild
new file mode 100644
index 000000000000..46c442c73331
--- /dev/null
+++ b/dev-db/sqlite/sqlite-3.45.2.ebuild
@@ -0,0 +1,427 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+
+DESCRIPTION="SQL database engine"
+HOMEPAGE="https://sqlite.org/"
+
+# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
+# for hints regarding test failures, backports, etc.
+if [[ ${PV} == 9999 ]]; then
+ S="${WORKDIR}"/${PN}
+ PROPERTIES="live"
+else
+ printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
+ DOC_PV="${SRC_PV}"
+ #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
+
+ SRC_URI="
+ https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip
+ doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
+ "
+ S="${WORKDIR}/${PN}-src-${SRC_PV}"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="public-domain"
+SLOT="3"
+IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sys-libs/zlib:=[${MULTILIB_USEDEP}]
+ icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
+ readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] )
+ tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] )
+ tools? ( dev-lang/tcl:= )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )
+"
+BDEPEND=">=dev-lang/tcl-8.6:0"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+=" dev-vcs/fossil"
+else
+ BDEPEND+=" app-arch/unzip"
+fi
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
+ "${FILESDIR}"/${PN}-3.45.2-tests-x86.patch
+)
+
+_fossil_fetch() {
+ local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
+ local repo_id="${1}"
+ local repo_uri="${2}"
+
+ local -x FOSSIL_HOME="${HOME}"
+
+ mkdir -p "${T}/fossil/${repo_id}" || die
+ pushd "${T}/fossil/${repo_id}" > /dev/null || die
+
+ if [[ -n "${EVCS_OFFLINE}" ]]; then
+ if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+ die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
+ fi
+ else
+ if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+ einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
+ fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
+ echo
+ else
+ cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
+ einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
+ fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
+ echo
+ fi
+
+ (
+ addwrite "${distdir}"
+ mkdir -p "${distdir}/fossil-src/${repo_id}" || die
+ cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
+ )
+ fi
+
+ popd > /dev/null || die
+}
+
+_fossil_checkout() {
+ local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
+ local repo_id="${1}"
+ local branch_or_commit="${2}"
+ local target_directory="${3}"
+
+ local -x FOSSIL_HOME="${HOME}"
+
+ if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+ die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
+ fi
+
+ if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
+ mkdir -p "${T}/fossil/${repo_id}" || die
+ cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
+ fi
+
+ mkdir "${target_directory}" || die
+ pushd "${target_directory}" > /dev/null || die
+
+ einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
+ fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
+ echo
+
+ popd > /dev/null || die
+}
+
+fossil_fetch() {
+ local repo_id="${1}"
+ local repo_uri="${2}"
+ local target_directory="${3}"
+
+ local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
+
+ _fossil_fetch "${repo_id}" "${repo_uri}"
+ _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]]; then
+ fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
+ if use doc; then
+ fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
+ fi
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ default
+
+ eautoreconf
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
+ local options=()
+
+ options+=(
+ --enable-load-extension
+ --enable-threadsafe
+ )
+
+ # Support detection of misuse of SQLite API.
+ # https://sqlite.org/compile.html#enable_api_armor
+ append-cppflags -DSQLITE_ENABLE_API_ARMOR
+
+ # Support bytecode and tables_used virtual tables.
+ # https://sqlite.org/compile.html#enable_bytecode_vtab
+ # https://sqlite.org/bytecodevtab.html
+ append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
+
+ # Support column metadata functions.
+ # https://sqlite.org/compile.html#enable_column_metadata
+ # https://sqlite.org/c3ref/column_database_name.html
+ append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
+
+ # Support sqlite_dbpage virtual table.
+ # https://sqlite.org/compile.html#enable_dbpage_vtab
+ # https://sqlite.org/dbpage.html
+ append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
+
+ # Support dbstat virtual table.
+ # https://sqlite.org/compile.html#enable_dbstat_vtab
+ # https://sqlite.org/dbstat.html
+ append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
+
+ # Support sqlite3_serialize() and sqlite3_deserialize() functions.
+ # https://sqlite.org/compile.html#enable_deserialize
+ # https://sqlite.org/c3ref/serialize.html
+ # https://sqlite.org/c3ref/deserialize.html
+ append-cppflags -DSQLITE_ENABLE_DESERIALIZE
+
+ # Support comments in output of EXPLAIN.
+ # https://sqlite.org/compile.html#enable_explain_comments
+ append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
+
+ # Support Full-Text Search versions 3, 4 and 5.
+ # https://sqlite.org/compile.html#enable_fts3
+ # https://sqlite.org/compile.html#enable_fts3_parenthesis
+ # https://sqlite.org/compile.html#enable_fts4
+ # https://sqlite.org/compile.html#enable_fts5
+ # https://sqlite.org/fts3.html
+ # https://sqlite.org/fts5.html
+ append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
+ options+=( --enable-fts5 )
+
+ # Support hidden columns.
+ append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
+
+ # Support memsys5 memory allocator.
+ # https://sqlite.org/compile.html#enable_memsys5
+ # https://sqlite.org/malloc.html#memsys5
+ append-cppflags -DSQLITE_ENABLE_MEMSYS5
+
+ # Support sqlite3_normalized_sql() function.
+ # https://sqlite.org/c3ref/expanded_sql.html
+ append-cppflags -DSQLITE_ENABLE_NORMALIZE
+
+ # Support sqlite_offset() function.
+ # https://sqlite.org/compile.html#enable_offset_sql_func
+ # https://sqlite.org/lang_corefunc.html#sqlite_offset
+ append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
+
+ # Support pre-update hook functions.
+ # https://sqlite.org/compile.html#enable_preupdate_hook
+ # https://sqlite.org/c3ref/preupdate_count.html
+ append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
+
+ # Support Resumable Bulk Update extension.
+ # https://sqlite.org/compile.html#enable_rbu
+ # https://sqlite.org/rbu.html
+ append-cppflags -DSQLITE_ENABLE_RBU
+
+ # Support R*Trees.
+ # https://sqlite.org/compile.html#enable_rtree
+ # https://sqlite.org/compile.html#enable_geopoly
+ # https://sqlite.org/rtree.html
+ # https://sqlite.org/geopoly.html
+ append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
+
+ # Support Session extension.
+ # https://sqlite.org/compile.html#enable_session
+ # https://sqlite.org/sessionintro.html
+ append-cppflags -DSQLITE_ENABLE_SESSION
+
+ # Support scan status functions.
+ # https://sqlite.org/compile.html#enable_stmt_scanstatus
+ # https://sqlite.org/c3ref/stmt_scanstatus.html
+ # https://sqlite.org/c3ref/stmt_scanstatus_reset.html
+ append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
+
+ # Support sqlite_stmt virtual table.
+ # https://sqlite.org/compile.html#enable_stmtvtab
+ # https://sqlite.org/stmt.html
+ append-cppflags -DSQLITE_ENABLE_STMTVTAB
+
+ # Support unknown() function.
+ # https://sqlite.org/compile.html#enable_unknown_sql_function
+ append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
+
+ # Support unlock notification.
+ # https://sqlite.org/compile.html#enable_unlock_notify
+ # https://sqlite.org/c3ref/unlock_notify.html
+ # https://sqlite.org/unlock_notify.html
+ append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
+
+ # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
+ # https://sqlite.org/compile.html#enable_update_delete_limit
+ # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
+ # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
+ append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
+
+ # Support soundex() function.
+ # https://sqlite.org/compile.html#soundex
+ # https://sqlite.org/lang_corefunc.html#soundex
+ append-cppflags -DSQLITE_SOUNDEX
+
+ # Support URI filenames.
+ # https://sqlite.org/compile.html#use_uri
+ # https://sqlite.org/uri.html
+ append-cppflags -DSQLITE_USE_URI
+
+ options+=( $(use_enable debug) )
+
+ if use icu; then
+ # Support ICU extension.
+ # https://sqlite.org/compile.html#enable_icu
+ append-cppflags -DSQLITE_ENABLE_ICU
+ sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
+ fi
+
+ options+=(
+ --disable-editline
+ $(use_enable readline)
+ )
+
+ if use readline; then
+ options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" )
+ fi
+
+ if use secure-delete; then
+ # Enable secure_delete pragma by default.
+ # https://sqlite.org/compile.html#secure_delete
+ # https://sqlite.org/pragma.html#pragma_secure_delete
+ append-cppflags -DSQLITE_SECURE_DELETE
+ fi
+
+ options+=( $(use_enable static-libs static) )
+
+ # tcl, test, tools USE flags.
+ if use tcl || use test || { use tools && multilib_is_native_abi; }; then
+ options+=(
+ --enable-tcl
+ --with-tcl="${ESYSROOT}/usr/$(get_libdir)"
+ )
+ else
+ options+=( --disable-tcl )
+ fi
+
+ if [[ "${ABI}" == "x86" ]]; then
+ if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
+ append-cflags -mfpmath=sse
+ else
+ append-cflags -ffloat-store
+ fi
+ fi
+
+ econf "${options[@]}"
+}
+
+multilib_src_compile() {
+ emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
+
+ if use tools && multilib_is_native_abi; then
+ emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
+ fi
+
+ if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then
+ emake tclsqlite3.c
+
+ local build_directory="$(pwd)"
+ build_directory="${build_directory##*/}"
+
+ mkdir "${WORKDIR}/${PN}-doc-build" || die
+ pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
+
+ emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
+ rmdir doc/matrix{/*,} || die
+
+ popd > /dev/null || die
+ fi
+}
+
+multilib_src_test() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ ewarn "Skipping tests due to root permissions"
+ return
+ fi
+
+ local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
+
+ # e_uri.test tries to open files in /.
+ # bug #839798
+ local SANDBOX_PREDICT=${SANDBOX_PREDICT}
+ addpredict "/test.db"
+ addpredict "/ÿ.db"
+
+ emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test')
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
+
+ if use tools && multilib_is_native_abi; then
+ install_tool() {
+ if [[ -f ".libs/${1}" ]]; then
+ newbin ".libs/${1}" "${2}"
+ else
+ newbin "${1}" "${2}"
+ fi
+ }
+
+ install_tool changeset sqlite3-changeset
+ install_tool dbdump sqlite3-db-dump
+ install_tool dbhash sqlite3-db-hash
+ install_tool dbtotxt sqlite3-db-to-txt
+ install_tool index_usage sqlite3-index-usage
+ install_tool rbu sqlite3-rbu
+ install_tool scrub sqlite3-scrub
+ install_tool showdb sqlite3-show-db
+ install_tool showjournal sqlite3-show-journal
+ install_tool showshm sqlite3-show-shm
+ install_tool showstat4 sqlite3-show-stat4
+ install_tool showwal sqlite3-show-wal
+ install_tool sqldiff sqlite3-diff
+ install_tool sqlite3_analyzer sqlite3-analyzer
+ install_tool sqlite3_checker sqlite3-checker
+ install_tool sqlite3_expert sqlite3-expert
+ install_tool sqltclsh sqlite3-tclsh
+
+ unset -f install_tool
+ fi
+}
+
+multilib_src_install_all() {
+ find "${ED}" -name "*.la" -delete || die
+
+ doman sqlite3.1
+
+ if use doc; then
+ if [[ ${PV} == 9999 ]]; then
+ pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
+ else
+ pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
+ fi
+
+ find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
+ if [[ ${PV} != 9999 ]]; then
+ rm search search.d/admin || die
+ rmdir search.d || die
+ find -name "*~" -delete || die
+ fi
+
+ (
+ docinto html
+ dodoc -r *
+ )
+
+ popd > /dev/null || die
+ fi
+}
diff --git a/dev-db/sqlite/sqlite-3.45.3.ebuild b/dev-db/sqlite/sqlite-3.45.3.ebuild
new file mode 100644
index 000000000000..5843ae513366
--- /dev/null
+++ b/dev-db/sqlite/sqlite-3.45.3.ebuild
@@ -0,0 +1,427 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+
+DESCRIPTION="SQL database engine"
+HOMEPAGE="https://sqlite.org/"
+
+# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
+# for hints regarding test failures, backports, etc.
+if [[ ${PV} == 9999 ]]; then
+ S="${WORKDIR}"/${PN}
+ PROPERTIES="live"
+else
+ printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
+ DOC_PV="${SRC_PV}"
+ #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
+
+ SRC_URI="
+ https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip
+ doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
+ "
+ S="${WORKDIR}/${PN}-src-${SRC_PV}"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="public-domain"
+SLOT="3"
+IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sys-libs/zlib:=[${MULTILIB_USEDEP}]
+ icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
+ readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] )
+ tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] )
+ tools? ( dev-lang/tcl:= )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )
+"
+BDEPEND=">=dev-lang/tcl-8.6:0"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+=" dev-vcs/fossil"
+else
+ BDEPEND+=" app-arch/unzip"
+fi
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
+ "${FILESDIR}"/${PN}-3.45.2-tests-x86.patch
+)
+
+_fossil_fetch() {
+ local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
+ local repo_id="${1}"
+ local repo_uri="${2}"
+
+ local -x FOSSIL_HOME="${HOME}"
+
+ mkdir -p "${T}/fossil/${repo_id}" || die
+ pushd "${T}/fossil/${repo_id}" > /dev/null || die
+
+ if [[ -n "${EVCS_OFFLINE}" ]]; then
+ if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+ die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
+ fi
+ else
+ if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+ einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
+ fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
+ echo
+ else
+ cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
+ einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
+ fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
+ echo
+ fi
+
+ (
+ addwrite "${distdir}"
+ mkdir -p "${distdir}/fossil-src/${repo_id}" || die
+ cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
+ )
+ fi
+
+ popd > /dev/null || die
+}
+
+_fossil_checkout() {
+ local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
+ local repo_id="${1}"
+ local branch_or_commit="${2}"
+ local target_directory="${3}"
+
+ local -x FOSSIL_HOME="${HOME}"
+
+ if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
+ die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
+ fi
+
+ if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
+ mkdir -p "${T}/fossil/${repo_id}" || die
+ cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
+ fi
+
+ mkdir "${target_directory}" || die
+ pushd "${target_directory}" > /dev/null || die
+
+ einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
+ fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
+ echo
+
+ popd > /dev/null || die
+}
+
+fossil_fetch() {
+ local repo_id="${1}"
+ local repo_uri="${2}"
+ local target_directory="${3}"
+
+ local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
+
+ _fossil_fetch "${repo_id}" "${repo_uri}"
+ _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]]; then
+ fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
+ if use doc; then
+ fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
+ fi
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ default
+
+ eautoreconf
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
+ local options=()
+
+ options+=(
+ --enable-load-extension
+ --enable-threadsafe
+ )
+
+ # Support detection of misuse of SQLite API.
+ # https://sqlite.org/compile.html#enable_api_armor
+ append-cppflags -DSQLITE_ENABLE_API_ARMOR
+
+ # Support bytecode and tables_used virtual tables.
+ # https://sqlite.org/compile.html#enable_bytecode_vtab
+ # https://sqlite.org/bytecodevtab.html
+ append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
+
+ # Support column metadata functions.
+ # https://sqlite.org/compile.html#enable_column_metadata
+ # https://sqlite.org/c3ref/column_database_name.html
+ append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
+
+ # Support sqlite_dbpage virtual table.
+ # https://sqlite.org/compile.html#enable_dbpage_vtab
+ # https://sqlite.org/dbpage.html
+ append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
+
+ # Support dbstat virtual table.
+ # https://sqlite.org/compile.html#enable_dbstat_vtab
+ # https://sqlite.org/dbstat.html
+ append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
+
+ # Support sqlite3_serialize() and sqlite3_deserialize() functions.
+ # https://sqlite.org/compile.html#enable_deserialize
+ # https://sqlite.org/c3ref/serialize.html
+ # https://sqlite.org/c3ref/deserialize.html
+ append-cppflags -DSQLITE_ENABLE_DESERIALIZE
+
+ # Support comments in output of EXPLAIN.
+ # https://sqlite.org/compile.html#enable_explain_comments
+ append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
+
+ # Support Full-Text Search versions 3, 4 and 5.
+ # https://sqlite.org/compile.html#enable_fts3
+ # https://sqlite.org/compile.html#enable_fts3_parenthesis
+ # https://sqlite.org/compile.html#enable_fts4
+ # https://sqlite.org/compile.html#enable_fts5
+ # https://sqlite.org/fts3.html
+ # https://sqlite.org/fts5.html
+ append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
+ options+=( --enable-fts5 )
+
+ # Support hidden columns.
+ append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
+
+ # Support memsys5 memory allocator.
+ # https://sqlite.org/compile.html#enable_memsys5
+ # https://sqlite.org/malloc.html#memsys5
+ append-cppflags -DSQLITE_ENABLE_MEMSYS5
+
+ # Support sqlite3_normalized_sql() function.
+ # https://sqlite.org/c3ref/expanded_sql.html
+ append-cppflags -DSQLITE_ENABLE_NORMALIZE
+
+ # Support sqlite_offset() function.
+ # https://sqlite.org/compile.html#enable_offset_sql_func
+ # https://sqlite.org/lang_corefunc.html#sqlite_offset
+ append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
+
+ # Support pre-update hook functions.
+ # https://sqlite.org/compile.html#enable_preupdate_hook
+ # https://sqlite.org/c3ref/preupdate_count.html
+ append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
+
+ # Support Resumable Bulk Update extension.
+ # https://sqlite.org/compile.html#enable_rbu
+ # https://sqlite.org/rbu.html
+ append-cppflags -DSQLITE_ENABLE_RBU
+
+ # Support R*Trees.
+ # https://sqlite.org/compile.html#enable_rtree
+ # https://sqlite.org/compile.html#enable_geopoly
+ # https://sqlite.org/rtree.html
+ # https://sqlite.org/geopoly.html
+ append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
+
+ # Support Session extension.
+ # https://sqlite.org/compile.html#enable_session
+ # https://sqlite.org/sessionintro.html
+ append-cppflags -DSQLITE_ENABLE_SESSION
+
+ # Support scan status functions.
+ # https://sqlite.org/compile.html#enable_stmt_scanstatus
+ # https://sqlite.org/c3ref/stmt_scanstatus.html
+ # https://sqlite.org/c3ref/stmt_scanstatus_reset.html
+ append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
+
+ # Support sqlite_stmt virtual table.
+ # https://sqlite.org/compile.html#enable_stmtvtab
+ # https://sqlite.org/stmt.html
+ append-cppflags -DSQLITE_ENABLE_STMTVTAB
+
+ # Support unknown() function.
+ # https://sqlite.org/compile.html#enable_unknown_sql_function
+ append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
+
+ # Support unlock notification.
+ # https://sqlite.org/compile.html#enable_unlock_notify
+ # https://sqlite.org/c3ref/unlock_notify.html
+ # https://sqlite.org/unlock_notify.html
+ append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
+
+ # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
+ # https://sqlite.org/compile.html#enable_update_delete_limit
+ # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
+ # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
+ append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
+
+ # Support soundex() function.
+ # https://sqlite.org/compile.html#soundex
+ # https://sqlite.org/lang_corefunc.html#soundex
+ append-cppflags -DSQLITE_SOUNDEX
+
+ # Support URI filenames.
+ # https://sqlite.org/compile.html#use_uri
+ # https://sqlite.org/uri.html
+ append-cppflags -DSQLITE_USE_URI
+
+ options+=( $(use_enable debug) )
+
+ if use icu; then
+ # Support ICU extension.
+ # https://sqlite.org/compile.html#enable_icu
+ append-cppflags -DSQLITE_ENABLE_ICU
+ sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
+ fi
+
+ options+=(
+ --disable-editline
+ $(use_enable readline)
+ )
+
+ if use readline; then
+ options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" )
+ fi
+
+ if use secure-delete; then
+ # Enable secure_delete pragma by default.
+ # https://sqlite.org/compile.html#secure_delete
+ # https://sqlite.org/pragma.html#pragma_secure_delete
+ append-cppflags -DSQLITE_SECURE_DELETE
+ fi
+
+ options+=( $(use_enable static-libs static) )
+
+ # tcl, test, tools USE flags.
+ if use tcl || use test || { use tools && multilib_is_native_abi; }; then
+ options+=(
+ --enable-tcl
+ --with-tcl="${ESYSROOT}/usr/$(get_libdir)"
+ )
+ else
+ options+=( --disable-tcl )
+ fi
+
+ if [[ "${ABI}" == "x86" ]]; then
+ if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
+ append-cflags -mfpmath=sse
+ else
+ append-cflags -ffloat-store
+ fi
+ fi
+
+ econf "${options[@]}"
+}
+
+multilib_src_compile() {
+ emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
+
+ if use tools && multilib_is_native_abi; then
+ emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
+ fi
+
+ if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then
+ emake tclsqlite3.c
+
+ local build_directory="$(pwd)"
+ build_directory="${build_directory##*/}"
+
+ mkdir "${WORKDIR}/${PN}-doc-build" || die
+ pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
+
+ emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
+ rmdir doc/matrix{/*,} || die
+
+ popd > /dev/null || die
+ fi
+}
+
+multilib_src_test() {
+ if [[ "${EUID}" -eq 0 ]]; then
+ ewarn "Skipping tests due to root permissions"
+ return
+ fi
+
+ local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
+
+ # e_uri.test tries to open files in /.
+ # bug #839798
+ local SANDBOX_PREDICT=${SANDBOX_PREDICT}
+ addpredict "/test.db"
+ addpredict "/ÿ.db"
+
+ emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test')
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
+
+ if use tools && multilib_is_native_abi; then
+ install_tool() {
+ if [[ -f ".libs/${1}" ]]; then
+ newbin ".libs/${1}" "${2}"
+ else
+ newbin "${1}" "${2}"
+ fi
+ }
+
+ install_tool changeset sqlite3-changeset
+ install_tool dbdump sqlite3-db-dump
+ install_tool dbhash sqlite3-db-hash
+ install_tool dbtotxt sqlite3-db-to-txt
+ install_tool index_usage sqlite3-index-usage
+ install_tool rbu sqlite3-rbu
+ install_tool scrub sqlite3-scrub
+ install_tool showdb sqlite3-show-db
+ install_tool showjournal sqlite3-show-journal
+ install_tool showshm sqlite3-show-shm
+ install_tool showstat4 sqlite3-show-stat4
+ install_tool showwal sqlite3-show-wal
+ install_tool sqldiff sqlite3-diff
+ install_tool sqlite3_analyzer sqlite3-analyzer
+ install_tool sqlite3_checker sqlite3-checker
+ install_tool sqlite3_expert sqlite3-expert
+ install_tool sqltclsh sqlite3-tclsh
+
+ unset -f install_tool
+ fi
+}
+
+multilib_src_install_all() {
+ find "${ED}" -name "*.la" -delete || die
+
+ doman sqlite3.1
+
+ if use doc; then
+ if [[ ${PV} == 9999 ]]; then
+ pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
+ else
+ pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
+ fi
+
+ find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
+ if [[ ${PV} != 9999 ]]; then
+ rm search search.d/admin || die
+ rmdir search.d || die
+ find -name "*~" -delete || die
+ fi
+
+ (
+ docinto html
+ dodoc -r *
+ )
+
+ popd > /dev/null || die
+ fi
+}
diff --git a/dev-db/sqlite/sqlite-9999.ebuild b/dev-db/sqlite/sqlite-9999.ebuild
index 40b16d903620..7570a655878b 100644
--- a/dev-db/sqlite/sqlite-9999.ebuild
+++ b/dev-db/sqlite/sqlite-9999.ebuild
@@ -314,18 +314,6 @@ multilib_src_configure() {
else
append-cflags -ffloat-store
fi
-
- # Skip known-broken test for now
- # https://sqlite.org/forum/forumpost/d97caf168f
- # https://sqlite.org/forum/forumpost/50f136d91d
- # Quoting Fedora's spec:
- # "The atof test is failing on the i686 architecture, when binary configured with
- # --enable-rtree option. Failing part is text->real conversion and
- # text->real->text conversion in lower significant values after decimal point in a number.
- # func4 tests fail for i686 on float<->int conversions."
- if use test ; then
- rm test/atof1.test test/func4.test || die
- fi
fi
econf "${options[@]}"
diff --git a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r1.ebuild b/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r2.ebuild
index 4b96bc2b8fbb..47ce7cb6cacc 100644
--- a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r1.ebuild
+++ b/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r2.ebuild
@@ -32,7 +32,7 @@ DEPEND="
>=dev-qt/qtprintsupport-5.5:5
>=dev-qt/qtwidgets-5.5:5
>=dev-qt/qtxml-5.5:5
- >=x11-libs/qscintilla-2.8.10:=
+ >=x11-libs/qscintilla-2.8.10:=[qt5(+)]
sqlcipher? ( dev-db/sqlcipher )
"
diff --git a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild b/dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild
deleted file mode 100644
index 6f50a5bd986f..000000000000
--- a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake xdg
-
-DESCRIPTION="A light GUI editor for SQLite databases"
-HOMEPAGE="https://sqlitebrowser.org/"
-
-if [[ "${PV}" = *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
-else
- SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 x86"
-fi
-
-LICENSE="GPL-3+ MPL-2.0"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-DEPEND="
- app-editors/qhexedit2
- dev-db/sqlite:3
- dev-libs/qcustomplot
- >=dev-qt/qtconcurrent-5.5:5
- >=dev-qt/qtcore-5.5:5
- >=dev-qt/qtgui-5.5:5
- >=dev-qt/qtnetwork-5.5:5[ssl]
- >=dev-qt/qtprintsupport-5.5:5
- >=dev-qt/qtwidgets-5.5:5
- >=dev-qt/qtxml-5.5:5
- >=x11-libs/qscintilla-2.8.10:=
-"
-
-BDEPEND="
- >=dev-qt/linguist-tools-5.5:5
- test? ( >=dev-qt/qttest-5.5:5 )
-"
-
-RDEPEND="
- ${DEPEND}
- >=dev-qt/qtsvg-5.5:5
-"
-
-src_prepare() {
- cmake_src_prepare
-
- if ! use test; then
- sed -i CMakeLists.txt \
- -e "/find_package/ s/ Test//" \
- -e "/set/ s/ Qt5::Test//" \
- || die "Cannot remove Qt Test from CMake dependencies"
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DENABLE_TESTING=$(usex test)
- -DFORCE_INTERNAL_QCUSTOMPLOT=OFF
- -DFORCE_INTERNAL_QHEXEDIT=OFF
- )
-
- cmake_src_configure
-}
diff --git a/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild b/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild
index cea98af250c9..47ce7cb6cacc 100644
--- a/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild
+++ b/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -13,7 +13,7 @@ if [[ "${PV}" = *9999* ]]; then
EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="amd64 x86"
fi
LICENSE="GPL-3+ MPL-2.0"
@@ -32,7 +32,7 @@ DEPEND="
>=dev-qt/qtprintsupport-5.5:5
>=dev-qt/qtwidgets-5.5:5
>=dev-qt/qtxml-5.5:5
- >=x11-libs/qscintilla-2.8.10:=
+ >=x11-libs/qscintilla-2.8.10:=[qt5(+)]
sqlcipher? ( dev-db/sqlcipher )
"
diff --git a/dev-db/sqliteman/metadata.xml b/dev-db/sqliteman/metadata.xml
index 4c234b878d14..17c382ef902c 100644
--- a/dev-db/sqliteman/metadata.xml
+++ b/dev-db/sqliteman/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>qt@gentoo.org</email>
- <name>Gentoo Qt Project</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<remote-id type="sourceforge">sqliteman</remote-id>
</upstream>
diff --git a/dev-db/sqliteman/sqliteman-1.2.2-r5.ebuild b/dev-db/sqliteman/sqliteman-1.2.2-r6.ebuild
index 655184f548cf..77737c5e6e79 100644
--- a/dev-db/sqliteman/sqliteman-1.2.2-r5.ebuild
+++ b/dev-db/sqliteman/sqliteman-1.2.2-r6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ inherit cmake flag-o-matic xdg
DESCRIPTION="Powerful GUI manager for the Sqlite3 database"
HOMEPAGE="https://sourceforge.net/projects/sqliteman/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
@@ -19,7 +19,7 @@ RDEPEND="
dev-qt/qtgui:5
dev-qt/qtsql:5[sqlite]
dev-qt/qtwidgets:5
- >=x11-libs/qscintilla-2.10.3:="
+ >=x11-libs/qscintilla-2.10.3:=[qt5(+)]"
DEPEND="${RDEPEND}"
PATCHES=(
diff --git a/dev-db/sqlmap/Manifest b/dev-db/sqlmap/Manifest
index bc5f568e1e7b..29bf47c4cb30 100644
--- a/dev-db/sqlmap/Manifest
+++ b/dev-db/sqlmap/Manifest
@@ -1,2 +1,3 @@
DIST sqlmap-1.7.9.gh.tar.gz 7214293 BLAKE2B 45ec0a5e0bf2d2f53a9232ca80f592a2a62b195e3dcd6913fdd343afcc097345cd160d7c39571a7abfe25f3772bbfdb1b4e915e6c0b3f599f86ad2eb201f1ab0 SHA512 0a2aa310b9e1d51cb296be87df5d7c87bdf9daa3a61151ff3a2bca9d58bd2c369c7fa8dfad134d23a00cc034a8c8cd9ff2a326e8883ecad43457604762b42242
+DIST sqlmap-1.8.2.gh.tar.gz 7216681 BLAKE2B 9e74c1c2a916f5aefebb8a249e3d7201fdc234f84585f37f82b052117c30c47e06d91b789f9c1de3053e52ee9297941bbd8a3ecc2ebdc2298bebcd5aaba6b30a SHA512 ec49243b9d34bc100ca197022e9397dd84e05459ca9cffe15303fef113a477080ed7bfacc51ed638a2fe0a475ab4b1ca1e930d4a124617dd44219080cf6d999b
DIST sqlmap-1.8.gh.tar.gz 7216213 BLAKE2B 0a9f43880badec75d5915950a98b1aac12a465b00216e0d01ed3ce0cb23882639d656430932b32d067ab7df693e0bbb67c35e076ac016e48a7ef2d940d0208eb SHA512 80e1555ae0f581c5cc76f41eb8a26e346f675069149010d7267abc3cc59f04ae9d35a72e417c6e28ff6d9c389d04e65dde1240079620a70d733e1873c0ed7450
diff --git a/dev-db/sqlmap/sqlmap-1.8.2.ebuild b/dev-db/sqlmap/sqlmap-1.8.2.ebuild
new file mode 100644
index 000000000000..caaad5bf9d92
--- /dev/null
+++ b/dev-db/sqlmap/sqlmap-1.8.2.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="sqlite"
+
+inherit bash-completion-r1 python-single-r1 wrapper
+
+DESCRIPTION="An automatic SQL injection and database takeover tool"
+HOMEPAGE="https://sqlmap.org/"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/sqlmapproject/sqlmap"
+else
+ SRC_URI="https://github.com/sqlmapproject/sqlmap/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
+ KEYWORDS="amd64 x86"
+fi
+
+# sqlmap (GPL-2+)
+# ansitrm (BSD)
+# beautifulsoup (BSD)
+# bottle (MIT)
+# chardet (LGPL-2.1+)
+# clientform (BSD)
+# colorama (BSD)
+# fcrypt (BSD-2)
+# identitywaf (MIT)
+# keepalive (LGPL-2.1+)
+# magic (MIT)
+# multipartpost (LGPL-2.1+)
+# ordereddict (MIT)
+# prettyprint (BSD-2)
+# pydes (public-domain)
+# six (MIT)
+# socks (BSD)
+# termcolor (BSD)
+# wininetpton (public-domain)
+LICENSE="BSD BSD-2 GPL-2+ LGPL-2.1+ MIT public-domain"
+SLOT="0"
+
+RDEPEND="${PYTHON_DEPS}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DOCS=( doc/ README.md )
+
+src_install () {
+ einstalldocs
+
+ insinto /usr/share/${PN}/
+ doins -r *
+ python_optimize "${ED}"/usr/share/${PN}
+
+ make_wrapper ${PN} \
+ "${EPYTHON} ${EPREFIX}/usr/share/${PN}/sqlmap.py"
+
+ newbashcomp "${FILESDIR}"/sqlmap.bash-completion sqlmap
+}
diff --git a/dev-db/timescaledb/Manifest b/dev-db/timescaledb/Manifest
index 17a938cd4464..3990ebaa2357 100644
--- a/dev-db/timescaledb/Manifest
+++ b/dev-db/timescaledb/Manifest
@@ -1,2 +1,3 @@
DIST timescaledb-2.14.0.tar.gz 7316149 BLAKE2B d646e20d56ced87f3b95a7a58ed30bcbeec571b1042b64c2fef4f8521248db2142f54cb45d2afbbeb902e451823615fde1bb0259b421350928c146634db9c4d5 SHA512 75a66a51de313fa1beb4a576181888dbe742ffa0325b5813b5b12749c9fc97705eaa030186e424a360ee20745226768a679632182c079117586c5e4a5c108236
DIST timescaledb-2.14.2.tar.gz 7319288 BLAKE2B aa6d56939a4647f9276743cabece77c33760e7f9d451b90aaa03c9391fcfad94afcd315b65c0c589c7188073884bf7ab65f9c796e35f634b8704f334ffa4ac34 SHA512 5a7ab4df5d89b83d423be5d6770098ab0303b22e29166afd3ab91ac2199571df20e33ec9f40bfa90ddf44829571fe696f311d81d27b46d569f2d75e75970e4f9
+DIST timescaledb-2.15.0.tar.gz 7428047 BLAKE2B 6806def8ec01213b81d545817048af569a7b43ab88397e51d25dea680780e7764d9ec0bd638cb9deca6a7492d9a2b0e792adcc46a794cacde83d62c23c09dd83 SHA512 fe2ccc0baa4ec39773a9258142fd287f4ff3c296a39bc19daa75d30a5e3755efc4aa902c00e4e1030f4d5203b95c31c0493a5eb78aed6a26d8226930d1e2aef8
diff --git a/dev-db/timescaledb/timescaledb-2.15.0.ebuild b/dev-db/timescaledb/timescaledb-2.15.0.ebuild
new file mode 100644
index 000000000000..ec3d2f7794de
--- /dev/null
+++ b/dev-db/timescaledb/timescaledb-2.15.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+POSTGRES_COMPAT=( 13 14 15 16 )
+POSTGRES_USEDEP="ssl"
+
+inherit postgres-multi cmake
+
+DESCRIPTION="Open-source time-series SQL database"
+HOMEPAGE="https://www.timescale.com/"
+SRC_URI="https://github.com/timescale/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+IUSE="proprietary-extensions"
+LICENSE="POSTGRESQL Apache-2.0 proprietary-extensions? ( timescale )"
+
+KEYWORDS="~amd64"
+
+SLOT=0
+
+RESTRICT="test"
+
+DEPEND="${POSTGRES_DEP}"
+RDEPEND="${DEPEND}"
+
+CMAKE_IN_SOURCE_BUILD=yes
+CMAKE_BUILD_TYPE="RelWithDebInfo"
+BUILD_DIR=${WORKDIR}/${P}
+
+src_prepare() {
+ postgres-multi_src_prepare
+ postgres-multi_foreach cmake_src_prepare
+}
+
+timescale_configure() {
+ local CMAKE_USE_DIR=$BUILD_DIR
+ local mycmakeargs=( "-DPG_CONFIG=/usr/bin/pg_config${MULTIBUILD_VARIANT}" "-DREGRESS_CHECKS=OFF" )
+
+ # licensing is tied to features, this useflag disables the non-apache2 licensed bits
+ if ! use proprietary-extensions ; then
+ mycmakeargs+=("-DAPACHE_ONLY=ON")
+ fi
+ cmake_src_configure
+}
+
+src_configure() {
+ postgres-multi_foreach timescale_configure
+}
+
+timescale_src_compile() {
+ local CMAKE_USE_DIR=$BUILD_DIR
+ cmake_src_compile
+}
+
+src_compile() {
+ postgres-multi_foreach timescale_src_compile
+}
+
+timescale_src_install() {
+ local CMAKE_USE_DIR=$BUILD_DIR
+ cmake_src_install
+}
+
+src_install() {
+ postgres-multi_foreach timescale_src_install
+}
diff --git a/dev-db/tinycdb/Manifest b/dev-db/tinycdb/Manifest
index 302ac45b9888..bac11328a7d4 100644
--- a/dev-db/tinycdb/Manifest
+++ b/dev-db/tinycdb/Manifest
@@ -1,2 +1 @@
-DIST tinycdb-0.78.tar.gz 36754 BLAKE2B 41f4256840645acd28296c5473087c7cf4c026f068310375b3c305430c030b1c946f53fd3e09967d77b592ba84e7e56518fdb18e54d1e0f5e7dd552a1664a0ec SHA512 8930086b8e7fddcd4dbd3354c5f5ee05171df68fde1cc222b6c402430042b6e761efbad7e5fa8de18e1d36390f1526cc3e605c5086fe1c363ba1df6c03201553
DIST tinycdb-0.81.tar.gz 31901 BLAKE2B 6b5b1167bd7e58a02b9a3a1ff2d58adb0e522ef65a13384051d9a037358ed7586f7d567e543099adec6322f9c60d38525fed586488510215bf72d12a60c67684 SHA512 56d0422700835d7b0460c32c41e6d5f30b8b833cefea775eb7f2b5592d744942c1109eac1501421b02f196d15e551111bb2accc71f2fd32ef4b8d658c635340e
diff --git a/dev-db/tinycdb/tinycdb-0.78.ebuild b/dev-db/tinycdb/tinycdb-0.78.ebuild
deleted file mode 100644
index 501f95371b5a..000000000000
--- a/dev-db/tinycdb/tinycdb-0.78.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit toolchain-funcs
-
-DESCRIPTION="A very fast and simple package for creating and reading constant data bases"
-HOMEPAGE="https://www.corpit.ru/mjt/tinycdb.html"
-SRC_URI="https://www.corpit.ru/mjt/${PN}/${P}.tar.gz"
-
-LICENSE="public-domain"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~hppa ~ia64 ~mips ppc ~riscv x86"
-IUSE="static-libs"
-RESTRICT="test"
-
-RDEPEND="!dev-db/cdb"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-gentoo.patch
- "${FILESDIR}"/${PN}-uclibc.patch
-)
-
-src_prepare() {
- default
-
- sed -i "/^libdir/s:/lib:/$(get_libdir):" Makefile
-}
-
-src_compile() {
- local targets="shared"
- use static-libs && targets+=" staticlib piclib"
-
- emake \
- CC="$(tc-getCC)" \
- CFLAGS="${CFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
- ${targets}
-}
-
-src_install() {
- local targets="install install-sharedlib"
- use static-libs && targets+=" install-piclib"
-
- emake \
- prefix="${EPREFIX}"/usr \
- mandir="${EPREFIX}"/usr/share/man \
- DESTDIR="${D}" \
- ${targets}
- einstalldocs
-}
diff --git a/dev-db/tinycdb/tinycdb-0.81.ebuild b/dev-db/tinycdb/tinycdb-0.81.ebuild
index fc9fe8b1d16b..3a96152e3268 100644
--- a/dev-db/tinycdb/tinycdb-0.81.ebuild
+++ b/dev-db/tinycdb/tinycdb-0.81.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://www.corpit.ru/mjt/${PN}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~mips ~ppc ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~hppa ~ia64 ~mips ppc ~riscv x86"
IUSE="static-libs"
RESTRICT="test"
diff --git a/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild b/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild
index ce7497550023..76d13402b5b4 100644
--- a/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild
+++ b/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -8,7 +8,7 @@ inherit wxwidgets
DESCRIPTION="C++ wrapper around the public domain SQLite 3.x database"
HOMEPAGE="http://wxcode.sourceforge.net/components/wxsqlite3/"
-SRC_URI="mirror://sourceforge/wxcode/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/wxcode/${P}.tar.gz"
LICENSE="wxWinLL-3"
SLOT="0"