summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/Manifest.gzbin16775 -> 16757 bytes
-rw-r--r--dev-db/citus/Manifest6
-rw-r--r--dev-db/citus/citus-12.1.7.ebuild (renamed from dev-db/citus/citus-12.1.5.ebuild)4
-rw-r--r--dev-db/citus/citus-13.0.1.ebuild32
-rw-r--r--dev-db/dbeaver-bin/Manifest12
-rw-r--r--dev-db/dbeaver-bin/dbeaver-bin-24.3.4.ebuild (renamed from dev-db/dbeaver-bin/dbeaver-bin-24.3.2.ebuild)0
-rw-r--r--dev-db/dbeaver-bin/dbeaver-bin-25.0.0.ebuild (renamed from dev-db/dbeaver-bin/dbeaver-bin-24.3.3.ebuild)0
-rw-r--r--dev-db/duckdb/Manifest5
-rw-r--r--dev-db/duckdb/duckdb-1.2.0-r1.ebuild23
-rw-r--r--dev-db/duckdb/duckdb-1.2.1.ebuild27
-rw-r--r--dev-db/duckdb/metadata.xml11
-rw-r--r--dev-db/freetds/Manifest8
-rw-r--r--dev-db/freetds/freetds-1.4.17.ebuild54
-rw-r--r--dev-db/freetds/freetds-1.4.26.ebuild (renamed from dev-db/freetds/freetds-1.4.23.ebuild)44
-rw-r--r--dev-db/freetds/metadata.xml3
-rw-r--r--dev-db/influx-cli/Manifest3
-rw-r--r--dev-db/influx-cli/influx-cli-2.7.5-r1.ebuild36
-rw-r--r--dev-db/litecli/Manifest4
-rw-r--r--dev-db/litecli/litecli-1.14.4.ebuild (renamed from dev-db/litecli/litecli-1.12.3.ebuild)8
-rw-r--r--dev-db/mariadb/Manifest19
-rw-r--r--dev-db/mariadb/mariadb-10.11.10.ebuild7
-rw-r--r--dev-db/mariadb/mariadb-10.11.11.ebuild1344
-rw-r--r--dev-db/mariadb/mariadb-10.6.15.ebuild17
-rw-r--r--dev-db/mariadb/mariadb-10.6.17.ebuild9
-rw-r--r--dev-db/mariadb/mariadb-10.6.20.ebuild15
-rw-r--r--dev-db/mariadb/mariadb-10.6.21.ebuild1345
-rw-r--r--dev-db/mariadb/mariadb-11.4.5.ebuild (renamed from dev-db/mariadb/mariadb-11.4.4.ebuild)27
-rw-r--r--dev-db/mongodb-compass-bin/Manifest4
-rw-r--r--dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.3.ebuild56
-rw-r--r--dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.4.ebuild56
-rw-r--r--dev-db/mongodb/Manifest2
-rw-r--r--dev-db/mongodb/mongodb-5.0.30.ebuild6
-rw-r--r--dev-db/mycli/Manifest2
-rw-r--r--dev-db/mycli/mycli-1.29.2.ebuild2
-rw-r--r--dev-db/mydumper/Manifest8
-rw-r--r--dev-db/mydumper/files/mydumper-0.18-Do-not-overwrite-the-user-CFLAGS.patch13
-rw-r--r--dev-db/mydumper/mydumper-0.16.11.2.ebuild2
-rw-r--r--dev-db/mydumper/mydumper-0.16.7.5.ebuild32
-rw-r--r--dev-db/mydumper/mydumper-0.18.1.1.ebuild63
-rw-r--r--dev-db/mysql-connector-c++/Manifest5
-rw-r--r--dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-gcc-15-cstdint.patch16
-rw-r--r--dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-hookup-tests.patch64
-rw-r--r--dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-test-iomanip.patch15
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-9.2.0.ebuild184
-rw-r--r--dev-db/mysql-connector-c/Manifest2
-rw-r--r--dev-db/mysql-connector-c/mysql-connector-c-8.0.41.ebuild127
-rw-r--r--dev-db/mysql-workbench/Manifest2
-rw-r--r--dev-db/mysql-workbench/mysql-workbench-8.0.41.ebuild118
-rw-r--r--dev-db/mysql/Manifest4
-rw-r--r--dev-db/mysql/mysql-8.0.40.ebuild50
-rw-r--r--dev-db/mysql/mysql-8.0.41.ebuild1310
-rw-r--r--dev-db/pgpool2/Manifest4
-rw-r--r--dev-db/pgpool2/pgpool2-4.4.7.ebuild11
-rw-r--r--dev-db/pgpool2/pgpool2-9999.ebuild11
-rw-r--r--dev-db/pgrouting/Manifest2
-rw-r--r--dev-db/pgrouting/pgrouting-3.7.3.ebuild52
-rw-r--r--dev-db/postgresql/Manifest23
-rw-r--r--dev-db/postgresql/files/postgresql-12.1-no-server.patch143
-rw-r--r--dev-db/postgresql/postgresql-12.22.ebuild445
-rw-r--r--dev-db/postgresql/postgresql-13.20.ebuild (renamed from dev-db/postgresql/postgresql-13.18.ebuild)4
-rw-r--r--dev-db/postgresql/postgresql-14.17.ebuild (renamed from dev-db/postgresql/postgresql-14.15.ebuild)4
-rw-r--r--dev-db/postgresql/postgresql-15.12.ebuild (renamed from dev-db/postgresql/postgresql-15.10.ebuild)4
-rw-r--r--dev-db/postgresql/postgresql-16.8.ebuild (renamed from dev-db/postgresql/postgresql-16.6.ebuild)4
-rw-r--r--dev-db/postgresql/postgresql-17.4.ebuild (renamed from dev-db/postgresql/postgresql-17.2.ebuild)4
-rw-r--r--dev-db/psqlodbc/Manifest10
-rw-r--r--dev-db/psqlodbc/metadata.xml17
-rw-r--r--dev-db/psqlodbc/psqlodbc-11.01.0000.ebuild32
-rw-r--r--dev-db/psqlodbc/psqlodbc-13.00.0000.ebuild35
-rw-r--r--dev-db/psqlodbc/psqlodbc-15.00.0000.ebuild35
-rw-r--r--dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild4
-rw-r--r--dev-db/recutils/Manifest3
-rw-r--r--dev-db/recutils/files/recutils-1.9-add-const.patch14
-rw-r--r--dev-db/recutils/recutils-1.9-r1.ebuild (renamed from dev-db/recutils/recutils-1.9.ebuild)10
-rw-r--r--dev-db/spatialite/Manifest2
-rw-r--r--dev-db/spatialite/files/spatialite-5.1.0-macro-surgery.patch80
-rw-r--r--dev-db/spatialite/spatialite-5.1.0-r2.ebuild63
-rw-r--r--dev-db/sqlite/Manifest10
-rw-r--r--dev-db/sqlite/files/sqlite-3.49.0-icu-tests.patch29
-rw-r--r--dev-db/sqlite/files/sqlite-3.49.1-jimsh.patch61
-rw-r--r--dev-db/sqlite/sqlite-3.49.1.ebuild (renamed from dev-db/sqlite/sqlite-3.48.0-r1.ebuild)40
-rw-r--r--dev-db/sqlite/sqlite-9999.ebuild39
-rw-r--r--dev-db/sqlmap/Manifest6
-rw-r--r--dev-db/sqlmap/sqlmap-1.9.2.ebuild (renamed from dev-db/sqlmap/sqlmap-1.8.9.ebuild)4
-rw-r--r--dev-db/sqlmap/sqlmap-1.9.ebuild60
-rw-r--r--dev-db/timescaledb/Manifest8
-rw-r--r--dev-db/timescaledb/timescaledb-2.16.1.ebuild67
-rw-r--r--dev-db/timescaledb/timescaledb-2.17.0.ebuild67
-rw-r--r--dev-db/timescaledb/timescaledb-2.18.1.ebuild (renamed from dev-db/timescaledb/timescaledb-2.17.1.ebuild)8
-rw-r--r--dev-db/tora/Manifest4
-rw-r--r--dev-db/tora/files/tora-3.2-qt-includes.patch61
-rw-r--r--dev-db/tora/metadata.xml15
-rw-r--r--dev-db/tora/tora-3.2-r2.ebuild87
-rw-r--r--dev-db/unixODBC/Manifest2
-rw-r--r--dev-db/unixODBC/unixODBC-2.3.12-r1.ebuild2
94 files changed, 5515 insertions, 1277 deletions
diff --git a/dev-db/Manifest.gz b/dev-db/Manifest.gz
index b3b0c98d57e0..545a754eb663 100644
--- a/dev-db/Manifest.gz
+++ b/dev-db/Manifest.gz
Binary files differ
diff --git a/dev-db/citus/Manifest b/dev-db/citus/Manifest
index 4d02384fa509..9d398785586e 100644
--- a/dev-db/citus/Manifest
+++ b/dev-db/citus/Manifest
@@ -1,8 +1,10 @@
DIST citus-12.0.1.tar.gz 6740395 BLAKE2B ca004f8026d94c1ed70c9c7450726287aff415c13b80b93d25a19fbae9a79cbbeaec51521fc7922d5574c75bddb9537d42d656121ca586f4512afe773be5bf76 SHA512 db9b882c63ef6ab848a85d547390d4fc61b97056485dcc8fa51c289a302b78d0de959e29c27a91c494fd3e20491f6a96e96436d8766d02b2770f0e375b94564e
-DIST citus-12.1.5.tar.gz 6912425 BLAKE2B ec08387ed6883ecd27f432843ae1068fdc657b62e4bd74e2feb4f806ccf7f3954c600cb5dce27db90ef3fccfd9ddf43bd88bb73fd44c8f39c8517999264e3255 SHA512 267cf5e52a23eabd3ac86eedb9929fbeae09b16279db5656d328ddbf64879fe3691e82fb0d15efb216e3c254b37cb3b6a5ca9c5097fc5f075c8e7b9ec3337a93
DIST citus-12.1.6.tar.gz 6920293 BLAKE2B 193bbf890709e8926253112e10084ab566af9ad4bd3b802e9eff792580c8ac8f5caa04fe17f1c04d306dea5047a85e60fba2ddc074ffbfd2bec9a407d789321f SHA512 f2b19ba915d2eb52393b3b1a6800977d7f592319ffdbf2491d35fb2cf2221766400dce954198306f1edb91affd9bc6e53c683dd3116fe8b7ae0895fed254b6d5
+DIST citus-12.1.7.tar.gz 6923683 BLAKE2B 114dbb30d0e353f3d368db13ab265082f952774fa013a7c7d7848e4c3686a6d3c4b47d259ddf3660e58d3e59c2b0802c51edac3df28c44717e2ba30ae063cd7c SHA512 3c24bfde6e1786c324a5fbd64ede70b557966e15a0852c1497af21a5e12cd10e46798ff0e3042fb23fccb3ccbc5f6ccdfbcdbf96ac6a50ec511d9df6740977e1
+DIST citus-13.0.1.tar.gz 6901310 BLAKE2B 21c4bb728f8aed546bf92429487b503a1f69f02e2e9b6ff93a7494820733f3b2f9af63b3773de8fa47a25f37011b55ded746ca007a59a3b5332e6ccd6170945f SHA512 dc7ec7b28d654726457e8cd9a74078fc58e7d8792246baec7f09a6d595a4277a60ab2ddcd4068607c253281e68959a1f9b7a42b817849e797be5a24631d480b7
EBUILD citus-12.0.1.ebuild 584 BLAKE2B 152c7a153df6d52c8835d54ad414406207005ab4812c48e75bd22d02cc2bc94a20d935558b6b3087213d76b11bada869d3f526b5e96c6727de3a051b936be3bc SHA512 bec170f41b98cc4d86e7cb7ea8efdde635aa6895dde62ac4e4daff06b82af0159339947f1c6477aaf4b0c7f95c4b241faa42b7731fab848c2798db8077181c00
-EBUILD citus-12.1.5.ebuild 587 BLAKE2B 5809698fa280ab814b6487401e0f4599eb69f38fe3203b73ce1b32f6533d2149319c75c03e34aee6b23ecbeb9d6c18d730d01f57068a4f4bf8795c5aae1ae19f SHA512 b41baaed95939faf6f3661544f6e1efc2ba5c9453723c0db41686cd912f642551a1be3618f5e2f60397c6cd01226036ca19b3414ec2af1ae5ba0e49d5aa94769
EBUILD citus-12.1.6.ebuild 587 BLAKE2B 5809698fa280ab814b6487401e0f4599eb69f38fe3203b73ce1b32f6533d2149319c75c03e34aee6b23ecbeb9d6c18d730d01f57068a4f4bf8795c5aae1ae19f SHA512 b41baaed95939faf6f3661544f6e1efc2ba5c9453723c0db41686cd912f642551a1be3618f5e2f60397c6cd01226036ca19b3414ec2af1ae5ba0e49d5aa94769
+EBUILD citus-12.1.7.ebuild 605 BLAKE2B f989b5b36ce8daedadb4e9bd03aa0a7433df2e926eb775883956214088e36b96413900a1f944d0d47a23e4ac683f1f96ef332b0d4ed8058307e2601a983f1206 SHA512 2e997930cdad2254fa5f5d0f0915b46c0cb29101aaf8d4879fb02b9c842cd04bb4c20be49f1b5887737e754d10d9bb82ecc0778f86947e85b90a11dfcea28b89
+EBUILD citus-13.0.1.ebuild 605 BLAKE2B 0c9f064dbf0f5754cbdcfe949d1af1e30b6468b7c81348ce073bba531f8438bcebe33990d48f239f450aebd518aa3f1ea36b3662c2d7b567fa48dde634fd9c7e SHA512 4c155175af7a11242a0285c4b3821f5675fc45b8a249fd1b2ea7c09125eddce7bf5b353057b84382498b0626b92fa5dab17ac1116ec7929194f8feec72c93dee
EBUILD citus-9999.ebuild 551 BLAKE2B 326c90fff472b883d97b5bebaea32404fec6755b893c16789bbfb9513b946c15db3eece57a7c3af747cdec3a942c6d55432a555375625f362a40a26064203312 SHA512 d742fa8d64c18316ab371ba146f2969c3ce4401e611ecf17038488cc2e178617681866c3e67bac8ce68f5985f1cfca939f33806000b6798bbc1bfd38c7f99434
MISC metadata.xml 361 BLAKE2B 4661dce471924e095b993bcb2cd32627e08535138f7c2b65b7471342a27cddeda67733d87e50924bf9702594299b158318ac11c59f2d75f2df94880852e4d69e SHA512 3337957bcc132440bb973175a4974800601de71f3effa8dab48edf2847ecd91da8c4790f8a094505c11375700fd0241b9b3f8727a99c54b06de1c30a6e6cf8af
diff --git a/dev-db/citus/citus-12.1.5.ebuild b/dev-db/citus/citus-12.1.7.ebuild
index c485f555445b..1bbb3bc173b5 100644
--- a/dev-db/citus/citus-12.1.5.ebuild
+++ b/dev-db/citus/citus-12.1.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -28,5 +28,5 @@ DEPEND="${POSTGRES_DEP}
RDEPEND="${DEPEND}"
src_configure() {
- postgres-multi_foreach econf
+ postgres-multi_foreach econf --without-libcurl
}
diff --git a/dev-db/citus/citus-13.0.1.ebuild b/dev-db/citus/citus-13.0.1.ebuild
new file mode 100644
index 000000000000..d21d1b932005
--- /dev/null
+++ b/dev-db/citus/citus-13.0.1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+POSTGRES_COMPAT=( 15 16 17 )
+
+inherit postgres-multi
+
+DESCRIPTION="Open-source postgresql extension for clustering/multi-node setups"
+HOMEPAGE="https://www.citusdata.com/"
+
+SRC_URI="https://github.com/citusdata/citus/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+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 --without-libcurl
+}
diff --git a/dev-db/dbeaver-bin/Manifest b/dev-db/dbeaver-bin/Manifest
index ff5d7e04e81b..65aec5b90434 100644
--- a/dev-db/dbeaver-bin/Manifest
+++ b/dev-db/dbeaver-bin/Manifest
@@ -1,7 +1,7 @@
-DIST dbeaver-ce-24.3.2-linux.gtk.aarch64-nojdk.tar.gz 88491639 BLAKE2B 4d5332e9a885ff6caf0cafefc7a5f76990e87639e7838fecb1b30415ee1ddd45b95d3dd605308ed81a77987ac631668b3bfb83597e62ca2370761a0614c8e80e SHA512 2e441ea51f25124f56e5b2a0d06f146a323a038c838db4be90b3822f06cdf9c004f4b67c756f293d7cc10cd38184ad99881193c9863d743da4ca902526d97246
-DIST dbeaver-ce-24.3.2-linux.gtk.x86_64-nojdk.tar.gz 88525311 BLAKE2B fc4dd9c803d76042cc0ccc9f2af1387846b72f6e485986bb2df3748ea6a6d6bdaef0a94b06bd86e4d931f1b840371a238c0b1077860ec83faf62c65a9d106703 SHA512 7525c5a0288e0a5df068d91a99d471cab64525f9aa1e623564a1a668cc9a9a0bf22833c8b3f540c657953c23f8c1f066b7d8a349c7facfd3ff29d9d3e6c36307
-DIST dbeaver-ce-24.3.3-linux.gtk.aarch64-nojdk.tar.gz 88658617 BLAKE2B 82a68747bf70692f9489d340e45a3ff860ad5c612400c6c040377cb8087accc798dd1689c8f573f60ff5ef586a04bb543d6e8eb621371d6973cf58ae9a28c428 SHA512 71f978eecdf5fb634f6a3c164cc8b7301508847efb5faa9efb0745278acc0f74b6e9a973fb9127b06c2854d1ab433842bd2882872cbd42c8f6375489f9440f84
-DIST dbeaver-ce-24.3.3-linux.gtk.x86_64-nojdk.tar.gz 88694419 BLAKE2B 5e63f5c82b1d57c0c2f9e76c39aff4837e7e1ff5da0147f9b5f089985a380f1f901cc2f752b90dfe65643a9a9f097b6f4579b363011be4436adeab9d3f2cbe6b SHA512 14c9ec29933b7235e60df717348e1ed0736e8e67d64fa09c31560a22a7072f39179ecf4637b65636733fe27c5872f702063c4dcbb2048ea0c94a6670e059405f
-EBUILD dbeaver-bin-24.3.2.ebuild 1347 BLAKE2B 01478ada7aeded7d676cbf06adb46e916794c89d3bd870fb01393a62d35fbdb0570917030da9c840d77f231fae57b07cc9d464284e11f2cd07fbd12986a537d7 SHA512 5e1d108d48417cb3fda5e27be9c7e9b9c121ec1d36450c411994c59b73500bd4b2370f2a5316b90ead620334c5a8cf1ab494ad56bcb7c2026a681a80de7ae499
-EBUILD dbeaver-bin-24.3.3.ebuild 1347 BLAKE2B 01478ada7aeded7d676cbf06adb46e916794c89d3bd870fb01393a62d35fbdb0570917030da9c840d77f231fae57b07cc9d464284e11f2cd07fbd12986a537d7 SHA512 5e1d108d48417cb3fda5e27be9c7e9b9c121ec1d36450c411994c59b73500bd4b2370f2a5316b90ead620334c5a8cf1ab494ad56bcb7c2026a681a80de7ae499
+DIST dbeaver-ce-24.3.4-linux.gtk.aarch64-nojdk.tar.gz 88952315 BLAKE2B 6ae1b7f68dd2f2cbc63ad933c5f7a71a1bd73307e1691412e68e72c387a76b85c28adfbe9d5ad210c5af907dd4b34e2f9b32a7c6e6bba71d4ca6a5accd0e84ae SHA512 9786d74a7bbaae5961afc65f2084eb45c1566bb095fb0f7953d901638ba3675f63409c32d1aaaa850408debb75618d738cf30594f9c79a10b66524697805cf8e
+DIST dbeaver-ce-24.3.4-linux.gtk.x86_64-nojdk.tar.gz 88986573 BLAKE2B b2c01856323f58e5e3454e3888c7532ac74252c77be887deae5cd4e28e58ff81c5dd65cdd95f2b2d095d7f63a09053c828cd9044ad0429fac84076d8785ddafa SHA512 0ae85fe8f3bdc7299b1b7ed069ee3aca7902e4302e750824b89ddf8a6211b763227f547546c9f5bb533e3f2ecee1955a475b1f64f62838b5675fdce07c7255fb
+DIST dbeaver-ce-25.0.0-linux.gtk.aarch64-nojdk.tar.gz 89067069 BLAKE2B 3d22f2546a422570262b002a32ff1dadaebdca90286b28f67c77e712569d041c53375b2b00a5aa7751e65f810eb6be7af0853381bbc1f22aa9bf0e6a1c08dc5b SHA512 1ceb7b03a1c76182e02f267708e79ae3092e1c86017e5f66f754a37665e74a92d5cd4a3084f8966e0d4c79cd78b04a3c6e86f7fb40ac7988c82275a39254326f
+DIST dbeaver-ce-25.0.0-linux.gtk.x86_64-nojdk.tar.gz 89097853 BLAKE2B 5a41745c9b496ed61b29c494e1ee14942c490e930f1dd7653f6792591508bf2a3e74aae076544fd89f00eb3e747f5701789ecec1ba99f97c23f03d56e25664e5 SHA512 5d8f602533b0f0357ff2df22ccc4326a19321d884e7c7c4eb0850cd72819f562f8ecde37c49677ce363fbd53cc6995fda29807f45c964b6a26926c1741bc8ed6
+EBUILD dbeaver-bin-24.3.4.ebuild 1347 BLAKE2B 01478ada7aeded7d676cbf06adb46e916794c89d3bd870fb01393a62d35fbdb0570917030da9c840d77f231fae57b07cc9d464284e11f2cd07fbd12986a537d7 SHA512 5e1d108d48417cb3fda5e27be9c7e9b9c121ec1d36450c411994c59b73500bd4b2370f2a5316b90ead620334c5a8cf1ab494ad56bcb7c2026a681a80de7ae499
+EBUILD dbeaver-bin-25.0.0.ebuild 1347 BLAKE2B 01478ada7aeded7d676cbf06adb46e916794c89d3bd870fb01393a62d35fbdb0570917030da9c840d77f231fae57b07cc9d464284e11f2cd07fbd12986a537d7 SHA512 5e1d108d48417cb3fda5e27be9c7e9b9c121ec1d36450c411994c59b73500bd4b2370f2a5316b90ead620334c5a8cf1ab494ad56bcb7c2026a681a80de7ae499
MISC metadata.xml 444 BLAKE2B d614defd513043df0e48068edb26a12e87836aeb5147088e7d6133a7a1c0082ed2ba21019c0685a8a445f914e489e3dc6a1f26117ea9d186991bc7dd9f2db495 SHA512 731b4bc1af75124f7e1e78870c9f689acebf36960a741b1f4be24b5179de19b26fc982276bc115216c40d0789b048e6db900ad33e945ec2b94b471366f13db22
diff --git a/dev-db/dbeaver-bin/dbeaver-bin-24.3.2.ebuild b/dev-db/dbeaver-bin/dbeaver-bin-24.3.4.ebuild
index 6884c8f5a48a..6884c8f5a48a 100644
--- a/dev-db/dbeaver-bin/dbeaver-bin-24.3.2.ebuild
+++ b/dev-db/dbeaver-bin/dbeaver-bin-24.3.4.ebuild
diff --git a/dev-db/dbeaver-bin/dbeaver-bin-24.3.3.ebuild b/dev-db/dbeaver-bin/dbeaver-bin-25.0.0.ebuild
index 6884c8f5a48a..6884c8f5a48a 100644
--- a/dev-db/dbeaver-bin/dbeaver-bin-24.3.3.ebuild
+++ b/dev-db/dbeaver-bin/dbeaver-bin-25.0.0.ebuild
diff --git a/dev-db/duckdb/Manifest b/dev-db/duckdb/Manifest
new file mode 100644
index 000000000000..178239fcf7eb
--- /dev/null
+++ b/dev-db/duckdb/Manifest
@@ -0,0 +1,5 @@
+DIST duckdb-1.2.0.tar.gz 89762895 BLAKE2B 37f5fa8abb09bb6d9a0b798efaca65170742dbb6aafd32b3420e76eb9ea662a84ba339e62bdb86217a83a2c76df41e4d9838fa573413e196de27a8d5308a5251 SHA512 f5bca7a3b6f763b4b1a1f39e53c6f818925584fb44886e291ac3546fe50de545e80d16b4120f0126020e44b601a1b9193f4faad7a3dc8799cda843b1965038f2
+DIST duckdb-1.2.1.tar.gz 89810599 BLAKE2B b6e9a9b55057d6813d506437ecbd3593f5d8d82068243dece6153564376df4c4d1712a8857a904dba17cee22e79f55cc677b45e94ca6084f1d744279e4b797f7 SHA512 7e2ec4f6d6be6d500b148bd845cc51fe8985190eed8ab6f6fe79012c216cad5592ab3329e2df6b091abcc6ea8937d66f47272baead798c7d711e5d73aa9ffaa7
+EBUILD duckdb-1.2.0-r1.ebuild 520 BLAKE2B 797b2f4d78522d5a741744087cf7c320ada20b3f0fe10f0965a50826e32238e6132ddc0aa0244beacd75ae26e1684e7a7aaf21aa7459c718a0384247503184c0 SHA512 162ea34b3e253b583eb4d873c511bd4349f7cd81b197da193b3e6e60c283995249d998eab32dc88dbd06888dea949871dcd25473f5973bd6f09a7971b1e73e52
+EBUILD duckdb-1.2.1.ebuild 621 BLAKE2B 71e1aabc6ab69bf9dc35bea3e9e6947f624f804837ca6dfa8773fd683bc1e0047f211d17666c21b7025747cfccf8b60d8e4dcf689a705a850ace2b6023f8d14d SHA512 a171712712a77e018008d63db2654b26dc319b285893f354aaaafa0711c7f54482b9d228e72c871a3d705d9acf54cd5a26c725ac1db16e449918ff9843fe5aa8
+MISC metadata.xml 326 BLAKE2B fb7c10c555b66099be0d17b099611ce88cc3ed4793ebd5712daa4de6f77d337db956af56709507134cdc86bc11f253a71255aa9edc75105b95f59ab87c31fb76 SHA512 92f54bebc5edd1a38c0e10d876666759e8ca386335868e4c2fbbcf613434dae5dad4a687384e2c445ac1018f58aeb91c065cba9434ed106d28f11ccfe5b91b2a
diff --git a/dev-db/duckdb/duckdb-1.2.0-r1.ebuild b/dev-db/duckdb/duckdb-1.2.0-r1.ebuild
new file mode 100644
index 000000000000..9e3138ba3787
--- /dev/null
+++ b/dev-db/duckdb/duckdb-1.2.0-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="high-performance analytical database system"
+HOMEPAGE="https://duckdb.org https://github.com/duckdb/duckdb"
+
+SRC_URI="https://github.com/duckdb/duckdb/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+
+SLOT="0"
+KEYWORDS="~amd64"
+
+RESTRICT="test"
+
+src_configure() {
+ mycmakeargs=( "-DINSTALL_LIB_DIR=/usr/$(get_libdir)/" -DOVERRIDE_GIT_DESCRIBE=v${PV} )
+ cmake_src_configure
+}
diff --git a/dev-db/duckdb/duckdb-1.2.1.ebuild b/dev-db/duckdb/duckdb-1.2.1.ebuild
new file mode 100644
index 000000000000..d1cdf950958f
--- /dev/null
+++ b/dev-db/duckdb/duckdb-1.2.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="high-performance analytical database system"
+HOMEPAGE="https://duckdb.org https://github.com/duckdb/duckdb"
+
+SRC_URI="https://github.com/duckdb/duckdb/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+
+SLOT="0"
+KEYWORDS="~amd64"
+
+RESTRICT="test"
+
+src_configure() {
+ mycmakeargs=( "-DINSTALL_LIB_DIR=/usr/$(get_libdir)/"
+ "-DOVERRIDE_GIT_DESCRIBE=v${PV}"
+ "-DBUILD_EXTENSIONS='autocomplete;icu;tpch;tpcds;json;jemalloc'"
+ "-DCXX_EXTRA=${CXXFLAGS}"
+ )
+ cmake_src_configure
+}
diff --git a/dev-db/duckdb/metadata.xml b/dev-db/duckdb/metadata.xml
new file mode 100644
index 000000000000..b54c09ddad0f
--- /dev/null
+++ b/dev-db/duckdb/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>patrick@gentoo.org</email>
+ <name>Patrick Lauer</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">duckdb/duckdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-db/freetds/Manifest b/dev-db/freetds/Manifest
index ba7f400610e2..7e80597b8f9f 100644
--- a/dev-db/freetds/Manifest
+++ b/dev-db/freetds/Manifest
@@ -1,7 +1,5 @@
-DIST freetds-1.4.17.tar.bz2 2401147 BLAKE2B 7155f902043411e57a9244c16bae49aa095d1f6af0b40bd1dc1e6949b3d78b3c8e58a7b6b2284ebac9e7b26920485a8ae12b691cc838410835786be51f027c89 SHA512 df5804a4bea20f995ecd3ef3ae4b898b9d9b32af6827aa2bada95008c8b909b682779c6776efb0d778615e21ac7af20b4aa0d1518a7a0d50bb793f4688a0e1a9
-DIST freetds-1.4.23.tar.bz2 2402595 BLAKE2B aca65226d09ff95094c79330f10d19a5e8336222e5b19706d8c602405ddab4541e4c34da1c40b3c1765de1761f9a58a096250f22d53e2b4e13758b664ce7db36 SHA512 9b51b21d9c5dc7cac3d9fdccb3a600a6b3b2a0df6f7a0396497ba3377c9a6925b3e4ea3dfbb671bd4563c321692bea82c6f70c2ccefb30eaa0d006ebd3aac249
DIST freetds-1.4.24.tar.bz2 2402973 BLAKE2B ba6f31fe117c11abc0e0365bf0d10061e793bb9313774a5e2d9b6766fef54abbec6c1c27480a875438008a592f6ab9942bd41a19a4dd7388ca3c2728bf1b2a65 SHA512 f564c81abaec28a6c55476121fff47e8957af654197ed679cfebdbeaa4dfe5d0f9d5f900cd03b4260efc3da3f9cd41ee370fadb6b59da9f41d9006760e9609d9
-EBUILD freetds-1.4.17.ebuild 1443 BLAKE2B 50839c8c282f5dd4a1f6464d62ff594a37ca58523b40dc959c770808166be50eb6260c05c0a3f595eb840ab9330e74a3408a1bd4d89fc4f0e67b6f4a1e7ef059 SHA512 c381099fcf8decf905eb5922f7ec9bba6e8cc2d240bc6d8bdd1b30b5d76b0e76c17d9d71b386336a28f7b52b7f1dbdc9acb65b285ad1aad58f00044d8edd1120
-EBUILD freetds-1.4.23.ebuild 1716 BLAKE2B 2523ac3919aad8090761937e0a49f21d6b0def7582a30a3978d00a1737340ab76c0164e7d4e33056083957fe0607ba108acdfe0c55ebe42d7ccebbebaca5b32c SHA512 c23816f7be243364aefea7061a01811d185dd7f3ed554284447335f95b8678d0a5e000f1aca29ee998527952f5174b8ab60e9b9a8eb7a833d95d59149a1acc01
+DIST freetds-1.4.26.tar.bz2 2404182 BLAKE2B 9a15fb88fa8b34824861b4542a73e17cac6ada13889743487245504e7258b9db3def10bbc9a47402d76108b4571e07019f09b2eff3a951c2c95aea883e4be3f6 SHA512 19a9bf4ed3789bd3e9b8a182df1bf0fa373d3dd156a3e88256c350915a93a7505d48c9f50d8a6b6d2c6a3a01bf58ed4e7b2aa118df8180da7b01a4bef770387a
EBUILD freetds-1.4.24.ebuild 1709 BLAKE2B 7d65d043aabf8a279078fb9289dce007be1e24f11135d10dc36b32de1b0252dcc2e649c7813d890e0405bedb309eabd26e17f00cd33c4b9580eb3b4227cc8ea4 SHA512 b32a2f90814bb85a0560ef6b978a07d1c84848b6814615288d6cf233e14bacbdbaf02745d66020ca0aef4d48178efc92640538eac669639eacd15041b32fb5bc
-MISC metadata.xml 307 BLAKE2B ef2023a0b7e091f47fa6e6e8c225a905e7456cbcccedaab86c3c9aa237eeaf87e5cafed83650a6ca569b3cc70bcd14ad0badabd0e4bd1739b619dbd3c3877de4 SHA512 e5489d7a456f904586f31a9c1e4b51a83d6db0ad27a7964df0ddf5a2cf75d3ba1e22fd2765d25540987e35932005968aa321dee761b64550dab27620ab9be3d7
+EBUILD freetds-1.4.26.ebuild 1740 BLAKE2B 0512f336b5c07ccca67ba483bfa07a4628af3f58643688202a2261c0ee510514583f6d9cd36401585646cf266a51abb736e5596ad7d0b31c5a7c47fd8fbcb647 SHA512 36bc5250525eb0a7dbc97795197bf146eba538798a46b25a775efb4d95ab80cd677749b0e68f932b6eb59d37be44b0cf95133af71cf2b8c2e30f2cf63a67569d
+MISC metadata.xml 497 BLAKE2B 61a5625cb9ba5c27423b5296f359fcbaec867b1cbcac63b160e4c68ff94f4ef2875a38082c3143e46848faf59030033efde9b10a25a8ee09ff35e229a1dca248 SHA512 67525810cf430907bbf63db81865b99c5d42c91bf7ad0f863d062ad5a0e78d1ec19d642ba93ef195e57297ee34d6e5102babdce1b5fb13567c6ce933502e811c
diff --git a/dev-db/freetds/freetds-1.4.17.ebuild b/dev-db/freetds/freetds-1.4.17.ebuild
deleted file mode 100644
index 223ac9092819..000000000000
--- a/dev-db/freetds/freetds-1.4.17.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Tabular Datastream Library"
-HOMEPAGE="https://www.freetds.org/"
-SRC_URI="https://www.freetds.org/files/stable/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-macos"
-
-IUSE="debug gnutls iconv kerberos mssql iodbc odbc ssl static-libs"
-# iODBC and unixODBC are mutually-exclusive choices for
-# the ODBC driver manager. Future versions of FreeTDS
-# will throw an error if you specify both.
-REQUIRED_USE="?? ( iodbc odbc )"
-
-RESTRICT="test"
-
-COMMON_DEPEND="app-alternatives/awk
- gnutls? ( net-libs/gnutls:= )
- iconv? ( virtual/libiconv )
- iodbc? ( dev-db/libiodbc )
- kerberos? ( virtual/krb5 )
- odbc? ( dev-db/unixODBC )
- ssl? ( dev-libs/openssl:0= )"
-DEPEND="${COMMON_DEPEND}"
-
-# bind-tools is needed because the osql script calls "host".
-RDEPEND="${COMMON_DEPEND}
- net-dns/bind-tools"
-
-src_configure() {
- econf \
- --enable-shared \
- --disable-static \
- $(use_enable debug) \
- $(use_enable iconv libiconv) \
- $(use_enable kerberos krb5) \
- $(use_enable mssql msdblib) \
- $(use_with iodbc) \
- $(use_with odbc unixodbc "${EPREFIX}/usr") \
- $(use_with iconv libiconv-prefix "${EPREFIX}/usr") \
- $(use_with gnutls) \
- $(use_with ssl openssl "${EPREFIX}/usr")
-}
-
-src_install() {
- default
-
- find "${D}" -name '*.la' -delete || die
-}
diff --git a/dev-db/freetds/freetds-1.4.23.ebuild b/dev-db/freetds/freetds-1.4.26.ebuild
index 28268059925d..f70647b245a1 100644
--- a/dev-db/freetds/freetds-1.4.23.ebuild
+++ b/dev-db/freetds/freetds-1.4.26.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ DESCRIPTION="Tabular Datastream Library"
HOMEPAGE="https://www.freetds.org/"
SRC_URI="https://www.freetds.org/files/stable/${P}.tar.bz2"
-LICENSE="GPL-2"
+LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-macos"
IUSE="debug gnutls iconv kerberos mssql iodbc odbc ssl static-libs"
@@ -15,11 +15,11 @@ IUSE="debug gnutls iconv kerberos mssql iodbc odbc ssl static-libs"
# the ODBC driver manager. Future versions of FreeTDS
# will throw an error if you specify both.
REQUIRED_USE="?? ( iodbc odbc )"
-# Nearly wired up as of 1.4.23 but had link failures
+# Nearly wired up as of 1.4.26 but had link failures like
+# all_types: hidden symbol `tds_convert' isn't defined
RESTRICT="test"
-COMMON_DEPEND="
- app-alternatives/awk
+DEPEND="
gnutls? ( net-libs/gnutls:= )
iconv? ( virtual/libiconv )
iodbc? ( dev-db/libiodbc )
@@ -27,33 +27,35 @@ COMMON_DEPEND="
odbc? ( dev-db/unixODBC )
ssl? ( dev-libs/openssl:= )
"
-DEPEND="${COMMON_DEPEND}"
# bind-tools is needed because the osql script calls "host".
RDEPEND="
- ${COMMON_DEPEND}
- net-dns/bind-tools
+ ${DEPEND}
+ net-dns/bind
"
+DOCS=( {NEWS,README}.md )
+
src_configure() {
- econf \
- --enable-shared \
- $(use_enable debug) \
- $(use_enable iconv libiconv) \
- $(use_enable kerberos krb5) \
- $(use_enable mssql msdblib) \
- $(use_with iodbc) \
- $(use_with odbc unixodbc "${EPREFIX}/usr") \
- $(use_with iconv libiconv-prefix "${EPREFIX}/usr") \
- $(use_with gnutls) \
+ local myeconfargs=(
+ --enable-shared
+ $(use_enable debug)
+ $(use_enable iconv libiconv)
+ $(use_enable kerberos krb5)
+ $(use_enable mssql msdblib)
+ $(use_with gnutls)
+ $(use_with iodbc)
+ $(use_with iconv libiconv-prefix "${EPREFIX}/usr")
+ $(use_with odbc unixodbc "${EPREFIX}/usr")
$(use_with ssl openssl "${EPREFIX}/usr")
+ )
+ econf "${myeconfargs[@]}"
}
src_test() {
# These tests need a running database.
local XFAIL_TESTS=(
corrupt dataread dynamic1 nulls
- t0001 t0002 t0003 t0004 t0005 t0006
- toodynamic utf8_1 utf8_2 utf8_3
+ t000{1..6} toodynamic utf8_{1..3}
)
emake check XFAIL_TESTS="${XFAIL_TESTS[*]}"
@@ -62,5 +64,5 @@ src_test() {
src_install() {
default
- find "${D}" -name '*.la' -delete || die
+ find "${D}" -type f -name '*.la' -delete || die
}
diff --git a/dev-db/freetds/metadata.xml b/dev-db/freetds/metadata.xml
index 778555752459..9c4e377a99c7 100644
--- a/dev-db/freetds/metadata.xml
+++ b/dev-db/freetds/metadata.xml
@@ -3,6 +3,9 @@
<pkgmetadata>
<!-- maintainer-needed -->
<upstream>
+ <bugs-to>https://github.com/FreeTDS/freetds/issues</bugs-to>
+ <changelog>https://github.com/FreeTDS/freetds/blob/master/NEWS.md</changelog>
+ <doc>https://www.freetds.org/docs.html</doc>
<remote-id type="cpe">cpe:/a:freetds:freetds</remote-id>
<remote-id type="github">FreeTDS/freetds</remote-id>
</upstream>
diff --git a/dev-db/influx-cli/Manifest b/dev-db/influx-cli/Manifest
index 38d52dcd0f93..cce954ccec03 100644
--- a/dev-db/influx-cli/Manifest
+++ b/dev-db/influx-cli/Manifest
@@ -1,4 +1,7 @@
DIST influx-cli-2.7.3-deps.tar.xz 52915924 BLAKE2B 38ca630eb4445dfdd66ed47362cbad220e727c8ddab64eb262e4859577155038650e5d14fcdc6fd8f44c541db07d1b79503c7d9ec5fdd52595198293edf3850e SHA512 c2fa4b7d5d744a85de11f97e3172c9d51b2c1c7b2e31d35fbd15a6ba2b6c12cd4d265216ced0bd27d150d5d3ee619e7d972b67c63cfdbdfdfb69d84d966d881c
DIST influx-cli-2.7.3.tar.gz 442354 BLAKE2B 3c69e6a2510a4b82830134b930ebc62446848f19cad302f35796853cebd53002963a2d9015512dbf60a4a24e86f237af1ce62c698231150a66331cd8718f2c69 SHA512 d2ffd56c7a1dee24e48afdf487e79b3f125f897fe1c642cccf64a9544134dd6692ebd40415624418597341c16c1afbd444b949c9e3d1bb825ebed5e3f8392dfa
+DIST influx-cli-2.7.5-vendor.tar.xz 2851976 BLAKE2B 7c408252255bfe2dd1fbe203c47bc442925ca0a15dfa017ffb387ed8f038166fe91031e2bb497eb97a5cc3112935b56290cf85eeba64fad8d4164cc10f765372 SHA512 44d6d9ea60b3c3dac4d93d1092c5f0d8681b314e16d7a3a627ed29c378a5dec65a96626297d51e23989d091993c8c0bdac4469e712228c9a1088a6568098a432
+DIST influx-cli-2.7.5.tar.gz 443950 BLAKE2B 2e5b3e046683ba928269e1cc2d4a8d7664e0f71ae3cca84f719ccdb0902a5105d61aedf323c16f64e14e725163c01aeab41ad344d39cde276d25e866149ff1f9 SHA512 cae26640e7382aa22a4a7ed024cd62f098f592c1be98bec7d1469c0e1ccdcb5e3eee3c0dd08d4ee972e16e96c054e6c8f0cdfcfe27ce88e939219196dada9d67
EBUILD influx-cli-2.7.3.ebuild 607 BLAKE2B c4ba4dee85c09e92d79141901a4e819ee2c8adb2b6336ea407e81ccc44788e6327b43d5ae5ece9de6cf1abd8831d6357218ca33ee358183075785b8958110d19 SHA512 c84b3fef27f685c483db75447708ab70faf36b50893a3c07046669b30a4c7c9cbfe4973bec0547dc5771a4b762f124010257dfa97c621b9dd9bd1b6907e1e261
+EBUILD influx-cli-2.7.5-r1.ebuild 916 BLAKE2B b2fcd2e85294733523d00ee23836c39515b1650276926360c86c4f554c72836e4d41ac47c15d3d1082c9a9e459f2ea582dee5ab80b91797ffe0ee7768890f93c SHA512 7c35335c5e53de8ebcbfe266906512bbac574d4ade26063744d60aaba6bb113947a0ffefb299c4e94be6bb18d2eed739dc4c1d93735d8a08f3d67625be8a945a
MISC metadata.xml 335 BLAKE2B ccdc9654f7819519bea209895c0a001e37c8297a7de8a55e283ab6ba9427fa4838c04f2d93f303b9d510e72538d076b7c768689be13ce9a384ab645c41cdf25f SHA512 9d5fafd31f2aa729643aa0c2535a0d2f35019706ae246fe5b1d85a388bdfb006a676853a29ea601e042fd39dcb6a4007d94176793d79eb50d9ba632e3c11aa5e
diff --git a/dev-db/influx-cli/influx-cli-2.7.5-r1.ebuild b/dev-db/influx-cli/influx-cli-2.7.5-r1.ebuild
new file mode 100644
index 000000000000..06363cd9be0e
--- /dev/null
+++ b/dev-db/influx-cli/influx-cli-2.7.5-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module shell-completion
+MY_PV="${PV/_rc/-rc.}"
+
+DESCRIPTION="The command line for influxdb"
+HOMEPAGE="https://github.com/influxdata/influx-cli"
+
+SRC_URI="https://github.com/influxdata/influx-cli/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://gentoo.kropotkin.rocks/go-pkgs/${P}-vendor.tar.xz"
+
+LICENSE="Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+# Previous versions ship they own client
+DEPEND="!<dev-db/influxdb-2.0.0"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ unset LDFLAGS
+ emake
+
+ cd bin/$(go env GOOS)/$(go env GOARCH)/ || die
+ ./influx completion zsh > influx-completion.zsh || die
+}
+
+src_install() {
+ cd bin/$(go env GOOS)/$(go env GOARCH) || die
+
+ dobin influx
+ # bash ones are provided by bash-completion package
+ newzshcomp influx-completion.zsh _influx
+}
diff --git a/dev-db/litecli/Manifest b/dev-db/litecli/Manifest
index 6027c8b38c44..7c23793733ef 100644
--- a/dev-db/litecli/Manifest
+++ b/dev-db/litecli/Manifest
@@ -1,5 +1,5 @@
-DIST litecli-1.12.3.gh.tar.gz 884895 BLAKE2B eb4aeb8e268ae5d878aee960be68d86085ee87a1089d2f80e1f7be01c31b030ce12432656452867efc9a5b915b1c15ae69d1ab9b461a16586a1d76e001e4d51a SHA512 2b9dda031984d142a9341b19446d2cca366be98058ff57874e66fc60ee936b27f0b2900d7b00dffed058fd985028236148594372dac6a0010894d0502d7db04a
DIST litecli-1.13.2.tar.gz 888874 BLAKE2B 88880027a9f6b30ce266c3e2989379121229a6332e9841822876c7ae76560f6b5b758cea2e7fac1b8355c1070e33f48fa6d18da329724474eb508fb9687535f1 SHA512 c1134e86d60390f70553984cc6c4bf166879c08f225da8162ea0c27e579b65051cb4bbc51be5894967f09bef807d1c721e6d3550ecfe2a25c7f73eb226373e73
-EBUILD litecli-1.12.3.ebuild 934 BLAKE2B e9714145a29e3e0f83b5362a46434f996a670affa564246a8d3bbc1dc979c42db1b7c872bef61063c1bb57c29bc92cd599989366356c7d48cc910164c8f55824 SHA512 d426940c7c7d598b77c1321fa39401cc79bcbf2bf5b4acc9ca7d5cc5b119026e401030d5ec72e4ffe9aa01d0937a84684c3ac8c6166859bc3cf1c4109276a2df
+DIST litecli-1.14.4.tar.gz 894515 BLAKE2B 1cb218906a790802cc940f22cf8333d0b6645d0be4f8cc48f126459785768a7e53194500a104656a1458e72cd8b4f4996eb3f6978620950bcbc5c70f6cb4beb0 SHA512 8e380b5ffa3ebc9bed2a9a7ef1a250803fcac1531e9d7a324df2b62f82845083e588e8a5355128bdc48a294b0ac2937a91affbbd02bb26f50532fe1209bad593
EBUILD litecli-1.13.2.ebuild 937 BLAKE2B 509c095207acb63b2e99edd7b47f34fe9be8df1349450310267fbcfba557f224b35a4b7e03564d9b49ef4771011dbfeba9026a6f4b8dc67b00dd01a4d170f6be SHA512 22d103a2587909eb21cb59a5026e443915d6e161faba608ac6779bead147f15fd7b47d7360fd4678e050dc675253717f667076fa65f1f47b2b82cf9614f171de
+EBUILD litecli-1.14.4.ebuild 939 BLAKE2B f688b01c7e676d2f853e4bd8baf7400a42667f9625bbb7470bee6d1e65139eaff6dca7e76bf86721a4c01d6f9bcdef5817e561bfa857cb2e3662f3c65901f00b SHA512 8066451e91795ecef521fbd44861ab55c266de0c930ad6246d262e60de888913f3a80039dcfd859717fd7c809cd23bf248a3b1c1ec695ed16291282be986253f
MISC metadata.xml 558 BLAKE2B d0cc893d86444b930e255201d88d240ff83d534ffd502065bac82633b1575b175a430b795cc7cec00c31cbea33880f452b379361b5ea5abddd5ee386a12ee17b SHA512 44172f757590bb2c27a00b8d919c3f994f7f28b88c08ecc0b3d63d145fc5e773656b762a3997f512d61e1563826a62a87f9eaa2107063db422e3f100347e912b
diff --git a/dev-db/litecli/litecli-1.12.3.ebuild b/dev-db/litecli/litecli-1.14.4.ebuild
index d12d59e02200..0368b9e36c5a 100644
--- a/dev-db/litecli/litecli-1.12.3.ebuild
+++ b/dev-db/litecli/litecli-1.14.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,15 +6,15 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_REQ_USE="sqlite"
-inherit distutils-r1
+inherit distutils-r1 pypi
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}.gh.tar.gz"
+#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/mariadb/Manifest b/dev-db/mariadb/Manifest
index 0bf583bc4a94..f1df715c5c1e 100644
--- a/dev-db/mariadb/Manifest
+++ b/dev-db/mariadb/Manifest
@@ -7,17 +7,22 @@ AUX my.cnf.distro-client 643 BLAKE2B 5ffd286907ee28c92c85bbcc9a6266555733f1115f2
AUX my.cnf.distro-server 998 BLAKE2B a7f2977a96d394cb7e24d72d82a1c21095c4b55607e5ca4a2c10619278796c328931a5ec076c15b60afef370c2e5da02ca0c628f330e876b4d2c984eeb54df5f SHA512 d9ab6f7fdfe08e6c242f84410ec680ef6aa6778c4bd55fee67c644e1a7d997446d8ef2129be6fc9833d16fe40cf17e09cdf0cf015f06bb145bbf9cfecb51e882
DIST mariadb-10.11.10-patches-01.tar.xz 5300 BLAKE2B 842dd7002220ab6c164e50adcb2c0184752c1080e4c2c2609c431d8867b2ccf5b910b61d3f9a5f1e9b979d34423a5dbab1c3bced1e5d8b2af780addc9baddff5 SHA512 23a8e6d58927cadd39c84653069880039c4cbe6226d920550f3abdd995c0656013fef994cf4d23d34902c3cce7aa92a2819d5ef7f7c23ee9eca8a2720f4f6afa
DIST mariadb-10.11.10.tar.gz 104463642 BLAKE2B c6101ea5094c5bb78cf55ba37026d2e18f48e59a54eef1849051acc2c64111b82b9eba73b909fe0f07d111521433b42d84f6d155bcdf6e4ed50c186767b078db SHA512 3a8655384813ba515ce185e8a03427785fbea75b3226e2a1db02839dd66c22622ba27eeb2ca7b3d840bba43720a4393bbf71eb4b2b9e41ab837629e89a8b5976
+DIST mariadb-10.11.11.tar.gz 105754084 BLAKE2B d722867840e01faeff3a4d7b3cb8f18bec45c4cf1dc75b207c3068a943b7db3b6d956cd04b4d878658f4e3d721dd1e2c7429a9a2c10689b7ff602f33d18a929a SHA512 d9c154207a9f435ce08d5fbfe31814a739e577c656ef9996cf7e60c2cad8b4c07e2de8d94b6191fefa2b5cbde56437b586f85f144d3b4fcec8533449ed8411ac
+DIST mariadb-10.6-columnstore-with-boost-1.85.patch.xz 2848 BLAKE2B a0eb598ff34b65756cb730f0682d2c065adae828f04f7abe25255396be9c03788b232d7d2412d069b0887db94468d6cc378fbc077b9557f1bcb30d069b04a518 SHA512 843de29130e370b89c001b819d14647b95505e0aa1878728c8775e567527691c57c92e2040512aa55462eaf7859911981351e9c41ca81672bb9f68f8e8b86318
DIST mariadb-10.6.13-patches-01.tar.xz 4984 BLAKE2B 625d04310b02aad4fec4b633e9fab06636364f3c5ed3cb88e89acd4224786c3c9ed478b636ac699e77a888b73dab12cb279df41d6095e93e9c4ae3a159570286 SHA512 1e6ac167bfd77570e8ff5955aaa9a101d9387ac4857d856f1fb8c9a489c4c2a154481b9385584435e8dc95baef0dd3ef6831c7de2d6f004401cc338edcaa9d12
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.17.tar.gz 99067793 BLAKE2B 9df7592eb11a92fc4cbf4f1913e11f7ae652effde44358ee930726473a40fc26e46e02dc79e8b16068df37c82afe6b3141305624174d2e44c53107065c57b1ee SHA512 e07cf3e90d93d6139969875b11d6df3210b2c9f69257688b392843a7caed0dc3b75ba8904384fd0a55c24ece624e04b68c005a3731ee68f3957787a27b52ad56
DIST mariadb-10.6.20-patches-01.tar.xz 5304 BLAKE2B dd038f4f60e9410965111fd912b5c59ad9bfb32e1a5be96279bcae77716c1a190d69c7bb56427e4e432cd544826377dae6703323515ea5d3632f9d65fd553965 SHA512 f8b492af00ae9ee968bc5bc294739570dc915c98d43eb23970f2a2686b4a8d0e3fa8728f230b01c58743845916e43cde3345ca2bea6a2fa307e4b5b49c58e5c9
DIST mariadb-10.6.20.tar.gz 102697156 BLAKE2B 8bd665406c3462890a783276f4946c92d8824f9b134ffc912908b8404c83aad2342f86391ff1a827420e0dc7221adfa0203eb76fceb1cd3dffc53acc421242cc SHA512 de5465551fa837b6834b8435a5f04f894c2c2d5d0fdb7a05373728e166755a384f19cebd4e87910240929d3657d361b3943616246b4fcf0d97cf706e317ece96
-DIST mariadb-11.4.4-patches-01.tar.xz 5300 BLAKE2B dbebe4e5068c8ce56dc11527e37aea16727723d7ac9351865e8761e95209900ca50782ab2ce44fd86ad2e70f59b6ffa9c0758f158c48870e343ce37bca37b9fb SHA512 af51163404c699e7580ffd1fa931f86dafa7e6471641ba40f7072a04b6f1f4df0e89cc89926be6062810d18c55b97e3c696367ae483fbabab0227e69d7866f99
-DIST mariadb-11.4.4.tar.gz 111017581 BLAKE2B 0680c7d0a93b60dc02bd5cba49fcc050245606edc6a14aead7995b5f4baa15d731b857d5f1ca4bec2febd1b0a0062c5162ff9a8231397a40c9a740db4e5264d0 SHA512 dfa4c137d67c11c997bf67bceb27d072c51831f35e2ad438fe2f234cb530eb74e3283429aef620036db06943d7309dec36a4d015f578fd2a1f933637681841fb
-EBUILD mariadb-10.11.10.ebuild 42933 BLAKE2B 65fd393487e0a401e22a215cfd5846b2fda891a168c0bcdb2b2c53bee9acca7325e13262ad30242be2c4f06da52445bcb3d99b7b0387bbf8f7d5c449dcb6dfa6 SHA512 069b9f5f0ce373868fa86735a3619c795167e7aff660648d270f38dc607c7d6006466e24282c05d985c0f4f5486e18706d9f028ac6ee01bb5de208acc13d0746
-EBUILD mariadb-10.6.15.ebuild 42828 BLAKE2B 3d02a9a306819fee4d70481d97f8d2ae246864477a54a71199e69419f26e09ed20c7c3d7805940784c5d5e277d49c7b27b38211c001167b496324f6aec37681c SHA512 7ff2877e1254c86190595ac6283f1a2b37f63eb37c579fe53b1eb05e51a7ea1f8dae9444e31964bb7b0caee03524d74f5bb3d03aebe6ea4ea222bd82f781ec64
-EBUILD mariadb-10.6.17.ebuild 42881 BLAKE2B 1aa3df34c120f431a6713ee196310f4fff3357a9309ea2f70bbfeb5e03eb25e15941c1cd6501ac91222f28c71b2f5f8eda3a989e74d4496552648a4d967a330d SHA512 9287cce1af28095569a5fe8464fbd2585b045b537d19df86fe96183ef72bce3282a74f315af49c6fc49f4f3674a24652f433c0091c7f2440bc65d8a09e72188e
-EBUILD mariadb-10.6.20.ebuild 42758 BLAKE2B 0594e11bdae6fe1417253d099ed2ddd5a6f9c8303b203950a2f027bcde8a092ef3e1715cf37d6cabf97a72a23ee92031bef26eeabef28b4f431a2dd0c4d005d1 SHA512 2fc023f42a4c2d40d4ae64af31515a656d4a8b0c20a9f2be3dcfae5630984747a216f6e748eb0548a36557adf9c8ec14c80699e908dc261e8c721d7da7f0ece4
-EBUILD mariadb-11.4.4.ebuild 42928 BLAKE2B e201fadfeaad71c0798a533c505f2caf63fb7a066d862bcf2747c0b132f4705af6d7fa76283099e470d21afa6404dff7522a42555e74cc6689f86a4bfac9a145 SHA512 9f22b43a551f7f30c00702e9bc59b4d1bd0bf25c5a33e5ef2eee155521fd72a844873bd07ae6407b44dce8fb1c99f68196c7e8e7cb99693654ea90cbaceeae39
+DIST mariadb-10.6.21.tar.gz 103982296 BLAKE2B 3ee32c333fcdf4f5514745095c9f168c94355c07e3388f9300f441ded4dfc97dc9f6b9b1c7958f78236614e11f73989c725cc19b3bd71d008a32dcbb9f639362 SHA512 fe74a6fbf409723d69b35481a57d00fb04a2c560ad503ae50ff7b9d41b650dda32fe997c50303428e79a546e5c7fe91872fe3436cc3b7323f13a7138e04f5a53
+DIST mariadb-11.4.5-patches-01.tar.xz 5712 BLAKE2B d155c2314908e14e2df3edb6b9410b62949d6562425c4f719b145553272e4b367c9a8503a63931c19ef0bfd6726685856dd78cd59672d489b70e460f00548ef9 SHA512 98381019ed4ad41bb52cb40842db8c6bd464d4b506926165aacd74a7c298cc819a6b4d5e6ab5750780bd273486118dfe6e8879d036537d996673431197d5d429
+DIST mariadb-11.4.5.tar.gz 112382453 BLAKE2B c6678b4ff0d087d73602956d345a222bbb8c27752fd9d6e0cf7edc77e02abfccfd3a5685158d61d3faeebd6830b546eeec8a23aee8d44d969a232c0a233ea2a1 SHA512 65b74e5443c2b7e8bc6a4c2a22838e3440bdbfef9c8fa6ed2b142e3ed0121d77a049c1054b05859ff8232386894ae0e7429d1a646ecf503e9c01c4952c83c51a
+EBUILD mariadb-10.11.10.ebuild 43115 BLAKE2B ef36833c80a522230eaf9578134c0a30555f0a1b78b49091c86206b592a8bc8e6ada385d43ea03acd02a36f7cd7d1e3a8fcd8cb70c878b92c01aaf2be99a38e7 SHA512 1e707d35a22d75553282b40f9ed8ad4fe5a6c078f926467034f3474bbd63f61314043c8706e74671a703093c50cbfb09863705ec869ccaa5c91b1f4515952218
+EBUILD mariadb-10.11.11.ebuild 43013 BLAKE2B d451149adaecdad5c7734a1e470d7e517bd4f78c834d9a6b45f1fb6aaaee40e8f82c83ede6b6faa1d0ff771384d55dca4495b43162b4ace7641474e8e7caef12 SHA512 9d860912c75ab776ef01624d339bfaaa1694f7b3bdaffc500479d9350e2c1d9fb540a99a1b32316955c6d1d62cadab8fdd89c680dea127df51e0eed74946323e
+EBUILD mariadb-10.6.15.ebuild 43161 BLAKE2B 527f38680dcc1819e2858afc63cfb43ed7228ff64f838d28055e674bf005f4365fa4d9e664a0c4686a17201c4ed461b8872a2845b7aedf9c3458b8689ce058cb SHA512 1e0e950453bca96b5158c0e73b04980ef122cf88aa6d19a40abe36a477e88d0de7422472d2565daaa1781da0cc6acca648a975977bc6afde5bd9ae2b4113ddec
+EBUILD mariadb-10.6.17.ebuild 43063 BLAKE2B 455c9dc50d0edb90eb994cea74af5294ab9a089871bf91b0300d16b1166d42637d27b8e7ff16fd1a22e9309f494f9578b663ae4497a220787398477f08aa0a52 SHA512 e139afbc3a85fdfab77c49e5793f8f2ec9f0d2838a3563bd7b19368c5effcb05e710a463713907472705ab28deaf3d65c054915bd164be9a2ac5f118e1f90d86
+EBUILD mariadb-10.6.20.ebuild 43085 BLAKE2B 6c40746b9c0ec218aa444bf2adb9a7fdd40038a059f83c91bfaad46a304a0a998006a859dae72c6ffdf3b402597d446edeff6b79ae2afc83061f75d12bb0b7a9 SHA512 c23ecfc9cef9294ed94a3ff90c6383ba42a41ddcc2671b2c0c66ff82813d84b07eda375e07aa8912e8d724f3190a7616b9da965f25383d8a06986e5353c582d6
+EBUILD mariadb-10.6.21.ebuild 42988 BLAKE2B 05b2114d5282ad6405a0d0a40c1dd7a23037081946577438234ca60686d0d8a9bcc599ecdf15f3093c095feb4410d9e5b860bfa49e511ca53148ddbbb62391a0 SHA512 89f028283c4145f219821eb548b369f887b2da62f914e930a367d1a32842d44249197669efb3090890e71e2942de3ae4254a6e5ca0524a5a744db91f870431bb
+EBUILD mariadb-11.4.5.ebuild 42895 BLAKE2B 857698694c86a3f432cdc38f9ae67691941ebaa1b40cc9e7db24223ac0c112e55f9dce52a15394730292cab58a502ccb2d3f153d3ae86ff765655ab0167b5119 SHA512 5c2e04d989fdcdb4498ca97825628bd42c31b031807ccf2804d1978070aacacf1ef8c79f7c9446c57a4615f779f265a9f1a00b19605a378aad1f86dbe1586f9f
MISC metadata.xml 2415 BLAKE2B 15e491cb0881203b21f66652af9e420582e3992a610bde08dfae2d076c417b298529eafd659adaa4cdeecd70b0c10c83796f8dfd8fbdede7489c48fdd2bdb015 SHA512 ecc641157ada5ad6d84b534b6a40e27e59ef428668d61f3908817735d31d4828dd0327343bf4ad13a5f6a1bc306cc46137388489176c3116f2a0e0946471b49b
diff --git a/dev-db/mariadb/mariadb-10.11.10.ebuild b/dev-db/mariadb/mariadb-10.11.10.ebuild
index e6a6d95ff35f..f5faf1ebd85e 100644
--- a/dev-db/mariadb/mariadb-10.11.10.ebuild
+++ b/dev-db/mariadb/mariadb-10.11.10.ebuild
@@ -14,6 +14,7 @@ HOMEPAGE="https://mariadb.org/"
SRC_URI="
mirror://mariadb/${P}/source/${P}.tar.gz
https://dev.gentoo.org/~arkamar/distfiles/${P}-patches-01.tar.xz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6-columnstore-with-boost-1.85.patch.xz
"
# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
@@ -123,7 +124,10 @@ RDEPEND="${COMMON_DEPEND}
!dev-db/mariadb:11.4
selinux? ( sec-policy/selinux-mysql )
server? (
- columnstore? ( dev-db/mariadb-connector-c )
+ columnstore? (
+ dev-db/mariadb-connector-c
+ !dev-libs/thrift
+ )
extraengine? ( jdbc? ( >=virtual/jre-1.8 ) )
galera? (
sys-apps/iproute2
@@ -220,6 +224,7 @@ src_prepare() {
eapply "${WORKDIR}"/mariadb-patches
eapply "${FILESDIR}"/${PN}-10.6.11-gssapi.patch
eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch
+ eapply "${WORKDIR}"/${PN}-10.6-columnstore-with-boost-1.85.patch
eapply_user
diff --git a/dev-db/mariadb/mariadb-10.11.11.ebuild b/dev-db/mariadb/mariadb-10.11.11.ebuild
new file mode 100644
index 000000000000..8a17a1d039a3
--- /dev/null
+++ b/dev-db/mariadb/mariadb-10.11.11.ebuild
@@ -0,0 +1,1344 @@
+# Copyright 1999-2025 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 eapi9-ver
+
+DESCRIPTION="An enhanced, drop-in replacement for MySQL"
+HOMEPAGE="https://mariadb.org/"
+SRC_URI="
+ mirror://mariadb/${P}/source/${P}.tar.gz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.11.10-patches-01.tar.xz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6-columnstore-with-boost-1.85.patch.xz
+"
+# 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 LGPL-2.1+"
+SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+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 )"
+
+# Be warned, *DEPEND are version-dependant
+# These are used for both runtime and compiletime
+#
+# libfmt-10 contains a bug which was fixed in libfmt-11, see
+# https://jira.mariadb.org/browse/MDEV-32815, bug 946074
+# libfmt-11.1 works with # FMT_STATIC_THOUSANDS_SEPARATOR
+# differently, bug 946924
+COMMON_DEPEND="
+ dev-libs/libfmt:=
+ || (
+ <dev-libs/libfmt-10
+ =dev-libs/libfmt-11.0*
+ )
+ >=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
+ !dev-db/mariadb:11.1
+ !dev-db/mariadb:11.2
+ !dev-db/mariadb:11.3
+ !dev-db/mariadb:11.4
+ selinux? ( sec-policy/selinux-mysql )
+ server? (
+ columnstore? (
+ dev-db/mariadb-connector-c
+ !dev-libs/thrift
+ )
+ 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 "${WORKDIR}"/${PN}-10.6-columnstore-with-boost-1.85.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-is-gold && tc-ld-force-bfd
+ # Bug #114895, bug #110149
+ filter-flags "-O" "-O[01]"
+
+ # It fails on alpha without this
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ # bug #945352
+ append-cflags -std=gnu17
+
+ 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_LIBFMT=system
+ -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
+
+ if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+ mycmakeargs+=(
+ -DDTRACE="${BROOT}"/usr/bin/stap-dtrace
+ )
+ 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 ver_replacing -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
+ 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.15.ebuild b/dev-db/mariadb/mariadb-10.6.15.ebuild
index da35494bb8d6..77f2113e1848 100644
--- a/dev-db/mariadb/mariadb-10.6.15.ebuild
+++ b/dev-db/mariadb/mariadb-10.6.15.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
@@ -11,7 +11,8 @@ inherit systemd flag-o-matic prefix toolchain-funcs \
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.13-patches-01.tar.xz"
+ https://github.com/hydrapolic/gentoo-dist/raw/master/mariadb/mariadb-10.6.13-patches-01.tar.xz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6-columnstore-with-boost-1.85.patch.xz"
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
LICENSE="GPL-2 LGPL-2.1+"
@@ -115,7 +116,10 @@ RDEPEND="${COMMON_DEPEND}
!<virtual/libmysqlclient-18-r1
selinux? ( sec-policy/selinux-mysql )
server? (
- columnstore? ( dev-db/mariadb-connector-c )
+ columnstore? (
+ dev-db/mariadb-connector-c
+ !dev-libs/thrift
+ )
extraengine? ( jdbc? ( >=virtual/jre-1.8 ) )
galera? (
sys-apps/iproute2
@@ -219,6 +223,7 @@ src_prepare() {
eapply "${FILESDIR}"/${PN}-10.6.11-gssapi.patch
eapply "${FILESDIR}"/${PN}-10.6.11-include.patch
eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch
+ eapply "${WORKDIR}"/${PN}-10.6-columnstore-with-boost-1.85.patch
eapply_user
@@ -365,6 +370,12 @@ src_configure() {
mycmakeargs+=( -DWITH_SSL=bundled )
fi
+ if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+ mycmakeargs+=(
+ -DDTRACE="${BROOT}"/usr/bin/stap-dtrace
+ )
+ 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)
diff --git a/dev-db/mariadb/mariadb-10.6.17.ebuild b/dev-db/mariadb/mariadb-10.6.17.ebuild
index d790e913d96a..7e0f8b9b9aa1 100644
--- a/dev-db/mariadb/mariadb-10.6.17.ebuild
+++ b/dev-db/mariadb/mariadb-10.6.17.ebuild
@@ -11,7 +11,8 @@ inherit systemd flag-o-matic prefix toolchain-funcs \
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"
+ https://github.com/hydrapolic/gentoo-dist/raw/master/mariadb/mariadb-10.6.16-patches-01.tar.xz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6-columnstore-with-boost-1.85.patch.xz"
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
LICENSE="GPL-2 LGPL-2.1+"
@@ -115,7 +116,10 @@ RDEPEND="${COMMON_DEPEND}
!<virtual/libmysqlclient-18-r1
selinux? ( sec-policy/selinux-mysql )
server? (
- columnstore? ( dev-db/mariadb-connector-c )
+ columnstore? (
+ dev-db/mariadb-connector-c
+ !dev-libs/thrift
+ )
extraengine? ( jdbc? ( >=virtual/jre-1.8 ) )
galera? (
sys-apps/iproute2
@@ -219,6 +223,7 @@ src_prepare() {
eapply "${FILESDIR}"/${PN}-10.6.11-gssapi.patch
eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch
eapply "${FILESDIR}"/${PN}-10.6.17-libxml-2.12.patch
+ eapply "${WORKDIR}"/${PN}-10.6-columnstore-with-boost-1.85.patch
eapply_user
diff --git a/dev-db/mariadb/mariadb-10.6.20.ebuild b/dev-db/mariadb/mariadb-10.6.20.ebuild
index b2c78c893b35..cd65ded471b8 100644
--- a/dev-db/mariadb/mariadb-10.6.20.ebuild
+++ b/dev-db/mariadb/mariadb-10.6.20.ebuild
@@ -14,6 +14,7 @@ HOMEPAGE="https://mariadb.org/"
SRC_URI="
mirror://mariadb/${P}/source/${P}.tar.gz
https://dev.gentoo.org/~arkamar/distfiles/${P}-patches-01.tar.xz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6-columnstore-with-boost-1.85.patch.xz
"
# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
@@ -21,7 +22,7 @@ S="${WORKDIR}/mysql"
LICENSE="GPL-2 LGPL-2.1+"
SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86"
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
@@ -119,7 +120,10 @@ RDEPEND="${COMMON_DEPEND}
!<virtual/libmysqlclient-18-r1
selinux? ( sec-policy/selinux-mysql )
server? (
- columnstore? ( dev-db/mariadb-connector-c )
+ columnstore? (
+ dev-db/mariadb-connector-c
+ !dev-libs/thrift
+ )
extraengine? ( jdbc? ( >=virtual/jre-1.8 ) )
galera? (
sys-apps/iproute2
@@ -222,6 +226,7 @@ src_prepare() {
eapply "${WORKDIR}"/mariadb-patches
eapply "${FILESDIR}"/${PN}-10.6.11-gssapi.patch
eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch
+ eapply "${WORKDIR}"/${PN}-10.6-columnstore-with-boost-1.85.patch
eapply_user
@@ -368,6 +373,12 @@ src_configure() {
mycmakeargs+=( -DWITH_SSL=bundled )
fi
+ if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+ mycmakeargs+=(
+ -DDTRACE="${BROOT}"/usr/bin/stap-dtrace
+ )
+ 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)
diff --git a/dev-db/mariadb/mariadb-10.6.21.ebuild b/dev-db/mariadb/mariadb-10.6.21.ebuild
new file mode 100644
index 000000000000..23869316a4c1
--- /dev/null
+++ b/dev-db/mariadb/mariadb-10.6.21.ebuild
@@ -0,0 +1,1345 @@
+# Copyright 1999-2025 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 eapi9-ver
+
+DESCRIPTION="An enhanced, drop-in replacement for MySQL"
+HOMEPAGE="https://mariadb.org/"
+SRC_URI="
+ mirror://mariadb/${P}/source/${P}.tar.gz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6.20-patches-01.tar.xz
+ https://dev.gentoo.org/~arkamar/distfiles/${PN}-10.6-columnstore-with-boost-1.85.patch.xz
+"
+# 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 LGPL-2.1+"
+SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+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 )"
+
+# 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
+ !dev-db/mariadb:11.1
+ !dev-db/mariadb:11.2
+ !dev-db/mariadb:11.3
+ !dev-db/mariadb:11.4
+ !<virtual/mysql-5.6-r11
+ !<virtual/libmysqlclient-18-r1
+ selinux? ( sec-policy/selinux-mysql )
+ server? (
+ columnstore? (
+ dev-db/mariadb-connector-c
+ !dev-libs/thrift
+ )
+ 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 "${WORKDIR}"/${PN}-10.6-columnstore-with-boost-1.85.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-is-gold && tc-ld-force-bfd
+ # Bug #114895, bug #110149
+ filter-flags "-O" "-O[01]"
+
+ # It fails on alpha without this
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ # bug #945352
+ append-cflags -std=gnu17
+
+ 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
+
+ if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+ mycmakeargs+=(
+ -DDTRACE="${BROOT}"/usr/bin/stap-dtrace
+ )
+ 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 ver_replacing -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
+ 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-11.4.4.ebuild b/dev-db/mariadb/mariadb-11.4.5.ebuild
index 70b4bbbc8a0a..574ca4b42667 100644
--- a/dev-db/mariadb/mariadb-11.4.4.ebuild
+++ b/dev-db/mariadb/mariadb-11.4.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ SUBSLOT="18"
JAVA_PKG_OPT_USE="jdbc"
inherit systemd flag-o-matic prefix toolchain-funcs \
- multiprocessing java-pkg-opt-2 cmake
+ multiprocessing java-pkg-opt-2 cmake eapi9-ver
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
HOMEPAGE="https://mariadb.org/"
@@ -21,7 +21,7 @@ S="${WORKDIR}/mysql"
LICENSE="GPL-2 LGPL-2.1+"
SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}"
-#KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
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
@@ -40,7 +40,7 @@ REQUIRED_USE="jdbc? ( extraengine server !static )
#
# libfmt-10 contains a bug which was fixed in libfmt-11, see
# https://jira.mariadb.org/browse/MDEV-32815, bug 946074
-# libfmt-11.1 works with # FMT_STATIC_THOUSANDS_SEPARATOR
+# libfmt-11.1 works with FMT_STATIC_THOUSANDS_SEPARATOR
# differently, bug 946924
COMMON_DEPEND="
dev-libs/libfmt:=
@@ -349,9 +349,9 @@ src_configure() {
-DSUFFIX_INSTALL_DIR=""
-DWITH_UNITTEST=OFF
-DWITHOUT_CLIENTLIBS=YES
- -DCLIENT_PLUGIN_DIALOG=OFF
+ -DCLIENT_PLUGIN_DIALOG=$(usex test DYNAMIC OFF)
-DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF
- -DCLIENT_PLUGIN_CLIENT_ED25519=OFF
+ -DCLIENT_PLUGIN_CLIENT_ED25519=$(usex test DYNAMIC OFF)
-DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC
-DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF
)
@@ -587,12 +587,12 @@ src_test() {
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" )
+ disabled_tests+=( "sysschema.v_privileges_by_table_by_level;0;Fails with network sandbox, see MDEV-36030")
if ! use latin1 ; then
disabled_tests+=( "funcs_1.is_columns_mysql;0;Requires USE=latin1" )
@@ -792,15 +792,10 @@ pkg_postinst() {
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
+ if ver_replacing -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
fi
fi
diff --git a/dev-db/mongodb-compass-bin/Manifest b/dev-db/mongodb-compass-bin/Manifest
index fe445d814c10..9081ae4f19ff 100644
--- a/dev-db/mongodb-compass-bin/Manifest
+++ b/dev-db/mongodb-compass-bin/Manifest
@@ -1,3 +1,7 @@
DIST mongodb-compass_1.45.2_amd64.deb 114271168 BLAKE2B ec330d75f86ec6bec81ffb57266b54833859785867e1fb375a1ae1f57de9a6fff7215da7f67766ed1bc603c4a12a43605701af8aa26e8672f57721abecd3403f SHA512 cd249a3bb7c3290031caba21af038281ca62a9a2aa4322f0dadc32411c1292c37f5f2d4cc1aa664e6d3c17fb5cbe366fc76d68304041758116f58064fe1bfb88
+DIST mongodb-compass_1.45.3_amd64.deb 114199008 BLAKE2B e3a3c79277757038dd36f5160e9ac8340cd701b9d34dec5c6c07473fea1c3dc59c419f30d3985f4818d61b8191d475a770630504bd24e8a0c02bbff19a5a6391 SHA512 25f0bd3130fab11cb71afa42ea63b8d2f5dc80eab28c615a12ed198580b3891bd9b02847ebe8dc4f92aa1329ef6f2232d6e1cb97f9b50fd1addfa9a8d9544f40
+DIST mongodb-compass_1.45.4_amd64.deb 114319260 BLAKE2B b9849d5d53002dafa4f8bb1ec2bd2950aeed935f8fbfde1f8c8c3927477673f48725b88d21ed7d5681dbdd63d85210444354a6c0b2d334f310ce2b1eb2ae7398 SHA512 457ee8891839db5d45f3aef388a18f8a8c17055ca936987af121a5d5108d7ce138f37ed1599bdc9fe8219aa9d0b61c204848cae8473542834ac1c42978c34e95
EBUILD mongodb-compass-bin-1.45.2.ebuild 1278 BLAKE2B d41adef1d811f150fd37013ad076bb0b2ff2e43c05626ca7767649ae5924ea7daa87ba3d5efd2148f988caf1306455bf51cbecc7bd3ddcbca05d1386a07a2d77 SHA512 2e99db9007159b2e4e4099b0b2aa66eecac496359df19a5c73556ebbb8bccb6bda93c8ef44bc13e348b332a0659d03496e9e36e06e5ca3f1d81feb38978951ee
+EBUILD mongodb-compass-bin-1.45.3.ebuild 1278 BLAKE2B d41adef1d811f150fd37013ad076bb0b2ff2e43c05626ca7767649ae5924ea7daa87ba3d5efd2148f988caf1306455bf51cbecc7bd3ddcbca05d1386a07a2d77 SHA512 2e99db9007159b2e4e4099b0b2aa66eecac496359df19a5c73556ebbb8bccb6bda93c8ef44bc13e348b332a0659d03496e9e36e06e5ca3f1d81feb38978951ee
+EBUILD mongodb-compass-bin-1.45.4.ebuild 1278 BLAKE2B d41adef1d811f150fd37013ad076bb0b2ff2e43c05626ca7767649ae5924ea7daa87ba3d5efd2148f988caf1306455bf51cbecc7bd3ddcbca05d1386a07a2d77 SHA512 2e99db9007159b2e4e4099b0b2aa66eecac496359df19a5c73556ebbb8bccb6bda93c8ef44bc13e348b332a0659d03496e9e36e06e5ca3f1d81feb38978951ee
MISC metadata.xml 334 BLAKE2B eab2f1899e5f4a2848417001fc41857c70844a4cbb01eea892f8a23b324c7faf0a11aa6066582add9e8493238728b3a4f6a3e57b676c7dd6a07484bb15c79909 SHA512 95bd0e74a4188839c2dcde628bd4635e6f216ffd1b54825571045c2199d8ae6e0a9fcaf93edfdf3506bb5b297fa720339b85780f8f910eb567e8e555004d0d5c
diff --git a/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.3.ebuild b/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.3.ebuild
new file mode 100644
index 000000000000..a6af371e3ef6
--- /dev/null
+++ b/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.3.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop unpacker wrapper xdg
+
+DESCRIPTION="GUI for MongoDB"
+HOMEPAGE="https://mongodb.com/compass https://github.com/mongodb-js/compass"
+SRC_URI="https://github.com/mongodb-js/compass/releases/download/v${PV}/mongodb-compass_${PV}_amd64.deb"
+S=${WORKDIR}
+
+LICENSE="SSPL-1"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+
+RDEPEND="
+ dev-libs/nss
+ dev-libs/openssl:0/3
+ media-libs/alsa-lib
+ media-libs/mesa
+ net-misc/curl
+ net-print/cups
+ sys-apps/dbus
+ sys-libs/glibc
+ sys-libs/zlib
+ virtual/secret-service
+ x11-libs/cairo
+ x11-libs/gtk+:3
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libxcb
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxkbcommon
+ x11-libs/libXrandr
+ x11-libs/pango
+"
+QA_PREBUILT="
+ usr/lib/mongodb-compass/.*
+"
+
+src_install() {
+ insinto /usr/lib/mongodb-compass
+ doins -r usr/lib/mongodb-compass/.
+
+ fperms +x "/usr/lib/mongodb-compass/MongoDB Compass"
+ fperms 4755 /usr/lib/mongodb-compass/{chrome_crashpad_handler,chrome-sandbox}
+
+ domenu usr/share/applications/mongodb-compass.desktop
+ doicon usr/share/pixmaps/mongodb-compass.png
+
+ make_wrapper mongodb-compass "'/usr/lib/mongodb-compass/MongoDB Compass'"
+}
diff --git a/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.4.ebuild b/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.4.ebuild
new file mode 100644
index 000000000000..a6af371e3ef6
--- /dev/null
+++ b/dev-db/mongodb-compass-bin/mongodb-compass-bin-1.45.4.ebuild
@@ -0,0 +1,56 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop unpacker wrapper xdg
+
+DESCRIPTION="GUI for MongoDB"
+HOMEPAGE="https://mongodb.com/compass https://github.com/mongodb-js/compass"
+SRC_URI="https://github.com/mongodb-js/compass/releases/download/v${PV}/mongodb-compass_${PV}_amd64.deb"
+S=${WORKDIR}
+
+LICENSE="SSPL-1"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+
+RDEPEND="
+ dev-libs/nss
+ dev-libs/openssl:0/3
+ media-libs/alsa-lib
+ media-libs/mesa
+ net-misc/curl
+ net-print/cups
+ sys-apps/dbus
+ sys-libs/glibc
+ sys-libs/zlib
+ virtual/secret-service
+ x11-libs/cairo
+ x11-libs/gtk+:3
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libxcb
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxkbcommon
+ x11-libs/libXrandr
+ x11-libs/pango
+"
+QA_PREBUILT="
+ usr/lib/mongodb-compass/.*
+"
+
+src_install() {
+ insinto /usr/lib/mongodb-compass
+ doins -r usr/lib/mongodb-compass/.
+
+ fperms +x "/usr/lib/mongodb-compass/MongoDB Compass"
+ fperms 4755 /usr/lib/mongodb-compass/{chrome_crashpad_handler,chrome-sandbox}
+
+ domenu usr/share/applications/mongodb-compass.desktop
+ doicon usr/share/pixmaps/mongodb-compass.png
+
+ make_wrapper mongodb-compass "'/usr/lib/mongodb-compass/MongoDB Compass'"
+}
diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest
index 0501396ecbae..b243b11557af 100644
--- a/dev-db/mongodb/Manifest
+++ b/dev-db/mongodb/Manifest
@@ -27,5 +27,5 @@ AUX mongos.initd-r3 422 BLAKE2B 90872d0d8cdc5e33e3eebee848f58a2db0511d48b496ba93
DIST mongodb-5.0.26.gh.tar.gz 57252091 BLAKE2B a4663a4dbac90118b56646816b178680a6bd99be6abb582fdfdb662c8ddf14eb9db18ed97260a37b2d04bf11715e6cfaa34bb12c4f4b08426e3afa90908f0b3c SHA512 efd56649006bb61070a2f255e8d843e4ddab33562ec9454afe55848dcc3ce8ee90431f70c9362b14e52c4a49a162ea3075a869a6fd71f63efdd5f4358703fea4
DIST mongodb-5.0.30.gh.tar.gz 57312372 BLAKE2B 72b026115cf3c8b1b81857bc5bffcd5b72bae4b581a7ada598bc7bbe594f264f581212159788113c5709ab751dd8a57943a3cc9b78f0d31aeb50375fa1da2c28 SHA512 97642da12cf199fa3f17825b1eb20e4d9bc1f65c8950f54b36347af11b6964cdd2007d11b01147d0c253077ef14121de52517c1739b433b49a9cbbe2596d9d05
EBUILD mongodb-5.0.26.ebuild 6157 BLAKE2B 375b4e2395216f0d4651c7ef249cd44e4d6e0b3ed9b6a2d4d831c7e0673094e4846bd87e95aac7bec802f2a6808ea93fa4880b5959f856c3207422137af07b01 SHA512 51e6cb8780a43e4603757602a806f3dab019c46135ce9df7a1907ee6a92a45b619fa933cfe722f3891bde7cdb4015203807f4b2f4c3b9285f4b203c6e299c46d
-EBUILD mongodb-5.0.30.ebuild 6219 BLAKE2B 3a9d4b7c7f41f7efa1cd4d09d8b9bf3cc701986aa70de2a2f00129f99ea5b252e094146bcfa63e005916c5fe15c2d0e20b64e06f9c2db2b9b9c0d4323ac597d0 SHA512 75d94fdd14a116e9c90bfe7413ec053a43906d0364cb2123d9be6e0611d9850cf5ad096a9bde03a47f23046366709c3d7195844e2a4b9f110eafebc0c20c0288
+EBUILD mongodb-5.0.30.ebuild 6212 BLAKE2B 3719f1b506db6ddba9b9f678820340ee8562bb3eacb38ae605b68f0c57bb349d5b2d9dd408299e723d1876f27072da27893f19d456f9cc6867de7e0f0dd47342 SHA512 0e693f07d47297d560a7b7b3bc02599d5e7357d112d8965631388b7eab4e146597679270c7e394b81b9807250dbdadde2e147465e1cc564125e7945ac9d9dfa9
MISC metadata.xml 990 BLAKE2B 59df82d7c6895609ad70e11bac3aec67c2cb76c5221e71c853cd09c77783acf720bf5ccfae1e998e03cfc15b88560dc30b71ee35ed19a971c39bb840aa622391 SHA512 1c05e1ff3cabed908f254b5166e7396a7b85c63e3589025048d9537c395d3b753706f0c5cb5c09a6766cd8e9d586981eaeb342bfc6a6d14eedcd47da00a2401c
diff --git a/dev-db/mongodb/mongodb-5.0.30.ebuild b/dev-db/mongodb/mongodb-5.0.30.ebuild
index a361c0984bfd..d19d17ed7480 100644
--- a/dev-db/mongodb/mongodb-5.0.30.ebuild
+++ b/dev-db/mongodb/mongodb-5.0.30.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -10,7 +10,7 @@ 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
+inherit check-reqs eapi9-ver 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}
@@ -99,7 +99,7 @@ pkg_pretend() {
fi
if [[ -n ${REPLACING_VERSIONS} ]]; then
- if ver_test "$REPLACING_VERSIONS" -lt 4.4; then
+ if ver_replacing -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."
diff --git a/dev-db/mycli/Manifest b/dev-db/mycli/Manifest
index f1e417279314..be690daa6cbf 100644
--- a/dev-db/mycli/Manifest
+++ b/dev-db/mycli/Manifest
@@ -1,5 +1,5 @@
DIST mycli-1.27.2.gh.tar.gz 286537 BLAKE2B 7bff978f9a08561c33f5327f13b8b69226e5c735527a607190a3c5d75f091b9f76b8d432e7a3e315ff250995e0baea7f7e0bede17e0b1cc6654939b7ec82b0ae SHA512 fdf0342b0e850b5232c815e73f44f22c7ea162201588681ccf2f4107b84b87f01fff3999a9720fef454239192356f074f47642ddc760af18973a2aaaac4676cd
DIST mycli-1.29.2.tar.gz 293270 BLAKE2B c50b45f217f9b358334cd28a975e5de7b1f70903bf32ee719e03e067b13df13b856a24b9631d2b37a7ad668a82307b030cce1111f0a2ffe625cf9756680eee31 SHA512 13279ec14a0310323f1e407147749e8c628d9cc60688080e691ccfd9cdffd4d8d840a18b6a81075e08247b8a64a19808fbedf2898ab0b2e80ec2906182f23f28
EBUILD mycli-1.27.2.ebuild 1965 BLAKE2B e9e2eee903dd6ff7ea763901ced695724ddfe707950882f095f5a057219dbf1b1e63b21cee0717d44580613aae60a24fac87b9e54541ebae2854ab7f53caca40 SHA512 276048144af05d33c7a2333e4d30ceb9100038e7f156219e3e68e6405fdddedb0ec2b11cff1a9d1b2fb7b64901410f7a4410cdfaa00ad1d7ff28693435e57d5f
-EBUILD mycli-1.29.2.ebuild 2061 BLAKE2B 8ffd19cf7c6736e32124cfeb126ee66c4df24ea5e5da18f6153584285c31b64e19d08bb2d97aa87dacfa01954ed431412932c517923ee6e54d15f5bc256a08d8 SHA512 d9846a43d659ee1829da1f7b8d0dc7530b8592cad4a801ed49ca4b49ac22f14947aa11646682a1a8e53232396c4eeb5f55e51e4be10c606dee7c0f44f3ccf144
+EBUILD mycli-1.29.2.ebuild 2073 BLAKE2B e9513f85ae075e699b8c9b1c411e0c59e895d7526f03ec8135aa83d019f1011de6f569a112e83167fca83c53b2d103aa604c1662c349d38a09d9edd1df4061a0 SHA512 13df0915588b5639e25768b6eac33317cbe34289be6b0badefcf5140f207dc9a53ef34be77af77b0fa8a48484a7350cdfa99c9acba75bddac06de1b8901be252
MISC metadata.xml 626 BLAKE2B 754538c528392717c6f22b1988d8d901458eaa053d90fdcc6a96c30408a6f9e661bbd8da4dfd57e8edc71e715028e493d7c3b3994ae7b337556881294c771095 SHA512 1d08dd18cdc6e1ab95e80b5234ed6f64c6b9f69346c86bde183c8bbee1940fd54c6a958b03e9b142dceb6d7e61eae2d47c3c5012a9e368a4ec6617c7539729d5
diff --git a/dev-db/mycli/mycli-1.29.2.ebuild b/dev-db/mycli/mycli-1.29.2.ebuild
index dc64bce44339..a886468b6d31 100644
--- a/dev-db/mycli/mycli-1.29.2.ebuild
+++ b/dev-db/mycli/mycli-1.29.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm64 ~x86"
IUSE="ssh"
RDEPEND="
diff --git a/dev-db/mydumper/Manifest b/dev-db/mydumper/Manifest
index 0f23206f5f9a..33ccf54fae44 100644
--- a/dev-db/mydumper/Manifest
+++ b/dev-db/mydumper/Manifest
@@ -2,11 +2,13 @@ AUX mydumper-0.13.1-atomic.patch 965 BLAKE2B 789b72fc49a8362466b7081ea6f112d373e
AUX mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch 984 BLAKE2B 6b47af57b37adf29e273c9ce4384e75efe9ad4ed89ff54bf93ac491d7149f240b4b67263886c30acc6f69c60fe05cdf14572da781614d7a2697ddd5defeb1d4d SHA512 959c56f38912844e7e10aced0e9bde14ea5db68962de83b0649647ebd348c94a0999e17845cd2b2f565f5e14c942930b9c7b7020247378d211d9894cb977a8ac
AUX mydumper-0.15-fix-call-to-open.patch 1341 BLAKE2B 8d7080f694fe99eb70c79519877873ce4e237015647b8997590df3dd95c3307e3b818ead2f8735405b3040049844b85d83d277b169a8662709a6199b6eb3f681 SHA512 e9baeeb10d61f129df457106be56ab379b9cf948aee2bf9f5f68cabf14a8876d749459ad6c42280e67ed5caf3ad6735bae39901a6c16cf93f65677b9d8e464c1
AUX mydumper-0.16-cmake-docs.patch 603 BLAKE2B 1895470dead622ad0ce19dda66cc95a5353c322d522527a65abe875931f7bd2bc07bc4da01efbf776fd1df4be6a258a0cd0840b94281d52e57b0197f60a9b3a2 SHA512 d2f7a2ee5d6c4ef7b6746a991a4e19df25600a6eebce71c815be6ca7ea78ab7a35a2af28ae6055044d58f79666474ff334e856c4a27520b63a92f5884a9328a9
+AUX mydumper-0.18-Do-not-overwrite-the-user-CFLAGS.patch 727 BLAKE2B df69e00da8ced07703c34247da8a4f7bfd16184e499346b7cb1239a903d400c398e8d479f5289a4250d3a46d1633aacd701dab28fbb874ae8c58299ec05510d8 SHA512 5473f5d1f2ff7aa8cdbb7d768ed081a09128eabffa114738e269aaa3288322e747b2d05bcd0525464781e181f4d516de8179a3088cbf7392dd4d6fdc8d8a309e
DIST mydumper-0.15.2-8.tar.gz 186389 BLAKE2B 84e08fa6460a156771f598a8a0c98c79089490f9f2fe3b90fa49efd519e2270468fe86287bab03612006489a3a1d5ab2442e76cc0f4825c8df95acec30a1c4ba SHA512 f6ca5c5756944bd2704e8a25432db1fbe14ed2a1e88b549c0799c3e0c251e524523ed39797b0b2c15c9d65c0e6e5ce3d93a60a17c77090732a8f909ab24a0126
DIST mydumper-0.16.11-2.tar.gz 192249 BLAKE2B 5e3a79d38fd6a346804d1b3b0edd60da13a031abc5d7b6cc5a0b1ea625af3979bc134b3946acc9228f4f0cba3583912c6d2a52bba9552ef65d374646ee335334 SHA512 4cb9272be1c13d31841fab928627f71868167e04f64e9742807326a1a2054b04fad2a65da2c5d703627cf760259760393bc8a8beca7066986c3a7af8cb1f181f
DIST mydumper-0.16.11-2_docs.tar.gz 914231 BLAKE2B e9e163848a3b54317162fdb172b4f1d1daa867c2178f21ad61a597c4a3c7604a11a238874f2d208c7c702637318c63da1c12f040b64a57f572affb9a6af139c1 SHA512 af72d87b7460ebc37d72d2b368c8c296e42dc3bbb1ee517566cb9e10564bb81d0ec3eaf57fe1adb524f33bd152634e9fa8b0fd74e8da38e6de490fd8936ed967
-DIST mydumper-0.16.7-5.tar.gz 192080 BLAKE2B dac0d0700ad7a68b3bffdb13f6cb674e75b868715822ef791eb00d64ce4a41335b5f54fc4a166ee527356a4f4c5311c01aabb1c8e0c91d964b4bca5b30a546c0 SHA512 ab7f06557814318352b1a511ff06f9e094dac43d3d5638977074aa8a79c3a9b83114aa15fcafcd0a39945a8c497c725b0a8221759d55aedb424eb048f10653d8
+DIST mydumper-0.18.1-1.tar.gz 199785 BLAKE2B a21404e73ae7b992c53371512015d50056bef68b3920e3e9131995be918965e7410f2901cb049addee52b044e110373ee98239eb6962516c416ae1ec26f54449 SHA512 41fede2070986cc8c8e713613f081b4041cf4c4be2973fdc3a733540e1c741e9831e29e9300bdeef76f543743093def6b0af459c0cd69fa518972a1d7922cff4
+DIST mydumper-0.18.1-1_docs.tar.gz 943632 BLAKE2B 9e0879b092a1ce1073751c3d3174bce812cfb35ff4e3a58846ca61cc7655c84d426e68b32f2091a4788a796d7e5fb80abcaa07c5c5fed9317faf5dabaa1c59b5 SHA512 0df911f03a97ca6b5bc65ccea3bedae36a94690e7b53f9014972e860af37c8b7814832a9759cf91f642770452e2016e3ae3fd8dd0852108727f491e5f9d22cd1
EBUILD mydumper-0.15.2.8-r1.ebuild 1265 BLAKE2B 221ab1b3ca989ea53a26bc0216c60538b3be6b1293e6a30e888b1a3f9525a91a58517a763e91e3ccddb573c8ca4c8b0bc0fe9347c55c314423cad5456c7bf8aa SHA512 0902075b31384658fe192618cf8f5bc149dd16b03150d50183bdf7ac43b71dc0ce031235f4aef90951c79c74b1e38fa94bee95aa97e9a4ddcb69b744f729b5b7
-EBUILD mydumper-0.16.11.2.ebuild 1374 BLAKE2B 662d52dd2e61b35aba12d4274c0a2d77addfac79cd1046d5be16f2a30ab16085a64f9b83a535de05acb8f5bd7dc1096ab4f2a1cc3458d8da564ef5e8db4265e2 SHA512 bd2269d2358c91e77aa67124f48de50cdb8825c3a75a9340bf415c8154a17bad515ae42211d5870d480d921b51bc21df7308bdde287ac78b73eb61da076cdaf3
-EBUILD mydumper-0.16.7.5.ebuild 771 BLAKE2B eae39daf3cf031f83509a99b99a218bee7bb07964a6d8ae841027b240810fb4734b84ffbd28820e83c87a5a52c6ea29b86f5fb732b7fc9ebe5a22189ead5b69f SHA512 b26145add4df7afc92a2f815256869c47554e988f06eed8451b6bf09516a4583e69c03a47231c5ee5e183249e078c6803523e98184ca2f119e60af8e43422f6a
+EBUILD mydumper-0.16.11.2.ebuild 1373 BLAKE2B 6c5bd846d35123affa053cff178549e16c94c34797d7dbe9c41fd3cf8804a1591765b31465688e49ba18cddc9908f07af87c44e6c37059df9923e2c390be598d SHA512 4fd48ef15d4f55d40e01a38ca6101d09dfc338a17473fd3c9cdc5e55259134ae70d3401d20a1f420fcfbc2b60ef3de699c387f738ef11c46de985e4ed4c589f3
+EBUILD mydumper-0.18.1.1.ebuild 1562 BLAKE2B 455e64468b9b19e118c3b83823a2bf6804462c0a029202eed832979155f9cce907abc74048a2a98916a639a9df8771aef4b68c0744f16e8ebeba02fcb4a99301 SHA512 b3fdd772d9a88b2813a72b2f2257bb906ee60d63003a98a3f7165bf54edf9adfbcb61f097b3d8cbf13619e5635638929571a5cca4e3a77c9cb18c7073c639f55
MISC metadata.xml 480 BLAKE2B b046228a8aea053cdd034cb3ce0e28e3fd666fe9a600b7bb82a36083fff6686559a6746518ff8c41002476ac8214ff45376c5b08fa9e71c1e2ed1ed890b68091 SHA512 8d71ae229741c263328195baec3917d9c496d9afeff591e3c66ef8744776d8cbc53f17ff526255e61139338b03f5027e19142108dd9c37c0871a6510f72a8661
diff --git a/dev-db/mydumper/files/mydumper-0.18-Do-not-overwrite-the-user-CFLAGS.patch b/dev-db/mydumper/files/mydumper-0.18-Do-not-overwrite-the-user-CFLAGS.patch
new file mode 100644
index 000000000000..3747d5dda73c
--- /dev/null
+++ b/dev-db/mydumper/files/mydumper-0.18-Do-not-overwrite-the-user-CFLAGS.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3fa5fde..c115b6e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -44,7 +44,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 -Wno-strict-aliasing -Wextra -Wshadow -g -Werror ${MYSQL_CFLAGS}")
+ include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE2_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} )
+
+ OPTION(WITH_ASAN "Build with ASAN" OFF)
diff --git a/dev-db/mydumper/mydumper-0.16.11.2.ebuild b/dev-db/mydumper/mydumper-0.16.11.2.ebuild
index 0190ed1f92dd..bc4a9a15fdc6 100644
--- a/dev-db/mydumper/mydumper-0.16.11.2.ebuild
+++ b/dev-db/mydumper/mydumper-0.16.11.2.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
IUSE="doc"
RDEPEND="
diff --git a/dev-db/mydumper/mydumper-0.16.7.5.ebuild b/dev-db/mydumper/mydumper-0.16.7.5.ebuild
deleted file mode 100644
index 245b0197d96c..000000000000
--- a/dev-db/mydumper/mydumper-0.16.7.5.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-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/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"
-
-RDEPEND="app-arch/zstd
- dev-db/mysql-connector-c:=
- dev-libs/glib:2
- dev-libs/libpcre
- dev-libs/openssl:=
- sys-libs/zlib:="
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}/${PN}-0.13.1-atomic.patch" #654314
- "${FILESDIR}/${PN}-0.15-Do-not-overwrite-the-user-CFLAGS.patch"
-)
diff --git a/dev-db/mydumper/mydumper-0.18.1.1.ebuild b/dev-db/mydumper/mydumper-0.18.1.1.ebuild
new file mode 100644
index 000000000000..fb8e1465300f
--- /dev/null
+++ b/dev-db/mydumper/mydumper-0.18.1.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+MY_PV="$(ver_rs 3 -)"
+MY_P="${PN}-${MY_PV}"
+DOCS_COMMIT="b260deb19d8cf88a5e57abc0d271673a4bea254d"
+
+DESCRIPTION="A high-performance multi-threaded backup (and restore) toolset for MySQL"
+HOMEPAGE="https://github.com/mydumper/mydumper"
+SRC_URI="https://github.com/mydumper/mydumper/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz
+ https://github.com/mydumper/mydumper_docs/archive/${DOCS_COMMIT}.tar.gz -> ${MY_P}_docs.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+
+RDEPEND="
+ app-arch/zstd
+ dev-db/mysql-connector-c:=
+ dev-libs/glib:2
+ dev-libs/libpcre
+ dev-libs/openssl:=
+ sys-libs/zlib
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ dev-python/furo
+ dev-python/sphinx-inline-tabs
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.13.1-atomic.patch" #654314
+ "${FILESDIR}/${PN}-0.18-Do-not-overwrite-the-user-CFLAGS.patch"
+ "${FILESDIR}/${PN}-0.16-cmake-docs.patch"
+)
+
+src_prepare() {
+ # copy in docs
+ rm -rv "${WORKDIR}"/"${MY_P}"/docs || die
+ mv -v "${WORKDIR}/${PN}_docs-${DOCS_COMMIT}" "${WORKDIR}/${MY_P}/docs" || die
+
+ # https://pypi.org/project/sphinx-copybutton/ not yet in Gentoo
+ sed -i "s/'sphinx_copybutton',//g" "${WORKDIR}/${MY_P}/docs/_build/conf.py.in" || die
+
+ # fix doc install path
+ sed -i -e "s|share/doc/mydumper|share/doc/${PF}|" docs/CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(-DBUILD_DOCS=$(usex doc))
+ cmake_src_configure
+}
diff --git a/dev-db/mysql-connector-c++/Manifest b/dev-db/mysql-connector-c++/Manifest
index b1ec9b808566..0d55653b0557 100644
--- a/dev-db/mysql-connector-c++/Manifest
+++ b/dev-db/mysql-connector-c++/Manifest
@@ -1,5 +1,10 @@
AUX mysql-connector-c++-8.0.27-mysqlclient_r.patch 1070 BLAKE2B 339951ae0df13467247168052a9928d2d0f72dca1c97f6d78eb604372e45ed1a14564a05f1bdd54e5848d669520ac43a2129b3c337c776a71a6670da09c74d04 SHA512 c141b81fc755ef4b586debe473b9bd0f903d4575314327a319ad584263a09281290bc5c95b683c11932fded730ca3962b8450be8a916db3c86391ad3edb52305
AUX mysql-connector-c++-8.0.33-jdbc.patch 265 BLAKE2B e421e01de9ca66f159c9000ebbbb1d5bc8a1755a9f982952ffe8c200e370ea24626c6bd2795af80425b58fa6efda502656a02967611014153fbab6a95eb1d025 SHA512 5a06851d0b2a8d86af0b1a0f102af5044e19ad3a1a277c898fb83a0bee546a7a36a17ec6af747d306428eeedffef5fd298dafd940151c6a1e26b35049eb2ed9f
+AUX mysql-connector-c++-9.2.0-gcc-15-cstdint.patch 353 BLAKE2B b8f0a82fd456d3df45f33f99ae616f720bc228b90adfd245c84d361ca52502da829fb34570aea758516899b2ac692d2d91a837cefd1a2db99bd6337a567222ee SHA512 08fb86e998343ef25b860311559b9ac5154edbb970f73cec3bd7a604f9fe87c42f717bbf89c6dc94cf6c2678e4db2462c6a93613ede9a31b8131ebdfe41d06a1
+AUX mysql-connector-c++-9.2.0-hookup-tests.patch 1725 BLAKE2B 89987d1ab10386e66e1a03bd44d951b3a71604d6daa90fa4d0c8d85dc51f74b5450a7e47b8308759a0b8680a41d01718c64da11b4bb98bff36accaf0d0760cf3 SHA512 b7d17ad8d381fd9d961faa23a6525e3d141efb1673681c99386e2599fc019c619a217026ac1e737054f22506e96d15c0faa5cf486f12c9a7c73312924f06126b
+AUX mysql-connector-c++-9.2.0-test-iomanip.patch 341 BLAKE2B a232c3e8caacde935f1cbf506e87d7e6948b5deb2e536b129a06b4d4183ff5f8e9762c09dc2be355ae924a97f0b7266cf786b1129dce26ac40e5cfbbbc06f925 SHA512 aba114f61f5d89c48d777e473c44b07969aad74f0efe80a3b9403d99e5903f1ab7795c0866829593e14d05a45ca6b55446a5118c409b22263b99336e3d2c537a
DIST mysql-connector-c++-8.0.33-src.tar.gz 4531693 BLAKE2B b8f426742fa343ebc1f1da5ba1fbf7dfc0db39493bafd0f5d16e355d43277d78ff27b183edad31792a7591ac59bbfb4033f3498dc646883988cba189535a8ddf SHA512 a625a28f63161c97d727d90e7b1211273fe931ae1325c2fbeca16e770761e3159abdcaba1fb6eb1a557674fd817bf266875a089c8c2ea4d2dd1553e6fa887ef1
+DIST mysql-connector-c++-9.2.0-src.tar.gz 4784018 BLAKE2B 74ddf9d4d7bf6b679d8cbacae1de848c0957cb5ab196dfc1ed42927bff9924b12f73f6e58ceeb07b586fd60a79bd0313c395e21393c303ddaa0f525d7d8c5375 SHA512 bbd829ba426772702c8109e8706e5e542bc2a102dae6cddc0ba4f9f6d26952b4652210930d9a983cfadd3a72cf95ba430a401eeb100d766de69ddc2ec6eefa71
EBUILD mysql-connector-c++-8.0.33-r1.ebuild 1495 BLAKE2B 63c33ddbae99b67dfae008f5a84707c79d9100ebac6268dab63b8bb131bd3e685c3d2e7787edbab9198b3f3d5285d019881f92b96bafac5859b885643275ebe4 SHA512 ffccd040bf1974b014a96f52852cdf6f2d314dc02ce3f202fbb8ce6d8cf9e665f9670425ee489680cf7df5e11aae30a2ae80b89e3404daa375ae118c54d592fa
+EBUILD mysql-connector-c++-9.2.0.ebuild 4986 BLAKE2B 22265e622b6c6d1c0e1293bfa9415e7c459e4ba1551669e49d8bf3a77fd4b2e04ecfa222cc23d804b596577b6435c9c6ee2bb614dd5127360e8d27b9310b58d1 SHA512 b30777928501f270ff890cc162c49c5beaecc4cff5c5f90dd3bad92b131af1b9610be4bdcd73915982f632744402ffc24824d10f135864f50959eda6c9934cfc
MISC metadata.xml 427 BLAKE2B 6467a6f2f5b106904e37a7d305ef49d6d43a07ac94f958e4f02406ea6d118feb7ba6cb6a036226e419b5ee732500e9cfda2d332a41f8d3635eadd3d3f826c868 SHA512 dfc7271b8c49ad4bd9672c098c9ef29144488f2dd92caec9ab54d0f01a849b4507662c2d5788da102e373da31d8b33b55697ad9b22dfd64e1d9dfdc082e576a0
diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-gcc-15-cstdint.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-gcc-15-cstdint.patch
new file mode 100644
index 000000000000..8e4bd1811f75
--- /dev/null
+++ b/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-gcc-15-cstdint.patch
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/863188
+
+diff --git a/include/mysqlx/common/value.h b/include/mysqlx/common/value.h
+index 4f1b7a38..c30bbd0a 100644
+--- a/include/mysqlx/common/value.h
++++ b/include/mysqlx/common/value.h
+@@ -39,7 +39,7 @@
+ PUSH_SYS_WARNINGS
+ #include <string>
+ POP_SYS_WARNINGS
+-
++#include <cstdint>
+
+ namespace mysqlx {
+ MYSQLX_ABI_BEGIN(2,0)
+
diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-hookup-tests.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-hookup-tests.patch
new file mode 100644
index 000000000000..ba3cb5aaf7c8
--- /dev/null
+++ b/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-hookup-tests.patch
@@ -0,0 +1,64 @@
+From 8d344b6c4ebb1f0029aecaee9cb0b5522e7db27e Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Sat, 8 Mar 2025 00:05:15 +0200
+Subject: [PATCH] Build correctly against shared library gtest
+
+Not upstreamable as is.
+--- a/cdk/cmake/gtest.cmake
++++ b/cdk/cmake/gtest.cmake
+@@ -132,19 +132,8 @@ MESSAGE("gtest location: ${gtest_location}")
+ MESSAGE("gtest_main location: ${gtest_main_location}")
+
+
+-add_library(gtest STATIC IMPORTED)
+-add_library(gtest_main STATIC IMPORTED)
+-
+-set_target_properties(gtest PROPERTIES
+- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+- IMPORTED_LOCATION "${gtest_location}"
+-)
+-
+-set_target_properties(gtest_main PROPERTIES
+- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+- IMPORTED_LINK_INTERFACE_LIBRARIES "gtest"
+- IMPORTED_LOCATION "${gtest_main_location}"
+-)
++add_library(gtest ALIAS GTest::gtest)
++add_library(gtest_main ALIAS GTest::gtest_main)
+
+ #
+ # Setup configuration-specific locations for Win
+@@ -193,11 +182,5 @@ IF(WIN32)
+
+ ENDFOREACH(Config)
+
+-ELSE(WIN32)
+-
+- # On unix gtest depends on pthread library
+- set_property(TARGET gtest APPEND PROPERTY INTERFACE_LINK_LIBRARIES pthread)
+- set_property(TARGET gtest APPEND PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES pthread)
+-
+ ENDIF(WIN32)
+
+--
+2.48.1
+
+From 1d0f1fbb800517583029b6bc88d285bcb1245111 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Sat, 8 Mar 2025 00:06:41 +0200
+Subject: [PATCH] Hook cdk unittests to ctest
+
+--- a/cdk/cmake/testing.cmake
++++ b/cdk/cmake/testing.cmake
+@@ -370,6 +370,8 @@ IF(WITH_TESTS)
+ COMMENT "# Generating test group definitons."
+ )
+
++ gtest_discover_tests(${target_run_unit_tests})
++
+ ENDIF()
+ ENDMACRO(ADD_TEST_TARGET)
+
+--
+2.48.1
+
diff --git a/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-test-iomanip.patch b/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-test-iomanip.patch
new file mode 100644
index 000000000000..ae9b58f519ea
--- /dev/null
+++ b/dev-db/mysql-connector-c++/files/mysql-connector-c++-9.2.0-test-iomanip.patch
@@ -0,0 +1,15 @@
+Implicit requirement due to use of std::setw
+
+diff --git a/devapi/tests/session-t.cc b/devapi/tests/session-t.cc
+index 758a0b8f..138cdcac 100644
+--- a/devapi/tests/session-t.cc
++++ b/devapi/tests/session-t.cc
+@@ -35,6 +35,7 @@
+ #include <thread>
+ #include <map>
+ #include <sstream>
++#include <iomanip>
+
+ using std::cout;
+ using std::endl;
+
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-9.2.0.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-9.2.0.ebuild
new file mode 100644
index 000000000000..64517a13b8e8
--- /dev/null
+++ b/dev-db/mysql-connector-c++/mysql-connector-c++-9.2.0.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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"
+# See ABI_VERSION(s) is version.cmake
+SLOT="0/2.10" # ABI_VERSION_MAJOR/JDBC_ABI_VERSION_MAJOR
+# -ppc, -sparc for bug #711940
+KEYWORDS="~amd64 ~arm ~arm64 -ppc ~ppc64 -sparc ~x86"
+IUSE="+legacy test"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ app-arch/lz4:=
+ app-arch/zstd:=
+ dev-libs/openssl:=
+ sys-libs/zlib
+ legacy? (
+ >=dev-db/mysql-connector-c-8.0.27:=
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-cpp/gtest
+ )
+"
+BDEPEND="
+ test? (
+ >=dev-db/mysql-8[server]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.27-mysqlclient_r.patch
+ "${FILESDIR}"/${PN}-8.0.33-jdbc.patch
+ "${FILESDIR}"/${PN}-9.2.0-gcc-15-cstdint.patch
+ "${FILESDIR}"/${PN}-9.2.0-test-iomanip.patch
+ "${FILESDIR}"/${PN}-9.2.0-hookup-tests.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # ignores MAKEOPTS and runs recursive make -j$(nproc). Clobbers jobs badly
+ # enough that your system immediately freezes.
+ #
+ # https://bugs.gentoo.org/921309
+ # https://bugs.mysql.com/bug.php?id=115734
+ sed -i 's/prc_cnt AND NOT/FALSE AND NOT/' cdk/cmake/dependency.cmake || die
+}
+
+src_configure() {
+ # sanity check subslot to kick would be drive by bumpers
+ local detected_abi
+ detected_abi="$(awk '$1 ~ "set.*ABI_VERSION_MAJOR" {printf("%s.",$2)}' version.cmake)"
+ detected_abi="${detected_abi%.}"
+ if [[ "${SLOT#0/}" != "${detected_abi}" ]]; then
+ die "Sub slot ${SLOT#0/} doesn't match upstream specified ABI ${detected_abi}."
+ fi
+
+ 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=$(usex legacy)
+ -DWITH_TESTS=$(usex test)
+ )
+
+ if use legacy ; then
+ mycmakeargs+=(
+ -DMYSQLCLIENT_STATIC_BINDING=0
+ -DMYSQLCLIENT_STATIC_LINKING=0
+ )
+ fi
+
+ cmake_src_configure
+}
+
+# NOTE: Test failures in jdbc may be a sign of issues in mysql-connector-c.
+src_test() {
+ local CMAKE_SKIP_TESTS=(
+ # Test that configures, builds and install a test project again. It gets caught on the install phase.
+ Link_test
+ # Only ipv4 will work as only the ipv4 local address is specified. A future task for someone...
+ # https://dev.mysql.com/doc/refman/8.4/en/x-plugin-options-system-variables.html#sysvar_mysqlx_bind_address
+ Sess.ipv6
+ # FIXME:
+ # not ok 15 - preparedstatement::queryAttributes # assertEquals(int) failed in
+ # /var/tmp/portage/dev-db/mysql-connector-c++-9.2.0/work/mysql-connector-c++-9.2.0-src/jdbc/test/unit/classes/preparedstatement.cpp,
+ # line #1582 expecting '200' got '0'
+ jdbc_test_preparedstatement
+ )
+
+ local -x MYSQL_HOST="127.0.0.1"
+ local -x MYSQL_PORT="5555"
+ local -x MYSQL_USER="$(whoami)"
+ local -x MYSQL_PASSWORD="insecure"
+ local -x XPLUGIN_PORT="5556"
+
+ einfo "Creating mysql test instance"
+ mkdir -p "${T}"/mysql || die
+ mysqld \
+ --no-defaults \
+ --initialize-insecure \
+ --user root \
+ --basedir="${EPREFIX}/usr" \
+ --datadir="${T}"/mysql 1>"${T}"/mysqld_install.log || die
+
+ einfo "Starting mysql test instance ..."
+ mysqld \
+ --no-defaults \
+ --character-set-server=utf8 \
+ --bind-address=${MYSQL_HOST} \
+ --port=${MYSQL_PORT} \
+ --socket="${T}"/mysqld.sock \
+ --mysqlx-bind-address=${MYSQL_HOST} \
+ --mysqlx-port=${XPLUGIN_PORT} \
+ --mysqlx-socket="${T}"/mysqlx.sock \
+ --pid-file="${T}"/mysqld.pid \
+ --datadir="${T}"/mysql 1>"${T}"/mysqld.log 2>&1 &
+
+ # wait for it to start
+ local i
+ for (( i = 0; i < 10; i++ )); do
+ [[ -S ${T}/mysqld.sock ]] && break
+ sleep 1
+ done
+ [[ ! -S ${T}/mysqld.sock ]] && die "mysqld failed to start"
+
+ einfo "Configure mysql test instance ..."
+ # https://github.com/mysql/mysql-connector-cpp/blob/trunk/jdbc/test/CJUnitTestsPort/README
+ mysql -u root \
+ -e "CREATE USER ${MYSQL_USER} IDENTIFIED BY '${MYSQL_PASSWORD}'; GRANT ALL PRIVILEGES ON *.* TO ${MYSQL_USER} WITH GRANT OPTION;" \
+ -S "${T}/mysqld.sock" \
+ -h ${MYSQL_HOST} \
+ -P ${MYSQL_PORT} || die
+ mysql -u root \
+ -S "${T}/mysqld.sock" \
+ -h ${MYSQL_HOST} \
+ -P ${MYSQL_PORT} < "${S}"/jdbc/test/CJUnitTestsPort/cts.sql || die
+
+ # Do tests with one job for proper clean up in database tests.
+ nonfatal cmake_src_test -j1
+ local ret=${?}
+
+ einfo "Stopping mysql test instance ..."
+ pkill -F "${T}"/mysqld.pid || die
+ # wait for it to stop
+ local i
+ for (( i = 0; i < 10; i++ )); do
+ [[ -S ${T}/mysqld.sock ]] || break
+ sleep 1
+ done
+
+ rm -rf "${T}"/mysql || die
+
+ [[ ${ret} -ne 0 ]] && die
+}
+
+src_install() {
+ cmake_src_install
+ einstalldocs
+
+ # cmake package config file appears to be broken in multiple ways
+ rm "${ED}/usr/mysql-concpp-config.cmake" || die
+ rm "${ED}/usr/mysql-concpp-config-version.cmake" || die
+}
diff --git a/dev-db/mysql-connector-c/Manifest b/dev-db/mysql-connector-c/Manifest
index 5817a482d48e..5dbe04a1f846 100644
--- a/dev-db/mysql-connector-c/Manifest
+++ b/dev-db/mysql-connector-c/Manifest
@@ -2,5 +2,7 @@ AUX mysql-connector-c-8.0.19-do-not-install-comp_err.patch 307 BLAKE2B 864c07e9d
AUX mysql-connector-c-8.0.27-res_n.patch 1635 BLAKE2B f75811958a6415bf45aa571a8da14c371500216a197602dec19b8b565bc219f98e8feb9bc660d81e32c4af7f39abb626af405d33a7f478617c8ee96c5b4453b8 SHA512 bb6315f0ac540d0723dffd9f8c2bdad9b9b1c0a3d706f80fd3bbdc9c7f276a8dda2754df94f6cb4ffecb0c3b0e65edc96c90b171eb0a4e5032fe6583e56ade85
AUX mysql-connector-c-8.0.36-always-build-decompress-utilities.patch 607 BLAKE2B 67196391d8d9a042087129cda2d7aa67903e73aa9446f32e831eef5b97d7c48cdf1c9774af19c814e82ee6a7524ae8ec481a8bb5a998f4e4fc67238b8cb89c14 SHA512 f020448bbe67d6ad262a444af4c36efc3b2dd7d1a2fa21145f1018e5dd20c1ab447e4171ad23536fbeb1ba3a1a2bdbc8e58c7bce9608ab858889e1f4e2426c64
DIST mysql-boost-8.0.36.tar.gz 438154682 BLAKE2B 066c9dd7f2804ad29808c3bfcf5eae53466f7c40cf1386a9c1f26a0b45dcc3eda8d9618de36e8008e5e4d58b726d6c8ca85aec8d1eda8981f5a49e495b32f046 SHA512 a6c1c009a322b7e7aa2aa607573060414c847c77d48f44a24058ffb89673621f2ebbcc1a4448fa841a87ff721159cc8eaf44a57721c7dc233c130691c16a9d4a
+DIST mysql-boost-8.0.41.tar.gz 488749630 BLAKE2B 4d8c084ec9e95bb6d57573adbb998d4917d76fc77dc599c246b6f2ebbffccd2d2fd1ef8b615caa6bd7d4fa6646b55d5912f98f93d81f64fd4fc4162bf60aa9a2 SHA512 e5bb314082be6bf037808ea7a2130c8e2b44491a6c54bc3f611d823be5285021d05093afca71c3d33da6dece2bac3a8e24da5198080060407d8c4dbfeeea8a99
EBUILD mysql-connector-c-8.0.36.ebuild 3193 BLAKE2B d27adfacf052bfee9e17642b5b07c78c408be52f11b73f36bd213522c62d542e0708abb53c4f58cdb99df6be460354d749efb4b34f0e812536889c9a3ee8d5e1 SHA512 81d17293faa94dc938dc165caec455ec619efbaa73fd676e3ab20ef2ee7ea5174afcf47f65d5cb6c370f2d4fa1d912c4c940d02dc39f44dc260898b4822c202d
+EBUILD mysql-connector-c-8.0.41.ebuild 3273 BLAKE2B d578815ef5edbda6707169993a9e4d2b907662d4a0e30547c327df0353db8f919da8852a9cd40794e2232dd3ab1654ad3cb7c830bfad1c06ac58fc43c9e28c38 SHA512 72530e0e83bffe2a663bc00d4aa8cdeab9ec1e528cc6229845fee2891b71ef255eb1b404842fe51f5417765c808ec7ad60e0e4827f63b4df78234eb46be6696a
MISC metadata.xml 240 BLAKE2B cc93ae4da8408b221c296e092d9db6ae3879754ade669d81c1218d53a5f007c6b7717bda6f92dbb0af38ff9b5e45f44e91503b12d3603d9955ec7d5a2a67399b SHA512 0f41c32ce3d736e061302252f14913d7425bc97e19d0c2f3b80c50637ab3521aa6cfc67f82e5f70f91174cddb36bb5622837dc18fd9db3bf75eb860359aade27
diff --git a/dev-db/mysql-connector-c/mysql-connector-c-8.0.41.ebuild b/dev-db/mysql-connector-c/mysql-connector-c-8.0.41.ebuild
new file mode 100644
index 000000000000..006029d59e49
--- /dev/null
+++ b/dev-db/mysql-connector-c/mysql-connector-c-8.0.41.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2025 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 ~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
+
+ # LTO leads to double free in mysql-connector-c++ tests
+ filter-lto
+
+ 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-workbench/Manifest b/dev-db/mysql-workbench/Manifest
index 32f99b3ee9b9..97c9e7ecb764 100644
--- a/dev-db/mysql-workbench/Manifest
+++ b/dev-db/mysql-workbench/Manifest
@@ -5,6 +5,8 @@ DIST antlr-4.11.1-complete.jar 3547867 BLAKE2B 24e9799a402302fd13ebd91028a8e3b81
DIST antlr-4.13.2-complete.jar 2140045 BLAKE2B b810c171c7bcce7e259beda70a2efbee7868188432868953229dd4457f977b162f384823ccce2ac497dd472fe80d05930d28b6eae865b88fd8bc70def86df131 SHA512 22569a011d207fb8f33e7e71162542a5748cc3daa67eec59cbdc2aeb0894c331dfb8b6100ea88529c6cea72672cbddd77ca6134ddf331685d68b3e72b4e0a914
DIST mysql-workbench-community-8.0.38-src.tar.gz 59069184 BLAKE2B ace0afbab46c106200da5234595065766798d97f57008261c166f97bed842f185e1bba90e0c60b9acf4843b54261b5aa49c8a3a6b096e72597443fcb1a011217 SHA512 9fa18d3a66111461dd47dec05ea8dfa214dac85017d51358e694d56cb05439d96a91f675e105cfbecc70c456127964a81ddb2a5a2951457196b20b10dcb6f502
DIST mysql-workbench-community-8.0.40-src.tar.gz 59113554 BLAKE2B 3e0f86015ba6999284c9bee42e01ad2723b7e3292a67311f29bd0dc630b0bb14a82b8cef9509e1809de82b8330f5ea99594c413e347368a0dc26d69c89366021 SHA512 81f2db45f2dba2a546e02b3cb2eb1ab2e0dc142fa76f6579c0b6069e43cbdfe9cb1fb626aac435031e92aa2fa08cc00b311e7737043623b3d12291df48de9779
+DIST mysql-workbench-community-8.0.41-src.tar.gz 59311496 BLAKE2B 0882f9d210dd963ca7094c433ae92fb69534982e576e0c60f87bc551335f92ad522d1226900ad2c79cfe631a0ee11e26513bd0cab7cd97cc60ff2f98a47f65c8 SHA512 5d14b14e4ccb004963a7af470057d9bd779b514609864fdc2b6b181155d2fd948725a4a32e89452596ee685808c25db1915bee83db5a48218e125c18a7523559
EBUILD mysql-workbench-8.0.38.ebuild 2999 BLAKE2B e9e6452fe944e8ae846e8e60f1d9642a268074eccfcdc63637effb1cd77bc253b01d54b1225105180d01a394341cf1c87a5a49a9198546b02ec1b7e55e1f1481 SHA512 f34ec499aca287e946ff01ed51010b5e6a77a4a5a850b935448f8e3f30ff03d5c3f05daa371eb806160100de7f7ad7d61d24a5cc9f9c60c6a7982aa10c324028
EBUILD mysql-workbench-8.0.40.ebuild 3000 BLAKE2B 2506732059ffb12f85341dd21e0550b3e16947d8c1d2c204524063c31a86ebbebb826f2bd1c68faa06d782c2518fa1086cc5c0cbcf4e30a408e67179155c8ff4 SHA512 1450460c1ba62fed9cb2fee891d2ff3e272190a6c01ba7bd421539c0884ffb643c032ba316a858d83ea99c8693f2cd1aa032c1071fdbef2777327bf808f5dfc3
+EBUILD mysql-workbench-8.0.41.ebuild 2939 BLAKE2B 37ba0c6c78871b57f0048ed9858752d0089eaeafd02e2f9bb27efc331e219b59b41c615eaa48ccfda892f9d5d90d78ddab190b6e34058795b50c14e7b6e109a5 SHA512 426e93eda4d9ffd03676ca97a04db6c064e4bc1d51388d03a7dc105da0d87a7b96004046eafdadde34cb05ab2870e4cd7bdef07a242d5e93bdc2bd4ad5fb1514
MISC metadata.xml 312 BLAKE2B 8c491f0d45e24b9e367ef63f8822daf6925a17f8d44ff822b8faf7485f729524de02309b91e18411421b4533aa086853914c4a0b2a93d3fd5573a289fa1e3715 SHA512 01f2f645d167290bdb313e6c1c386b0426b41edd0ee9b50acf538a7353855c84321111ffd11c213c71424c7df73aa48b8fb9f3f2af914b595fb2961cc6b3186c
diff --git a/dev-db/mysql-workbench/mysql-workbench-8.0.41.ebuild b/dev-db/mysql-workbench/mysql-workbench-8.0.41.ebuild
new file mode 100644
index 000000000000..01b80ca69e97
--- /dev/null
+++ b/dev-db/mysql-workbench/mysql-workbench-8.0.41.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+GCONF_DEBUG="no"
+
+PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_REQ_USE="sqlite"
+
+ANTLR_VERSION=4.13.2
+
+inherit gnome2 flag-o-matic python-single-r1 cmake
+
+MY_P="${PN}-community-${PV}-src"
+
+DESCRIPTION="MySQL Workbench"
+HOMEPAGE="https://www.mysql.com/products/workbench/"
+SRC_URI="https://cdn.mysql.com/Downloads/MySQLGUITools/${MY_P}.tar.gz
+ https://www.antlr.org/download/antlr-${ANTLR_VERSION}-complete.jar"
+S="${WORKDIR}"/"${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug doc"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# glibc: deprecated mutex functions, removed in 2.36.0
+CDEPEND="${PYTHON_DEPS}
+ app-crypt/libsecret
+ dev-libs/glib:2
+ >=dev-cpp/antlr-cpp-4.11.1:4=
+ dev-cpp/atkmm:*
+ dev-cpp/pangomm:1.4
+ >=dev-cpp/glibmm-2.14:2
+ dev-cpp/gtkmm:3.0
+ >=net-libs/libssh-0.9.5:=[server]
+ x11-libs/pango
+ x11-libs/gtk+:3
+ >=x11-libs/cairo-1.5.12[glib,svg(+)]
+ >=dev-libs/rapidjson-1.1.0
+ dev-libs/libsigc++:2
+ dev-libs/boost[nls]
+ >=dev-cpp/ctemplate-0.95
+ >=dev-libs/libxml2-2.6.2:2
+ dev-libs/libzip:=
+ dev-libs/libpcre[cxx]
+ >=sci-libs/gdal-1.11.1-r1:=
+ virtual/opengl
+ || ( sys-fs/e2fsprogs dev-libs/ossp-uuid )
+ dev-libs/tinyxml[stl]
+ dev-db/mysql-connector-c:=
+ >=dev-db/mysql-connector-c++-8.0.27-r1:=[legacy(-)]
+ dev-db/vsqlite++
+ || ( dev-db/libiodbc >=dev-db/unixODBC-2.3.11 )
+ dev-python/pexpect
+ >=dev-python/paramiko-1.7.4
+"
+
+RDEPEND="${CDEPEND}
+ app-admin/sudo
+ >=sys-apps/net-tools-1.60_p20120127084908"
+
+DEPEND="${CDEPEND}
+ dev-lang/swig
+ >=virtual/jre-11
+ virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.2.5-wbcopytables.patch"
+ "${FILESDIR}/${PN}-8.0.19-mysql-connector-8.patch"
+ "${FILESDIR}/${PN}-8.0.33-gcc13.patch"
+)
+
+src_unpack() {
+ unpack ${PN}-community-${PV}-src.tar.gz
+}
+
+src_prepare() {
+ ## And avoid -Werror
+ sed -i -e 's/-Werror//' CMakeLists.txt || die
+ ## Fix doc install directory
+ sed -i -e "/WB_INSTALL_DOC_DIR/ s/mysql-workbench/${P}/ ; /WB_INSTALL_DOC_DIR/ s/-community//" CMakeLists.txt || die
+
+ ## package is very fragile...
+ strip-flags
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # -Werror=odr
+ # https://bugs.gentoo.org/924671
+ # https://bugs.mysql.com/bug.php?id=115735
+ filter-lto
+
+ if has_version dev-db/libiodbc ; then
+ IODBC="-DIODBC_CONFIG_PATH=/usr/bin/iodbc-config"
+ fi
+
+ if has_version dev-db/unixODBC ; then
+ UNIXODBC="-DUNIXODBC_CONFIG_PATH=/usr/bin/odbc_config"
+ fi
+
+ append-cxxflags -std=c++11
+ ANTLR_JAR_PATH="${DISTDIR}/antlr-${ANTLR_VERSION}-complete.jar"
+ local mycmakeargs=(
+ -DWITH_ANTLR_JAR=${ANTLR_JAR_PATH}
+ -DLIB_INSTALL_DIR="/usr/$(get_libdir)"
+ -DIODBC_INCLUDE_PATH="/usr/include/iodbc"
+ ${IODBC}
+ ${UNIXODBC}
+ -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
+ -DPYTHON_LIBRARY="$(python_get_library_path)"
+ -DMySQL_CONFIG_PATH="/usr/bin/mysql_config"
+ )
+ cmake_src_configure
+}
diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index 7ebcf1750085..5576f1df39ca 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -13,7 +13,9 @@ DIST mysql-8.0.40-patches-01.tar.xz 8356 BLAKE2B ee67f391d7d76e2a49d772a946a0984
DIST mysql-boost-5.7.41.tar.gz 53266489 BLAKE2B 7201d6c53cf711bd121464fc85260e1799f7195f45706b91f3cb8d605fe2bd2639d532b4045a336645a553d9b0b1131cc45140a19483902e5dc37d3e2479b6f5 SHA512 88e1cc4864616ed92880a3f02285763aac2ddfc1cdeeff07e1502c97bbdfd31c9ed9d02f8f6381a352857a85241e4e4eb6bc0d978e3928a68ef49362f670482a
DIST mysql-boost-8.0.37.tar.gz 445594692 BLAKE2B 105521985ec8c622a28b5e0f7f13e519b2d91af6ce7c2b483cf1c096aa79f156cc59eabb6281b485d6f558eb6e20a95d5edc349bbd72d1c4a2591eef59270f4c SHA512 4c6033d4f96990d3f324f0d5733273425ddf7cc11660e110e0dc848da6cfa47b7565c1eb0b5d1e08878a0ea2c7d1eb85b400ccca28e5b4383f7e9216ba3e1660
DIST mysql-boost-8.0.40.tar.gz 490502884 BLAKE2B 137a2060ede74449caf6a18dd1b54093668591a592eb0191b436aa289f2faae546eb9d4eaeeef17861a85f3eb34459997fe45c82b21ae07716913e2980c49e4b SHA512 fcece6e3c09dc4733767effb5c22a55e4add1c9f6b6b911e1eccdd0444f08dc5714b3c8b2a40c85a75a63ff117b6c9881904b6b4732b5ca9bef96de1cb2e284a
+DIST mysql-boost-8.0.41.tar.gz 488749630 BLAKE2B 4d8c084ec9e95bb6d57573adbb998d4917d76fc77dc599c246b6f2ebbffccd2d2fd1ef8b615caa6bd7d4fa6646b55d5912f98f93d81f64fd4fc4162bf60aa9a2 SHA512 e5bb314082be6bf037808ea7a2130c8e2b44491a6c54bc3f611d823be5285021d05093afca71c3d33da6dece2bac3a8e24da5198080060407d8c4dbfeeea8a99
EBUILD mysql-5.7.41.ebuild 38684 BLAKE2B 49823400f31fb95cd8d0c7cea72899f47c38aaa9b20ec5822c9d68d56d3a2c1afa9df1999619afa4b4e2ff2a3a152b4a76cafe6204f5ae01d6a65e9cf87d5ce2 SHA512 63d34831a768b338fd25806346fa6786cbe0074255f113f5c9f731b0eebb880b73996efb2a53d042d8d57590f93e1bd74e501b2cfb481a632e4ac23f6bca16f0
EBUILD mysql-8.0.37.ebuild 41979 BLAKE2B df16fd4f3c8d052d936703a6917682ba0273509c6fa72a5b1194e15fcb52f718258485d08cd41fe22b6b8d033e520a6c988c951851409dada6aaf37f004fd572 SHA512 de864755fbbb756adb2cae3058a86ec718d42070495520531762843e0bcbcc98c96eeebea97839a55acffc161b951432fc862ac8bfd45aca5d64e0bb74c196b9
-EBUILD mysql-8.0.40.ebuild 42091 BLAKE2B 0170e7ee7058c591a5f45a0c59a028807c9a7d1c631229b9e61cbb71ac09580057fd06a6bbb3218d09b96dcc8af946e9fdc707f29f9791084704793de499eb9c SHA512 962ebbf903ace4b5ceaa86fa987a92de83f3542a822d0d40a674832026e478dcace3dc97a0207d618d8bfa2bba304ae7eecc905b7495673973b5188d13591eda
+EBUILD mysql-8.0.40.ebuild 43113 BLAKE2B 56b6872790de9ac70d64157bf1f4ae3efc5e2a1fbbff118e4003aa6b3bbc2a00bd49faac3f114672fe0834d843b46cac4634bb5556f733c774ec2806d0e4f2ac SHA512 d73831695d58c8d8d78e3569d3c4fa3cb2e52b660e804e34a75cc97e38dc39358d9779d1dd616648152e1d8c812316dd27942712b226505fec9ce248c5d11c75
+EBUILD mysql-8.0.41.ebuild 42946 BLAKE2B c35dc927ac4d735d8a3df28923c4b4745f24e835369078363ab5a43542906653ffc913020fcacf24a308315b7895fbada8f1b6a741346971386301109ba7b431 SHA512 ba5c99190b900866136c19e08a27bee6a6bf106ee4ad82d3aed1cf36aca60ba3f6d18bef393da8ccb9283329bd24e94105f6b9e9a1ff99c1a8672a140e0a5919
MISC metadata.xml 1353 BLAKE2B ec0454ffdcce75567e9817fa199f1e6ec1ac73520001c299b794cbfebcd42f9e5abfcf9e6faec47bd0b04f40b03846798f1735e1561c91e4e3c0df48627fe4da SHA512 d5f33d05fd1505d13afa2e968cbfcbe1c6ad6a581468608ed1fd88daf1dd17dd66fbc55b8b6eceb42e2d03bd4327985ff7432c668f983775b103e4375b4ad8c6
diff --git a/dev-db/mysql/mysql-8.0.40.ebuild b/dev-db/mysql/mysql-8.0.40.ebuild
index eeffe2b39ec6..5957c41998a9 100644
--- a/dev-db/mysql/mysql-8.0.40.ebuild
+++ b/dev-db/mysql/mysql-8.0.40.ebuild
@@ -391,15 +391,20 @@ src_test() {
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)}
+ # Use a tmpfs opportunistically, otherwise set MTR_PARALLEL to 1.
+ # MySQL tests are I/O heavy. They benefit greatly from a tmpfs, parallel tests without a tmpfs are flaky due to timeouts.
+ if mountpoint -q /dev/shm ; then
+ local VARDIR="/dev/shm/mysql-var-${MTR_BUILD_THREAD}"
+ local -x MTR_PARALLEL=${MTR_PARALLEL:-$(makeopts_jobs)}
+ else
+ ewarn "/dev/shm not mounted, setting default MTR_PARALLEL to 1. Tests will take a long time"
+ local VARDIR="${T}/vardir"
+ # Set it to one while allowing users to override it.
+ local -x MTR_PARALLEL=${MTR_PARALLEL:-1}
+ fi
einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
# Disable unit tests, run them separately with eclass defaults
@@ -419,7 +424,7 @@ src_test() {
"${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"
+ local -x PATH_CONFIG_FILE="${T}/my.cnf"
# Create directories because mysqladmin might run out of order
mkdir -p "${T}"/var-tests{,/log} || die
@@ -477,6 +482,10 @@ src_test() {
"main.slow_log;0;Known failure - no upstream bug yet"
"sys_vars.build_id_basic;0;Requires -DWITH_BUILD_ID=ON"
+
+ # Fixed in 8.0.41
+ # https://github.com/mysql/mysql-server/commit/8872c9a4530d35ab4299517708208d60b1db04ee
+ "main.time_zone;0;Relies on deprecated timezone name MET"
)
if ! hash zip 1>/dev/null 2>&1 ; then
@@ -498,7 +507,7 @@ src_test() {
if use debug; then
disabled_tests+=(
- "innodb.dblwr_unencrypt;0;Known test failure -- no upstream bug yet"
+ "innodb.dblwr_unencrypt;0;Unstable test"
)
fi
@@ -572,24 +581,37 @@ src_test() {
# 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" \
+ --vardir="${VARDIR}" --tmpdir="${T}/tmp-tests" \
--skip-test=tokudb --skip-test-list="${T}/disabled.def" \
- --retry-failure=2 --max-test-fail=0
+ --max-test-fail=0 \
+ --retry=3 --retry-failure=2 \
+ --report-unstable-tests \
+ --report-features
retstatus_tests=$?
+ if [[ "${VARDIR}" != "${T}/var-tests" ]]; then
+ # Move vardir to tempdir.
+ mv "${VARDIR}" "${T}/var-tests"
+ # Clean up mysql temporary directory
+ rm -rf "${VARDIR}" 2>/dev/null
+ fi
+
+ if [[ "${retstatus_tests}" -ne 0 ]]; then
+ eerror "Tests failed. When you file a bug, please attach the following items:"
+ eerror "The file that is created with this command:"
+ eerror "\t'find ${T}/var-tests -name '*.log' | tar -caf mysql-test-logs.tar.xz --files-from -'"
+ fi
+
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"
-
# bug #823656
cmake_src_test --test-command "--gtest_death_test_style=threadsafe"
- [[ -z "${failures}" ]] || die "Test failures: ${failures}"
+ [[ "${retstatus_tests}" -ne 0 ]] && die "Test failures: mysql-test-run.pl"
einfo "Tests successfully completed"
}
diff --git a/dev-db/mysql/mysql-8.0.41.ebuild b/dev-db/mysql/mysql-8.0.41.ebuild
new file mode 100644
index 000000000000..f87dbab56247
--- /dev/null
+++ b/dev-db/mysql/mysql-8.0.41.ebuild
@@ -0,0 +1,1310 @@
+# Copyright 1999-2025 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 toolchain-funcs
+
+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.40-patches-01/mysql-8.0.40-patches-01.tar.xz )
+
+DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
+HOMEPAGE="https://www.mysql.com/"
+# https://dev.mysql.com/downloads/mysql/
+SRC_URI="https://dev.mysql.com/get/Downloads/MySQL-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz"
+# https://downloads.mysql.com/archives/community/
+SRC_URI+=" https://cdn.mysql.com/archives/mysql-$(ver_cut 1-2)/mysql-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 ~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 test-install"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ ?? ( tcmalloc jemalloc )
+ cjk? ( server )
+ jemalloc? ( server )
+ numa? ( server )
+ profiling? ( server )
+ router? ( server )
+ tcmalloc? ( server )
+ test? ( server )
+ test-install? ( 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:= )
+ )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ server? ( net-libs/rpcsvc-proto )
+"
+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
+ )
+ test-install? (
+ app-arch/zip
+ dev-lang/perl
+ dev-perl/Expect
+ dev-perl/JSON
+ sys-libs/timezone-data
+ )
+"
+# 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 )"
+
+# https://bugs.gentoo.org/623962
+# tests set TZ for tests leading to failures on musl if sys-libs/timezone-data isnt installed
+BDEPEND="
+ app-alternatives/yacc
+ virtual/pkgconfig
+ test? (
+ acct-group/mysql
+ acct-user/mysql
+ app-arch/zip
+ dev-lang/perl
+ dev-perl/Expect
+ dev-perl/JSON
+ sys-libs/timezone-data
+ )
+
+"
+
+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
+ # Needed due to bundled boost-1.77, this fix is included in boost-1.79
+ "${FILESDIR}"/mysql-8.0.37-fix-bundled-boost.patch
+ # Needed due to bundled abseil-cpp-20230802, this fix is included in abseil-cpp-20240722
+ "${FILESDIR}"/mysql-8.0.37-fix-bundled-abseil.patch
+ # Needed due to bundled abseil-cpp-20230802, this fix is in no release as of 2025-01-09
+ "${FILESDIR}"/mysql-8.0.40-fix-bundled-abseil-gcc15.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; \
+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 rpmNONEXISTENT/' \
+ 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 requires C++17 due to https://github.com/mysql/mysql-server/commit/236ab55bedd8c9eacd80766d85edde2a8afacd08
+ append-cxxflags -std=c++17
+
+ # Debug build type used extensively to add preprocessor definitions
+ use debug && CMAKE_BUILD_TYPE="Debug"
+
+ local mycmakeargs=(
+ -Wno-dev # less noise
+
+ # Building everything as shared breaks upstream assumptions.
+ # For example bundled abseil is excpected to be static and is therefore not installed.
+ # Breaking the assumption leading the mysql to being built against bundled abseil,
+ # but then dynamically linked against system abseil once installed.
+ -DBUILD_SHARED_LIBS=OFF
+
+ -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_PRIV_LIBDIR=$(get_libdir)/mysql/private
+ -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_PLUGINDIR="$(get_libdir)/mysqlrouter"
+ -DROUTER_INSTALL_LIBDIR="$(get_libdir)/mysqlrouter/private"
+ -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
+
+ # debug hack wrt #497532
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+
+ # Automagically uses LLD when not using LTO (bug #710272, #775845)
+ -DUSE_LD_LLD=OFF
+
+ # Causes issues on musl bug #922808
+ -DWITH_BUILD_ID=OFF
+
+ # These are installed via dev-db/mysql-connector-c
+ -DWITHOUT_CLIENTLIBS=YES
+
+ # 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)
+
+ -DWITH_ICU=system
+ -DWITH_LZ4=system
+ # Our dev-libs/rapidjson doesn't carry necessary fixes for std::regex
+ -DWITH_RAPIDJSON=bundled
+ -DWITH_ZSTD=system
+
+ # This is the expected location for upstream RPM's and the script will search for location relative to it.
+ # Other locations will not work.
+ -DINSTALL_MYSQLTESTDIR=$(usex test-install 'share/mysql-test' 0)
+ )
+
+ if tc-is-lto ; then
+ mycmakeargs+=( -DWITH_LTO=ON )
+ else
+ mycmakeargs+=( -DWITH_LTO=OFF )
+ 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."
+ 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
+ # 05/06/2024: protobuf has been updated,
+ # but it cannot handle abseil when building against system
+ # Currently bundles protobuf-25.1
+ -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 ..."
+
+ # Ensure that parallel runs don't die
+ local -x MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ # Use a tmpfs opportunistically, otherwise set MTR_PARALLEL to 1.
+ # MySQL tests are I/O heavy. They benefit greatly from a tmpfs, parallel tests without a tmpfs are flaky due to timeouts.
+ if mountpoint -q /dev/shm ; then
+ local VARDIR="/dev/shm/mysql-var-${MTR_BUILD_THREAD}"
+ local -x MTR_PARALLEL=${MTR_PARALLEL:-$(makeopts_jobs)}
+ else
+ ewarn "/dev/shm not mounted, setting default MTR_PARALLEL to 1. Tests will take a long time"
+ local VARDIR="${T}/vardir"
+ # Set it to one while allowing users to override it.
+ local -x MTR_PARALLEL=${MTR_PARALLEL:-1}
+ fi
+ 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)"
+
+ "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"
+
+ "sys_vars.build_id_basic;0;Requires -DWITH_BUILD_ID=ON"
+
+ "main.keyring_migration_password;0;Known test failure -- no upstream bug yet"
+ "innodb.upgrade_orphan;0;Known test failure -- no upstream bug yet"
+ )
+
+ 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
+ # Fails still with 8.0.41
+ 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;Unstable test"
+ )
+ 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"
+ )
+
+ # 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="${VARDIR}" --tmpdir="${T}/tmp-tests" \
+ --skip-test=tokudb --skip-test-list="${T}/disabled.def" \
+ --max-test-fail=0 \
+ --retry=3 --retry-failure=2 \
+ --report-unstable-tests \
+ --report-features
+ retstatus_tests=$?
+
+ if [[ "${VARDIR}" != "${T}/var-tests" ]]; then
+ # Move vardir to tempdir.
+ mv "${VARDIR}" "${T}/var-tests"
+ # Clean up mysql temporary directory
+ rm -rf "${VARDIR}" 2>/dev/null
+ fi
+
+ if [[ "${retstatus_tests}" -ne 0 ]]; then
+ eerror "Tests failed. When you file a bug, please attach the following items:"
+ eerror "The file that is created with this command:"
+ eerror "\t'find ${T}/var-tests -name '*.log' | tar -caf mysql-test-logs.tar.xz --files-from -'"
+ fi
+
+ 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
+
+ # bug #823656
+ cmake_src_test --test-command "--gtest_death_test_style=threadsafe"
+
+ [[ "${retstatus_tests}" -ne 0 ]] && die "Test failures: mysql-test-run.pl"
+ 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
+
+ # 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."
+ ewarn "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"
+ ewarn "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!"
+ ewarn "(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/pgpool2/Manifest b/dev-db/pgpool2/Manifest
index af5c621ffcfd..dd904f398efd 100644
--- a/dev-db/pgpool2/Manifest
+++ b/dev-db/pgpool2/Manifest
@@ -15,6 +15,6 @@ EBUILD pgpool2-4.3.10.ebuild 2458 BLAKE2B 22f65c3a22c9b79dba97d5eb6ba24ef010a3e9
EBUILD pgpool2-4.3.8.ebuild 2456 BLAKE2B 7ac3722e1336c3b8447732fa2495b919fc91f56012aafc96bd19ca2ab2beea30b942f03341df33831c68c02b97673b0fa974a2930fca5bc8b787224ca7534d0a SHA512 6edb966973bc72d7284b6f15474758b16755da8b65befa094f79b51150d8be1dcf22d9e951abc1efdb1bd0cc9b58f9d11d751485479defe719deca463704e1fc
EBUILD pgpool2-4.4.4.ebuild 2454 BLAKE2B a59c283e26abaaf4444c57cc9055465ecc5c4233dbabf8a072f47432e5d14f2d21f17068c09968584f01f70d29bfe95d490bd04dab487778c04cb473230b25da SHA512 4355cb8dde83e810a46cbb8859bfbb841bea03382e14cf7760eda76ec969d24ccedd35db6cea0d90107997369ca3f58cbdef78e66d12eda79beaef65685331a4
EBUILD pgpool2-4.4.5.ebuild 2452 BLAKE2B b95d99df5991a36c809e7f07145b0dc5872e92b897be9797c448268c99fed3c1ffcfda69c594ef64104f310e05df01b795c10a193fb6fdaa571d82ac5aecb2a3 SHA512 1cfdbf1ce126dd07a30f4907cbe6bec1751e93c4a2480ea1bd86f542633c13a411bc63576a3dfdbc09fe5d838590972432a1e458dca58972618eb8203f4276aa
-EBUILD pgpool2-4.4.7.ebuild 2454 BLAKE2B 72c3f7bf2142e85be2d0c4d58f1e23537bcac20079436d95ab3da45f9150150e2a83a21d98b42999d1593dde041a6eb5d618203e293e7ac4c09446f7c1e87c82 SHA512 d2f5256914cc5aefdae9958a019b8e353ed1d603f3a0103c22c5c0834a00b01f75daa51c87255175675687a8f31e7ac4c62963b983aadcad167beb7d281abec5
-EBUILD pgpool2-9999.ebuild 2552 BLAKE2B 01e1997a789efb97126111830ab8022a25d47d6eb45a25545fe5a218644de73e7a8a54aca7f18881bfc25e60a0b2361dd0ced1a8682b065bf1619b3d5df14542 SHA512 b989b9385dcff0bf1fcdb876d6eac368a3e57ef6d2e6d376c4e4001c04373ab6e2464ff912d325eb5a8ef512655245cfcf5c1ec2c1f6b3e1016459c5c0982a80
+EBUILD pgpool2-4.4.7.ebuild 2443 BLAKE2B d6defbed2107f33030f264129e882484b4ea14716d8e8fbcb24c450e2a6771bbafc3ec481534f8f7a08d9f428fafcd9e0d6310dd448988cfe0adf3502307df5e SHA512 724cc3aaa99585c896582993f9b8e4e258b9db97b9bdda5b18f1c714f8cbc6432c0e8c12a7272ca1d9bfa1886c951cc61b144609b914bd0fd4cc7d21779b2d1a
+EBUILD pgpool2-9999.ebuild 2541 BLAKE2B e8012736db822040d3ea55470102014c8136347aca4ba9e33bc66d072a33a564c908e1b8f48c711df66e200524a3dc5936515bc80b0f8ae55902be6d8afc11e6 SHA512 873b41c3305c23ceb747f776305572b421b1a6129b3b17869c6099ea982199fb11a78ed7f48caff7ca98f13b525af9c8a6ad23422297e3b7eb3a211a78162508
MISC metadata.xml 391 BLAKE2B c5855fde95e138709d778b50b897ea0dd75267547e89faf60988d1dfe78740c313291a226c30fdd618ef2893ad3dc11000b33026e04369fe294ca9ed1e18efb1 SHA512 374bd70841f1f13e2f8265f972e2debc7fb79a3f463efb897a75fd8ddc3163edf82c888d3d8d5bfede6c509fc27f67e74592599b8da8640035a5d4241cad98c1
diff --git a/dev-db/pgpool2/pgpool2-4.4.7.ebuild b/dev-db/pgpool2/pgpool2-4.4.7.ebuild
index 8170c488c799..1d474610d775 100644
--- a/dev-db/pgpool2/pgpool2-4.4.7.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.4.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -48,11 +48,10 @@ src_prepare() {
}
src_configure() {
- # -Werror=lto-type-mismatch
- # https://bugs.gentoo.org/855248
- # https://github.com/pgpool/pgpool2/issues/42
- #
- filter-lto
+ # bug #946410
+ append-cflags -std=gnu17
+ # Usual always_inline problem
+ filter-flags -fno-semantic-interposition
postgres-multi_foreach econf \
--disable-rpath \
diff --git a/dev-db/pgpool2/pgpool2-9999.ebuild b/dev-db/pgpool2/pgpool2-9999.ebuild
index aec380cbbd43..786ad47b5026 100644
--- a/dev-db/pgpool2/pgpool2-9999.ebuild
+++ b/dev-db/pgpool2/pgpool2-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -53,11 +53,10 @@ src_prepare() {
}
src_configure() {
- # -Werror=lto-type-mismatch
- # https://bugs.gentoo.org/855248
- # https://github.com/pgpool/pgpool2/issues/42
- #
- filter-lto
+ # bug #946410
+ append-cflags -std=gnu17
+ # Usual always_inline problem
+ filter-flags -fno-semantic-interposition
postgres-multi_foreach econf \
--disable-rpath \
diff --git a/dev-db/pgrouting/Manifest b/dev-db/pgrouting/Manifest
index fe925569c105..2de14b6380e5 100644
--- a/dev-db/pgrouting/Manifest
+++ b/dev-db/pgrouting/Manifest
@@ -1,5 +1,7 @@
DIST pgrouting-3.6.2.tar.gz 3873384 BLAKE2B 118d57018d344055e3a7d7daef07f0f8916918b907d7d7dd5d63e22c8df0315089ab6b52f6a70b5dea4390e9f432cec602c798f46557bac2aa69f69e4d5b8555 SHA512 9fe5649d022bc1330d9f70e42a69de45eaed9fce070f58594996516f295a7bc15c099b2c3ee1c25ee4b4f0d839de4c0cc74174972e7f7f0dc5fa4be395d58dd3
DIST pgrouting-3.7.0.tar.gz 3870824 BLAKE2B 19f5327dd76311e9ec1409c5e77fc59c599f2b22b847fb936f11e891d433fb43629dd2f2223cb923f45f7ebbcdd58cb749076851f3d0a980953e257adc3a3265 SHA512 8ebe82a6c0e6d2974d298fbdb2b3d48304da76395da5459183e8ade56b247e179b606fc3a6ab60478696a0dd9671be20995b1f13beb61df2393d4f36050baf23
+DIST pgrouting-3.7.3.tar.gz 3873167 BLAKE2B 987b6f746b277a9258e46d598e9eeb1a451de286de497b79fde7dd66ae0e44c6b75e7aecdf7d9a86505ae8c3615d3064fabfa67b21aca23e8b9c2af2be593751 SHA512 fdc46853268b7c54df73f50cfc1fad99fbfb6ef214ec5651fbae37e8f6335cb03c9fc95d6309f43ba3fb35d0c8453f64d1a7416cd4ff565e32864786484b8440
EBUILD pgrouting-3.6.2.ebuild 1045 BLAKE2B c6b72fdc6e01cfdb1b2feaf91865a481b4c05942b5d2c4794a3a5cb91627a6272b5fdb2f5022f269d0d03f7f866d59571e1418029b1fd669dffa090917ab4dd9 SHA512 9b7ee0a47e7f00283aece900f6eb71df9a6f5bd3e2f49723f74f09d23fe1cc51120850b5c0b1946265eb296c477dbd5ad3b5d862af661e76ddd55485091d83f6
EBUILD pgrouting-3.7.0.ebuild 1045 BLAKE2B 1313856606fb2ba9be42f2a93f7da6a197d3530fc0811d3634fbb54fed1164cd1e7dbf2afff9054945f81a62a42eaec05288f30f82ae1c0cd42971ac8845d1f2 SHA512 2c9f1168423c290d3221d54b52433b44d28893c7ab59ba84dfc00fa7493a98fc66913e3c9f3f1d26d161f925ccb41da636bc4c493afad2e766c6c08a0dcc8ae1
+EBUILD pgrouting-3.7.3.ebuild 1046 BLAKE2B b55146a03d42d367a7d33fb9fc6eb8ccb40b22420d75a71c4470912d4c7aefaae12afe35333c9f6db1671386eff536590a5a736bc34ed623c94cff2e63a1b48c SHA512 2c124a93be0f6d54cbc8d6b73bf984ce2a6e3b372ad82346007ce4792ba1cce40df29a3c5b725b98e6c3fbb3f9aa011fc43b5e1c1353d80d5f3b74eeae939611
MISC metadata.xml 375 BLAKE2B e6c25b3d8331162daad5c8cf73b35340bb5092e219d0300be1aa2b36f6d73044b7ddb883cf15e633f8837ef12716a779bfc968112cba418dfed9d106a86ce076 SHA512 b01c3c837b862519087f831bf7ab7de2add4a6fee5b8c7e78b551fe6c4bed59d3f30e7871defe16c25271fdafa5e1d8bc6da250ed22bd1f2476e05fcd3a3d7d0
diff --git a/dev-db/pgrouting/pgrouting-3.7.3.ebuild b/dev-db/pgrouting/pgrouting-3.7.3.ebuild
new file mode 100644
index 000000000000..3cf51443437e
--- /dev/null
+++ b/dev-db/pgrouting/pgrouting-3.7.3.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_BUILD_TYPE="Release"
+
+POSTGRES_COMPAT=( {13..16} )
+POSTGRES_USEDEP="server"
+
+inherit cmake postgres-multi
+
+DESCRIPTION="pgRouting extends PostGIS and PostgreSQL with geospatial routing functionality"
+HOMEPAGE="https://pgrouting.org/"
+LICENSE="GPL-2 MIT Boost-1.0"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+SRC_URI="https://github.com/pgRouting/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+IUSE=""
+
+RDEPEND="${POSTGRES_DEP}
+ >=dev-db/postgis-2.0
+ dev-libs/boost
+ sci-mathematics/cgal
+"
+
+DEPEND="${RDEPEND}"
+# Needs a running psql instance, doesn't work out of the box
+RESTRICT="test"
+
+src_prepare() {
+ cmake_src_prepare
+ postgres-multi_src_prepare
+}
+
+my_src_configure() {
+ local mycmakeargs=( -DPOSTGRESQL_BIN="$($PG_CONFIG --bindir)" )
+ cmake_src_configure
+}
+
+src_configure() {
+ postgres-multi_foreach my_src_configure
+}
+
+src_compile() {
+ postgres-multi_foreach cmake_build
+}
+
+src_install() {
+ postgres-multi_foreach cmake_src_install
+}
diff --git a/dev-db/postgresql/Manifest b/dev-db/postgresql/Manifest
index 64d6d7424ae5..4c5f65fb1089 100644
--- a/dev-db/postgresql/Manifest
+++ b/dev-db/postgresql/Manifest
@@ -1,4 +1,3 @@
-AUX postgresql-12.1-no-server.patch 2965 BLAKE2B 168f39c02f0614c57a60c0ce3bb540e0d29dc407c569661d0cd29ddb57657bfada44aa90ca915c8474ca5541ac1f4cc152fbd70c105efcbe83f9e5b9f918eeb5 SHA512 5e025da1cb5f696821b19093ab893667426a08b1bbc8e3f748d34207730026625b61a8cfd2596af124080a4a292363546dce5b703ce6164efceceabc6b170aa2
AUX postgresql-13.3-riscv-spinlocks.patch 966 BLAKE2B 4834d47b01e1f8e122fa940a84e1e790686d96b538d27f253724f7be454c455c6853cdadf41da5cafeb8767012b45a6eef742685117afaaa78e0e9a930c728c8 SHA512 1c217ec177a1669fcaeffe2cce241b5ba2cba6425d9eee8bf50dce6626e70e2d063776e1ced4590cbf9ffc046ede02dbe4f06bdfb7bc4c3dcb0f028c128c15ea
AUX postgresql-13.8-no-server.patch 2985 BLAKE2B 81a4a7c1d3c9e104ea7a575a14eecada57b62ed652b4401b459886250518179b1f68efd73246773cf7b745c298ac59f0e5f693f2ac0e6e0fd4a29c4c431e3715 SHA512 7a3fd3f8411c59b812da6deaf743247c0e728aca653fb66860a7a6e55704bc732327dcf917ce17fe089003740131d4d92879e171b4b9ff262fef0743f6f50122
AUX postgresql-14.5-no-server.patch 3018 BLAKE2B cbb900bcb7bcc8e788369829811da0d57a45682a77ac54f430cab7ebf6df9ff10489d50d129fa5b24bfff80929497b3107a8e650962b8e772d6b0bee610f05a9 SHA512 90e88567af5f30969e946295c4c058cd245bdd7dce01d48b70aa3dd000cf9e54570ed1b6bcc423a10ed0b7102047927da19bd26f5714e003ccffde967c77db26
@@ -9,17 +8,15 @@ AUX postgresql.confd-9.3 2477 BLAKE2B 0d42eedb99c951c8c60ed02abb5d4526bc288e8dd5
AUX postgresql.init-9.3-r1 4999 BLAKE2B f2bc23a51b6d9643bbc14320aaa9c41b7eb1df86f8b760b9146739b14060178a415fe49b77a47b6bc5522759759fa0aefa9f0050b340534a64c2f22f89c7825d SHA512 a0f003c7d00b9749b8b25fce8ac728869e0c8f5a3c87e699b62806207413d5abba8db1e9d35e801316fbfb0ee070eb3b6a099b7991065c21cdb27ca7dc164bed
AUX postgresql.service-9.6-r1 1477 BLAKE2B 2a652d5b2892f3a52f484fcc0b4f4dad09cf4b46c3739c3f805072040a26128cb2ad9a25d4a7c9f109a95696d739538d379af6bac53c656f5c41af45b6110de5 SHA512 9e2b04923f6ebec1424c0f276c58a6a0c4933f2de5e2a9776169227729afd06ce5284461be8b6ed70e5aaff2a68b9f96c6893d867d35761c9977f9847ccfe93d
AUX postgresql.tmpfiles 39 BLAKE2B 25a5725af53c8e4e4009887e998172dd863ce218a5438351194548c4fc8ea15308dfba3602d5a922cf49b46015198268a4a4528119d8a74dcef4cc4c1767c052 SHA512 498060f2a597cf374f4fb31deaa2d6c5b00edef68efc0e71b82bfc20b717ae12518ba18fcb455a0c518ebba1a0868f38321470616151d02fa79b889a66dcb9f8
-DIST postgresql-12.22.tar.bz2 21305304 BLAKE2B 136ac89a0f66bdc35b36e8acd7bc9264fab445ac0728e8d4d69903684810b392e1d3fd39f426b31cdceaa953a5de4f63ffe33c86b6643d5ffde12e32c9ecd4be SHA512 45e659e1c2efdaefb1cb467f936f5bdee6d08087089818bc315bbc39978307619d36e8613f65755c96949dbf6079e3efa8cf367e751d1f157d3e3650c3b4a3a8
-DIST postgresql-13.18.tar.bz2 21687645 BLAKE2B dd8c5906f7d53b5447e8c307960a5ff7cf25cec711a508acf80609e12f9411c9382753da313e31a546be528ff8263327befadcb5f8a40c3164a56f582710bc43 SHA512 2694ff9402683c90ccfbb53a465f6b6a09702b9b5b44e2db84a3a41175427d889d1b823897fd361b04a53dd3596289822e36a77215cb45dd972d79850fbdb97b
-DIST postgresql-14.15.tar.bz2 22458243 BLAKE2B 4d5a1c253c5b015e68634ebe433dee421c5a1e1bac0cc5be2eb178001755656efd9642be2369d8b7a76fcbd4a127f40dd99d3c4624c137fca531558464df1a5d SHA512 227f9551167ee62e5185d6f6777e100ecc09f497b9ee1b5a8e659de8d4c237b0f9a97005706bbf64c3e839271e2630f6a417ba98dfce47bcb4c27e8641a7c6ef
-DIST postgresql-15.10.tar.bz2 23138615 BLAKE2B d187afd9897feb8bb353dee705817781f099e7cc41eb915f096196ad228646fc65d706c488258d5ee9033b20d2204fd11f5e92e33387310394e7cc102f02b72e SHA512 73513f5f688f470aadd95dddef3b39b5d140d539bdf3171e053a89b3eed4c769f7951280468e9f11102f2de9fe8742bb38676c8d5d43418544b9482d83957ef4
-DIST postgresql-16.6.tar.bz2 24856956 BLAKE2B 2d6d6efcc4cb0027c03422c839856ac024d3824a7e7da42cafbb961616cdd078064e78b6eb1c98565240ab1f78eb52582f38c9ce80b3a98f9e65568b2c14e40c SHA512 ffd6d39fb7aed87241237d68af4934fba1b4ac1be4d3c2833e308e50c21a693796fe54b73e0905365d7557009c40049a23b966aa86765b969797434a0d4bd5f8
-DIST postgresql-17.2.tar.bz2 21408880 BLAKE2B 1afafbec5db26ab17f2410c40db38e30fc1413cd518d387bc01640232698407de97123d0c61e1ec4d32d1041055db874f04dd52ad3697f1b9993b1aff3c5156a SHA512 8e15e47c22d21e1cadc31249cf31af5abe34b8ab72930e58e5fe6124795ad237ca7b4fd3bf36b5f18589c4fc439dc2bab3045d9b4ba23d1846b4b2be6fd1cb69
-EBUILD postgresql-12.22.ebuild 13080 BLAKE2B f93d6444c5400325651e8e5218630a61ac38ac62c4ec9f4b1114e04510ba4aa038d5398e1444dd6f738d98cb07789ed7172e8852ade2be3cbfcc9b7f0fa17bee SHA512 9a9a8960ae4c0f2837348b27e6a59ead05c63f3c6fe8173411f5d65f3eccc6140b5b8f0efb5b1aa1c8f34788f9abda97037a6c1ae840d2b51022b89ac6e5eb57
-EBUILD postgresql-13.18.ebuild 13514 BLAKE2B 58468369244a1a10e1368f0e18818a042c3d3cdd8486e033d746e51e4f79cd89bf87a83bcc6784d0187222599b7ffe0b4dba74a2d57fe632ff5e5ff0e080a5f5 SHA512 1f14b4659e312b6e9520d5d27d654c578363af8e4ebe13d60c09a2ffdabaf38d20f648b461e15e196a7aab1ab0f8e7d2bfa434067a5be24dcb721cc398be76ca
-EBUILD postgresql-14.15.ebuild 13505 BLAKE2B 69079efc24a73284f4f30d5f654220f028ca897320fb5de6c6f14488dd2fcd4e131d5d3ebb5aa76f4d9004bab29a9c4ffe37ec084043047a1862cbc676654400 SHA512 f8797cba502ec87701f438ffa3a5a193e581d5b91a9ffe0e81572e75081b29b7b4cc33dbc06490584b62a31cc4e71f3f81700b4f87814d20da44f60a3a922b6c
-EBUILD postgresql-15.10.ebuild 13567 BLAKE2B 764b6bc95fa8034d3ee7a638c91abb449aeef4bfbbc26ac51446ee88b28d22bc8f57ce3cfc10bb3088b6757973afa2b34f33091ad7d97d7832d921db26e3ee70 SHA512 a053c3db9acc458b2494b6c3147cb57eef7d873193e9ead44efbe7b4d42ee6262a96ecb6018907b26a2779597e08f7a4d71f30da8291a7607f4b9fcf4e79414a
-EBUILD postgresql-16.6.ebuild 13577 BLAKE2B 7e3868cd681a4e848b0937ff2d7a1da82f0b35e295aa092ea075264f717c37ddd31e4b4ac64d1ad128b57f318818f9bd9aeb327f1f6fdf6ebf73d8ebfbd0f543 SHA512 047796cecd6fe7d2da64d19676f5064589ebe31c7e459c15d9b5c0e3be83542e4b5035c610c94c6e606b8d21005b552f5c183efe7caa09bbea4d45d8d3f87466
-EBUILD postgresql-17.2.ebuild 14045 BLAKE2B 14a460faa1e78c76104680c7d373d0c8ad6f40973e0b529a5fb6568ab0e923203f634957463649203a1cf33d82dbfda7331d6612983bbd2e909f1dd2729510bc SHA512 850c98c36ba9389371c9d7183c7f0ee99dee9816b8fc2efde3abb813932c6cd7428049799be9dac69f67d9f6b91bffa6bcd7ad0c95335f6b15699e32f801acfa
+DIST postgresql-13.20.tar.bz2 21730844 BLAKE2B ff5822ee32ae4335c92e035ea4ec8cb2fbf2028d9245f5ffdbf5257833345d40e89e3eb12f4d93d0600efc2c67917be18b434b61877e47b4accb4bd78e54bb60 SHA512 884ee8327b803c66679238525e7d51320ea537b41138d7fe8fd7e725631f734a61e53646d9cec78154f3f05a3b50e90508793a56a8f0f76699a53773930cb1d0
+DIST postgresql-14.17.tar.bz2 22488812 BLAKE2B e81c2416e69e3b31a69b5e8db32543c8aaff1b81f7163b3a204827d5ee4cffd08a5cc45bdc774a4ffd19d4b48dee5797842364bb9706ada945fd6ff415687486 SHA512 1cb7d16fbfbceaa6bf0acd4cf9bea3e8fc078fcc6c1f7baad1d66040e1467f59ac54858b11a26543b50e25d3f0db47e0c72539cde743c794d41fa9d2f97c22c1
+DIST postgresql-15.12.tar.bz2 23170228 BLAKE2B fa92c660a7963a0ad3024200ccf5efc5898d4ba639dcd2128afb3962567022d2829841d16af3566800d3332f6e68ea2da6811492df7fe013bb11bfc3671828bf SHA512 6ccb44cb7ff2133ccb03dfc6b49e26714d9aecb91f4b9d019a8f1e7d0d71ed0bf8101fbbda0185091e4688a557600f020a12306c389e819d731184c17e182717
+DIST postgresql-16.8.tar.bz2 24911337 BLAKE2B 03dadec5c74235d1250a5b5eea38630ea9675dc016defadf912cd837207facee000a611c62107035443ea28c491f12be84105dacec67eddf8bc48f3adf4f2097 SHA512 f44fdfe01fbf82f3ffe4c9fc860bd27e06dddfe43b6bd6d1c6e267d64086eb5517e23cc1b2b8895cb73e63fce76779993ea9785a97e6e348ed91b4c08bb0492d
+DIST postgresql-17.4.tar.bz2 21519810 BLAKE2B d8095023ae85ba2a28479e4c1d6dac57ccb71471e6e3a74730052c368a71e66e3e84df36a1e1b85f3bd070141b9464aa9c4aad179f421ea8fea274a7975398af SHA512 43288a297c753d075405a7bd3fce17f6a260d6b0a80a156c1e6267e0ebd40c85b7bb929e893956a109eda4d93fa8936f43e981242c1fd67a91012cba5472026c
+EBUILD postgresql-13.20.ebuild 13514 BLAKE2B b4c124a5ec7b63f3d1135ffe23d0ae584fd837faacce07d836267bc51c1fe7abdf8b567d2ff1f3de72cfac31184eded861a66f2b794be0b86074bc56acabec62 SHA512 23c62c2176e479e23245916a491f4cbd5a6332656cc00bd2d558edfae3cf3aa67b8196b7dd175f8dd122eb56b0a363edf006516bce1e6b24809e5e6607bf21ab
+EBUILD postgresql-14.17.ebuild 13505 BLAKE2B f2c5466a8ba21322d68820f272644f11ab6546b312570cf1b1713d826639803da1a611bcb25f6a6f925ca56b5f4ab451b7010e150839560aa182d0f0f8ae5886 SHA512 97d711569b246b5c38d05ab62bd63560f323c895ffacf6f08717955dcb94025be0e5140e5482970ccd010b343de66fe1d61eca35ae8a1789bd66a23949fa770e
+EBUILD postgresql-15.12.ebuild 13567 BLAKE2B 42441a3aafeb204dc40d0bc10c9ae45f04b987d7472a961fe30c75cbdb1563aa557188fea95b116b089638c6b46c72aa5a85ba7aabd8f3a72b33fd0abd84c5fc SHA512 927fe489b74aed4960f8bfa211f39677f8194c0022b41e6415beb6fedf0d95fbd2690acf62d5d282bc3a5d61465d41cd5a5cd4f5ee398ea9fbcc70d851cdfa18
+EBUILD postgresql-16.8.ebuild 13577 BLAKE2B 5857ab5c6faffdf8c3203e500e8d841f543bbc64884f8b348fd52371987baccb9df613f0671a9bb9d85f7d2c62a730acb3c2a3d16d1bd930c34564c6bada0176 SHA512 6f0cae5a30602b6371de9ac72dab2585d7538ca4e4c1aa56968208ecd91119682fb0976f4eacb811c5b1dd122f962219703a0845be4f530b349e385154657de0
+EBUILD postgresql-17.4.ebuild 14045 BLAKE2B 4bd6cd40f4b18a32481477d500ba09c64d2e8ed239958dd0f0fcaad02b004eaaa2d206e14e93f9eeb94f9c180162ab4d383fee26c7fb1a38d28bf3832cec8e58 SHA512 4c9082ddf43592190ebbe43b90226b4df06d93810c451d460557ea4ed02ea23fe571c8ebed8f221fd161fa87e898d5fcdb37a2f670865c8829ed06ad8bdb6490
EBUILD postgresql-9999.ebuild 14411 BLAKE2B b441f9e8269a267388b2fe361f3f7ec53fee0471b3c64c5a69d853fb869b8d0aa5f8fb768e628a7e3acc844841e465d0bce1452b2132be6d44270610d219ae37 SHA512 b637455bc50f6e0a0ccc6c1d7273da1b19fdd04bbaeebdaa119094ba78a27154a5d14c56aa18f5b04af39df64d70fef9e1d8c1a2972d755d5b57a43679048262
MISC metadata.xml 653 BLAKE2B b5b85d83ee78ac502e2707d156e2fadf6fea857160e2f48da51c755e221c52a14b9eb04354202287f4aba15c274c07ba7b0911c76fd034bfa774ce3500ccb165 SHA512 fd543af224f6f8677e138cb1db7154d2444295c45df8696e3584911943176023d8d1b179f6b16d88ffc6d290265ec1b2f4c902cf95cc79eb37599ae3635b0942
diff --git a/dev-db/postgresql/files/postgresql-12.1-no-server.patch b/dev-db/postgresql/files/postgresql-12.1-no-server.patch
deleted file mode 100644
index d500d6726361..000000000000
--- a/dev-db/postgresql/files/postgresql-12.1-no-server.patch
+++ /dev/null
@@ -1,143 +0,0 @@
---- a/contrib/Makefile
-+++ b/contrib/Makefile
-@@ -5,56 +5,9 @@
- include $(top_builddir)/src/Makefile.global
-
- SUBDIRS = \
-- adminpack \
-- amcheck \
-- auth_delay \
-- auto_explain \
-- bloom \
-- btree_gin \
-- btree_gist \
-- citext \
-- cube \
-- dblink \
-- dict_int \
-- dict_xsyn \
-- earthdistance \
-- file_fdw \
-- fuzzystrmatch \
-- hstore \
-- intagg \
-- intarray \
-- isn \
-- lo \
-- ltree \
- oid2name \
-- pageinspect \
-- passwordcheck \
-- pg_buffercache \
-- pg_freespacemap \
-- pg_prewarm \
-- pg_standby \
-- pg_stat_statements \
-- pg_trgm \
-- pgcrypto \
-- pgrowlocks \
-- pgstattuple \
-- pg_visibility \
-- postgres_fdw \
-- seg \
-- spi \
-- tablefunc \
-- tcn \
-- test_decoding \
-- tsm_system_rows \
-- tsm_system_time \
-- unaccent \
- vacuumlo
-
--ifeq ($(with_openssl),yes)
--SUBDIRS += sslinfo
--else
--ALWAYS_SUBDIRS += sslinfo
--endif
-
- ifneq ($(with_uuid),no)
- SUBDIRS += uuid-ossp
---- a/src/backend/Makefile
-+++ b/src/backend/Makefile
-@@ -53,7 +53,7 @@
-
- ##########################################################################
-
--all: submake-libpgport submake-catalog-headers submake-utils-headers postgres $(POSTGRES_IMP)
-+all: generated-headers
-
- ifneq ($(PORTNAME), cygwin)
- ifneq ($(PORTNAME), win32)
-@@ -192,23 +192,7 @@
-
- ##########################################################################
-
--install: all installdirs install-bin
--ifeq ($(PORTNAME), cygwin)
--ifeq ($(MAKE_DLL), true)
-- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
--endif
--endif
--ifeq ($(PORTNAME), win32)
--ifeq ($(MAKE_DLL), true)
-- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
--endif
--endif
-- $(MAKE) -C catalog install-data
-- $(MAKE) -C tsearch install-data
-- $(MAKE) -C utils install-data
-- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample'
-- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample'
-- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample'
-+install:
-
- ifeq ($(with_llvm), yes)
- install-bin: install-postgres-bitcode
---- a/src/bin/Makefile
-+++ b/src/bin/Makefile
-@@ -14,20 +14,8 @@
- include $(top_builddir)/src/Makefile.global
-
- SUBDIRS = \
-- initdb \
-- pg_archivecleanup \
-- pg_basebackup \
-- pg_checksums \
- pg_config \
-- pg_controldata \
-- pg_ctl \
- pg_dump \
-- pg_resetwal \
-- pg_rewind \
-- pg_test_fsync \
-- pg_test_timing \
-- pg_upgrade \
-- pg_waldump \
- pgbench \
- psql \
- scripts
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -15,21 +15,12 @@
- SUBDIRS = \
- common \
- port \
-- timezone \
- backend \
-- backend/utils/mb/conversion_procs \
-- backend/snowball \
- include \
- interfaces \
-- backend/replication/libpqwalreceiver \
-- backend/replication/pgoutput \
- fe_utils \
- bin \
-- pl \
-- makefiles \
-- test/regress \
-- test/isolation \
-- test/perl
-+ makefiles
-
- ifeq ($(with_llvm), yes)
- SUBDIRS += backend/jit/llvm
diff --git a/dev-db/postgresql/postgresql-12.22.ebuild b/dev-db/postgresql/postgresql-12.22.ebuild
deleted file mode 100644
index 38d126fda22e..000000000000
--- a/dev-db/postgresql/postgresql-12.22.ebuild
+++ /dev/null
@@ -1,445 +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,13} )
-LLVM_COMPAT=( {15..18} )
-LLVM_OPTIONAL=1
-
-inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~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? ( $(llvm_gen_dep '
- llvm-core/clang:${LLVM_SLOT}
- llvm-core/llvm:${LLVM_SLOT}
- ') )
-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= )
-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-r1_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
-
- 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-13.18.ebuild b/dev-db/postgresql/postgresql-13.20.ebuild
index 9ce45d60d6a0..7729f87d6ba4 100644
--- a/dev-db/postgresql/postgresql-13.18.ebuild
+++ b/dev-db/postgresql/postgresql-13.20.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10,11,12,13} )
-LLVM_COMPAT=( {15..19} )
+LLVM_COMPAT=( {15..20} )
LLVM_OPTIONAL=1
inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
diff --git a/dev-db/postgresql/postgresql-14.15.ebuild b/dev-db/postgresql/postgresql-14.17.ebuild
index 873a91c02486..6f039209b493 100644
--- a/dev-db/postgresql/postgresql-14.15.ebuild
+++ b/dev-db/postgresql/postgresql-14.17.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10,11,12,13} )
-LLVM_COMPAT=( {15..19} )
+LLVM_COMPAT=( {15..20} )
LLVM_OPTIONAL=1
inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
diff --git a/dev-db/postgresql/postgresql-15.10.ebuild b/dev-db/postgresql/postgresql-15.12.ebuild
index 10cae3267992..6df4844e003d 100644
--- a/dev-db/postgresql/postgresql-15.10.ebuild
+++ b/dev-db/postgresql/postgresql-15.12.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10,11,12,13} )
-LLVM_COMPAT=( {15..19} )
+LLVM_COMPAT=( {15..20} )
LLVM_OPTIONAL=1
inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
diff --git a/dev-db/postgresql/postgresql-16.6.ebuild b/dev-db/postgresql/postgresql-16.8.ebuild
index 3d5cd5b50a37..a9d7d1d4bb16 100644
--- a/dev-db/postgresql/postgresql-16.6.ebuild
+++ b/dev-db/postgresql/postgresql-16.8.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10,11,12,13} )
-LLVM_COMPAT=( {15..19} )
+LLVM_COMPAT=( {15..20} )
LLVM_OPTIONAL=1
inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
diff --git a/dev-db/postgresql/postgresql-17.2.ebuild b/dev-db/postgresql/postgresql-17.4.ebuild
index b6471017bb0d..4f42b00fe030 100644
--- a/dev-db/postgresql/postgresql-17.2.ebuild
+++ b/dev-db/postgresql/postgresql-17.4.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10,11,12,13} )
-LLVM_COMPAT=( {15..19} )
+LLVM_COMPAT=( {15..20} )
LLVM_OPTIONAL=1
inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
diff --git a/dev-db/psqlodbc/Manifest b/dev-db/psqlodbc/Manifest
index 9f5e38f424be..d4931446c067 100644
--- a/dev-db/psqlodbc/Manifest
+++ b/dev-db/psqlodbc/Manifest
@@ -1,9 +1,3 @@
-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
-EBUILD psqlodbc-11.01.0000.ebuild 690 BLAKE2B 9f70ec2a0c718567611936ac3cadadee457a2338bb3792ed4a14ff2f84ca4f7c70b1d63b2a731abac47530e17436af414f0c0864ee7aa58717efc2866116cea9 SHA512 308f135df50933cc6a0a41cfe5cc1468bad9e76163383e73101437eb8011d0e45dcdbf34ac50f4cda354aeb3357d439254baa2022e3952f92681c8509a36ad12
-EBUILD psqlodbc-13.00.0000.ebuild 727 BLAKE2B bcdb118196c22fdf7224888d82749c34552d3f968798d883ad7306bcde8ce15a9178dcc288781088822b6b952cbbb844b3031cfafd68d33b4f29a8f3bf166bbe SHA512 d0d5a2f32e1c1ba83b5af483eef438eec84616eb46939609789c475e40996df7a0d014d2b434874474cdc96de1834ef41458e4308b7f6b6ac7b22d5dc05d20e3
-EBUILD psqlodbc-15.00.0000.ebuild 727 BLAKE2B 99d9aef213a81973531cf93b8780970aed255f7597eefdbae065b5064faed127221d4b14f5004015f1264c90065d65c689fb1efe76b21730d3337e570c19804a SHA512 5991ac6e312f0f47438b95a4dc192d60a97e09a6e4bf56d0e1deb4f28c4b4c322dbd33ad061db13481a3923ac2ddc0f941f7079e6080abe0773ce96fec390808
-EBUILD psqlodbc-16.00.0000.ebuild 808 BLAKE2B 589e4c4e0c594f3b3134f7c5708ff4a4032e9eede25021afbb058603a760738941823c1e0c0c45e40c8a7786d548f01646be461cf375c64693b68a366c92ce9e SHA512 82e0a58e46367f6f1502d8818bcca630741dda0765ba115dbd09cdecb31c6e370488da279bfcafb5e49c97b646f7e12a7a58451474c899d85ced501845035b07
-MISC metadata.xml 389 BLAKE2B a8b15e826ffaaa01a299f5500c8d6ed57ffc4d387e4874af0f61d2a04b9e83dc825efc33bf254b1f1f712f6c151937eab607ba26ddd148a4c72bb090ded5c294 SHA512 cc7a0ea725654842c246f8a4d56cff2cd6186209f5232689845739d9ddde789df42bb914011df607313306afdf414a12f719e04517b5e7b58e4bb7f738d3bd12
+EBUILD psqlodbc-16.00.0000.ebuild 806 BLAKE2B d29585a457bee2f8bd7eb8a1f2eb2d01c5849f3c58a6726a1f6308d843034e4feaf80b32ea3740d1a2c8bbe37203c3b23016e5526361a23414deb9e3f1f36f58 SHA512 d71a7f32b8aaa36fac39ed7610ff85e95b638cc9a6bfd024cdb53b6a91e4b102dc4a16ff04aacd3eb158402ae909c46c5c60aad131ed12733a6165a410665776
+MISC metadata.xml 494 BLAKE2B 7d2a03027774a4b0ed698f354a4b94481084d735c54c2f1144626d9415fc6e84a7f0cf3cf042f9ebde74714f2128f3f238ad9b9395decd2637c5acc56f984418 SHA512 506f1c11f0b628abea1d849af201dbd237bad3658f0ce0119ad23abf06f7b3b86c1db9c71294f027436835dfa4b7637e908bd897a2d23eb9b2949fb3a741dc7f
diff --git a/dev-db/psqlodbc/metadata.xml b/dev-db/psqlodbc/metadata.xml
index 30ac10c32727..ed5be1480c95 100644
--- a/dev-db/psqlodbc/metadata.xml
+++ b/dev-db/psqlodbc/metadata.xml
@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
-<email>pgsql-bugs@gentoo.org</email>
-<name>PostgreSQL and Related Package Development</name>
-</maintainer>
-<use>
-<flag name="iodbc">Use <pkg>dev-db/libiodbc</pkg>. Disable to use <pkg>dev-db/unixODBC</pkg>.</flag>
-</use>
+ <maintainer type="project">
+ <email>pgsql-bugs@gentoo.org</email>
+ <name>PostgreSQL and Related Package Development</name>
+ </maintainer>
+ <use>
+ <flag name="iodbc">Use <pkg>dev-db/libiodbc</pkg>. Disable to use <pkg>dev-db/unixODBC</pkg>.</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">postgresql-interfaces/psqlodbc</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-db/psqlodbc/psqlodbc-11.01.0000.ebuild b/dev-db/psqlodbc/psqlodbc-11.01.0000.ebuild
deleted file mode 100644
index 2e25f4eb74be..000000000000
--- a/dev-db/psqlodbc/psqlodbc-11.01.0000.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Official ODBC driver for PostgreSQL"
-HOMEPAGE="https://odbc.postgresql.org/"
-SRC_URI="https://ftp.postgresql.org/pub/odbc/versions/src/${P}.tar.gz"
-SLOT="0"
-LICENSE="LGPL-2"
-KEYWORDS="amd64 x86"
-IUSE="doc iodbc ssl threads"
-
-DEPEND="dev-db/postgresql:*[ssl?]
- !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc )
-"
-RDEPEND="${DEPEND}"
-
-src_configure() {
- econf \
- $(use_with iodbc) \
- $(use_with !iodbc unixodbc) \
- $(use_enable threads pthreads)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- dodoc readme.txt
- use doc && dodoc docs/*{html,jpg,txt}
-}
diff --git a/dev-db/psqlodbc/psqlodbc-13.00.0000.ebuild b/dev-db/psqlodbc/psqlodbc-13.00.0000.ebuild
deleted file mode 100644
index eb5492ff004f..000000000000
--- a/dev-db/psqlodbc/psqlodbc-13.00.0000.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Official ODBC driver for PostgreSQL"
-HOMEPAGE="https://odbc.postgresql.org/"
-SRC_URI="https://ftp.postgresql.org/pub/odbc/versions/src/${P}.tar.gz"
-SLOT="0"
-LICENSE="LGPL-2"
-KEYWORDS="~amd64 ~x86"
-IUSE="doc iodbc ssl threads"
-
-DEPEND="dev-db/postgresql:*[ssl?]
- !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc )
-"
-RDEPEND="${DEPEND}"
-
-# No tests to run
-RESTRICT="test"
-
-src_configure() {
- econf \
- $(use_with iodbc) \
- $(use_with !iodbc unixodbc) \
- $(use_enable threads pthreads)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- dodoc readme.txt
- use doc && dodoc docs/*{html,jpg,txt}
-}
diff --git a/dev-db/psqlodbc/psqlodbc-15.00.0000.ebuild b/dev-db/psqlodbc/psqlodbc-15.00.0000.ebuild
deleted file mode 100644
index 3970af804572..000000000000
--- a/dev-db/psqlodbc/psqlodbc-15.00.0000.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Official ODBC driver for PostgreSQL"
-HOMEPAGE="https://odbc.postgresql.org/"
-SRC_URI="https://ftp.postgresql.org/pub/odbc/versions/src/${P}.tar.gz"
-SLOT="0"
-LICENSE="LGPL-2"
-KEYWORDS="~amd64 ~x86"
-IUSE="doc iodbc ssl threads"
-
-DEPEND="dev-db/postgresql:*[ssl?]
- !iodbc? ( dev-db/unixODBC )
- iodbc? ( dev-db/libiodbc )
-"
-RDEPEND="${DEPEND}"
-
-# No tests to run
-RESTRICT="test"
-
-src_configure() {
- econf \
- $(use_with iodbc) \
- $(use_with !iodbc unixodbc) \
- $(use_enable threads pthreads)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- dodoc readme.txt
- use doc && dodoc docs/*{html,jpg,txt}
-}
diff --git a/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild b/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild
index eb924528a69d..6dc2af90535f 100644
--- a/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild
+++ b/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -8,7 +8,7 @@ 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"
+KEYWORDS="amd64 x86"
IUSE="iodbc ssl threads"
DEPEND="dev-db/postgresql:*[ssl?]
diff --git a/dev-db/recutils/Manifest b/dev-db/recutils/Manifest
index adf43a3dc33a..903f034c5c3f 100644
--- a/dev-db/recutils/Manifest
+++ b/dev-db/recutils/Manifest
@@ -8,6 +8,7 @@ AUX 1.9/0007-configure.ac-modernise.patch 3064 BLAKE2B a48d78f15b9da375453a94a60
AUX 1.9/0008-configure.ac-call-PKG_PROG_PKG_CONFIG-unconditionall.patch 1200 BLAKE2B eda53eee3379987fb93df87c028d06dc664fd2609b6130babac56ae096dbc0b4f6201fffcfa272ddcc13ce53c8a9a9925e2aa4bb3bc0f1dc95394d935c8e3aa0 SHA512 442b4d7b07279c641a19b74d4a552f1aa12ce769ca18ce7d8462415d91f0d412025060c9bea943007f676b0d9d535234d152ff8ea4877b221426dc1b55edc3a7
AUX 1.9/0009-Port-to-newer-mdbutils-0.9.0.patch 2173 BLAKE2B 27213a8fddc10ad9f075f80591d97699bcdecffc9274d4f6e6746b1456f124d9dcb743fae4252fdd245e11005ba0da510bdf1141e2d848db3ef7f219879cb93c SHA512 d75196de27d46489553230c7d21ab775a0dded704209adaef87df4ef8a62ef7322a98116ad6d0d869dc4ad12e11484b8d2da42e2a36f6d3c8153898fa8b3fd0c
AUX 1.9/0010-configure.ac-use-pkg-config-to-find-curl.patch 1443 BLAKE2B c99a0d501273067f40552c8be3adfce22a4ee7f88f2a3f858eb52219811c703c97e31e106541d3c7513c4bdda02b8491c7b1b91ae24a6f43bcaa231de8688b40 SHA512 31842f8439778f45b72971c4a9a634e58d1c7424d1777f43d2dafd3ae122f04d6dcccf37521974e6ea99f58e18e6e5b35190fceba7e0266655f225d2908be00b
+AUX recutils-1.9-add-const.patch 487 BLAKE2B eec770635e542e7e85cd0c7ea57d3e4301996fcdedb55f2cae05394a84438c3a5fa6e2581c6867d2df836f2cb45a3c2739fe20f52185d183166a147720fdb560 SHA512 17f6b273790b8645d8aa90ef6ae974563d1db3a0b3836a9247bb39af960e0ab90ea024425d7f6b45b41bf6dc0256002a9322912020aa03357cea722119ff2e70
DIST recutils-1.9.tar.gz 2759999 BLAKE2B 839dbcd36e7fe0ececbf3ef3a1b842890e876c6feda2bc003c921c53eba83b70f38baa5a536962253eec5b06eed29c6e301751d7b6586f0ef0c5ea35d94a44d7 SHA512 775b3b8925a4e5c6f04c6376291b966bdc271f172be2bca06b1f02155ecba12d916c22219f85fe0393f7f9f200f3788ab5fa5d522da2b84b2a0c0ec198318809
-EBUILD recutils-1.9.ebuild 1047 BLAKE2B 4248100bffedd08c52928a24797a44e2e67bb84948465d1bb66cb4cb0e50315681af8479696370bf6a854108ed6855d47e6cc238fee1ac407c968fe8bf5fa85d SHA512 513f3f984bfbd25ccaf83c72673c4429dd0ec5700f52817da48a8de80992fe258b6fcf2fa40b7cc466d30b442fa3afd30b01773df73b49629c43691758b698ba
+EBUILD recutils-1.9-r1.ebuild 1205 BLAKE2B 3f16a4bbc4b1dd0a7712e147705359430777fe1b3de46cdd12ac6ebd94b55ae803a77bed49d689307f82f60999670b2c711d1ebaf3724c0d98ebcd8ac69c6e47 SHA512 fca1f74741cf168d14a268452ab8960ba021f900381aa1d66f3824406a012f1b0d9f6bc229d96d914e6f32a2aeaac1bb1e6b094ba183965e95a58241c4297688
MISC metadata.xml 624 BLAKE2B 99f308873f7c982a3b881053f9fec8a459ccb9003cec4d97364a73fee13cbe46b711d4e981ef0dc9c6bd24eaf8bd07a3d5fdc864a83ab4948da0c2d2cbe57745 SHA512 41bc9720c4d104c5502c9cfe197ac15526835d6c2b2ffbef34d2415ceaef6d43e9295f71c4b6a92ba89c88a210d79e6e70332071a9c083ffdd073d9a4563b1f3
diff --git a/dev-db/recutils/files/recutils-1.9-add-const.patch b/dev-db/recutils/files/recutils-1.9-add-const.patch
new file mode 100644
index 000000000000..b8c14845d11e
--- /dev/null
+++ b/dev-db/recutils/files/recutils-1.9-add-const.patch
@@ -0,0 +1,14 @@
+Cast bash-generated argv from char ** to const char ** so it would be of the same
+type argv was declared
+https://bugs.gentoo.org/941542
+--- a/bash/testrec.c
++++ b/bash/testrec.c
+@@ -60,7 +60,7 @@
+
+ /* Get arguments and verify them. */
+
+- argv = make_builtin_argv (list, &argc);
++ argv = (const char**)make_builtin_argv (list, &argc);
+ if ((argc != 3)
+ || ((strcmp (argv[0], "[%") == 0) && ((strlen (argv[2]) == 2) && ((argv[2][0] != '%') || (argv[2][1] != ']')))))
+ {
diff --git a/dev-db/recutils/recutils-1.9.ebuild b/dev-db/recutils/recutils-1.9-r1.ebuild
index cff0821ae74e..df600fd416d6 100644
--- a/dev-db/recutils/recutils-1.9.ebuild
+++ b/dev-db/recutils/recutils-1.9-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -37,6 +37,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PV}
+ "${FILESDIR}"/${P}-add-const.patch
)
src_prepare() {
@@ -63,3 +64,10 @@ src_test() {
# tests have parallel issues
emake -j1 check
}
+
+src_install() {
+ default
+
+ # Remove unneeded .la files (Bug #941097)
+ find "${ED}" -name '*.la' -type f -delete || die
+}
diff --git a/dev-db/spatialite/Manifest b/dev-db/spatialite/Manifest
index 86cc725c5e52..9c122efe3125 100644
--- a/dev-db/spatialite/Manifest
+++ b/dev-db/spatialite/Manifest
@@ -1,3 +1,5 @@
+AUX spatialite-5.1.0-macro-surgery.patch 2355 BLAKE2B 4fc47fc60ef98a0f60d6eaae78d62196007d785c3a54619ef427d155c4e80a4f70e14e6690636bc981249fa0e38635a0d186b52b30f80cca7e327fd89eae0ec1 SHA512 771f9bfd40d02ade36179fefe15eaa1be582a64c2d8f6ae38774b9b53fdcccb70a36a67e4db8f0f88c3f79ed9085a6d2532e83d5af9986cc7a7be41ca35b78e2
DIST libspatialite-5.1.0.tar.gz 6517377 BLAKE2B 871e2be82dd1f02de76f0755b6ea7a53797dd9905fe481d6f56dcf8a87278f0a9326a3e0662620cbf6bfe53f932dab199602885c7efcbc5a5e56781a7599d226 SHA512 2745b373e31cea58623224def6090c491b58409803bb71231450dfa2cfdf3aafc3fc6f680585d55d085008f8cf362c3062ae67ffc7d80257775a22eb81ef1e57
EBUILD spatialite-5.1.0-r1.ebuild 1352 BLAKE2B e7a2f961ad0898efdc11a2a5241d4683a01fee554986ccd5730704a61cc3a79cb55da82ae763f508fa8915c3bec3df70152061ad54b857eff7b90e913de57957 SHA512 82b669c3372cadf7eb35b4318cf5b1f08066b8f322c3c89c05e92e79678ade768bfb59f324cb82c27e0ee1ac438d25621081478465115c329cc9cbd4be6a2b2e
+EBUILD spatialite-5.1.0-r2.ebuild 1404 BLAKE2B e46d13d45ede3630d98dbe21ffa25f326d49c44e72faf9653e413477c6ceee54704cae09fca06c9f3f17c22c5d7d7befc66e982ff6dacff58b5c40dbf469feaf SHA512 a8e1201913d7874963725a7e05dbddcdaa4357eddc83cf01fb3a38ce438a47cc356b6a0817f2bc27db10cd739d77e4408e835b07ee9b7f236e43ec550b5b5f7d
MISC metadata.xml 662 BLAKE2B d44c0b1a08c869509161cc7040c90c5e6b591b09f16893ac21885ee82817ad942eab586a44532ffa8dcbbdedffc6ec0bcf05641196cf892fb0b0e832a760e00f SHA512 7a614e0dc498ccd2d117e600efc867b248fc243fd3a9bb0a599fcaa47a90a3669a730e765df648b5a49cf77c442a3f4a2ea084a721bab48e9c37e7cc73fd9794
diff --git a/dev-db/spatialite/files/spatialite-5.1.0-macro-surgery.patch b/dev-db/spatialite/files/spatialite-5.1.0-macro-surgery.patch
new file mode 100644
index 000000000000..ea057f50bc8b
--- /dev/null
+++ b/dev-db/spatialite/files/spatialite-5.1.0-macro-surgery.patch
@@ -0,0 +1,80 @@
+https://bugs.gentoo.org/919177
+https://www.gaia-gis.it/fossil/libspatialite/tktview?name=d5c8f926be
+https://www.gaia-gis.it/fossil/libspatialite/tktview/af38159360a2e740b2339e279103bcdaf951498e
+Macro out things upstream forgot to conditionally exclude, macro in things upstream forgot
+In particular, functions that appear only when GEOM is enabled should not be used
+when GEOM is disabled, and having fallback for ancient version of PROJ is well and good;
+upstream forgot version for modern one in one place.
+--- a/src/gaiageo/gg_advanced.c
++++ b/src/gaiageo/gg_advanced.c
+@@ -2286,6 +2286,7 @@
+ / identifying toxic geometries
+ / i.e. geoms making GEOS to crash !!!
+ */
++#ifndef OMIT_GEOS /* don't do anything if there's no GEOS */
+ int ib;
+ gaiaPointPtr point;
+ gaiaLinestringPtr line;
+@@ -2350,6 +2351,7 @@
+ }
+ polyg = polyg->Next;
+ }
++#endif /* OMIT_GEOS */
+ return 0;
+ }
+
+@@ -2377,11 +2379,13 @@
+ return 0;
+ else
+ {
++#ifndef OMIT_GEOS /*can't report error if GEOS is not build, skipping */
+ if (cache != NULL)
+ gaiaSetGeosAuxErrorMsg_r (cache,
+ "gaia detected a not-closed Ring");
+ else
+ gaiaSetGeosAuxErrorMsg ("gaia detected a not-closed Ring");
++#endif
+ return 1;
+ }
+ }
+--- a/src/spatialite/spatialite.c
++++ b/src/spatialite/spatialite.c
+@@ -23472,9 +23472,11 @@
+ sqlite3_result_null (context);
+ else
+ {
++#ifndef OMIT_GEOS /* Only if GEOS enabled */
+ if (!gaiaInterpolatePoint (cache, line, point, &m_value))
+ sqlite3_result_null (context);
+ else
++#endif
+ sqlite3_result_double (context, m_value);
+ }
+ if (line != NULL)
+--- a/src/connection_cache/alloc_cache.c
++++ b/connection_cache/alloc_cache.c
+@@ -646,8 +646,12 @@
+ #endif
+
+ #else /* supporting old PROJ.4 */
++#ifdef PROJ_NEW /* PROJ.6* */
++ cache->PROJ_handle = proj_context_create ();
++#else
+ cache->PROJ_handle = pj_ctx_alloc ();
+ #endif
++#endif
+ #endif /* end PROJ.4 */
+
+ #ifdef ENABLE_RTTOPO /* initializing the RTTOPO context */
+@@ -706,7 +706,11 @@
+ #endif /* end GEOS */
+
+ #ifndef OMIT_PROJ /* initializing the PROJ.4 context */
++#ifndef PROJ_NEW /* Only in case where PROJ.5 not needed */
+ cache->PROJ_handle = pj_ctx_alloc ();
++#else /* PROJ.6* */
++ cache->PROJ_handle = proj_context_create ();
++#endif
+ #endif /* end PROJ.4 */
+
+ done:
diff --git a/dev-db/spatialite/spatialite-5.1.0-r2.ebuild b/dev-db/spatialite/spatialite-5.1.0-r2.ebuild
new file mode 100644
index 000000000000..edf57c760b1f
--- /dev/null
+++ b/dev-db/spatialite/spatialite-5.1.0-r2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 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}"
+
+DESCRIPTION="Complete Spatial DBMS in a nutshell built upon sqlite"
+HOMEPAGE="https://www.gaia-gis.it/gaia-sins/"
+SRC_URI="https://www.gaia-gis.it/gaia-sins/${MY_PN}-sources/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MPL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+IUSE="+geos iconv +proj rttopo test +xls"
+REQUIRED_USE="test? ( iconv )"
+# Further poking required
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-db/sqlite-3.7.5:3[extensions(+)]
+ dev-libs/libxml2
+ sys-libs/zlib[minizip]
+ geos? ( >=sci-libs/geos-3.11.0 )
+ proj? ( sci-libs/proj:= )
+ rttopo? ( sci-geosciences/librttopo )
+ xls? ( >=dev-libs/freexl-2.0.0[xml(+)] )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-macro-surgery.patch" )
+
+src_prepare() {
+ default
+ elibtoolize
+}
+
+src_configure() {
+ # 1) gcp disabled for now to preserve MPL licence
+ econf \
+ --disable-gcp \
+ --disable-examples \
+ --disable-static \
+ --enable-epsg \
+ --enable-libxml2 \
+ $(use_enable geos) \
+ $(use_enable geos geosadvanced) \
+ $(use_enable geos geos3100) \
+ $(use_enable geos geos3110) \
+ $(use_enable iconv) \
+ $(use_enable proj) \
+ $(use_enable rttopo) \
+ $(use_enable xls freexl)
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest
index d244f358801f..b87233f0c4b1 100644
--- a/dev-db/sqlite/Manifest
+++ b/dev-db/sqlite/Manifest
@@ -1,14 +1,16 @@
AUX sqlite-3.45.1-ppc64-ptr.patch 986 BLAKE2B 8c97514a67601c1f51459c1d4ea683e023730b3fa66be7a238807f172ce19ebceeed8f81c9f6e4f3621c96eecd8f6ea3bd5669a8a5ee5b14cf2bebdb7338e0db SHA512 12c6384682a36cddfdde7d2cfdba8aad54441b816816abf139bb05c46f65e78548c5a9e4f7f8b8836bd95702455b93ed7e0afb868ab15fead20a84404f075615
AUX sqlite-3.47.1-buildtclext.patch 986 BLAKE2B ba43fd663a77a2a161a26f31ca3db0f4b08fae940a08b4bdfa7882a7945eef1b041f11d70cbe6754fe1bc58c533f2b5864e25a90c6d38e8f1c4f27f8cfc3bd91 SHA512 20ff9155832fc23984f91c3c7fc6ab775ab026fb4a3b7d97f00b67583702c81d714db1345a28050c1be39376d411b2faa137b25719d4d312ac42cf00c73ade47
AUX sqlite-3.47.2-hwtime.h-Don-t-use-rdtsc-on-i486.patch 1114 BLAKE2B 00b386967c4b7051b762041f98555f078e7fe7427adc57efa7b1bd3c6cdee20e379b2d086535358014dd1bafbb97d552980620c29c4ea63047f2d3c68efa2907 SHA512 f3787a9628d73ccd8f4bad99e8d2f3c0153078c06b2864d9110b77e1aea6a22ee2db485d71aec9b94039bc5e2e4517eb194faac862b95775d70440e1857f7d4c
+AUX sqlite-3.49.0-icu-tests.patch 726 BLAKE2B e2b3d0ed8be80ba441e86a59372658d8da3849563dc8ae9ec2a3393450f8beed845d7fcd8b163b09b00ae75fde2252128132036fb0a1a266f752348a5363ee24 SHA512 e1deff11b81d8064f8187f7eadcf7859720789961f2c04f5aa99b1ce69aa703f6b7e030abf76276e77aafd37ac2664b42ca534d604b69ab1c62637924e9d53bd
+AUX sqlite-3.49.1-jimsh.patch 1596 BLAKE2B 3ffa24a9b2a03c8716a1b3d04172d086beb501b156188ae2b9d7afb191027df9f741d2f80249e5905d60a16f9159cc68ee7c0b3d94e75f69121e9bdab3035dbf SHA512 193e122ff6ba00749248a3846355191d2d3c92a83b6acae1aa5ddcacef1ad499d72001a5c6de715fd50c956e94e00648da39e1681575100d3bf7cc8aac51bc71
DIST sqlite-doc-3460100.zip 10851427 BLAKE2B 7462e83ca84e3e9aac7236f575fd2bdddac7744ae700a63fe8fdc9d2df3157c59fd374d99a0526bd4d9f742005ee7a90f3d78057861d3c3fcba9f897630e48db SHA512 1ad7dfc938d182f69ea9367b4f5ead1d48b991626521249e8b58c9fb4c2553e348ce402de9cc81b0ad699d4c45c467de56a98ee39f9c3555c6fafff15fba41ce
DIST sqlite-doc-3470200.zip 10957830 BLAKE2B cbc40dd440d1c5af4ad4333090a7306bd54ec43250a478b6900b8f74bd721035018ea7647f3a208d42cc0639827325be26a9412d17af7d390f4e584d4c6acf44 SHA512 48349d512b7cd9bc6f6a5da3a2b2285de159d4653667311adb0f5e6a970060db940a590c2d01b529afc1614065b22434d5b3ac4d8d0122d003d74926745ba56e
-DIST sqlite-doc-3480000.zip 11391112 BLAKE2B d28531e5d3ac7802700636a669f165cb9fa2a6077422b1ba956b6b9e29db48941489b5a3bc1c4936723e59343e00c3edc9310db9724d914a30ac9aca775dc70d SHA512 d7cad0da8598a3abcacf0e05ba4e285ad1d790691e571e431f920abf1bf27c5a416408ff60ff051b01a65662c0e60bb63b9ba73872851fe63f379e834c5a0f04
+DIST sqlite-doc-3490100.zip 11333315 BLAKE2B 28fe302820898861e404f5c6dd1c05c3ff3ff10a8b713604f0ccec6b21ca7b82d61ba720903d7e9d8e9ec5de701900c5972037c23627ddd1a2734e95a92c5d6a SHA512 0eb6af0483bca7f6efd6baf00210adcca1d23ea5b474728aa96614a93a868ec6f9257d9b5f29c452fed5323c64fc180ee3845695ddbbcd7836dac69aecdfc833
DIST sqlite-src-3460100.zip 14276926 BLAKE2B df16ea944e317df8ed64fdfab289e3699ec71725ce55e2b30450adaeb41c061b4fba1eb8c41ba638b0edcd12b23264a1f9e413b69fd593c2b65fb1037d3fc8b2 SHA512 6d32a0db9f95d3cec34f02f3fd45b453bf7c422d4d4d9570790f641e7d190b8b31be8e8715afacc1b6e4417f15a4d15a0b28e608ae0b4b5f3054b075783b916e
DIST sqlite-src-3470200.zip 14421983 BLAKE2B dcaea5be0099b2dad1b53403933f0037ace48b1f248040c1b5cc116ac2ad6c9b44c71b8efe3afd16bef01119b440d1a2ec9d553a22f855e0ba55793684f53d8d SHA512 a6280a02304bfae173d9e9ebf376b2d3624658f04af4d8e95d5a042e24cf0405a47c0a4023f4dbc2790716cd85e16b97fcc0a83c1534e6d554f4eb0bfb0a3ed3
-DIST sqlite-src-3480000.zip 14350897 BLAKE2B 1dafce5575cbf8eb4e7efb5c033322b887bcce38129756994da45b1d8e0cf136f337e6cb9fa3c4b5abcf1f68bff6763247bec1ad04975fc9de308e3b75fb4e54 SHA512 854832e9a5dc486a81934e36c1f1678ce50db55b8bd3c48ed2d569fb0bb7ce23d4b490c0a0f699274ff11ddf2000db4a620e064557084c54b217e7fdd836f4e1
+DIST sqlite-src-3490100.zip 14372402 BLAKE2B c7f6a574698512e2fde44e54ed2a101e7307821b0015287bbf5ab151f5f59432fe051fda1d1caec865928717f51c42f1161187fb768180088574ca225cd29250 SHA512 24c81cee52e5655f4e9d6496a366e4787352b5108ea27eb5ce3dc07ef3e1975205bb250584b0758fb2832add84ca922b09a4d925e0dc2f55dd3613a58b414ec3
EBUILD sqlite-3.46.1.ebuild 12792 BLAKE2B ca98f4e22e0ba7abdf3c1c8a785e82a6f64d19f186a68d9733fbe31db879c2d3d0b1b517b3ea3f0af5c678cd9c036a8702c4f3e87f3a20c5b4342e391fd720d9 SHA512 6633db1ba661ed8948e21ffb245f59f7507669224d3b827c16d4fc5332d9b2bd62f176066afc7f59ed5104b0a5d15dc4eb8ed91ba4ab55b2afb773d6026708a0
EBUILD sqlite-3.47.2-r1.ebuild 12880 BLAKE2B 6686cb865c8f3b68ea03077ef146753a3ae03bbc5dbce1e2224ca514c6b55b8bca6ec1702bd42984cbb96e4f6169e726e4748a931ddcc33e4af065e89d7f4b3e SHA512 c321faed21950909eb0abc4d32f22ab74e79f90577a25a6fad3f9f9c51f47b5337056a9a209f2781d0a45119a17c802165fbf0569748334011b43597c51aca47
-EBUILD sqlite-3.48.0-r1.ebuild 12904 BLAKE2B 6591d350c3e438a294ceb40f20dd4dc1afed28b8f792efb01ee4bcbf39824ec1ce289a7b052e6dcf100f0da58b2bb2e7dcc0a54364e593eedd86eb37223f5309 SHA512 58eb7c55b633ab9b0996be41dc8bf6373fcb842a75e9baa307d5bc2430776d78e7e54d1bc09bea20bcecf33f9baff374a43e026b6be234586040430f33d3fb03
-EBUILD sqlite-9999.ebuild 12795 BLAKE2B 6f9a80eb912680ef1d0f3fb183d0bd5327c9d312c11ca392312568861b104556ba54e8350611c7acc758360c42e33e2a0cbe3bc44d57c4be225e2d84a7cb69c6 SHA512 375ce352d2ddd96bfde025a82e9abff16c1713d5d6a8fc0d5ef15534d281f60a586e8d963d8a57c98ee2c7369e6fd3fc5eef9513cb5fea7a038dc8aa04876105
+EBUILD sqlite-3.49.1.ebuild 13392 BLAKE2B 63918d3002e2b7f0164d4b5b4fd00dc494e6a7223db10e4a3988d84d078ef30a7fdeb9853279ba966b6ffc1186162583bc562c76f0ee65c36c13fb548647fda1 SHA512 486fb8db9c2819f5397c1af87d7effce3e971090696c40cfe5bafe2f5d2ae91c0039a5aa23762b768774302349a5c6844e6bf9803b9804ab819d88e4af65d407
+EBUILD sqlite-9999.ebuild 13174 BLAKE2B cf92b79267ae4c47bbd304ff79504e67fa0d491501ff08c190f04f82468d5c603ff5deda62bc7aecfab4bbfd5d53a97708ff26795afec1d4d396aacdf46f46c3 SHA512 137e54dce69f73260b1ad63c18715dc63c427641027be00dc34962602f8c992360de9adc5b170e7cd754ec0a6278afba0ec15ab706c2a1914fdcc4756ed161ae
MISC metadata.xml 824 BLAKE2B 8ab2e8f230bf3a2b26077d90944bca7bf35ae905310205b90bf243365148488303256606c0ee7c3fb736300686466a1c2583bf103693c20063ca668fe9e52647 SHA512 ed4a89e3c2d633cb6ebf8bcbf3ca055d0d1b2ffd801ba559395f812faeaafdfedd97dae11a5a53a4c068e43026fbd4eed4cb12c8b89a7fda6dabe6f78a2e0b38
diff --git a/dev-db/sqlite/files/sqlite-3.49.0-icu-tests.patch b/dev-db/sqlite/files/sqlite-3.49.0-icu-tests.patch
new file mode 100644
index 000000000000..8211d1a146b2
--- /dev/null
+++ b/dev-db/sqlite/files/sqlite-3.49.0-icu-tests.patch
@@ -0,0 +1,29 @@
+https://sqlite.org/forum/forumpost/f93323a743
+https://sqlite.org/src/info/5964616dc9de9323
+--- a/test/like3.test
++++ b/test/like3.test
+@@ -302,15 +302,23 @@
+ }
+
+ #-------------------------------------------------------------------------
+ reset_db
+
++# See forum thread https://sqlite.org/forum/info/d7b90d92ffbfc61f
+ foreach enc {
+ UTF-8
+ UTF-16le
+ UTF-16be
+ } {
++ ifcapable icu {
++ if {$enc=="UTF-8"} {
++ # The invalid UTF8 used in these tests is incompatible with ICU
++ # https://sqlite.org/forum/forumpost/2ca8a09a7e
++ continue
++ }
++ }
+ foreach {tn expr} {
+ 1 "CAST (X'FF' AS TEXT)"
+ 2 "CAST (X'FFBF' AS TEXT)"
+ 3 "CAST (X'FFBFBF' AS TEXT)"
+ 4 "CAST (X'FFBFBFBF' AS TEXT)"
+
diff --git a/dev-db/sqlite/files/sqlite-3.49.1-jimsh.patch b/dev-db/sqlite/files/sqlite-3.49.1-jimsh.patch
new file mode 100644
index 000000000000..8f7f082a6d88
--- /dev/null
+++ b/dev-db/sqlite/files/sqlite-3.49.1-jimsh.patch
@@ -0,0 +1,61 @@
+# https://bugs.gentoo.org/949981
+# https://www2.sqlite.org/src/info/ffd05de8a3b7cab1
+From 09591b78ae28c6bb385ae96fef44edfb52454830 Mon Sep 17 00:00:00 2001
+From: stephan <stephan@noemail.net>
+Date: Mon, 24 Feb 2025 04:47:34 +0000
+Subject: [PATCH] Update jimsh0.c from upstream autosetup to address
+ [https://github.com/msteveb/autosetup/issues/75|autosetup ticket #75],
+ triggered by this build in the Gentoo project.
+
+FossilOrigin-Name: ffd05de8a3b7cab1b8e91b99da74b43ec5a7b91c78dcfd7cf338b66126e30a56
+---
+ autosetup/jimsh0.c | 20 ++++++++------------
+ manifest | 12 ++++++------
+ manifest.uuid | 2 +-
+ 3 files changed, 15 insertions(+), 19 deletions(-)
+
+diff --git a/autosetup/jimsh0.c b/autosetup/jimsh0.c
+index 0526b9a446..1a6453d0c8 100644
+--- a/autosetup/jimsh0.c
++++ b/autosetup/jimsh0.c
+@@ -1252,6 +1252,14 @@ int Jim_OpenForRead(const char *filename);
+
+ #endif
+
++# ifndef MAXPATHLEN
++# ifdef PATH_MAX
++# define MAXPATHLEN PATH_MAX
++# else
++# define MAXPATHLEN JIM_PATH_LEN
++# endif
++# endif
++
+
+ int Jim_FileStoreStatData(Jim_Interp *interp, Jim_Obj *varName, const jim_stat_t *sb);
+
+@@ -2088,10 +2096,6 @@ enum wbuftype {
+ #define UNIX_SOCKETS 0
+ #endif
+
+-#ifndef MAXPATHLEN
+-#define MAXPATHLEN JIM_PATH_LEN
+-#endif
+-
+
+
+
+@@ -4173,14 +4177,6 @@ int Jim_regexpInit(Jim_Interp *interp)
+ #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+ #endif
+
+-# ifndef MAXPATHLEN
+-# ifdef PATH_MAX
+-# define MAXPATHLEN PATH_MAX
+-# else
+-# define MAXPATHLEN JIM_PATH_LEN
+-# endif
+-# endif
+-
+ #if defined(__MINGW32__) || defined(__MSYS__) || defined(_MSC_VER)
+ #define ISWINDOWS 1
+
diff --git a/dev-db/sqlite/sqlite-3.48.0-r1.ebuild b/dev-db/sqlite/sqlite-3.49.1.ebuild
index 1e772cac840d..25ab0c8a1da6 100644
--- a/dev-db/sqlite/sqlite-3.48.0-r1.ebuild
+++ b/dev-db/sqlite/sqlite-3.49.1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit flag-o-matic multilib-minimal toolchain-funcs
+inherit flag-o-matic multilib multilib-minimal toolchain-funcs
DESCRIPTION="SQL database engine"
HOMEPAGE="https://sqlite.org/"
@@ -24,7 +24,7 @@ else
"
S="${WORKDIR}/${PN}-src-${SRC_PV}"
- #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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 ~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"
@@ -51,6 +51,10 @@ fi
PATCHES=(
"${FILESDIR}"/${PN}-3.47.2-hwtime.h-Don-t-use-rdtsc-on-i486.patch
+ # https://sqlite.org/forum/forumpost/f93323a743
+ "${FILESDIR}"/${PN}-3.49.0-icu-tests.patch
+ # https://bugs.gentoo.org/949981, https://www2.sqlite.org/src/info/ffd05de8a3b7cab1
+ "${FILESDIR}"/${PN}-3.49.1-jimsh.patch
)
_fossil_fetch() {
@@ -139,9 +143,6 @@ src_unpack() {
}
src_prepare() {
-
- # Avoid stripping during the install phase
- sed -i -e 's/$(INSTALL) -s /$(INSTALL) /' main.mk || die
default
multilib_copy_sources
@@ -197,7 +198,8 @@ multilib_src_configure() {
# 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
+ append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS
+ options+=( --enable-fts4 )
options+=( --enable-fts5 )
# Support hidden columns.
@@ -206,7 +208,7 @@ multilib_src_configure() {
# Support memsys5 memory allocator.
# https://sqlite.org/compile.html#enable_memsys5
# https://sqlite.org/malloc.html#memsys5
- append-cppflags -DSQLITE_ENABLE_MEMSYS5
+ options+=( --enable-memsys5 )
# Support sqlite3_normalized_sql() function.
# https://sqlite.org/c3ref/expanded_sql.html
@@ -232,12 +234,12 @@ multilib_src_configure() {
# 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
+ options+=( --enable-rtree --enable-geopoly )
# Support Session extension.
# https://sqlite.org/compile.html#enable_session
# https://sqlite.org/sessionintro.html
- append-cppflags -DSQLITE_ENABLE_SESSION
+ options+=( --enable-session )
# Support scan status functions.
# https://sqlite.org/compile.html#enable_stmt_scanstatus
@@ -320,12 +322,15 @@ multilib_src_configure() {
fi
fi
- # set SONAME for the library
- options+=( --soname=legacy )
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ # set SONAME for the library
+ options+=( --soname=legacy )
+ fi
# https://sqlite.org/forum/forumpost/4f4d06a9f6683bb9
- tc-export CC
- CC_FOR_BUILD=${CC} econf "${options[@]}"
+ tc-export_build_env BUILD_CC
+
+ CC_FOR_BUILD=${BUILD_CC} econf "${options[@]}"
}
multilib_src_compile() {
@@ -371,6 +376,15 @@ multilib_src_test() {
multilib_src_install() {
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name, soname=legacy doesn't work for this (but
+ # breaks the build instead)
+ install_name_tool \
+ -id "${EPREFIX}/usr/$(get_libdir)/libsqlite3$(get_libname 0)" \
+ "${ED}/usr/$(get_libdir)/libsqlite3$(get_libname ${PV})" \
+ || die "failed to fix install_name"
+ fi
+
if use tools && multilib_is_native_abi; then
install_tool() {
if [[ -f ".libs/${1}" ]]; then
diff --git a/dev-db/sqlite/sqlite-9999.ebuild b/dev-db/sqlite/sqlite-9999.ebuild
index e0fe683ea625..2d4ae2f9926b 100644
--- a/dev-db/sqlite/sqlite-9999.ebuild
+++ b/dev-db/sqlite/sqlite-9999.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
+inherit flag-o-matic multilib multilib-minimal toolchain-funcs
DESCRIPTION="SQL database engine"
HOMEPAGE="https://sqlite.org/"
@@ -19,8 +19,8 @@ else
#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 )
+ https://sqlite.org/2025/${PN}-src-${SRC_PV}.zip
+ doc? ( https://sqlite.org/2025/${PN}-doc-${DOC_PV}.zip )
"
S="${WORKDIR}/${PN}-src-${SRC_PV}"
@@ -43,7 +43,6 @@ 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
@@ -142,7 +141,6 @@ src_unpack() {
src_prepare() {
default
- eautoreconf
multilib_copy_sources
}
@@ -196,7 +194,8 @@ multilib_src_configure() {
# 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
+ append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS
+ options+=( --enable-fts4 )
options+=( --enable-fts5 )
# Support hidden columns.
@@ -205,7 +204,7 @@ multilib_src_configure() {
# Support memsys5 memory allocator.
# https://sqlite.org/compile.html#enable_memsys5
# https://sqlite.org/malloc.html#memsys5
- append-cppflags -DSQLITE_ENABLE_MEMSYS5
+ options+=( --enable-memsys5 )
# Support sqlite3_normalized_sql() function.
# https://sqlite.org/c3ref/expanded_sql.html
@@ -231,12 +230,12 @@ multilib_src_configure() {
# 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
+ options+=( --enable-rtree --enable-geopoly )
# Support Session extension.
# https://sqlite.org/compile.html#enable_session
# https://sqlite.org/sessionintro.html
- append-cppflags -DSQLITE_ENABLE_SESSION
+ options+=( --enable-session )
# Support scan status functions.
# https://sqlite.org/compile.html#enable_stmt_scanstatus
@@ -280,8 +279,7 @@ multilib_src_configure() {
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"
+ options+=( --with-icu-config )
fi
options+=(
@@ -320,7 +318,15 @@ multilib_src_configure() {
fi
fi
- econf "${options[@]}"
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ # set SONAME for the library
+ options+=( --soname=legacy )
+ fi
+
+ # https://sqlite.org/forum/forumpost/4f4d06a9f6683bb9
+ tc-export_build_env BUILD_CC
+
+ CC_FOR_BUILD=${BUILD_CC} econf "${options[@]}"
}
multilib_src_compile() {
@@ -366,6 +372,15 @@ multilib_src_test() {
multilib_src_install() {
emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # fix install_name, soname=legacy doesn't work for this (but
+ # breaks the build instead)
+ install_name_tool \
+ -id "${EPREFIX}/usr/$(get_libdir)/libsqlite3$(get_libname 0)" \
+ "${ED}/usr/$(get_libdir)/libsqlite3$(get_libname ${PV})" \
+ || die "failed to fix install_name"
+ fi
+
if use tools && multilib_is_native_abi; then
install_tool() {
if [[ -f ".libs/${1}" ]]; then
diff --git a/dev-db/sqlmap/Manifest b/dev-db/sqlmap/Manifest
index dbd643e67f4b..8dbbf5cdb880 100644
--- a/dev-db/sqlmap/Manifest
+++ b/dev-db/sqlmap/Manifest
@@ -1,7 +1,9 @@
AUX sqlmap.bash-completion 5757 BLAKE2B f602d99b6b0a30cf405b390eaef355f7a4b4fa4260f0a18fe09a0fa7530af131b75ffc25ca161898f2ed4a93ef9251c0c88cb1ad25d78d870fd2ff19225e0609 SHA512 5024cfb2274a2798fcc7d12e59693253732f66c1389aed36cc31fb8e40d03f7e9a713e93e24711185b5d2d82dd2ac91ec2b6cdc4929c5ca3245fcb4f502d327a
DIST sqlmap-1.8.11.gh.tar.gz 7251649 BLAKE2B c7c85f59c84a45e38058bbb15fd7b579f6ff3775aa4fcf0a96ad2a44e7f9fa19f00feb30744006ebf92e1f7551f87c70a20cefa895b8d0068574eb8b0e88252a SHA512 37b275c96038a3023fb1b2e69ec96390a021e7f8b292952a2328cd9891ff4fbf7f284e6af003e1677fa2972dfc44d620d7fc2cfa5ae42ca47b7df64cce9d04ad
-DIST sqlmap-1.8.9.gh.tar.gz 7251590 BLAKE2B 6313530bd6f2ac5e01b7359240829207c2df57ac3ea808cb11a335bc109b89a779f174df1a8736fd272a5d48c222576b13de5a533267592e02411bc165f32f8e SHA512 b0190d9e9e05801a7a0d31f056342b4381e07fca8de9436f0f1df158c8bce201a045605e67cbe3d6fcb8b416b46ba78ed93b9fca5942ecb3e5ab8ed1805187fc
+DIST sqlmap-1.9.2.gh.tar.gz 7251313 BLAKE2B 73e7eeb1c9f3983588b68b1c15f7f7193b8c6118217d0c4d8600dc1c004478319d68f3b3ee2b518e6ef02372381eae17affc68dd3cf99f70d0c81b9011c17b53 SHA512 2faed909e5fe70d7dea1b7cb636baa40bf3c2a90df6ef86908d7059cd31f0ef51c854ec37da811210b2603989f236f22de7e766e83f0c5bc42f6061035a4d505
+DIST sqlmap-1.9.gh.tar.gz 7251286 BLAKE2B d09e8854a8f3e49b2c071cc79046ad8b2e80912acedbe83bf2b7bc838f30d3f84a3564fc1c03840b76bf0868ecaed289823a46eb16938a4fe0a0c1beef8e04ec SHA512 f92565d12931aa38f1c29634417a1f4a81d1686b7d3816157cdc524eb7f93555a5a706cc519c31baf7bf1631319e49ee695ff4006c336ffe5208e97eba8086ba
EBUILD sqlmap-1.8.11.ebuild 1333 BLAKE2B 5a9fc3b447f41571e6f41482a799164c19c4b7eab9425b2997c65bbc29ca0a2663e7be90d46ce9b35da63a0b5728764ceb642e38c04daa9448747dd312359744 SHA512 aeb27eaece35203345dd8780b5079f911fc5dd56f11acf1a8f61fdb154ba88a8240764dafee38370aff46a50c9e6e42e6e49a776a087282fcf3980f353f79475
-EBUILD sqlmap-1.8.9.ebuild 1333 BLAKE2B b3cb8c8e6812608e650606f443be5fc0c095ac2d6ed6a6c891aa975b897d4cc97a2423fd713a95e5692cc489e8176fe64ff26225c76a7e2c568e1aae75c93171 SHA512 bf494a99403a0be49516a5f213817da90f32bf5e542f5cf9905562eab7376bd3e4fdacdca0dac06b1de40559f8591d35e5bd9cb2c9414f5f32827a9626dfb3f0
+EBUILD sqlmap-1.9.2.ebuild 1335 BLAKE2B 41c312b785eb0dfb253aa9d6caf972195bda075fb53f118129b99e7e64340dba84749af49fc3625f2b7bb761f559a91221607162f86327bdecf5b3d34089a555 SHA512 9679285464d398819eeb3d7db430af0087aa2449d3b81130df78ce679a8a314bcb7f78949610622577a4a2bfbea0e70c2923b4fbcc85ca10871299424b906a8b
+EBUILD sqlmap-1.9.ebuild 1335 BLAKE2B 41c312b785eb0dfb253aa9d6caf972195bda075fb53f118129b99e7e64340dba84749af49fc3625f2b7bb761f559a91221607162f86327bdecf5b3d34089a555 SHA512 9679285464d398819eeb3d7db430af0087aa2449d3b81130df78ce679a8a314bcb7f78949610622577a4a2bfbea0e70c2923b4fbcc85ca10871299424b906a8b
EBUILD sqlmap-9999.ebuild 1335 BLAKE2B 3a4b2d955ace10b02cff80c4f3954095d437b70995fdea32fb4002b2b4b98b541669c4afe8e284eb79971012e11b0d80f3abc5b4348ef0c6ae428458a44446c6 SHA512 1ed0e8b0cadd4938a87b24c88b2bf09a7b928146aa330a3c3a931926351feb8eed50a30b541dcf06d2aab22e28984d1bdfba0d09667e3b73ebe4be60b6d9e47c
MISC metadata.xml 847 BLAKE2B 31fdd4fd94a4b6ad8c775bbbc9cb48b5627f2f5944a7bdaf6c30f3559044dda6cd92be3b50c8baf462b1e2e4ea4aa905bbac88c616cbfbc833a4895a1944b0d6 SHA512 bddfbc5ce988bc1770a2ad1d6952d8ef44010c9e4ef789500f0408c7c5754960804f270bb6e24e4739852cdef07b3f22111ad9da453648730f045d0b2c3deea9
diff --git a/dev-db/sqlmap/sqlmap-1.8.9.ebuild b/dev-db/sqlmap/sqlmap-1.9.2.ebuild
index 0170f6b3bc73..37028c14816a 100644
--- a/dev-db/sqlmap/sqlmap-1.8.9.ebuild
+++ b/dev-db/sqlmap/sqlmap-1.9.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]] ; then
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"
+ KEYWORDS="~amd64 ~x86"
fi
# sqlmap (GPL-2+)
diff --git a/dev-db/sqlmap/sqlmap-1.9.ebuild b/dev-db/sqlmap/sqlmap-1.9.ebuild
new file mode 100644
index 000000000000..37028c14816a
--- /dev/null
+++ b/dev-db/sqlmap/sqlmap-1.9.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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 3e9fda6ec93f..622ab4782328 100644
--- a/dev-db/timescaledb/Manifest
+++ b/dev-db/timescaledb/Manifest
@@ -1,9 +1,5 @@
-DIST timescaledb-2.16.1.tar.gz 7449327 BLAKE2B 4eac0f41596db1b7669850cbb576a2d710998f7207f566fb9b4965804e6810f1571d18058a126acdae7862bf77424db44f27720f3600d1191ae1a3c3cf8680ae SHA512 4972ccc385a3c7bda8fab8736c63f75c5b290a3a0206add84718326fcd07c24a52dbbae2114e857fb78246bf5a4b5ec3310cc2219a163af4d5f30f1766e37fae
-DIST timescaledb-2.17.0.tar.gz 7559829 BLAKE2B 59ae1acabd9cc2657eaef04b42a2e4a9a633bf6dca0080897b2c0645ad2faa3b82c0f693ea121fbda8becf4088877b87f5aac8cf300d73ba85b3226a057ea5e0 SHA512 0c10f04b62e6e57da0e53234d25b82e68724a7925fd8696a9872e2934cbd1a7af9798576afceb504d4a7207ef8b0407421bbeeb4a3deef0f4b4ad17c2753443c
-DIST timescaledb-2.17.1.tar.gz 7565025 BLAKE2B 8d8325e06739201d17e0da19173ee852abb10c0646d5f3647c51a6c209c1c6df30bc03ee8682e082652fb8d26a0b9bedf5c6014ed143b0af530b450664f6e14f SHA512 f5cd527f1b37e228c7caaad0b9a9802b1cef3b0b4a856951e46e74479263f4fef6190cc37c920ca5819ddd6874ff469645f606eeadec6741b83e82adb8c21f22
DIST timescaledb-2.17.2.tar.gz 7567447 BLAKE2B c2d5d9883377ffce57184c9c29413d12a41c7ef7891abb088aa72d0d7c410db28370c53585d7ec286fd52b3fe5c89b10f3b6deb547b6a1de132dc9c6697aa8cb SHA512 fc74d41062735bd4136ac71b0e10aecf34a64cdb29fd2ff31eae3f406beb8db00866e8ed7e142d47852e1586a6ad2ffa1652fbd792a45e995174b62464963d1e
-EBUILD timescaledb-2.16.1.ebuild 1434 BLAKE2B 77976343740622bfde842b51055bce458295dc7304c82f9e06cfc510c9899954e85bf7f0c2f86ab0d8a9b47f1a956fba2102d889f4609c68d6898f59c7a7c5b1 SHA512 19ec48b1c738f884542b6c25cfbf5723727af5b7aba21889ee9a152721432a692feb3f59cd43c2cea0d173d3cdbe2fdba5fa5b0dc50e40563d8c14dddd9179d5
-EBUILD timescaledb-2.17.0.ebuild 1437 BLAKE2B 8e0fb37cb92aef40b53608eab5a06496c105a8015fa4065387ebd0ee54c08fe6fc0ba3383b2d1a7767e085016a4e00a089e67bd72769f7f5f4b45bbee0b15958 SHA512 22a62409c4d0e710279f9227b10b20d2df9a7c977d30a2d45c2ab829a29638909d75e5fb16c3146ce8d64a0a702e77935e27d6d910f9cfc4265611dc72c69119
-EBUILD timescaledb-2.17.1.ebuild 1437 BLAKE2B 8e0fb37cb92aef40b53608eab5a06496c105a8015fa4065387ebd0ee54c08fe6fc0ba3383b2d1a7767e085016a4e00a089e67bd72769f7f5f4b45bbee0b15958 SHA512 22a62409c4d0e710279f9227b10b20d2df9a7c977d30a2d45c2ab829a29638909d75e5fb16c3146ce8d64a0a702e77935e27d6d910f9cfc4265611dc72c69119
+DIST timescaledb-2.18.1.tar.gz 7903462 BLAKE2B d52814524f485593973c671cbdf5ed7c81bcbb5d4b9df1cfdc0a5b27edbc1a8b35d28feda786f9b1137bc986d2efed797be1b347e2204626d2251c0b7df5f7ae SHA512 94d6d10b8b74a55211d8767887962f5c37bc1ecd4dcc13fa8740904a9503d885ff635d0c93c56a5b3daacddf882f16f89f3d0afe50bc351e9abb8015cc537efb
EBUILD timescaledb-2.17.2.ebuild 1435 BLAKE2B 5db2df97f1a3a553fddba3f1335f0c8ed0d559373db4846a6512ef7ba1312f8c29eb85add3e87cb430718ecffbf70cab8ae3a00553a297d2acbba0335fb0aff6 SHA512 73a4680b81449792ad256be52140d1f07d424793cfa94c080ae2f46f60209710780a0a21df8a802a2bfb1d2931d8ea3743829502cae14bc60f80630f1c6562af
+EBUILD timescaledb-2.18.1.ebuild 1435 BLAKE2B 1bd8f483ef831456a7563048d026823be7590446a8911c2e94a81000d45b650200c2fd142d824d2b102e6aaf42c9cac292526b5ea36f61b1b9d0b49eabab4c18 SHA512 f24d023333f77a160a67ce44a5f3b51210d609969c86b269561af4ddf3d17debb95891636ff645790a6915c4ec97a91f56676c7d11452d08808fe877621df929
MISC metadata.xml 510 BLAKE2B 4e96707c6ee1fd09ff2baff091e02ceab53bfc28a6a3b91265a21fe9918a9728d2fe6394bed01e8bf4417c2349c2e72bab180cfff71cedf4641d462b29a33d3d SHA512 5e91ef3b9a503462dc880300e364f74e6564dd74671d0b0ce723a86ea7471f987424e06e51384d6fb079681122b8d454e255efe2e19726d64de7928df227148a
diff --git a/dev-db/timescaledb/timescaledb-2.16.1.ebuild b/dev-db/timescaledb/timescaledb-2.16.1.ebuild
deleted file mode 100644
index 8e453121b6c0..000000000000
--- a/dev-db/timescaledb/timescaledb-2.16.1.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-POSTGRES_COMPAT=( 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/timescaledb/timescaledb-2.17.0.ebuild b/dev-db/timescaledb/timescaledb-2.17.0.ebuild
deleted file mode 100644
index ce49cb6c56ac..000000000000
--- a/dev-db/timescaledb/timescaledb-2.17.0.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-POSTGRES_COMPAT=( 14 15 16 17 )
-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/timescaledb/timescaledb-2.17.1.ebuild b/dev-db/timescaledb/timescaledb-2.18.1.ebuild
index ce49cb6c56ac..93d772f03508 100644
--- a/dev-db/timescaledb/timescaledb-2.17.1.ebuild
+++ b/dev-db/timescaledb/timescaledb-2.18.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,12 +12,10 @@ 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
+KEYWORDS="~amd64"
+IUSE="proprietary-extensions"
RESTRICT="test"
diff --git a/dev-db/tora/Manifest b/dev-db/tora/Manifest
deleted file mode 100644
index f3867f030f95..000000000000
--- a/dev-db/tora/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-AUX tora-3.2-qt-includes.patch 1405 BLAKE2B f42d2fd5e39d6de51b3c6555dcb395b0b419d6685b6ce70389c4335f511a52abcfba5c51dc0454b0ddc91ba328dda50cc5727a1c84266c860a9d8781dae67a32 SHA512 1901e7501f8cf79ed74623fd5a5cc948e131cb5f75a9a55b0a712b6980c584a25e909bf7a17575b4604258ba444da7d47fddea34e6267cf73cc078e1547adf9f
-DIST tora-3.2.tar.gz 12762547 BLAKE2B 9e52013cc4122a8c6278392fd2251bad941fa48dbbc6e3c72a98bb2bad173d0262877afc44eca689c3110f69883c246441844f7884e309e000f1068b23c6b918 SHA512 005f9bc42a7c7ee9676ad60cdcb7b8fb9862a8ff0be9ffeb7911d96da7f233553b68e4089d23161871b479702ae8a8dc8bc63bd8d9aa75677bdd6c166ce86f7a
-EBUILD tora-3.2-r2.ebuild 2171 BLAKE2B c8a63c42911c4ea32625984a83317e3c0d2e0e97cd41d253036318018bcf7a1843d3a829e5439df97bed26ed80d8625636940082c5498bbee5d95d4ebff2c176 SHA512 a1070f8844b2ac59f41df2e61757b9115ccb718be97b0f79ec689c0c8914e745892d1c8545d46e488f91c4bc35de7fb642776d49bb2608f7af34eb0f9b70afce
-MISC metadata.xml 591 BLAKE2B 733ec0a015e39754579ae41c69fe69077ab0f9dbb56a3e033841c74eb3364339b49a324b13c7f7fbaaf432dc61f193c783f1f327acc8a59cefdbe89844c4f209 SHA512 199af7690f41e6c4461e341c595c52c40b73a6d93ca8e52c357df29b7742248b88cb11c9a8267e267516deda63d92a60b29c7268718ff6ff3a2edd0f5e0b1044
diff --git a/dev-db/tora/files/tora-3.2-qt-includes.patch b/dev-db/tora/files/tora-3.2-qt-includes.patch
deleted file mode 100644
index 6126cdf71ca9..000000000000
--- a/dev-db/tora/files/tora-3.2-qt-includes.patch
+++ /dev/null
@@ -1,61 +0,0 @@
---- a/src/editor/tosqltext.cpp
-+++ b/src/editor/tosqltext.cpp
-@@ -50,6 +50,7 @@
- #include <QToolTip>
- #endif
-
-+#include <QMenu>
- #include <QListWidget>
- #include <QVBoxLayout>
- #include <QApplication>
---- a/src/main/tooraclesetting.cpp
-+++ b/src/main/tooraclesetting.cpp
-@@ -45,6 +45,8 @@
- #include "core/toqvalue.h"
- #include "core/toquery.h"
-
-+#include <QtGui/qvalidator.h>
-+
- toOracleSetting::toOracleSetting(QWidget *parent)
- : QWidget(parent)
- , toSettingTab("database.html#oracle")
---- a/src/tools/tobrowser.cpp
-+++ b/src/tools/tobrowser.cpp
-@@ -65,6 +65,7 @@
- #include <QInputDialog>
- #include <QSplitter>
- #include <QToolBar>
-+#include <QButtonGroup>
-
- #include "icons/addindex.xpm"
- #include "icons/addtable.xpm"
---- a/src/tools/toscript.cpp
-+++ b/src/tools/toscript.cpp
-@@ -56,6 +56,7 @@
- #include <QSplitter>
- #include <QtCore/QTextStream>
- #include <QToolBar>
-+#include <QButtonGroup>
-
- #include "icons/execute.xpm"
- #include "icons/toscript.xpm"
---- a/src/tools/tosecurity.cpp
-+++ b/src/tools/tosecurity.cpp
-@@ -46,6 +46,7 @@
-
- #include <QSplitter>
- #include <QToolBar>
-+#include <QButtonGroup>
-
- #include "icons/addrole.xpm"
- #include "icons/adduser.xpm"
---- a/src/widgets/tohelp.cpp
-+++ b/src/widgets/tohelp.cpp
-@@ -43,6 +43,7 @@
- #include "core/toconfiguration.h"
- #include "ts_log/ts_log_utils.h"
-
-+#include <QAction>
- #include <QMessageBox>
- #include <QtCore/QSettings>
-
diff --git a/dev-db/tora/metadata.xml b/dev-db/tora/metadata.xml
deleted file mode 100644
index 6db883b8f1dc..000000000000
--- a/dev-db/tora/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <!-- maintainer-needed -->
- <longdescription>
- TOra is a Toolkit for Oracle which aims to help the DBA or developer of
- database application. Features PL/SQL debugger, SQL worksheet with syntax
- highlighting, DB browser and a comprehensive set of DBA tools. Also works
- with mySQL and postgreSQL.
- </longdescription>
- <upstream>
- <remote-id type="sourceforge">tora</remote-id>
- <remote-id type="github">tora-tool/tora</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/dev-db/tora/tora-3.2-r2.ebuild b/dev-db/tora/tora-3.2-r2.ebuild
deleted file mode 100644
index 3749b42c889d..000000000000
--- a/dev-db/tora/tora-3.2-r2.ebuild
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake desktop toolchain-funcs xdg
-
-if [[ ${PV} == *9999 ]]; then
- EGIT_REPO_URI="https://github.com/tora-tool/tora"
- inherit git-r3
-else
- SRC_URI="https://github.com/tora-tool/tora/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-DESCRIPTION="SQL IDE for Oracle, MySQL and PostgreSQL dbs"
-HOMEPAGE="https://github.com/tora-tool/tora/wiki"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="doc mysql oracle +postgres"
-REQUIRED_USE="|| ( mysql oracle postgres )"
-
-RDEPEND="
- dev-libs/ferrisloki
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtnetwork:5
- dev-qt/qtprintsupport:5
- dev-qt/qtsql:5[mysql?,postgres?]
- dev-qt/qtwidgets:5
- >=x11-libs/qscintilla-2.10.1:=[qt5(+)]
- oracle? ( dev-db/oracle-instantclient )
- postgres? ( dev-db/postgresql:* )
-"
-DEPEND="
- ${RDEPEND}
- dev-libs/boost
-"
-BDEPEND="
- dev-qt/linguist-tools:5
- virtual/pkgconfig
- doc? ( app-text/doxygen )
-"
-
-PATCHES=( "${FILESDIR}"/${P}-qt-includes.patch )
-
-src_prepare() {
- cmake_src_prepare
-
- # fixed in master, only care about recent qscintilla lib name:
- sed -e "/FIND_LIBRARY(QSCINTILLA_LIBRARY/s/qt5scintilla2/qscintilla2_qt5/" \
- -i cmake/modules/FindQScintilla.cmake || die "Failed to fix FindQScintilla.cmake"
-
- rm -r extlibs/{loki,qscintilla2} || die # ferrisloki, bug #383109
-
- sed -e "/COPYING/ d" \
- -i CMakeLists.txt || die "Removal of COPYING file failed"
-
- # bug 547520
- grep -rlZ '$$ORIGIN' . | xargs -0 sed -i 's|:$$ORIGIN[^:"]*||' || \
- die 'Removal of $$ORIGIN failed'
-}
-
-src_configure() {
- local mycmakeargs=(
- -DENABLE_DB2=OFF
- -DQT5_BUILD=ON
- -DWANT_INTERNAL_LOKI=OFF
- -DWANT_INTERNAL_QSCINTILLA=OFF
- -DWANT_RPM=OFF
- -DLOKI_LIBRARY="$($(tc-getPKG_CONFIG) --variable=libdir ferrisloki || die)/libferrisloki.so"
- -DLOKI_INCLUDE_DIR="$($(tc-getPKG_CONFIG) --variable=includedir ferrisloki || die)/FerrisLoki"
- $(cmake_use_find_package doc Doxygen)
- -DENABLE_ORACLE=$(usex oracle)
- -DUSE_PCH=OFF
- -DENABLE_PGSQL=$(usex postgres)
- )
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
-
- doicon src/icons/tora.xpm || die
- domenu src/tora.desktop || die
-}
diff --git a/dev-db/unixODBC/Manifest b/dev-db/unixODBC/Manifest
index 65005947bc45..14a846059f0a 100644
--- a/dev-db/unixODBC/Manifest
+++ b/dev-db/unixODBC/Manifest
@@ -1,5 +1,5 @@
AUX unixODBC-2.3.12-bug-936060.patch 1018 BLAKE2B 3efeb58341af9e004bbc9adc4652a64ff8149a0d89bb1e73925b5e282240c2976f87aaf22656c584443e307e2f97bd36d57acc127526f3d8285480445371904d SHA512 812d3cac8a2168e477ff231dbef3fbcda41caac87368811ae192dcd67483553b97d14a6028624509dc772b0ab6cbc59917390f43131fd7e90b40dc6a199dbb4d
DIST unixODBC-2.3.12.tar.gz 1753915 BLAKE2B 9da9b0fb5ff962db8ec1483b700aca5d4adf88f3349b22010bd0b4b4ec1fe2e7a51d761527e3b9e49b08286a00e55aadc38c320a6db512ba52f491aecad7fd83 SHA512 ca9d8db943195679a44db1fc09391dc6662ab1721112c93d448f04011e98502462ffe14b8364eb03707d851db456eced20eb61a22370392ca88d917038d45b56
-EBUILD unixODBC-2.3.12-r1.ebuild 1962 BLAKE2B 4baa47bb79d6259cba910f9c7beb11e30071cafeaad1b8f631bb9c30ca5fe73d0cc8dd580407b523a11f80dca787d4bf6b6ae73672d5caaf7771abdd2917f471 SHA512 577b140d5a993b3b41ba5f3f545b49f5ef5471d6dba90502454cfc6bdbe26312d4a6762519fdbe765a32925fd35b61601a107c7520e3c136bb5f2cc88d159b74
+EBUILD unixODBC-2.3.12-r1.ebuild 1961 BLAKE2B d8f7ce30ea249463dc9754ae2651486d1311804859fb7ff4ebdbc86182b3119f6332eb71776016f441089ff57696558d234ae9e8c573316d88d3f44e0c1e50f6 SHA512 3490209b947728bee1d6ec0a71522dd643e125c039da4c0b939fd816301564d93828b620a17b64f85b68c27808bc93a7722d325ef26308393c86ce3176d58d00
EBUILD unixODBC-2.3.12.ebuild 1910 BLAKE2B d5c84937b47a9659e8a077c0188c2266f4fa5b61c74195db20093c55fe87a7c71fd55ce792d00c1eff9f56586e4d3562f79b33d99690a3517cfdbc4c48423e82 SHA512 3306788ded0d691280796f8881682ada3a7e5489bba5f170645f430da233cf12e17b39d25c3fb0e5c835814bcb481ad8b0c7edcb8d8454fdf7dcbb8d7f30280f
MISC metadata.xml 479 BLAKE2B 298fd55d5c29508598a3e221f0d3b850b3f2e195885460c5a9cb9d4111d9246576d1ae0c8c586f6484931ea2b8b9a2e0127db5e4c01c456e66fb66436b62f2aa SHA512 a751b3121ce1298c50e4f66ce8c654d578be088fdf52490a4149d380053bef287736d27ef1b430fef789019cc1e0f53904cafc6c292d984a78da105a493be6a5
diff --git a/dev-db/unixODBC/unixODBC-2.3.12-r1.ebuild b/dev-db/unixODBC/unixODBC-2.3.12-r1.ebuild
index 061e25645301..d0ed69a23c79 100644
--- a/dev-db/unixODBC/unixODBC-2.3.12-r1.ebuild
+++ b/dev-db/unixODBC/unixODBC-2.3.12-r1.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://www.unixodbc.org/unixODBC-${PV}.tar.gz"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="+minimal odbcmanual static-libs unicode"
RDEPEND="