summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/barman/Manifest3
-rw-r--r--dev-db/barman/barman-2.19.ebuild44
-rw-r--r--dev-db/barman/barman-3.10.0.ebuild (renamed from dev-db/barman/barman-3.2.0.ebuild)6
-rw-r--r--dev-db/barman/barman-3.9.0.ebuild4
-rw-r--r--dev-db/citus/Manifest3
-rw-r--r--dev-db/citus/citus-11.3.1.ebuild2
-rw-r--r--dev-db/citus/citus-12.0.1.ebuild2
-rw-r--r--dev-db/citus/citus-12.1.3.ebuild (renamed from dev-db/citus/citus-12.1.2.ebuild)2
-rw-r--r--dev-db/citus/citus-12.1.4.ebuild35
-rw-r--r--dev-db/datadraw/datadraw-3.1.1.ebuild4
-rw-r--r--dev-db/etcd/Manifest10
-rw-r--r--dev-db/etcd/etcd-3.4.31.ebuild (renamed from dev-db/etcd/etcd-3.4.28.ebuild)4
-rw-r--r--dev-db/etcd/etcd-3.5.12.ebuild (renamed from dev-db/etcd/etcd-3.5.10.ebuild)11
-rw-r--r--dev-db/etcd/etcd-3.5.13.ebuild81
-rw-r--r--dev-db/firebird/files/firebird.logrotate2
-rw-r--r--dev-db/firebird/firebird-3.0.10.33601.0-r2.ebuild (renamed from dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild)8
-rw-r--r--dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild (renamed from dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild)6
-rw-r--r--dev-db/freetds/Manifest1
-rw-r--r--dev-db/freetds/freetds-1.4.17.ebuild54
-rw-r--r--dev-db/futuresql/futuresql-0.1.1.ebuild2
-rw-r--r--dev-db/gqlplus/gqlplus-1.16-r2.ebuild4
-rw-r--r--dev-db/hsqldb/Manifest1
-rw-r--r--dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch30
-rw-r--r--dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch20
-rw-r--r--dev-db/hsqldb/hsqldb-1.8.1.3-r5.ebuild (renamed from dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild)13
-rw-r--r--dev-db/hsqldb/hsqldb-2.7.3.ebuild181
-rw-r--r--dev-db/influx-cli/influx-cli-2.7.3.ebuild4
-rw-r--r--dev-db/influxdb/Manifest9
-rw-r--r--dev-db/influxdb/influxdb-2.7.5.ebuild (renamed from dev-db/influxdb/influxdb-2.7.3-r2.ebuild)7
-rw-r--r--dev-db/influxdb/influxdb-2.7.6.ebuild286
-rw-r--r--dev-db/kdb/kdb-3.2.0-r2.ebuild5
-rw-r--r--dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-buffer-overflow-sqlite.patch14
-rw-r--r--dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-c99.patch11
-rw-r--r--dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-fortify-source-sqlite.patch13
-rw-r--r--dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild4
-rw-r--r--dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild4
-rw-r--r--dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r3.ebuild90
-rw-r--r--dev-db/libdbi/libdbi-0.9.0.ebuild4
-rw-r--r--dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild4
-rw-r--r--dev-db/litecli/Manifest4
-rw-r--r--dev-db/litecli/litecli-1.10.1.ebuild34
-rw-r--r--dev-db/litecli/litecli-1.11.0.ebuild (renamed from dev-db/litecli/litecli-1.10.0.ebuild)2
-rw-r--r--dev-db/litecli/litecli-1.11.1.ebuild34
-rw-r--r--dev-db/litedb/litedb-5.0.17-r3.ebuild (renamed from dev-db/litedb/litedb-5.0.17-r2.ebuild)10
-rw-r--r--dev-db/lmdb++/Manifest2
-rw-r--r--dev-db/lmdb++/lmdb++-0.9.14.0.ebuild4
-rw-r--r--dev-db/lmdb/Manifest2
-rw-r--r--dev-db/lmdb/lmdb-0.9.32.ebuild66
-rw-r--r--dev-db/lmdb/lmdb-0.9.33.ebuild66
-rw-r--r--dev-db/m17n-db/Manifest2
-rw-r--r--dev-db/m17n-db/m17n-db-1.8.0.ebuild24
-rw-r--r--dev-db/m17n-db/m17n-db-1.8.5.ebuild44
-rw-r--r--dev-db/mariadb/Manifest8
-rw-r--r--dev-db/mariadb/mariadb-10.11.7.ebuild (renamed from dev-db/mariadb/mariadb-10.11.6.ebuild)3
-rw-r--r--dev-db/mariadb/mariadb-10.11.8.ebuild (renamed from dev-db/mariadb/mariadb-10.11.5-r1.ebuild)9
-rw-r--r--dev-db/mariadb/mariadb-10.6.17.ebuild (renamed from dev-db/mariadb/mariadb-10.6.16.ebuild)3
-rw-r--r--dev-db/mariadb/mariadb-10.6.18.ebuild (renamed from dev-db/mariadb/mariadb-10.6.15-r1.ebuild)9
-rw-r--r--dev-db/mariadb/mariadb-11.4.2.ebuild1324
-rw-r--r--dev-db/mongodb/Manifest4
-rw-r--r--dev-db/mongodb/files/mongodb-4.4.29-boost-1.85.patch146
-rw-r--r--dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch24
-rw-r--r--dev-db/mongodb/files/mongodb-4.4.8-gcc-13.patch25
-rw-r--r--dev-db/mongodb/files/mongodb-5.0.26-boost-1.85.patch139
-rw-r--r--dev-db/mongodb/metadata.xml3
-rw-r--r--dev-db/mongodb/mongodb-4.4.29.ebuild (renamed from dev-db/mongodb/mongodb-4.4.20.ebuild)43
-rw-r--r--dev-db/mongodb/mongodb-5.0.26.ebuild (renamed from dev-db/mongodb/mongodb-5.0.16-r1.ebuild)55
-rw-r--r--dev-db/mycli/Manifest2
-rw-r--r--dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch11
-rw-r--r--dev-db/mycli/mycli-1.27.2.ebuild (renamed from dev-db/mycli/mycli-1.27.0.ebuild)18
-rw-r--r--dev-db/mydumper/Manifest2
-rw-r--r--dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch29
-rw-r--r--dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch25
-rw-r--r--dev-db/mydumper/files/mydumper-0.15-fix-call-to-open.patch42
-rw-r--r--dev-db/mydumper/metadata.xml2
-rw-r--r--dev-db/mydumper/mydumper-0.14.5.2.ebuild16
-rw-r--r--dev-db/mydumper/mydumper-0.15.2.8-r1.ebuild57
-rw-r--r--dev-db/mydumper/mydumper-0.15.2.8.ebuild (renamed from dev-db/mydumper/mydumper-0.15.1.3.ebuild)22
-rw-r--r--dev-db/myodbc/Manifest1
-rw-r--r--dev-db/myodbc/files/myodbc-8.0.32-include-string.patch14
-rw-r--r--dev-db/myodbc/myodbc-8.0.32.ebuild130
-rw-r--r--dev-db/mysql-connector-c++/Manifest2
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild58
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild58
-rw-r--r--dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild45
-rw-r--r--dev-db/mysql-connector-c/Manifest1
-rw-r--r--dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch23
-rw-r--r--dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild123
-rw-r--r--dev-db/mysql-init-scripts/files/init.d-2.34
-rw-r--r--dev-db/mysql-init-scripts/files/init.d-s6-2.34
-rw-r--r--dev-db/mysql-init-scripts/files/init.d-supervise-2.36
-rw-r--r--dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r8.ebuild (renamed from dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r7.ebuild)0
-rw-r--r--dev-db/mysql-workbench/Manifest1
-rw-r--r--dev-db/mysql-workbench/mysql-workbench-8.0.38.ebuild114
-rw-r--r--dev-db/mysql/Manifest3
-rw-r--r--dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch76
-rw-r--r--dev-db/mysql/mysql-5.7.41.ebuild2
-rw-r--r--dev-db/mysql/mysql-8.0.36.ebuild1271
-rw-r--r--dev-db/mysql/mysql-8.0.37.ebuild1281
-rw-r--r--dev-db/mysqltuner/Manifest1
-rw-r--r--dev-db/mysqltuner/mysqltuner-2.2.12.ebuild34
-rw-r--r--dev-db/mysqltuner/mysqltuner-2.5.2.ebuild2
-rw-r--r--dev-db/oracle-instantclient/Manifest7
-rw-r--r--dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch22
-rw-r--r--dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild310
-rw-r--r--dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild2
-rw-r--r--dev-db/percona-toolkit/Manifest3
-rw-r--r--dev-db/percona-toolkit/percona-toolkit-3.5.7.ebuild (renamed from dev-db/percona-toolkit/percona-toolkit-3.5.1.ebuild)16
-rw-r--r--dev-db/pg_activity/Manifest2
-rw-r--r--dev-db/pg_activity/pg_activity-3.5.1.ebuild (renamed from dev-db/pg_activity/pg_activity-3.4.2.ebuild)4
-rw-r--r--dev-db/pg_background/Manifest1
-rw-r--r--dev-db/pg_background/metadata.xml11
-rw-r--r--dev-db/pg_background/pg_background-1.2.ebuild30
-rw-r--r--dev-db/pg_top/Manifest1
-rw-r--r--dev-db/pg_top/pg_top-4.1.1.ebuild28
-rw-r--r--dev-db/pgbouncer/Manifest4
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.20.0.ebuild78
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.20.1.ebuild78
-rw-r--r--dev-db/pgbouncer/pgbouncer-1.22.1.ebuild (renamed from dev-db/pgbouncer/pgbouncer-1.21.0.ebuild)2
-rw-r--r--dev-db/pglogical/Manifest1
-rw-r--r--dev-db/pglogical/pglogical-2.4.1.ebuild32
-rw-r--r--dev-db/pglogical/pglogical-2.4.4.ebuild2
-rw-r--r--dev-db/pgpool2/Manifest4
-rw-r--r--dev-db/pgpool2/pgpool2-4.3.10.ebuild (renamed from dev-db/pgpool2/pgpool2-4.3.2.ebuild)14
-rw-r--r--dev-db/pgpool2/pgpool2-4.3.8.ebuild10
-rw-r--r--dev-db/pgpool2/pgpool2-4.4.4.ebuild10
-rw-r--r--dev-db/pgpool2/pgpool2-4.4.5.ebuild10
-rw-r--r--dev-db/pgpool2/pgpool2-4.4.7.ebuild (renamed from dev-db/pgpool2/pgpool2-4.3.7.ebuild)18
-rw-r--r--dev-db/pgpool2/pgpool2-9999.ebuild10
-rw-r--r--dev-db/pgrouting/Manifest1
-rw-r--r--dev-db/pgrouting/pgrouting-3.6.1.ebuild4
-rw-r--r--dev-db/pgrouting/pgrouting-3.6.2.ebuild52
-rw-r--r--dev-db/pgtap/Manifest2
-rw-r--r--dev-db/pgtap/pgtap-1.3.3.ebuild (renamed from dev-db/pgtap/pgtap-1.2.0-r2.ebuild)4
-rw-r--r--dev-db/pgxnclient/pgxnclient-1.3.2.ebuild4
-rw-r--r--dev-db/postgis/Manifest12
-rw-r--r--dev-db/postgis/postgis-3.1.11.ebuild (renamed from dev-db/postgis/postgis-3.1.10.ebuild)4
-rw-r--r--dev-db/postgis/postgis-3.1.9.ebuild143
-rw-r--r--dev-db/postgis/postgis-3.2.4-r1.ebuild142
-rw-r--r--dev-db/postgis/postgis-3.2.5.ebuild142
-rw-r--r--dev-db/postgis/postgis-3.3.3.ebuild142
-rw-r--r--dev-db/postgis/postgis-3.3.4.ebuild142
-rw-r--r--dev-db/postgis/postgis-3.3.6.ebuild (renamed from dev-db/postgis/postgis-3.3.5.ebuild)4
-rw-r--r--dev-db/postgis/postgis-3.4.2.ebuild (renamed from dev-db/postgis/postgis-3.4.0-r2.ebuild)4
-rw-r--r--dev-db/postgis/postgis-3.5.0_alpha2.ebuild (renamed from dev-db/postgis/postgis-3.4.0-r1.ebuild)17
-rw-r--r--dev-db/postgis/postgis-9999.ebuild142
-rw-r--r--dev-db/postgresql/Manifest16
-rw-r--r--dev-db/postgresql/postgresql-12.17.ebuild452
-rw-r--r--dev-db/postgresql/postgresql-12.19-r2.ebuild (renamed from dev-db/postgresql/postgresql-12.18.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-13.13.ebuild464
-rw-r--r--dev-db/postgresql/postgresql-13.15-r2.ebuild (renamed from dev-db/postgresql/postgresql-13.14.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-14.10.ebuild464
-rw-r--r--dev-db/postgresql/postgresql-14.12-r2.ebuild (renamed from dev-db/postgresql/postgresql-14.11.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-15.5.ebuild466
-rw-r--r--dev-db/postgresql/postgresql-15.7-r2.ebuild (renamed from dev-db/postgresql/postgresql-15.6.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-16.3-r2.ebuild (renamed from dev-db/postgresql/postgresql-16.2.ebuild)24
-rw-r--r--dev-db/postgresql/postgresql-17_beta2.ebuild (renamed from dev-db/postgresql/postgresql-16.1.ebuild)48
-rw-r--r--dev-db/postgresql/postgresql-9999.ebuild314
-rw-r--r--dev-db/pspg/Manifest1
-rw-r--r--dev-db/pspg/metadata.xml3
-rw-r--r--dev-db/pspg/pspg-5.8.5.ebuild33
-rw-r--r--dev-db/psqlodbc/Manifest1
-rw-r--r--dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild37
-rw-r--r--dev-db/qdbm/files/qdbm-ruby.patch81
-rw-r--r--dev-db/qdbm/metadata.xml7
-rw-r--r--dev-db/qdbm/qdbm-1.8.78-r5.ebuild (renamed from dev-db/qdbm/qdbm-1.8.78-r4.ebuild)16
-rw-r--r--dev-db/redict/Manifest1
-rw-r--r--dev-db/redict/files/redict-7.3.0-config.patch40
-rw-r--r--dev-db/redict/files/redict-7.3.0-system-hiredict.patch240
-rw-r--r--dev-db/redict/files/redict-7.3.0-system-jemalloc.patch173
-rw-r--r--dev-db/redict/files/redict-sentinel-7.3.0-config.patch27
-rw-r--r--dev-db/redict/files/redict-sentinel.confd16
-rw-r--r--dev-db/redict/files/redict-sentinel.initd23
-rw-r--r--dev-db/redict/files/redict.confd20
-rw-r--r--dev-db/redict/files/redict.initd26
-rw-r--r--dev-db/redict/files/redict.logrotate6
-rw-r--r--dev-db/redict/files/redict.service14
-rw-r--r--dev-db/redict/files/redict.tmpfiles2
-rw-r--r--dev-db/redict/metadata.xml20
-rw-r--r--dev-db/redict/redict-7.3.0-r1.ebuild159
-rw-r--r--dev-db/redis/Manifest5
-rw-r--r--dev-db/redis/redis-7.0.14-r1.ebuild187
-rw-r--r--dev-db/redis/redis-7.2.3-r1.ebuild200
-rw-r--r--dev-db/redis/redis-7.2.4-r1.ebuild200
-rw-r--r--dev-db/redis/redis-7.2.5.ebuild (renamed from dev-db/redis/redis-7.2.1-r1.ebuild)15
-rw-r--r--dev-db/rqlite/Manifest6
-rw-r--r--dev-db/rqlite/rqlite-8.23.0.ebuild (renamed from dev-db/rqlite/rqlite-8.16.8.ebuild)7
-rw-r--r--dev-db/rqlite/rqlite-8.25.0.ebuild (renamed from dev-db/rqlite/rqlite-7.17.0.ebuild)13
-rw-r--r--dev-db/slony1/slony1-2.2.10-r1.ebuild11
-rw-r--r--dev-db/spatialite/spatialite-5.0.1-r2.ebuild9
-rw-r--r--dev-db/spatialite/spatialite-5.1.0-r1.ebuild7
-rw-r--r--dev-db/sqlcipher/metadata.xml5
-rw-r--r--dev-db/sqlcl-bin/Manifest2
-rw-r--r--dev-db/sqlcl-bin/sqlcl-bin-24.1.0.087.0929.ebuild (renamed from dev-db/sqlcl-bin/sqlcl-bin-23.3.0.270.1251.ebuild)8
-rw-r--r--dev-db/sqlite/Manifest8
-rw-r--r--dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch125
-rw-r--r--dev-db/sqlite/files/sqlite-3.44.2-tracker-regression.patch187
-rw-r--r--dev-db/sqlite/files/sqlite-3.45.1-lto.patch20
-rw-r--r--dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch112
-rw-r--r--dev-db/sqlite/sqlite-3.45.1-r1.ebuild439
-rw-r--r--dev-db/sqlite/sqlite-3.45.3.ebuild (renamed from dev-db/sqlite/sqlite-3.44.2-r1.ebuild)16
-rw-r--r--dev-db/sqlite/sqlite-3.46.0.ebuild (renamed from dev-db/sqlite/sqlite-3.44.2-r2.ebuild)14
-rw-r--r--dev-db/sqlite/sqlite-9999.ebuild12
-rw-r--r--dev-db/sqlitebrowser/files/sqlitebrowser-3.12.2-str-conflict-fix.patch13
-rw-r--r--dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r2.ebuild (renamed from dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r1.ebuild)6
-rw-r--r--dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild67
-rw-r--r--dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild6
-rw-r--r--dev-db/sqliteman/metadata.xml5
-rw-r--r--dev-db/sqliteman/sqliteman-1.2.2-r6.ebuild (renamed from dev-db/sqliteman/sqliteman-1.2.2-r5.ebuild)6
-rw-r--r--dev-db/sqlmap/Manifest5
-rw-r--r--dev-db/sqlmap/sqlmap-1.8.2.ebuild (renamed from dev-db/sqlmap/sqlmap-1.8.ebuild)0
-rw-r--r--dev-db/sqlmap/sqlmap-1.8.5.ebuild (renamed from dev-db/sqlmap/sqlmap-1.7.9.ebuild)2
-rw-r--r--dev-db/sqlmap/sqlmap-1.8.6.ebuild60
-rw-r--r--dev-db/timescaledb/Manifest3
-rw-r--r--dev-db/timescaledb/timescaledb-2.14.2.ebuild2
-rw-r--r--dev-db/timescaledb/timescaledb-2.15.2.ebuild (renamed from dev-db/timescaledb/timescaledb-2.14.0.ebuild)2
-rw-r--r--dev-db/timescaledb/timescaledb-2.15.3.ebuild67
-rw-r--r--dev-db/tinycdb/Manifest1
-rw-r--r--dev-db/tinycdb/tinycdb-0.78.ebuild52
-rw-r--r--dev-db/tinycdb/tinycdb-0.81.ebuild2
-rw-r--r--dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild4
220 files changed, 8192 insertions, 5237 deletions
diff --git a/dev-db/barman/Manifest b/dev-db/barman/Manifest
index c098f680d79f..888a8fdff7a4 100644
--- a/dev-db/barman/Manifest
+++ b/dev-db/barman/Manifest
@@ -1,3 +1,2 @@
-DIST barman-2.19.tar.gz 1423229 BLAKE2B db316bad10774ff5825af7409ecc69cd502fe447dd91efc52c04ae23d8e5c21e682fcde351b23dea437817d6207765a6cba355399aea0c5799b0f34be55ee524 SHA512 042912aac1e02994fbbe270f9bf6f4340b9b7ba5b1fdb5d588bdf95098a970ed398e002d1d56731f9b96c8bd0c7e0b71463ab6c08517ce3c1f2c77d1a92618ff
-DIST barman-3.2.0.tar.gz 1463937 BLAKE2B 9daff4dc1374aef5dfd8eff48438464265189223c7b5e7b39045cdf39362c0d266e437f8ff98aac3c045ab94f09ecc59cd34dd7847b783649cf5e18ab3e85280 SHA512 73b86ce55a034bc1bb4f130ef06f2e05c4a7b5c221b49c9ff1cf2f3693e42a5b30613232e823c5b4a87d201bdc8c3b2137de3b189268354145cc3866526095ab
+DIST barman-3.10.0.tar.gz 1851778 BLAKE2B 8e481676ae8a41e5a38a206966e26523237ee13f7201d219c405f355795e9755778d5495be3274bb67a931820b069d96be21adbcefc471380f98cd5f41fc1a08 SHA512 d01f4e940a46964aa8359614195c2bdc423c5a57e18331ccd798e0d52a2bd8f6adf299d42c5e1ac47ece5100cb1a828093badd8e1b181b20e4480cf368c8d1d0
DIST barman-3.9.0.tar.gz 1819096 BLAKE2B 712ec047f9409014495afd868a9bbe889b6b2d54a511770a95e9c62513d7042673b7c1ebec31d45729211a1da0e55dfdc5cdc0ef62d84e7efa26b2b9fbff5feb SHA512 e5b4796a470f43e4ea79383defabd31cd4d33d8dfc06495bc4485bd1bc5cfab701c3719567bcc302de3f157e9ef08a6848776daa2cf9c537fb2829b7931111fd
diff --git a/dev-db/barman/barman-2.19.ebuild b/dev-db/barman/barman-2.19.ebuild
deleted file mode 100644
index 61731d231f6b..000000000000
--- a/dev-db/barman/barman-2.19.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_10 )
-
-inherit distutils-r1
-
-DESCRIPTION="Administration tool for disaster recovery of PostgreSQL servers"
-HOMEPAGE="https://www.pgbarman.org https://sourceforge.net/projects/pgbarman/"
-SRC_URI="https://github.com/2ndquadrant-it/barman/archive/release/${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${PN}-release-${PV}"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-RDEPEND="
- dev-python/boto3[${PYTHON_USEDEP}]
- dev-python/argh[${PYTHON_USEDEP}]
- dev-python/psycopg:2[${PYTHON_USEDEP}]
- dev-python/python-dateutil[${PYTHON_USEDEP}]
- dev-python/argcomplete[${PYTHON_USEDEP}]
- net-misc/rsync
- dev-db/postgresql[server]
-"
-
-BDEPEND="
- test? (
- dev-python/mock[${PYTHON_USEDEP}]
- dev-python/pytest-timeout[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- default
-
- sed -i -e \
- "s/^ def test_xlog_segment_mask(.*:/ @pytest.mark.xfail(reason='Test fails on Gentoo')\n\0/" \
- tests/test_xlog.py || die
-}
diff --git a/dev-db/barman/barman-3.2.0.ebuild b/dev-db/barman/barman-3.10.0.ebuild
index d56829dfff5c..d7a56ecd1e99 100644
--- a/dev-db/barman/barman-3.2.0.ebuild
+++ b/dev-db/barman/barman-3.10.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
DISTUTILS_USE_PEP517="setuptools"
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
RESTRICT="test" # missing azure sdk
diff --git a/dev-db/barman/barman-3.9.0.ebuild b/dev-db/barman/barman-3.9.0.ebuild
index 1c3e0f925562..d7a56ecd1e99 100644
--- a/dev-db/barman/barman-3.9.0.ebuild
+++ b/dev-db/barman/barman-3.9.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517="setuptools"
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
RESTRICT="test" # missing azure sdk
diff --git a/dev-db/citus/Manifest b/dev-db/citus/Manifest
index 3e0a2d22cbba..293f142610bd 100644
--- a/dev-db/citus/Manifest
+++ b/dev-db/citus/Manifest
@@ -1,3 +1,4 @@
DIST citus-11.3.1.tar.gz 6623462 BLAKE2B ef07fb1e6cf0dd3f49600c3befcb300d47244393dd3bbe01450a8cb7bdb40adf1b7c6d7cf473ac80c466fc5dd4d6e0f5a62d1a587804d74011dda65731431028 SHA512 481d74cdf0e8de86b918fc73ed72f988f42679a827a39e7d89e2d0ebb0447d629dbaf323099dc97e886ea3012539200831f580bfe0cf3a12ef1f3a7bfe3fab42
DIST citus-12.0.1.tar.gz 6740395 BLAKE2B ca004f8026d94c1ed70c9c7450726287aff415c13b80b93d25a19fbae9a79cbbeaec51521fc7922d5574c75bddb9537d42d656121ca586f4512afe773be5bf76 SHA512 db9b882c63ef6ab848a85d547390d4fc61b97056485dcc8fa51c289a302b78d0de959e29c27a91c494fd3e20491f6a96e96436d8766d02b2770f0e375b94564e
-DIST citus-12.1.2.tar.gz 6897486 BLAKE2B 6cbd65cf0cefc5bbe4abcedbeaece8c9a123a05d0d6b812d95cea69153843fd187ff67ce0e99e19758f43569b7e38379294c3c1551f7751ffcb5a6d025800f1a SHA512 00ca6d7053c91671c894bb2afec25ba2a38aae50b6f363a1e63e08e4f3016e43739c9a48b20d93afecb5cc0f2d886fd12318dd8f54f67c052baca2d421882828
+DIST citus-12.1.3.tar.gz 6905546 BLAKE2B 6ece3bb20dfdad3d9413a17dc4b9177ae3cb8829e692b37bd226c60cbb1fa1e827e9de6f833d31c65835ab040593e0cc5fe4b6b0c8b0314306313cd88533e622 SHA512 2bcd5fa83e4fa56b90a3a3873229d3c5a294a0483d031d04ebd9602132883dc54485ca0907b867cd545f9b131a5f8cdeecb2e7e500b46d87f01aa5d5a34ff16f
+DIST citus-12.1.4.tar.gz 6906485 BLAKE2B cb5ed7c53449c7497693cfff69f360e43ab10acc7ac8b7a7be9bcb4e7440dbdd0bd2a85bbbac25e62b43be3040301e11180e1c797b9f6c7a56fbdad2b0cd4bf3 SHA512 c4f7cd8f6f2f72b66de17ae529590518d5c62654d6e1393a4c7b2f1d8b2f9c70e7d4e1f07aef3434272f84edc92d299a0c9df00934b1f065a0997c6fc5274913
diff --git a/dev-db/citus/citus-11.3.1.ebuild b/dev-db/citus/citus-11.3.1.ebuild
index 196628d1bd19..7218cc89d2a8 100644
--- a/dev-db/citus/citus-11.3.1.ebuild
+++ b/dev-db/citus/citus-11.3.1.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( 13 14 15 )
diff --git a/dev-db/citus/citus-12.0.1.ebuild b/dev-db/citus/citus-12.0.1.ebuild
index c3c9617e490d..d4a43681798e 100644
--- a/dev-db/citus/citus-12.0.1.ebuild
+++ b/dev-db/citus/citus-12.0.1.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( 14 15 )
diff --git a/dev-db/citus/citus-12.1.2.ebuild b/dev-db/citus/citus-12.1.3.ebuild
index 6f1052ed0c2d..7b9ed91dac47 100644
--- a/dev-db/citus/citus-12.1.2.ebuild
+++ b/dev-db/citus/citus-12.1.3.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( 14 15 16 )
diff --git a/dev-db/citus/citus-12.1.4.ebuild b/dev-db/citus/citus-12.1.4.ebuild
new file mode 100644
index 000000000000..7b9ed91dac47
--- /dev/null
+++ b/dev-db/citus/citus-12.1.4.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+POSTGRES_COMPAT=( 14 15 16 )
+
+inherit postgres-multi
+
+DESCRIPTION="Open-source postgresql extension for clustering/multi-node setups"
+HOMEPAGE="https://www.citusdata.com/"
+
+MY_PV="${PV/beta0/beta}"
+SRC_URI="https://github.com/citusdata/citus/archive/refs/tags/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+IUSE=""
+LICENSE="POSTGRESQL AGPL-3"
+
+KEYWORDS="~amd64"
+
+SLOT=0
+
+RESTRICT="test"
+
+DEPEND="${POSTGRES_DEP}
+ app-arch/lz4
+ app-arch/zstd
+ "
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ postgres-multi_foreach econf
+}
diff --git a/dev-db/datadraw/datadraw-3.1.1.ebuild b/dev-db/datadraw/datadraw-3.1.1.ebuild
index 584245a0341e..dfc0fa528d3d 100644
--- a/dev-db/datadraw/datadraw-3.1.1.ebuild
+++ b/dev-db/datadraw/datadraw-3.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit toolchain-funcs
DESCRIPTION="feature rich database generator for high performance C applications"
HOMEPAGE="http://datadraw.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${PN}/${PN}${PV}/${PN}${PV}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PN}${PV}/${PN}${PV}.tar.gz"
LICENSE="LGPL-2"
SLOT="0"
diff --git a/dev-db/etcd/Manifest b/dev-db/etcd/Manifest
index 1b1dbbe68100..a66e5e34c31e 100644
--- a/dev-db/etcd/Manifest
+++ b/dev-db/etcd/Manifest
@@ -1,6 +1,8 @@
DIST etcd-3.4.26-deps.tar.xz 39352316 BLAKE2B 8b1a30d645b1ea756ac944d2d3f7e0c5b9491bab54d4d74c6525c519e5297a1e8e2a97f70a50a5681cf8941d2e4978d5c3717fccb552042bcd42e7c4bd2b29a8 SHA512 eb3af2910030a165699158a3dfe7e1267f29c0720865026da2a95941c7e1e19db793e177e9ca5a9f3b134c1a9a83b4a0613a32a30282b68fe3aef75b8dacae59
DIST etcd-3.4.26.tar.gz 6043999 BLAKE2B 03f3bd0388e59dea9300b9a811b426ce03f1001750259dcd8386566efaa64783746f0353f83c1d01960004a77cea08a194aba394d91808aad15b5d4bb8f151cf SHA512 b2048070adb1df6e98c06e0e951f7940815dab238fe4ba49c36681a638f39eb7e40fed691baf70410d01467965094d70f008d0046b1b550b2ac1ed19ac89ca47
-DIST etcd-3.4.28-deps.tar.xz 66108144 BLAKE2B 81bef927202231a7b8a1856327d371060b15aadf6189dd3950946a8274df5eb6845b6a645f27f8c231d1bf6baef40777b433e0f9f96f6faf136cef53ec66220f SHA512 5cf3810309c28559a3b793a2c7e329aea13f0e1ec83a033bf8d1f34b4aa7a357446bbe654f56175b52822c08e22e335be39592955b369ddc91a276c90c582820
-DIST etcd-3.4.28.tar.gz 6052858 BLAKE2B 8c6dbebf3570c88e53ff5d13b0192502bc93d50076b9b66bd3ef4a313e734a1dc630366203b8e5d22ce29e9e8498e5e9304a6b02973d2defd4b65425ee24becb SHA512 409f82c9979ee34327f0f1f6fd171ccbeb6a044ca4e1f137dd803172e2b79f5f14d68eea67b12c90401dc93fe830b7adf77f8c06c2730f3205d367a957fc43cc
-DIST etcd-3.5.10-deps.tar.xz 95341332 BLAKE2B 45aed0b80e5c0b3100b870b3f663a09ca8998f52e462a5a618c871d9baed898bd7bf23d2d1f33ff6eb3ad40fcd6692d4c9e5501b27cdc93a4be23aea464ac769 SHA512 59acb7de1a89014c75054cd06659f3220fd0a361e16a26d7bb26c2177266493808f9817dd7393df04c4ab14d46ddfd9ec9a36442e9656cf871971034ff1c99ed
-DIST etcd-3.5.10.tar.gz 4073085 BLAKE2B d6b6c60dee15ffc42e3510837eefc543d16bdbda532828cd6a846f9d12921e24df948b93b4951f8e660be9967e540f59ecba558094558f67ec5aa4059dee60de SHA512 965e8666653c6012643b01fd9e1bbd3b01294590985e91c54a81ea9f6940ebdf4d6c48f04b082a094e09b4959eba92e0bfed46d364ff54d8791ab7d42d2a725c
+DIST etcd-3.4.31-deps.tar.xz 2212704 BLAKE2B 8b30941eefdb3811fb331014b69eb8d5b9c691b8ace1004432e5b05bb787bb3ba3ce872f881af2a559d7b955fae890a4ec0e8b10daa06cf388447af1b6a92679 SHA512 85915f5738493bfe3c09208649e26cfdc612df900916686006a437c44aad5afb2ab69b0840550e37544a50b79d2d3718e2cbdfd037e47bcaa8e33a8a6a95105f
+DIST etcd-3.4.31.tar.gz 6072806 BLAKE2B 30aa5b79d2fd0ba639bc766c104d5df28af50ae5398d860af3b3aff91c143ccd899538b341501386bac55dedc00086654de6e4ab9b237053b199a8de2fa509ec SHA512 4a7e366ced86ea86a324ab972ea47be56456c0aa8744e5ec07d499a56bdc9179ebc3bc2f33bd67c2d341181a5bcc703abc5a7c2e57879169a351457b4a0274f3
+DIST etcd-3.5.12-deps.tar.xz 3935756 BLAKE2B c043cc55f59549734f38b1a734106bd25a1bbeb47f84e00a6b4308bad6086a6f0e0f3dee151bf1708bac269be124c782ea48c3761ee5e1d130a002989f99f2d3 SHA512 caae360e315756fe933bd87a7ce543d904084a745b5e42844a293bbf17c121d245f9f3645cd9992de5203c9efe4efcd4226ba294afb5a3550c114de78dad3110
+DIST etcd-3.5.12.tar.gz 4083299 BLAKE2B 85615cf9095a440ef73aa59f5582293de543f7e473c8049712ff13646276c9441039c96c4e42aaedfddcfb3baede8d37f0ef68bb5ddabdb3f4833c8591ee1c8c SHA512 6fc8bd64ad63cff71c7645253273418fb3fa262c2da1742dc345576caa733af7cd75acad2f57610c5883e6bf16cffd36bc5a0c89cbbb0793c00c2a4db1c6d14b
+DIST etcd-3.5.13-deps.tar.xz 5004004 BLAKE2B effc3c3fb8e6fff789f96030e485fb887b0f973e5943e66f744ce2d41c65c0756a81850be8f8cca96f50214a59e0eeac694c4669d809ddcee0771acc1703d9ff SHA512 ed80d70a14cf049e3af22757ad5cc4abd1ce563e00e0d422d38c82d66fe4381822ef1344de3ef803dedc2bfc038dabb520ad58fd489b8916529d24357628f002
+DIST etcd-3.5.13.tar.gz 4089792 BLAKE2B be7a46af3978108b7e25adabe736ac111a01ab7fcb8e142b75c0c87aa33905d42d10b721ebc982e834110388669d028e6a612c9745e2f5c93210dd05ffccba7d SHA512 dc85d80079b61e96eb06eb573d41d8972060392e49140a2414c283ea9edfef7b01d5554e50c7ab37c6ad079b373ae12a1b84dbcc533addc1d4d30a2a5abf7b7b
diff --git a/dev-db/etcd/etcd-3.4.28.ebuild b/dev-db/etcd/etcd-3.4.31.ebuild
index 9084f1072095..468971161050 100644
--- a/dev-db/etcd/etcd-3.4.28.ebuild
+++ b/dev-db/etcd/etcd-3.4.31.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd tmpfiles
-GIT_COMMIT=adf6bd245
+GIT_COMMIT=950cd5fbe
DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
HOMEPAGE="https://github.com/etcd-io/etcd"
diff --git a/dev-db/etcd/etcd-3.5.10.ebuild b/dev-db/etcd/etcd-3.5.12.ebuild
index ab2651f2f3fc..e61a29b82bd5 100644
--- a/dev-db/etcd/etcd-3.5.10.ebuild
+++ b/dev-db/etcd/etcd-3.5.12.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd tmpfiles
-GIT_COMMIT=0223ca52b
+GIT_COMMIT=e7b3bb6cc
DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
HOMEPAGE="https://github.com/etcd-io/etcd"
@@ -12,7 +12,7 @@ SRC_URI+=" https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
LICENSE="Apache-2.0 BSD BSD-2 MIT"
SLOT="0"
-KEYWORDS="~amd64 ~loong ~riscv"
+KEYWORDS="amd64 ~loong ~riscv"
IUSE="doc +server"
COMMON_DEPEND="server? (
@@ -25,12 +25,13 @@ RDEPEND="${COMMON_DEPEND}"
# Tests fail with this error:
# fatal error: checkptr: unsafe pointer conversion
RESTRICT="test"
+PATCHES=("${S}/go-mod-sum.patch")
src_prepare() {
export GO_BUILD_FLAGS="-v -x"
default
- sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|"\
- -i "${S}"/build || die
+ sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|" \
+ -i "${S}"/build.sh || die
sed -e 's:\(for p in \)shellcheck :\1 :' \
-e 's:^ gofmt \\$:\\:' \
-e 's:^ govet \\$:\\:' \
diff --git a/dev-db/etcd/etcd-3.5.13.ebuild b/dev-db/etcd/etcd-3.5.13.ebuild
new file mode 100644
index 000000000000..77d02b80751b
--- /dev/null
+++ b/dev-db/etcd/etcd-3.5.13.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module systemd tmpfiles
+GIT_COMMIT=c9063a0dc
+
+DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
+HOMEPAGE="https://github.com/etcd-io/etcd"
+SRC_URI="https://github.com/etcd-io/etcd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
+
+LICENSE="Apache-2.0"
+LICENSE+=" BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~riscv"
+IUSE="doc +server"
+
+COMMON_DEPEND="server? (
+ acct-group/etcd
+ acct-user/etcd
+ )"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+# Tests fail with this error:
+# fatal error: checkptr: unsafe pointer conversion
+RESTRICT="test"
+PATCHES=("${S}/go-mod-sum.patch")
+
+src_prepare() {
+ export GO_BUILD_FLAGS="-v -x"
+ default
+ sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|" \
+ -i "${S}"/build.sh || die
+ sed -e 's:\(for p in \)shellcheck :\1 :' \
+ -e 's:^ gofmt \\$:\\:' \
+ -e 's:^ govet \\$:\\:' \
+ -e 's:^ govet_shadow \\$:\\:' \
+ -i "${S}"/test || die
+
+ sed -e "s|GO_BUILD_FLAGS=\"[^\"]*\"|GO_BUILD_FLAGS=\"${GO_BUILD_FLAGS}\"|" \
+ -e "s|go test |go test ${GO_BUILD_FLAGS} |" \
+ -i ./test || die
+}
+
+src_compile() {
+ ./build.sh || die
+}
+
+src_test() {
+ ./test || die
+}
+
+src_install() {
+ dobin bin/etcdctl
+ use doc && dodoc -r Documentation
+ if use server; then
+ insinto /etc/${PN}
+ sed -e 's|^data-dir:|\0 /var/lib/etcd|' -i etcd.conf.yml.sample || die
+ newins etcd.conf.yml.sample etcd.conf.yml
+ dobin bin/etcd
+ dodoc README.md
+ systemd_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
+ newtmpfiles "${FILESDIR}/${PN}.tmpfiles.d.conf" ${PN}.conf
+ newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd-r1 ${PN}
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}.logrotated" "${PN}"
+ keepdir /var/lib/${PN} /var/log/${PN}
+ fowners ${PN}:${PN} /var/lib/${PN} /var/log/${PN}
+ fperms 0700 /var/lib/${PN}
+ fperms 0755 /var/log/${PN}
+ fi
+}
+
+pkg_postinst() {
+ if use server; then
+ tmpfiles_process ${PN}.conf
+ fi
+}
diff --git a/dev-db/firebird/files/firebird.logrotate b/dev-db/firebird/files/firebird.logrotate
index a4542b47ea93..ac4a74b26041 100644
--- a/dev-db/firebird/files/firebird.logrotate
+++ b/dev-db/firebird/files/firebird.logrotate
@@ -6,5 +6,5 @@
size +1024k
delaycompress
notifempty
- create 644 firebird
+ create 644 firebird firebird
}
diff --git a/dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild b/dev-db/firebird/firebird-3.0.10.33601.0-r2.ebuild
index cf1793d314a8..5fd90979b8e5 100644
--- a/dev-db/firebird/firebird-3.0.10.33601.0-r1.ebuild
+++ b/dev-db/firebird/firebird-3.0.10.33601.0-r2.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_P=${PN/f/F}-$(ver_rs 4 '-')
-inherit autotools flag-o-matic
+inherit autotools flag-o-matic toolchain-funcs
DESCRIPTION="Relational database offering many ANSI SQL:2003 and some SQL:2008 features"
HOMEPAGE="https://www.firebirdsql.org/"
@@ -91,6 +91,10 @@ src_prepare() {
-e 's:ISQL :FBSQL :w /dev/stdout' \
src/msgs/messages2.sql | wc -l)" "6" "src/msgs/messages2.sql" # 6 lines
+ # bug #917662, bug #924659
+ filter-lto
+ append-flags -fno-strict-aliasing $(test-flags-CXX -fno-lifetime-dse)
+
# use gentoo's CXXFLAGS instead of whatever firebird decided on
# doesn't replace all firebird's CXXFLAGS, but at least this is last,
# so it can do some overrides
diff --git a/dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild b/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild
index 171554c2aebe..6f2ba7ca3b89 100644
--- a/dev-db/firebird/firebird-3.0.4.33054.0-r2.ebuild
+++ b/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -93,6 +93,10 @@ src_configure() {
filter-flags -fprefetch-loop-arrays
filter-mfpmath sse
+ # bug #917662, bug #924659
+ filter-lto
+ append-flags -fno-strict-aliasing $(test-flags-CXX -fno-lifetime-dse)
+
# otherwise this doesnt build with gcc-6
# http://tracker.firebirdsql.org/browse/CORE-5099
append-cflags -fno-sized-deallocation -fno-delete-null-pointer-checks
diff --git a/dev-db/freetds/Manifest b/dev-db/freetds/Manifest
index 8b914f97fca1..fe46ee8b16a4 100644
--- a/dev-db/freetds/Manifest
+++ b/dev-db/freetds/Manifest
@@ -1 +1,2 @@
+DIST freetds-1.4.17.tar.bz2 2401147 BLAKE2B 7155f902043411e57a9244c16bae49aa095d1f6af0b40bd1dc1e6949b3d78b3c8e58a7b6b2284ebac9e7b26920485a8ae12b691cc838410835786be51f027c89 SHA512 df5804a4bea20f995ecd3ef3ae4b898b9d9b32af6827aa2bada95008c8b909b682779c6776efb0d778615e21ac7af20b4aa0d1518a7a0d50bb793f4688a0e1a9
DIST freetds-dev.1.2.18.tar.gz 3406990 BLAKE2B f0134ee0a322cb9e7a7fefbf9e85c60b826318b546febde78e53d5ec22dc2c8e269b7e830da6d84267d16a2dc2cf367a54354765017a40e07af2c3c6be54676e SHA512 315f40ba0d97281f852ec99fac457ec4b2a30879a2384bfa2d7c680aad6c056b6ae23fc192c18db4fba75caff552ef86de7bbfc5d7b608ea5a12531bf9eadc4c
diff --git a/dev-db/freetds/freetds-1.4.17.ebuild b/dev-db/freetds/freetds-1.4.17.ebuild
new file mode 100644
index 000000000000..b9d879a08826
--- /dev/null
+++ b/dev-db/freetds/freetds-1.4.17.ebuild
@@ -0,0 +1,54 @@
+# 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 ~ia64 ~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/futuresql/futuresql-0.1.1.ebuild b/dev-db/futuresql/futuresql-0.1.1.ebuild
index acad2895fac0..2f989131dd85 100644
--- a/dev-db/futuresql/futuresql-0.1.1.ebuild
+++ b/dev-db/futuresql/futuresql-0.1.1.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="https://api.kde.org/futuresql/html/index.html https://invent.kde.org/l
if [[ ${KDE_BUILD_TYPE} = release ]]; then
SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz"
- KEYWORDS="~amd64"
+ KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
fi
LICENSE="MIT"
diff --git a/dev-db/gqlplus/gqlplus-1.16-r2.ebuild b/dev-db/gqlplus/gqlplus-1.16-r2.ebuild
index 0d2c4b3310e7..ea1d31916619 100644
--- a/dev-db/gqlplus/gqlplus-1.16-r2.ebuild
+++ b/dev-db/gqlplus/gqlplus-1.16-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="a front-end for Oracle program sqlplus with command-line editing"
HOMEPAGE="https://gitlab.com/jessp011/gqlplus"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz
https://dev.gentoo.org/~grobian/distfiles/gqlplus-1.16-sqlplus-handling-fixes.patch"
LICENSE="GPL-2"
diff --git a/dev-db/hsqldb/Manifest b/dev-db/hsqldb/Manifest
index c8808162e0b8..4f76610cc00a 100644
--- a/dev-db/hsqldb/Manifest
+++ b/dev-db/hsqldb/Manifest
@@ -1 +1,2 @@
+DIST hsqldb-2.7.3.zip 11778622 BLAKE2B 9e7f6a0e0bdf8602c87ab770dcb43c17db9ae6dc5d50fda079a44a42b0ccb64a20f74d020b2dbedbbc6b6c6ee57acf062d2c74d53a7d34fe932dbd79b0cc86d0 SHA512 06825d5f1428630dae476d78de9e2c48834a34a8678adf0e6af594594c5e1a7efdf99e366add4f6bbc24136e6aaa8fcbf54bd7ff2f2c459c20f9f02f7415b70a
DIST hsqldb_1_8_1_3.zip 3170550 BLAKE2B 0664bfa259af5091e3e76ca804e9c9890457ecc982ab07ee37640dc713053fb63d6dd295e9db4adb5e5436fac6275745526d3e830dd84e5daa3a32162627dc76 SHA512 0483ca3299b63b4931b07d49588c729231efca76a317b9620abbd5039127f3f79449eaa1e9d29c52782c58bdb0cc4879b1e3f30f669d2c02c880818f531a8442
diff --git a/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch
new file mode 100644
index 000000000000..2f34a0b3b55d
--- /dev/null
+++ b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch
@@ -0,0 +1,30 @@
+Patch created with sed expression borrowed from 1.8.1.3-r4.ebuild
+
+ # sample-hsqldb.cfg seems to have moved/renamed to sample/hsqldb.conf
+ sed -e "s/^HSQLDB_JAR_PATH=.*$/HSQLDB_JAR_PATH=${EPREFIX//\//\\/}${HSQLDB_JAR//\//\\/}/g" \
+ -e "s/^SERVER_HOME=.*$/SERVER_HOME=${EPREFIX//\//\\/}\/var\/lib\/hsqldb/g" \
+ -e "s/^HSQLDB_OWNER=.*$/HSQLDB_OWNER=hsqldb/g" \
+ -e 's/^#AUTH_FILE=.*$/AUTH_FILE=${SERVER_HOME}\/sqltool.rc/g' \
+ -i sample/hsqldb.conf || die
+
+--- a/sample/hsqldb.conf
++++ b/sample/hsqldb.conf
+@@ -34,7 +34,7 @@ SQLTOOL_JAR_PATH=/opt/hsqldb-2.0.0/hsqldb/lib/sqltool.jar
+ # /opt/hsqldb-2.0.0/hsqldb/lib/hsqldb*.jar.
+
+ # Where the file "server.properties" or "webserver.properties" resides.
+-SERVER_HOME=/opt/hsqldb-2.0.0/hsqldb/data
++SERVER_HOME=/var/lib/hsqldb
+
+ # What UNIX user the server will run as.
+ # (The shutdown client is always run as root or the invoker of the init script).
+@@ -91,7 +91,7 @@ URLIDS='localhostdb1'
+ # root who runs the init script.
+ # (See the SqlTool chapter of the HyperSQL Utilities Guide if you don't
+ # understand this).
+-#AUTH_FILE=/home/blaine/sqltool.rc
++AUTH_FILE=${SERVER_HOME}/sqltool.rc
+
+ # Typical users will leave this unset and it will default to
+ # org.hsqldb.server.Server. If you need to run the HSQLDB WebServer class
+
diff --git a/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch
new file mode 100644
index 000000000000..bb4984691936
--- /dev/null
+++ b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch
@@ -0,0 +1,20 @@
+--- a/sample/hsqldb.init
++++ b/sample/hsqldb.init
+@@ -57,7 +57,7 @@ SERVICE=hsqldb
+ # chkconfig: 345 87 13
+ # description: HyperSQL Database, A High Performance Java Database Server
+ # pidfile: /run/hsqldb.pid
+-# config: /etc/sysconfig/hsqldb
++# config: /etc/conf.d/hsqldb
+
+ # This block only used by insserv systems (incl. SuSE Linux).
+ ### BEGIN INIT INFO
+@@ -198,7 +198,7 @@ case "`uname`" in
+ esac
+
+ for candidate in /etc/hsqldb/${SERVICE}.conf \
+- /etc/sysconfig/${SERVICE} /etc/${SERVICE}.conf \
++ /etc/conf.d/${SERVICE} /etc/${SERVICE}.conf \
+ /etc/${SERVICE}.cfg /Library/Hsqldb/conf/${SERVICE}.cfg \
+ /Library/Hsqldb/${SERVICE}.cfg /usr/local/etc/${SERVICE}.cfg; do
+ [ -f $candidate ] && {
diff --git a/dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild b/dev-db/hsqldb/hsqldb-1.8.1.3-r5.ebuild
index 8c19f12a1155..be250b19dc31 100644
--- a/dev-db/hsqldb/hsqldb-1.8.1.3-r4.ebuild
+++ b/dev-db/hsqldb/hsqldb-1.8.1.3-r5.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
JAVA_PKG_IUSE="doc source test"
@@ -11,8 +11,9 @@ MY_PV=$(ver_rs 1- '_')
MY_P="${PN}_${MY_PV}"
DESCRIPTION="The leading SQL relational database engine written in Java"
-HOMEPAGE="http://hsqldb.org"
-SRC_URI="mirror://sourceforge/${PN}/${MY_P}.zip"
+HOMEPAGE="https://hsqldb.org"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.zip"
+S="${WORKDIR}/${PN}"
LICENSE="BSD GPL-2"
SLOT="0"
@@ -34,8 +35,6 @@ PATCHES=(
"${FILESDIR}/${P}-java7.patch"
)
-S="${WORKDIR}/${PN}"
-
HSQLDB_JAR=/usr/share/hsqldb/lib/hsqldb.jar
HSQLDB_HOME=/var/lib/hsqldb
@@ -90,7 +89,7 @@ src_test() {
}
src_install() {
- java-pkg_dojar lib/hsql*.jar
+ java-pkg_dojar lib/hsql{db{,util},tool,jdbc}.jar
if use doc; then
dodoc doc/*.txt
diff --git a/dev-db/hsqldb/hsqldb-2.7.3.ebuild b/dev-db/hsqldb/hsqldb-2.7.3.ebuild
new file mode 100644
index 000000000000..e0bb6b6b5a4a
--- /dev/null
+++ b/dev-db/hsqldb/hsqldb-2.7.3.ebuild
@@ -0,0 +1,181 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.hsqldb:hsqldb:${PV}"
+
+inherit java-pkg-2
+
+MY_PV="$(ver_cut 1-2)"
+MY_PV="${MY_PV//./_}"
+
+DESCRIPTION="HSQLDB - Lightweight 100% Java SQL Database Engine"
+HOMEPAGE="https://hsqldb.org"
+SRC_URI="https://downloads.sourceforge.net/project/hsqldb/hsqldb/hsqldb_${MY_PV}/${P}.zip"
+S="${WORKDIR}/${P}/${PN}"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ app-arch/unzip
+ >=dev-java/ant-1.10.14-r3:0
+"
+
+COMMON_DEPEND="
+ acct-group/hsqldb
+ acct-user/hsqldb
+"
+
+DEPEND="${COMMON_DEPEND}
+ dev-java/javax-servlet-api:3.1
+ >=virtual/jdk-11:*
+ test? (
+ >=dev-java/ant-1.10.14-r3:0[junit]
+ dev-java/junit:0
+ )"
+
+RDEPEND="${COMMON_DEPEND}
+ >=virtual/jre-11:*"
+
+DOCS=( readme.txt doc/{changelist_2_0,odbc,readme-docauthors}.txt )
+
+PATCHES=(
+ "${FILESDIR}/hsqldb-2.7.3-hsqldb.conf.patch"
+ "${FILESDIR}/hsqldb-2.7.3-hsqldb.init.patch"
+)
+
+HSQLDB_JAR=/usr/share/hsqldb/lib/hsqldb.jar
+HSQLDB_HOME=/var/lib/hsqldb
+
+src_prepare() {
+ default #780585
+ java-pkg-2_src_prepare
+ java-pkg_clean
+
+ # bin/hsqldb seems to have moved/renamed to sample/hsqldb.init
+ mv sample/hsqldb{.init,} || die
+
+ mkdir conf
+ # sample-hsqldb.cfg seems to have moved/renamed to sample/hsqldb.conf
+ mv sample/hsqldb.conf conf/hsqldb || die
+
+ cp "${FILESDIR}/server.properties" conf/ || die
+ cp "${FILESDIR}/sqltool.rc" conf/ || die
+}
+
+src_compile() {
+ local targets=( hsqldb hsqldbutil sqltool )
+ if use doc; then
+ mkdir doc-src/apidocs || die
+ cp doc{,-src}/apidocs/javadoc.css || die
+ rm -r doc/apidocs || die
+ targets+=( javadoc )
+ fi
+ use test && targets+=( preprocessor )
+ eant \
+ -f build/build.xml \
+ -Dservletapi.lib="$(java-pkg_getjars --build-only javax-servlet-api-3.1)" \
+ -Djavac.bootcp.override \
+ -Dant.java.iscjava11 \
+ -Dant.build.javac.source="11" \
+ -Dant.build.javac.target="11" \
+ "${targets[@]}"
+}
+
+src_test() {
+ mkdir -p test-src/org/hsqldb/{resources,jdbc/resources/{xml,sql},util/preprocessor} || die
+ eant -v \
+ -f build/test.xml \
+ -Dservletapi.lib="$(java-pkg_getjars --build-only javax-servlet-api-3.1)" \
+ -Djunit.jar="$(java-pkg_getjars --build-only junit)" \
+ -Djavac.bootcp.override \
+ -Dant.java.iscjava11 \
+ -Dant.build.javac.source="11" \
+ -Dant.build.javac.target="11" \
+ make.test.suite run.test.suite
+}
+
+src_install() {
+ java-pkg_dojar lib/{hsqldb{,util},sqltool}.jar
+
+ einstalldocs
+ use doc && java-pkg_dojavadoc doc/apidocs
+
+ use source && java-pkg_dosrc src/*
+
+ echo "CONFIG_PROTECT=\"${HSQLDB_HOME}\"" > "${T}"/35hsqldb || die
+ doenvd "${T}"/35hsqldb
+
+ # Put init, configuration and authorization files in /etc
+ doinitd "${FILESDIR}/hsqldb"
+ doconfd conf/hsqldb
+ insinto /etc/hsqldb
+ # Change the ownership of server.properties and sqltool.rc
+ # files to hsqldb:hsqldb. (resolves Bug #111963)
+ use prefix || insopts -m0600 -o hsqldb -g hsqldb
+ doins conf/server.properties
+ use prefix || insopts -m0600 -o hsqldb -g hsqldb
+ doins conf/sqltool.rc
+
+ # Install init script
+ dodir "${HSQLDB_HOME}/bin"
+ keepdir "${HSQLDB_HOME}"
+ exeinto "${HSQLDB_HOME}/bin"
+ doexe sample/hsqldb
+
+ # Make sure that files have correct permissions
+ use prefix || chown -R hsqldb:hsqldb "${ED}${HSQLDB_HOME}" || die
+ chmod o-rwx "${ED}${HSQLDB_HOME}" || die
+
+ # Create symlinks to authorization files in the server home dir
+ # (required by the hqldb init script)
+ insinto "${HSQLDB_HOME}"
+ dosym ../../../etc/hsqldb/server.properties "${HSQLDB_HOME}/server.properties"
+ dosym ../../../etc/hsqldb/sqltool.rc "${HSQLDB_HOME}/sqltool.rc"
+}
+
+pkg_postinst() {
+ ewarn "If you intend to run Hsqldb in Server mode and you want to create"
+ ewarn "additional databases, remember to put correct information in both"
+ ewarn "'server.properties' and 'sqltool.rc' files."
+ ewarn "(read the 'Init script Setup Procedure' section of the 'Chapter 3."
+ ewarn "UNIX Quick Start' in the Hsqldb docs for more information)"
+ echo
+ elog "Example:"
+ echo
+ elog "${EPREFIX}/etc/hsqldb/server.properties"
+ elog "============================="
+ elog "server.database.1=file:xdb/xdb"
+ elog "server.dbname.1=xdb"
+ elog "server.urlid.1=xdb"
+ elog
+ elog "${EPREFIX}/etc/hsqldb/sqltool.rc"
+ elog "======================"
+ elog "urlid xdb"
+ elog "url jdbc:hsqldb:hsql://localhost/xdb"
+ elog "username sa"
+ elog "password "
+ echo
+ elog "Also note that each hsqldb server can serve only up to 10"
+ elog "different databases simultaneously (with consecutive {0-9}"
+ elog "suffixes in the 'server.properties' file)."
+ echo
+ ewarn "For data manipulation use:"
+ ewarn
+ ewarn "# java -classpath ${EPREFIX}${HSQLDB_JAR} org.hsqldb.util.DatabaseManager"
+ ewarn "# java -classpath ${EPREFIX}${HSQLDB_JAR} org.hsqldb.util.DatabaseManagerSwing"
+ ewarn "# java -classpath ${EPREFIX}${HSQLDB_JAR} org.hsqldb.util.SqlTool \\"
+ ewarn " --rcFile ${EPREFIX}/var/lib/hsqldb/sqltool.rc <dbname>"
+ echo
+ elog "The Hsqldb can be run in multiple modes - read 'Chapter 1. Running'"
+ elog "and Using Hsqldb' in the Hsqldb docs at:"
+ elog " http://hsqldb.org/web/hsqlDocsFrame.html"
+ elog "If you intend to run it in the Server mode, it is suggested to add the"
+ elog "init script to your start-up scripts, this should be done like this:"
+ elog " \`rc-update add hsqldb default\`"
+ echo
+}
diff --git a/dev-db/influx-cli/influx-cli-2.7.3.ebuild b/dev-db/influx-cli/influx-cli-2.7.3.ebuild
index 32cb6d38589f..b373f03d6bd4 100644
--- a/dev-db/influx-cli/influx-cli-2.7.3.ebuild
+++ b/dev-db/influx-cli/influx-cli-2.7.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -13,7 +13,7 @@ SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
LICENSE="Apache-2.0 BSD BSD-2 MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm64"
RESTRICT=" test"
diff --git a/dev-db/influxdb/Manifest b/dev-db/influxdb/Manifest
index 747e0c19b0f5..8113acdd1127 100644
--- a/dev-db/influxdb/Manifest
+++ b/dev-db/influxdb/Manifest
@@ -63,9 +63,12 @@ DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabe
DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
DIST influxdb-1.8.10-deps.tar.xz 151055544 BLAKE2B b660cdf996ea918db2d569472f42bb48cfdd694398d2577e4e97d549a549e90851b417463bc5228735b3b23d108fad83868971770953bea38ff27bde4fb9493f SHA512 bfd89dc2817c59de1286b2dbf4e9895d8a104aa1e2cd3db54069e40328d51baee152c761ba92818f67b2a6ab20591b543dd84259e4e2a545a79cd59ca197dd95
DIST influxdb-1.8.10.tar.gz 12082933 BLAKE2B 511202025bd0c2305b8fa3b8be439f6e2941313b42587e6e6eedfcb6ae44c8fd821e5ffcbde288eb4d2d426d3fcbde940cdcb2a993918263ec31c57ecfce0e85 SHA512 4f5d20c190288d6397f0e87abd9b9136340b17f091c361cbc111ba661a3e63626edf5c74ddeeda164d82102dd06026e0037f50da546cda25e6c8647f4c739fae
-DIST influxdb-2.7.3-assets.tar.gz 19829786 BLAKE2B 1ca0fe1a6265329b226eb4de0d1310e71b766bcd8d05f636e3ee0c75c2b9f50c90b8c7f38225c0380b3074f84eb07805a7d42cf06cfbdac3b8b1ffad3befb8e5 SHA512 85f49e3e5a262fcecb801b3ba91157557fa30933a9cc210f2ad7395d3165225fba2f50190e452f76b2567adb765aba297dbcb425d388851f742edd55375da135
-DIST influxdb-2.7.3-deps.tar.xz 421383868 BLAKE2B 0590a5023de66cb01772ed2d18f993f8e706e1dfd8fb1a7f191bfe0244baa16610537f87b20fd16b840b04afc7b5f97cc751a8ba1bc9f179f31bada73b51052e SHA512 f0130c57db60fa3ff622cf646d234f1bc47eccded070ad959df541f8c0ce3a9feefeb86f9bf1b7fbdf562347d40e8eabd42ad65b5a415dec9e74b9542ca31a6e
-DIST influxdb-2.7.3.tar.gz 14249851 BLAKE2B d859330ece0aa0dc0eb2ce7246d0ee7a1f25796dd436d102b402255a4c463a93e0369287228b4f840ee333aa3509882aaadddfae901e9e2842cfed6d582032c4 SHA512 4d9f2faa742fda0366d3386487461d6dd06f6ad27589db3b87ce37242ee9b335e96028d6685683d2691cd2424a1a8d2fff535056eb290af0a1152883767f02b5
+DIST influxdb-2.7.5-assets.tar.gz 19829786 BLAKE2B 1ca0fe1a6265329b226eb4de0d1310e71b766bcd8d05f636e3ee0c75c2b9f50c90b8c7f38225c0380b3074f84eb07805a7d42cf06cfbdac3b8b1ffad3befb8e5 SHA512 85f49e3e5a262fcecb801b3ba91157557fa30933a9cc210f2ad7395d3165225fba2f50190e452f76b2567adb765aba297dbcb425d388851f742edd55375da135
+DIST influxdb-2.7.5-deps.tar.xz 459263596 BLAKE2B 13c6a2e3539960ec01b2d9132c54e47e4f178e66fa5eba07b63969c657fb4a69fa700a59d90201b768d52b57b449fbf330ae91463e22b818a5f7bf3918937d91 SHA512 cfc4bef0e33e29c54c529a20711753ac5da3c8a89af3a81bcb9612e745254fca9850751f69eec05f7c22959f8a7b240fc52d96b1dba7ed36c907d6c9206618b9
+DIST influxdb-2.7.5.tar.gz 14259860 BLAKE2B edcb6228bcc1267bdeb93bb0e34e65d4e97873f10a6e45a919e21e3aa82b2f8ddc02d77c05ea37ec5b5e04222b34e5e74af99dbe85af63fa78dff841316024fc SHA512 895dfc031a18551822dd6ba17a4bdf5e6cef2bd67aa373188b8263a6ab389bd7b6c001ebe47bb945307cf71de2b03a9fa48d2bcc60cda8cbf1b569a09572395e
+DIST influxdb-2.7.6-assets.tar.gz 19829786 BLAKE2B 1ca0fe1a6265329b226eb4de0d1310e71b766bcd8d05f636e3ee0c75c2b9f50c90b8c7f38225c0380b3074f84eb07805a7d42cf06cfbdac3b8b1ffad3befb8e5 SHA512 85f49e3e5a262fcecb801b3ba91157557fa30933a9cc210f2ad7395d3165225fba2f50190e452f76b2567adb765aba297dbcb425d388851f742edd55375da135
+DIST influxdb-2.7.6-deps.tar.xz 458572596 BLAKE2B 07985d3bfcf7179f76f4b3cd1bc6bf015c40e5e63ac1e407f2920a04d3728250d4f90e09915048faa224530b0ca002b3ae4d75184480898a4ab7d61bb060633b SHA512 a256e82bbe8c06fddb1cfe3a5857cfda7c9e78178d17951bb1d034c71033f55c7f5d70be1b56c7bdcb9b87e3631b8ce92375e974e1bfe5bb9a47f5103b919b9d
+DIST influxdb-2.7.6.tar.gz 14258162 BLAKE2B b530203f7995f97fdc26eb1fbca808374e870691e549534e581492e9d14a27dd5cd4b5bc952cf6e9d3c0394fb05f76559964f7f2e9e9ca070c4c6afc7442b15f SHA512 841b720aa6351136cbae8ace0f48504cfc993f8f938542784d89c33523cbb6a3f0d5fd27644215e2f93018be57aad538a18a316b5172ace889a2bf9041190750
DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
DIST io-lifetimes-1.0.10.crate 37294 BLAKE2B 9b8836c4bf30e6d102fd9973ac66f067c3ff8bc2806e55f26368ebdc9854f2e9cc6eecc8014f9a0b22a968a6eea8be243fcb7a641d2d0dfc747ee08a6a1450bb SHA512 4b2cde9522780a408c5d4e6406286bc5dd3a0de1a99675129e9856e5d889498a127fd5dd7c937a7542135abc2213b60bfb6258b7871b8709dcdd79d60455bea9
DIST itertools-0.10.5.crate 115354 BLAKE2B f24734bdfedf1dba48554e39b43669efcd4a43656eeb2c511096060daeaf049e1ad3eab232e757057750ce94aabad9fc8a0cf29a997edc6c4b167301c3443391 SHA512 d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3
diff --git a/dev-db/influxdb/influxdb-2.7.3-r2.ebuild b/dev-db/influxdb/influxdb-2.7.5.ebuild
index 3bd8b07c924a..f3db16a9392b 100644
--- a/dev-db/influxdb/influxdb-2.7.3-r2.ebuild
+++ b/dev-db/influxdb/influxdb-2.7.5.ebuild
@@ -194,7 +194,7 @@ inherit cargo go-module systemd
DESCRIPTION="Scalable datastore for metrics, events, and real-time analytics"
HOMEPAGE="https://www.influxdata.com"
-FLUX_PV="0.194.3"
+FLUX_PV="0.194.5"
SRC_URI="https://github.com/influxdata/influxdb/archive/v${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" https://github.com/influxdata/ui/releases/download/OSS-v2.7.1/build.tar.gz -> ${P}-assets.tar.gz"
@@ -207,7 +207,10 @@ KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ virtual/pkgconfig
+ <virtual/rust-1.78.0
+"
DEPEND="
acct-group/influxdb
diff --git a/dev-db/influxdb/influxdb-2.7.6.ebuild b/dev-db/influxdb/influxdb-2.7.6.ebuild
new file mode 100644
index 000000000000..6fc1b5b27282
--- /dev/null
+++ b/dev-db/influxdb/influxdb-2.7.6.ebuild
@@ -0,0 +1,286 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ adler32@1.2.0
+ ahash@0.7.6
+ aho-corasick@0.7.20
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ anyhow@1.0.70
+ arrayvec@0.5.2
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitflags@2.0.2
+ bumpalo@3.12.0
+ cast@0.3.0
+ cc@1.0.79
+ cfg-if@1.0.0
+ chrono@0.4.24
+ clap@2.34.0
+ codespan-reporting@0.11.1
+ colored@2.0.0
+ core-foundation-sys@0.8.4
+ crc32fast@1.3.2
+ criterion-plot@0.4.5
+ criterion@0.3.6
+ crossbeam-channel@0.5.7
+ crossbeam-deque@0.8.3
+ crossbeam-epoch@0.9.14
+ crossbeam-utils@0.8.15
+ csv-core@0.1.10
+ csv@1.2.1
+ ctor@0.1.26
+ cxx-build@1.0.94
+ cxx@1.0.94
+ cxxbridge-flags@1.0.94
+ cxxbridge-macro@1.0.94
+ derivative@2.2.0
+ derive_more@0.99.17
+ diff@0.1.13
+ dissimilar@1.0.6
+ either@1.8.1
+ ena@0.14.2
+ env_logger@0.9.3
+ errno-dragonfly@0.1.2
+ errno@0.3.0
+ expect-test@1.4.1
+ fallible-iterator@0.2.0
+ fallible-streaming-iterator@0.1.9
+ fastrand@1.9.0
+ flatbuffers@22.12.6
+ fnv@1.0.7
+ form_urlencoded@1.1.0
+ getrandom@0.2.8
+ half@1.8.2
+ hashbrown@0.12.3
+ hashlink@0.8.1
+ heck@0.3.3
+ hermit-abi@0.1.19
+ hermit-abi@0.2.6
+ hermit-abi@0.3.1
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.1
+ iana-time-zone@0.1.56
+ idna@0.3.0
+ indexmap@1.9.3
+ instant@0.1.12
+ io-lifetimes@1.0.10
+ itertools@0.10.5
+ itoa@1.0.6
+ js-sys@0.3.61
+ lazy_static@1.4.0
+ libc@0.2.141
+ libflate@1.3.0
+ libflate_lz77@1.2.0
+ libsqlite3-sys@0.26.0
+ link-cplusplus@1.0.8
+ linux-raw-sys@0.3.1
+ lock_api@0.4.9
+ log@0.4.17
+ lsp-types@0.91.1
+ maplit@1.0.2
+ memchr@2.5.0
+ memoffset@0.8.0
+ num-integer@0.1.45
+ num-traits@0.2.15
+ num_cpus@1.15.0
+ once_cell@1.17.1
+ oorandom@11.1.3
+ ordered-float@3.6.0
+ output_vt100@0.1.3
+ pad@0.1.6
+ parking_lot@0.11.2
+ parking_lot_core@0.8.6
+ percent-encoding@2.2.0
+ pkg-config@0.3.26
+ plotters-backend@0.3.4
+ plotters-svg@0.3.3
+ plotters@0.3.4
+ pretty@0.11.3
+ pretty_assertions@1.3.0
+ proc-macro-error-attr@1.0.4
+ proc-macro-error@1.0.4
+ proc-macro2@1.0.56
+ pulldown-cmark@0.9.2
+ quote@1.0.26
+ rayon-core@1.11.0
+ rayon@1.7.0
+ redox_syscall@0.2.16
+ redox_syscall@0.3.5
+ regex-syntax@0.6.29
+ regex@1.7.3
+ rle-decode-fast@1.0.3
+ rusqlite@0.29.0
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ rustix@0.37.7
+ ryu@1.0.13
+ salsa-macros@0.17.0-pre.2
+ salsa@0.17.0-pre.2
+ same-file@1.0.6
+ scopeguard@1.1.0
+ scratch@1.0.5
+ semver@1.0.17
+ serde@1.0.159
+ serde_cbor@0.11.2
+ serde_derive@1.0.159
+ serde_json@1.0.95
+ serde_repr@0.1.12
+ smallvec@1.10.0
+ strsim@0.8.0
+ structopt-derive@0.4.18
+ structopt@0.3.26
+ syn@1.0.109
+ syn@2.0.13
+ tempfile@3.5.0
+ termcolor@1.2.0
+ textwrap@0.11.0
+ thiserror-impl@1.0.40
+ thiserror@1.0.40
+ tinytemplate@1.2.1
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ typed-arena@2.0.2
+ unicase@2.6.0
+ unicode-bidi@0.3.13
+ unicode-ident@1.0.8
+ unicode-normalization@0.1.22
+ unicode-segmentation@1.10.1
+ unicode-width@0.1.10
+ url@2.3.1
+ vcpkg@0.2.15
+ vec_map@0.8.2
+ version_check@0.9.4
+ walkdir@2.3.3
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.84
+ wasm-bindgen-macro-support@0.2.84
+ wasm-bindgen-macro@0.2.84
+ wasm-bindgen-shared@0.2.84
+ wasm-bindgen@0.2.84
+ web-sys@0.3.61
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-sys@0.45.0
+ windows-sys@0.48.0
+ windows-targets@0.42.2
+ windows-targets@0.48.0
+ windows@0.48.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.0
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.0
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.0
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.0
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.0
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.0
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.0
+ yansi@0.5.1
+"
+
+inherit cargo go-module systemd
+
+DESCRIPTION="Scalable datastore for metrics, events, and real-time analytics"
+HOMEPAGE="https://www.influxdata.com"
+
+FLUX_PV="0.194.5"
+
+SRC_URI="https://github.com/influxdata/influxdb/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://github.com/influxdata/ui/releases/download/OSS-v2.7.1/build.tar.gz -> ${P}-assets.tar.gz"
+# Generate go-mod of base dir. Then cd go-mod/github.com/influxdata/pkg-config@v0.2.11 and generate go-mod of it
+# The tarball has next backported commit: github.com/influxdata/flux/commit/68c831c40b396f0274f6a9f97d77707c39970b02
+SRC_URI+=" https://gentoo.kropotkin.rocks/go-pkgs/${P}-deps.tar.xz"
+SRC_URI+=" ${CARGO_CRATE_URIS}"
+
+LICENSE="Apache-2.0 BSD BSD-2 EPL-2.0 ISC MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="virtual/pkgconfig"
+
+DEPEND="
+ acct-group/influxdb
+ acct-user/influxdb
+"
+RDEPEND="${DEPEND}"
+
+src_unpack() {
+ cargo_src_unpack
+}
+
+src_prepare() {
+ default
+
+ local data_dir
+ data_dir="${S}/static/data"
+ mkdir "${data_dir}" || die
+ mv "${WORKDIR}/build" "${data_dir}" || die
+}
+
+src_compile() {
+ mv "${WORKDIR}/go-mod" "${WORKDIR}/go-mod-tmp" || die
+ mv "${WORKDIR}/go-mod-tmp/github.com/influxdata/pkg-config@v0.2.11/go-mod" "${WORKDIR}/go-mod" || die
+ cd "${WORKDIR}"/go-mod-tmp/github.com/influxdata/pkg-config* || die
+ ego build .
+ mv "${WORKDIR}/go-mod" "${WORKDIR}/go-mod-tmp/github.com/influxdata/pkg-config@v0.2.11" || die
+ mv "${WORKDIR}/go-mod-tmp" "${WORKDIR}/go-mod" || die
+
+ cd "${WORKDIR}/go-mod/github.com/influxdata/flux@v${FLUX_PV}/libflux" || die
+ cargo_src_compile
+
+ cd "${S}" || die
+
+ export PKG_CONFIG="${WORKDIR}/go-mod/github.com/influxdata/pkg-config@v0.2.11/pkg-config"
+ ego generate ./static
+ GOBIN="${S}/bin" \
+ ego install \
+ -tags 'assets,noasm,sqlite_json,sqlite_foreign_keys' \
+ -ldflags="-X main.version=${PV}" \
+ ./...
+}
+
+src_test() {
+ ego test ./tests
+}
+
+src_install() {
+ dobin bin/influx*
+ dodoc *.md
+ cd .circleci/scripts/package/influxdb2/fs || die
+ systemd_dounit usr/lib/influxdb/scripts/influxdb.service
+ exeinto /usr/lib/influxdb/scripts
+ doexe usr/lib/influxdb/scripts/influxd-systemd-start.sh
+ exeinto /usr/share/influxdb
+ doexe usr/share/influxdb/influxdb2-upgrade.sh
+ newconfd "${FILESDIR}"/influxdb.confd-r1 influxdb
+ newinitd "${FILESDIR}"/influxdb.initd-r1 influxdb
+ keepdir /var/log/influxdb
+ fowners influxdb:influxdb /var/log/influxdb
+
+ newenvd - "99${PN}" <<-_EOF_
+ INFLUXD_CONFIG_PATH="/etc/influxdb"
+ _EOF_
+}
+
+pkg_postinst() {
+ elog "Upgrading from InfluxDB1.x requires migration of time series data."
+ elog "See https://docs.influxdata.com/influxdb/v2.7/upgrade/v1-to-v2/"
+ elog "Keep in mind that some applications not compatible with InfluxDB 2.x"
+ elog "may stop working."
+
+ ewarn "The InfluxDB command line client has been moved to dev-db/influx-cli"
+ ewarn "You will need to install it separately"
+}
diff --git a/dev-db/kdb/kdb-3.2.0-r2.ebuild b/dev-db/kdb/kdb-3.2.0-r2.ebuild
index 2e2a884ebb5a..f62284ddcc1d 100644
--- a/dev-db/kdb/kdb-3.2.0-r2.ebuild
+++ b/dev-db/kdb/kdb-3.2.0-r2.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ECM_QTHELP="true"
ECM_TEST="true"
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{9..12} )
KFMIN=5.82.0
QTMIN=5.15.2
inherit ecm kde.org python-any-r1
@@ -61,6 +61,7 @@ pkg_setup() {
src_configure() {
local mycmakeargs=(
+ -DCMAKE_CXX_STANDARD=17
-DKDB_DEBUG_GUI=$(usex debug)
$(cmake_use_find_package mysql MySQL)
$(cmake_use_find_package postgres PostgreSQL)
diff --git a/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-buffer-overflow-sqlite.patch b/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-buffer-overflow-sqlite.patch
new file mode 100644
index 000000000000..3bec6d958bc6
--- /dev/null
+++ b/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-buffer-overflow-sqlite.patch
@@ -0,0 +1,14 @@
+https://bugs.gentoo.org/933427
+https://sourceforge.net/p/libdbi-drivers/libdbi-drivers/ci/7657c4c688c021d5f42a38e998c876d1739d5d8f
+--- a/drivers/sqlite3/dbd_sqlite3.c
++++ b/drivers/sqlite3/dbd_sqlite3.c
+@@ -585,7 +585,8 @@
+ unsigned char *temp;
+ size_t len;
+
+- if ((temp = malloc(from_length*2)) == NULL) {
++ /* allocate an extra byte for NULL and two for the quotes */
++ if ((temp = malloc(2*from_length+1+2)) == NULL) {
+ return 0;
+ }
+
diff --git a/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-c99.patch b/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-c99.patch
new file mode 100644
index 000000000000..c75e9f405aec
--- /dev/null
+++ b/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-c99.patch
@@ -0,0 +1,11 @@
+https://bugs.gentoo.org/920460
+--- a/drivers/firebird/dbd_firebird.c
++++ b/drivers/firebird/dbd_firebird.c
+@@ -43,6 +43,7 @@
+ #include <string.h>
+ #include <time.h>
+ #include <ibase.h>
++#include <ctype.h>
+
+ #include "dbd_firebird.h"
+ #include "firebird_charsets.h"
diff --git a/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-fortify-source-sqlite.patch b/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-fortify-source-sqlite.patch
new file mode 100644
index 000000000000..9624a8c039b6
--- /dev/null
+++ b/dev-db/libdbi-drivers/files/libdbi-drivers-0.9.0-fortify-source-sqlite.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/933427
+https://sourceforge.net/p/libdbi-drivers/libdbi-drivers/ci/24f48b86c8988ee3aaebc5f303d71e9d789f77b6/
+--- a/drivers/sqlite3/dbd_sqlite3.c
++++ b/drivers/sqlite3/dbd_sqlite3.c
+@@ -1451,7 +1451,7 @@ static int getTables(char** tables, int
+ break;
+ }
+
+- word_lower[item-start+1];
++ char word_lower[item-start+1];
+ strncpy(word_lower,start,item-start);
+ word_lower[item-start] = '\0';
+ int i = 0;
diff --git a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild
index 94df2fd46940..55f80228a0b7 100644
--- a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild
+++ b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="The libdbi-drivers project maintains drivers for libdbi"
HOMEPAGE="http://libdbi-drivers.sourceforge.net/"
-SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${P}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${P}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
diff --git a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild
index 243151ab44aa..0f7e30695892 100644
--- a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild
+++ b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="The libdbi-drivers project maintains drivers for libdbi"
HOMEPAGE="https://libdbi-drivers.sourceforge.net/"
-SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${P}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${P}/${P}.tar.gz"
LICENSE="LGPL-2.1+"
SLOT="0"
diff --git a/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r3.ebuild b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r3.ebuild
new file mode 100644
index 000000000000..d82a8c964d2e
--- /dev/null
+++ b/dev-db/libdbi-drivers/libdbi-drivers-0.9.0-r3.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="The libdbi-drivers project maintains drivers for libdbi"
+HOMEPAGE="https://libdbi-drivers.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${P}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc firebird mysql oci8 postgres +sqlite static-libs"
+
+REQUIRED_USE="|| ( mysql postgres sqlite firebird oci8 )"
+RESTRICT="firebird? ( bindist )"
+
+RDEPEND="
+ >=dev-db/libdbi-0.9.0
+ firebird? ( dev-db/firebird )
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:* )
+ sqlite? ( dev-db/sqlite:3 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-text/openjade )"
+
+DOCS=( AUTHORS ChangeLog NEWS README README.osx TODO )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.0-doc-build-fix.patch
+ "${FILESDIR}"/${PN}-0.9.0-slibtool-libdir.patch
+ "${FILESDIR}"/${PN}-0.9.0-clang16-build-fix.patch
+ "${FILESDIR}"/${PN}-0.9.0-fortify-source-sqlite.patch
+ "${FILESDIR}"/${PN}-0.9.0-buffer-overflow-sqlite.patch
+ "${FILESDIR}"/${PN}-0.9.0-c99.patch
+)
+
+pkg_setup() {
+ use oci8 && [[ -z "${ORACLE_HOME}" ]] && die "\$ORACLE_HOME is not set!"
+}
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=""
+ # WARNING: the configure script does NOT work correctly
+ # --without-$driver does NOT work
+ # so do NOT use `use_with...`
+ # Future additions:
+ # msql
+ # freetds
+ # ingres
+ # db2
+ use mysql && myconf+=" --with-mysql"
+ use postgres && myconf+=" --with-pgsql"
+ use sqlite && myconf+=" --with-sqlite3"
+ use firebird && myconf+=" --with-firebird"
+ if use oci8; then
+ [[ -z "${ORACLE_HOME}" ]] && die "\$ORACLE_HOME is not set!"
+ myconf+=" --with-oracle-dir=${ORACLE_HOME} --with-oracle"
+ fi
+
+ econf \
+ $(use_enable doc docs) \
+ $(use_enable static-libs static) \
+ --with-dbi-libdir=/usr/$(get_libdir) \
+ ${myconf}
+}
+
+src_test() {
+ if [[ -z "${WANT_INTERACTIVE_TESTS}" ]]; then
+ ewarn "Tests disabled due to interactivity."
+ ewarn "Run with WANT_INTERACTIVE_TESTS=1 if you want them."
+ return 0
+ fi
+ einfo "Running interactive tests"
+ emake check
+}
+
+src_install() {
+ default
+
+ find "${ED}" -name '*.la' -type f -delete || die
+}
diff --git a/dev-db/libdbi/libdbi-0.9.0.ebuild b/dev-db/libdbi/libdbi-0.9.0.ebuild
index 522fc495b9bd..88e08dd0b03b 100644
--- a/dev-db/libdbi/libdbi-0.9.0.ebuild
+++ b/dev-db/libdbi/libdbi-0.9.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="A database-independent abstraction layer in C"
HOMEPAGE="http://libdbi.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
diff --git a/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild b/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild
index 7fb107403c2a..20ad11e77055 100644
--- a/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild
+++ b/dev-db/libodbc++/libodbc++-0.2.5-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,7 +6,7 @@ EAPI=8
inherit flag-o-matic
DESCRIPTION="Provides a subset of the well-known JDBC 2.0(tm) and runs on top of ODBC"
-SRC_URI="mirror://sourceforge/libodbcxx/${P}.tar.bz2"
+SRC_URI="https://downloads.sourceforge.net/libodbcxx/${P}.tar.bz2"
HOMEPAGE="http://libodbcxx.sourceforge.net/"
LICENSE="LGPL-2.1"
diff --git a/dev-db/litecli/Manifest b/dev-db/litecli/Manifest
index c5b049c04ec9..2a6693355e97 100644
--- a/dev-db/litecli/Manifest
+++ b/dev-db/litecli/Manifest
@@ -1 +1,3 @@
-DIST litecli-1.10.0.tar.gz 887727 BLAKE2B 141a13760ce24530a72d2a1fb1c896378f1f35a9354b8a6b553792607337b2ea861481f995f1ff016ac4fca1c7bde1aada4c193acd388fdf03095900b137c303 SHA512 aa497fe050f4e1135f2c63f4c0cbab736400158c546a0391f3eca956b38132349ad2eb46505beb52651f74bc5ff1a2ba9b0254e7a6a86d79e461fdd0508fb412
+DIST litecli-1.10.1.tar.gz 887832 BLAKE2B 304feead856a148726f729abd46d91fb2d0bbf7d99e05d437814c0e254f7e957f132317194e01e4dd62ddcdd2dda15c1fcba71c3086f286dd6aeb4aefe419f64 SHA512 f53c04a101f8abe52e81450309b6eab766742b0d26900608024ac8112efdc959787ea3c5997e9647529f65a17544ee31cc70f14b503a9ad3566d545568d822dd
+DIST litecli-1.11.0.tar.gz 887986 BLAKE2B 4f445a0d29152998ab0e27ec814f1f46af44db949c817a50e7be8af659525f13113c4a831a8bf4f31a21c7922d93e12c792e8aa44b1e8480619418aeaa72aa89 SHA512 31a97d412d5749b6e8d32b88d8b41fde79d8ca9657da9885f39dc92cb0ad00ac6ab98f931ab57806be05ba9249580f1ea5ff25849d86c2f044dc40f437b6a52e
+DIST litecli-1.11.1.tar.gz 888013 BLAKE2B ed159a35df254f2ff1221a14d2af86497a51c7b7dd904963ef33ada9b0d83f2df975d550aeab94fc172c9b530e0e12c04f55e50f2363572fce51b4c90db3e0bd SHA512 54746b99a7cb5f5adf2651e685d9fab5aadc7a4974bd4411189152c6316c40bf69bc7bc64de2499cbe99165d3010ff62382fa4454bcf42c9bac3adc838666da2
diff --git a/dev-db/litecli/litecli-1.10.1.ebuild b/dev-db/litecli/litecli-1.10.1.ebuild
new file mode 100644
index 000000000000..4efad25ead82
--- /dev/null
+++ b/dev-db/litecli/litecli-1.10.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="sqlite"
+inherit distutils-r1
+
+DESCRIPTION="CLI for SQLite with auto-completion and syntax highlighting"
+HOMEPAGE="https://litecli.com/ https://github.com/dbcli/litecli"
+SRC_URI="https://github.com/dbcli/litecli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="
+ >=dev-python/click-4.1[${PYTHON_USEDEP}]
+ >=dev-python/cli-helpers-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/configobj-5.0.5[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.3[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.5[${PYTHON_USEDEP}]
+ dev-python/sqlparse[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-db/litecli/litecli-1.10.0.ebuild b/dev-db/litecli/litecli-1.11.0.ebuild
index fc8f2ae015b3..ae7764cb1ede 100644
--- a/dev-db/litecli/litecli-1.10.0.ebuild
+++ b/dev-db/litecli/litecli-1.11.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-db/litecli/litecli-1.11.1.ebuild b/dev-db/litecli/litecli-1.11.1.ebuild
new file mode 100644
index 000000000000..ae7764cb1ede
--- /dev/null
+++ b/dev-db/litecli/litecli-1.11.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="sqlite"
+inherit distutils-r1
+
+DESCRIPTION="CLI for SQLite with auto-completion and syntax highlighting"
+HOMEPAGE="https://litecli.com/ https://github.com/dbcli/litecli"
+SRC_URI="https://github.com/dbcli/litecli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/click-4.1[${PYTHON_USEDEP}]
+ >=dev-python/cli-helpers-2.2.1[${PYTHON_USEDEP}]
+ >=dev-python/configobj-5.0.5[${PYTHON_USEDEP}]
+ >=dev-python/prompt-toolkit-3.0.3[${PYTHON_USEDEP}]
+ <dev-python/prompt-toolkit-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.5[${PYTHON_USEDEP}]
+ dev-python/sqlparse[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-db/litedb/litedb-5.0.17-r2.ebuild b/dev-db/litedb/litedb-5.0.17-r3.ebuild
index c80809087ccb..40c3fa2ed72d 100644
--- a/dev-db/litedb/litedb-5.0.17-r2.ebuild
+++ b/dev-db/litedb/litedb-5.0.17-r3.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-MY_PN=LiteDB
+MY_PN="LiteDB"
-DOTNET_PKG_COMPAT=7.0
+DOTNET_PKG_COMPAT=8.0
NUGETS="
benchmarkdotnet.annotations@0.12.0
benchmarkdotnet@0.12.0
@@ -243,7 +243,7 @@ else
-> ${P}.tar.gz"
S="${WORKDIR}/${MY_PN}-${PV}"
- KEYWORDS="~amd64"
+ KEYWORDS="amd64"
fi
SRC_URI+=" ${NUGET_URIS} "
@@ -267,7 +267,7 @@ pkg_setup() {
src_install() {
dotnet-pkg-base_install
- dotnet-pkg-base_dolauncher "/usr/share/${P}/LiteDB.Shell" "${PN}-shell"
+ dotnet-pkg-base_dolauncher "/usr/share/${P}/${MY_PN}.Shell" "${PN}-shell"
einstalldocs
}
diff --git a/dev-db/lmdb++/Manifest b/dev-db/lmdb++/Manifest
index 3fe4301e3c50..01c14d23350a 100644
--- a/dev-db/lmdb++/Manifest
+++ b/dev-db/lmdb++/Manifest
@@ -1,2 +1,2 @@
-DIST lmdbxx-0.9.14.0.tar.gz 14732 BLAKE2B c6c1217dc7bd56051152cba594b7aa571a055e5c155f777639569abbe38360f808dcd2858ca124db97e37147aa4e90df68fd1a8d23137b5e6663df0c2f0a84be SHA512 8eff8c89e0cb9989d8a0cedfd483856aeb2fcf810d59cf8afca3086034711ff22f2bb88ba967ef745d36fdaa1b5e79fb75655af764cddcdb2ac59fc255da670d
+DIST lmdbxx-0.9.14.0.tar.xz 13404 BLAKE2B 6832ca8424e2a7ee180f592b0ef57ace3373ead94c7acbbcfb632f75013bba8ebb8e82fc2335729344d21f7cd6b564d85579d6104b5f41052472ac892a350fba SHA512 b591c7e1189a035c703d336d3083d07b998c37743f4f2c35dfe003a7cbe239ca840cfd43b9d84b87ee7c48bbe06defe54d37c8ba85ecf1e73aadfe6deac26868
DIST lmdbxx-1.0.0.tar.gz 52441 BLAKE2B 203173132a9c84c2d6a53799f8acc92dac5bd075b69f7b25e8eee3341933ccdd868eb190cef07371469856e32fc42215c5395db61f141863f60a5d0a2b888790 SHA512 54f6c4863273b4de8aed6bc19f353c7a66d8ae633198e9784c55cea8e54460e4030ebe45e91a7c820aade084933f21cd4193ef8c04bb2aef11bf252281404171
diff --git a/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild b/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild
index 62c9abb00e81..e743d0e60d4c 100644
--- a/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild
+++ b/dev-db/lmdb++/lmdb++-0.9.14.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -8,7 +8,7 @@ S="${WORKDIR}/${MY_P}"
DESCRIPTION="C++11 wrapper for the LMDB database library"
HOMEPAGE="http://lmdbxx.sourceforge.net/"
-SRC_URI="mirror://sourceforge/lmdbxx/${PV}/${MY_P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/lmdbxx/${PV}/${MY_P}.tar.xz"
LICENSE="public-domain"
SLOT="0"
diff --git a/dev-db/lmdb/Manifest b/dev-db/lmdb/Manifest
index 8b9290f5a694..f1d02b78dde9 100644
--- a/dev-db/lmdb/Manifest
+++ b/dev-db/lmdb/Manifest
@@ -1 +1,3 @@
DIST openldap-LMDB_0.9.31.tar.gz 145086 BLAKE2B 8df437c27cb9d40b71a8e9f516c503676dade2342c9d618dcfff6081bf0034f67d1216a6a25a364e7dacd588acb2e254b98486efade12307fa3ad7977be5ed54 SHA512 318aa89b7e39f98f636dba01620f866ddc255d81a2d4def8a9d9fdd80878608db1ac7b60bde58e954aba802d94df42786a9cd00d0c7e11646f09fd5d64821ac4
+DIST openldap-LMDB_0.9.32.tar.gz 149188 BLAKE2B 8c15585a10644b791e54d3344c91ad1d86da0af06b02361685ec365309c8188dfd253d7a10f8708cd7f22363f99cc71aaaa170cc3349183f06d0765216cc19ef SHA512 3b8d45085f7a679e27f4b1d8b0a62531d4897d27c2a17f424462da07bd88f6c8fe8d64f866203c9e301b353dff1036fc48d9801917e97cfe7d3fd28f2d918d7a
+DIST openldap-LMDB_0.9.33.tar.gz 149281 BLAKE2B 0750f392fdcb2fd6459943d3d8e8268a6210b25559c882c7705349ad6f68b9dfd71636d01c06b2101fe6aea8deeb21534c3aa06aeeac1a0e925fd4d0d9ef41ca SHA512 57404b35adb5136fcdf60552c2dd2626b9753868f2707d3279725e08145cee3be0d311189b2c6ef6879f25cf09962e6b423c70c8a2e09ef1b368948e873d92b5
diff --git a/dev-db/lmdb/lmdb-0.9.32.ebuild b/dev-db/lmdb/lmdb-0.9.32.ebuild
new file mode 100644
index 000000000000..192658950b08
--- /dev/null
+++ b/dev-db/lmdb/lmdb-0.9.32.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit flag-o-matic multilib multilib-minimal toolchain-funcs
+
+MY_P="${PN^^}_${PV}"
+
+DESCRIPTION="An ultra-fast, ultra-compact key-value embedded data store"
+HOMEPAGE="https://symas.com/lmdb/technical/"
+SRC_URI="https://git.openldap.org/openldap/openldap/-/archive/${MY_P}/openldap-${MY_P}.tar.gz"
+S="${WORKDIR}/openldap-${MY_P}/libraries/liblmdb"
+
+LICENSE="OPENLDAP"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="static-libs"
+
+src_prepare() {
+ default
+ if [[ ${CHOST} == *-darwin* && ${CHOST#*-darwin} -lt 10 ]] ; then
+ # posix_memalign isn't available before 10.6, but on OSX
+ # malloc is always aligned for any addressable type
+ sed -i -e '/(__APPLE__)/a#define HAVE_MEMALIGN 1\n#define memalign(X,Y) malloc(X)' mdb.c || die
+ fi
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local soname="-Wl,-soname,liblmdb$(get_libname 0)"
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ soname="-dynamiclib -install_name ${EPREFIX}/usr/$(get_libdir)/liblmdb$(get_libname 0)"
+ replace-flags -O[123456789] -O1
+ fi
+ sed -i -e "s!^CC.*!CC = $(tc-getCC)!" \
+ -e "s!^CFLAGS.*!CFLAGS = ${CFLAGS}!" \
+ -e "s!^AR.*!AR = $(tc-getAR)!" \
+ -e "s!^SOEXT.*!SOEXT = $(get_libname)!" \
+ -e "/^prefix/s!/usr/local!${EPREFIX}/usr!" \
+ -e "/^libdir/s!lib\$!$(get_libdir)!" \
+ -e "s!shared!shared ${soname}!" \
+ "Makefile" || die
+}
+
+multilib_src_compile() {
+ emake LDLIBS+=" -pthread"
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+
+ mv "${ED}"/usr/$(get_libdir)/liblmdb$(get_libname) \
+ "${ED}"/usr/$(get_libdir)/liblmdb$(get_libname 0) || die
+ dosym liblmdb$(get_libname 0) /usr/$(get_libdir)/liblmdb$(get_libname)
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins "${FILESDIR}/lmdb.pc"
+ sed -i -e "s!@PACKAGE_VERSION@!${PV}!" \
+ -e "s!@prefix@!${EPREFIX}/usr!g" \
+ -e "s!@libdir@!$(get_libdir)!" \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/lmdb.pc || die
+
+ if ! use static-libs; then
+ rm "${ED}"/usr/$(get_libdir)/liblmdb.a || die
+ fi
+}
diff --git a/dev-db/lmdb/lmdb-0.9.33.ebuild b/dev-db/lmdb/lmdb-0.9.33.ebuild
new file mode 100644
index 000000000000..192658950b08
--- /dev/null
+++ b/dev-db/lmdb/lmdb-0.9.33.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit flag-o-matic multilib multilib-minimal toolchain-funcs
+
+MY_P="${PN^^}_${PV}"
+
+DESCRIPTION="An ultra-fast, ultra-compact key-value embedded data store"
+HOMEPAGE="https://symas.com/lmdb/technical/"
+SRC_URI="https://git.openldap.org/openldap/openldap/-/archive/${MY_P}/openldap-${MY_P}.tar.gz"
+S="${WORKDIR}/openldap-${MY_P}/libraries/liblmdb"
+
+LICENSE="OPENLDAP"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="static-libs"
+
+src_prepare() {
+ default
+ if [[ ${CHOST} == *-darwin* && ${CHOST#*-darwin} -lt 10 ]] ; then
+ # posix_memalign isn't available before 10.6, but on OSX
+ # malloc is always aligned for any addressable type
+ sed -i -e '/(__APPLE__)/a#define HAVE_MEMALIGN 1\n#define memalign(X,Y) malloc(X)' mdb.c || die
+ fi
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local soname="-Wl,-soname,liblmdb$(get_libname 0)"
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ soname="-dynamiclib -install_name ${EPREFIX}/usr/$(get_libdir)/liblmdb$(get_libname 0)"
+ replace-flags -O[123456789] -O1
+ fi
+ sed -i -e "s!^CC.*!CC = $(tc-getCC)!" \
+ -e "s!^CFLAGS.*!CFLAGS = ${CFLAGS}!" \
+ -e "s!^AR.*!AR = $(tc-getAR)!" \
+ -e "s!^SOEXT.*!SOEXT = $(get_libname)!" \
+ -e "/^prefix/s!/usr/local!${EPREFIX}/usr!" \
+ -e "/^libdir/s!lib\$!$(get_libdir)!" \
+ -e "s!shared!shared ${soname}!" \
+ "Makefile" || die
+}
+
+multilib_src_compile() {
+ emake LDLIBS+=" -pthread"
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+
+ mv "${ED}"/usr/$(get_libdir)/liblmdb$(get_libname) \
+ "${ED}"/usr/$(get_libdir)/liblmdb$(get_libname 0) || die
+ dosym liblmdb$(get_libname 0) /usr/$(get_libdir)/liblmdb$(get_libname)
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins "${FILESDIR}/lmdb.pc"
+ sed -i -e "s!@PACKAGE_VERSION@!${PV}!" \
+ -e "s!@prefix@!${EPREFIX}/usr!g" \
+ -e "s!@libdir@!$(get_libdir)!" \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/lmdb.pc || die
+
+ if ! use static-libs; then
+ rm "${ED}"/usr/$(get_libdir)/liblmdb.a || die
+ fi
+}
diff --git a/dev-db/m17n-db/Manifest b/dev-db/m17n-db/Manifest
index 257feef16d80..75b0c1f48840 100644
--- a/dev-db/m17n-db/Manifest
+++ b/dev-db/m17n-db/Manifest
@@ -1 +1,3 @@
+DIST glibc-2.39.tar.xz 18520988 BLAKE2B 9d98459a2d58401e07c081e0d841935b23998da75a7eb5a7ebd23a1f9ebab99dee623fe166397c1b6c926960c570f62dbca5cb3b5ce84a918adff6b7a15e16bb SHA512 818f58172a52815b4338ea9f2a69ecaa3335492b9f8f64cbf8afb24c0d737982341968ecd79631cae3d3074ab0ae4bc6056fc4ba3ffe790849dc374835cd57e2
DIST m17n-db-1.8.0.tar.gz 1977364 BLAKE2B 303afaf8eb105b8cc034be96efc7790f774870c5cbb688dc33da02847b545b42b20fc041c3842d9fbf9d17417472815e8185df37b58f4d2d72fac762a2669272 SHA512 b21abfdcb5eb42e71fbd5edd1a99eca4a05df14f5a57eac7cdd3dc657337bd143a419f4b3f3dd0b74b82c827ede4d3666dd213af9041593cef50118ee43898d5
+DIST m17n-db-1.8.5.tar.gz 2492374 BLAKE2B 306a86cb74735893f6aafb4869f785108af038c065fb2a51ee26402077d22ff23638176810b411bb23c13c4933d7536e23e48dafe07ab77700c7545d9c9ecf45 SHA512 6c3f42072b7e0a36870fd8143fb1ac7c3efc21c41869d984dfa0cbb87eb1f9958e429f1144a975b401791f0423386a03ab02531f162496531e303d9b0e049987
diff --git a/dev-db/m17n-db/m17n-db-1.8.0.ebuild b/dev-db/m17n-db/m17n-db-1.8.0.ebuild
index 7342e3737171..d3af0f12121c 100644
--- a/dev-db/m17n-db/m17n-db-1.8.0.ebuild
+++ b/dev-db/m17n-db/m17n-db-1.8.0.ebuild
@@ -3,11 +3,15 @@
EAPI="8"
+GLIBC_PV="2.39"
+GLIBC_P="glibc-${GLIBC_PV}"
+
DESCRIPTION="Database for the m17n library"
-HOMEPAGE="https://savannah.nongnu.org/projects/m17n https://git.savannah.nongnu.org/cgit/m17n/m17n-db.git"
-SRC_URI="mirror://nongnu/m17n/${P}.tar.gz"
+HOMEPAGE="https://www.nongnu.org/m17n/"
+SRC_URI="mirror://nongnu/m17n/${P}.tar.gz
+ elibc_musl? ( mirror://gnu/glibc/${GLIBC_P}.tar.xz )"
-LICENSE="LGPL-2.1"
+LICENSE="LGPL-2.1+"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv sparc x86"
IUSE=""
@@ -15,6 +19,20 @@ IUSE=""
RDEPEND="virtual/libintl"
BDEPEND="sys-devel/gettext"
+CHARMAPS="${GLIBC_P}/localedata/charmaps"
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ if use elibc_musl; then
+ tar xf "${DISTDIR}"/${GLIBC_P}.tar.xz ${CHARMAPS} || die
+ fi
+}
+
+src_configure() {
+ econf $(usex elibc_musl "--with-charmaps=${WORKDIR}/${CHARMAPS}" "")
+}
+
src_install() {
default
diff --git a/dev-db/m17n-db/m17n-db-1.8.5.ebuild b/dev-db/m17n-db/m17n-db-1.8.5.ebuild
new file mode 100644
index 000000000000..15bcacc57b5e
--- /dev/null
+++ b/dev-db/m17n-db/m17n-db-1.8.5.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+GLIBC_PV="2.39"
+GLIBC_P="glibc-${GLIBC_PV}"
+
+DESCRIPTION="Database for the m17n library"
+HOMEPAGE="https://www.nongnu.org/m17n/"
+SRC_URI="mirror://nongnu/m17n/${P}.tar.gz
+ elibc_musl? ( mirror://gnu/glibc/${GLIBC_P}.tar.xz )"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE=""
+
+RDEPEND="virtual/libintl"
+BDEPEND="sys-devel/gettext"
+
+CHARMAPS="${GLIBC_P}/localedata/charmaps"
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ if use elibc_musl; then
+ tar xf "${DISTDIR}"/${GLIBC_P}.tar.xz ${CHARMAPS} || die
+ fi
+}
+
+src_configure() {
+ econf $(usex elibc_musl "--with-charmaps=${WORKDIR}/${CHARMAPS}" "")
+}
+
+src_install() {
+ default
+
+ docinto FORMATS
+ dodoc FORMATS/*
+
+ docinto UNIDATA
+ dodoc UNIDATA/*
+}
diff --git a/dev-db/mariadb/Manifest b/dev-db/mariadb/Manifest
index 993df4a61536..8d2674bafea2 100644
--- a/dev-db/mariadb/Manifest
+++ b/dev-db/mariadb/Manifest
@@ -1,9 +1,13 @@
DIST mariadb-10.11.3-patches-01.tar.xz 4984 BLAKE2B abc78c83505c745ab7320b99dcda8c667fed8332dede466142027b24957fa9ff3d03f8402679ce6cffdc89bc9f0559f8c717b7ec9df52a2c5db39195f096d731 SHA512 127386c9dc8ce242d9d309e31b9357a928ba816d24d94d60cbc8723fb3bd0fb136c7d049bfb37aac057f9ebcc73c155ac20b8bcf2542f89401140728c2dcf29a
DIST mariadb-10.11.5.tar.gz 99709948 BLAKE2B 97429df4f0a10eb72c74dd0e951954b7c096a6b42fdaa97c682d1409e2a21716171a2b66aae6ec8ab3f4371bed57aff1f054554d398242e413d5c8e7ad988da4 SHA512 851e6508c1e495afa608a8bcd5c62faa5800e69cc1ba81b9366bf250e07ce8a9801a4ee07ecbaec4b57180c9b3bf2ed8acb7f5f03dd37a87a53928bfd4dfe559
DIST mariadb-10.11.6-patches-01.tar.xz 4980 BLAKE2B 62edcb60484d61683eb7733bb29f2f7e227d943cf95ff84373f25a8e438b1ca8d3b4a1e3f46f70722dd9abd43679e12f4cef1c2bfb3d01f8f23f68f6ab7cbd50 SHA512 2bdaaa026ac95d6edf50a1f46e77f8295e98504f978bb55d405267faf56150c17e52682a0334132eae1230c814b5cf458616e1abefb1dd580d160f952e5294f1
-DIST mariadb-10.11.6.tar.gz 99586625 BLAKE2B 8fa1d8b8c1f0206ecb8bf754f918d22f42befc816c7bb9f83641b0d71d737177f593d244477fc399cd7a3c3fa3e97f96af329d83e8848c9850f59cbb05ecab48 SHA512 3d77f7be4a26d5a36af56150a5f8ed5e21adeed9bc8ea1bd694e47a25a571bd73468eada7c96e0dfe5a6c81bef625abf71a56d228cf43a738e555e3c0d824a6a
+DIST mariadb-10.11.7.tar.gz 100584592 BLAKE2B 621204ded34097a643d0766292dca8b30d4d28f509db9159939c6b0735959e9fcf563a6c1760daff0a659fa5b3d7da7e0282add4b96b45c3004cdcf23e5312f6 SHA512 a6ebc9ba88b52e5d339b176b6fa48c03fcbe5bb590740a02c1bbd083a3d62e619937e645de2504a9f9adeed2f67127fab0307dece524b7c5217ad5df0f3ccc71
+DIST mariadb-10.11.8.tar.gz 100913048 BLAKE2B 15371d8116963e78ffcd7f3d16d560302f671ecf04cf007ab16aa2832a1b99a2fa9a33d8a1739ff13f05a2608df0246faf33ae187ebc2417437a3d4870c94407 SHA512 61bdbe4a51adb438335c22bfcf75f59864fa0412c7ed6e938ef73fd602c2ef27131dbeef83cd314f2bea54135c6e8f8646608ff96a7ce6ce2c74f34ef6a8675f
DIST mariadb-10.6.13-patches-01.tar.xz 4984 BLAKE2B 625d04310b02aad4fec4b633e9fab06636364f3c5ed3cb88e89acd4224786c3c9ed478b636ac699e77a888b73dab12cb279df41d6095e93e9c4ae3a159570286 SHA512 1e6ac167bfd77570e8ff5955aaa9a101d9387ac4857d856f1fb8c9a489c4c2a154481b9385584435e8dc95baef0dd3ef6831c7de2d6f004401cc338edcaa9d12
DIST mariadb-10.6.14.tar.gz 95286643 BLAKE2B 4a186f3f52b63ab7321aa7556776ff8a986bd602d78dc6a143cc3bfdfd8cc09b0a22688cba02b8907f4b3f0d1e7c640f5caad768c1e89486d6af24e6cf3168a8 SHA512 11b88480ac61303172e98ed3271c8172e840cded5175caba1469d6ec063df647b536ee6e95f110abd8d95d95c9b8d7edf1cb611113be225d5e8eeb2041f86438
DIST mariadb-10.6.15.tar.gz 98204031 BLAKE2B 4534b82f1c1e16ce2c7c21879714e24b20fada36ef10a8a0dbe770c1d99055822fcaf146646b19b459cfd948bff0662d23f1f661a843919f90a354838bda7ee6 SHA512 61b5af8c2f8bd2f641aaa708941563d5f6ecc118acc9a154c009c3ae1d50e7360ae59241f87e5c2111775a3ffeb42a64f4853e9c7096b58d68a3695b5d0ef97c
DIST mariadb-10.6.16-patches-01.tar.xz 4956 BLAKE2B a178930f7abe474e1419509c0bbabf783e1b931cfc3f4b4bddf426d9671d4e69e62a800d759f424f957562091c634049e594332ab15dc758e98d26c48ba69d1d SHA512 42969e6881cf2548c48fcce7f8439c9d56596ef038d55affcada45f4cd42a3666617f5786b69fe9ba42f11b06e85f43b722f2190aa7ed5badb461c48282751e5
-DIST mariadb-10.6.16.tar.gz 98224346 BLAKE2B f5b51df0b8665b817e81b5f0550019627fb41fa682c5cf5acfac30add46442ad9338da39283b09f97f2108e3677c249c2b7395c9c9f5b97e8648c879d654c7f1 SHA512 05d509d5f7a672b897f42674884df0debcae0b75c4eaa6d67645343c596c81c0c41d474a59150108428bf9f2c4468ca05650afb616aac5d1ea09fd2cea258a7f
+DIST mariadb-10.6.17.tar.gz 99067793 BLAKE2B 9df7592eb11a92fc4cbf4f1913e11f7ae652effde44358ee930726473a40fc26e46e02dc79e8b16068df37c82afe6b3141305624174d2e44c53107065c57b1ee SHA512 e07cf3e90d93d6139969875b11d6df3210b2c9f69257688b392843a7caed0dc3b75ba8904384fd0a55c24ece624e04b68c005a3731ee68f3957787a27b52ad56
+DIST mariadb-10.6.18.tar.gz 99344652 BLAKE2B 28dee90813dea005bcc94386b67b46734354b508d3ad13384203620d2c5d254b9f0e8d1addc4499fc2e2a7ed0411dba26818944234faf1faf41194aa59262710 SHA512 c4e89639775a8c6063851fa191cb1096b11299d3d22f19657848bc60ba67b2774978f38ca7625d1741ca80b7932fa65727427ae197899d286f921d5c6fc38af5
+DIST mariadb-11.4.2-patches-01.tar.xz 4876 BLAKE2B a306a5ddb04f73fa419e15b1bbfeda43df3a50ad76626732f8db70a75ad7676ad1fdbb5e9e8b3cd49c4e82c47da36aae1e02ddcb28c9abf233fadca39431f9ef SHA512 d9cf96b5479a64be478a785b7e82c1ce6eaee3333c64e768d8649fafb9c0a5a64c36b44a589fbb14e020730d84dc5796705a942907c8f11c5d9c2b04f47f34fe
+DIST mariadb-11.4.2.tar.gz 107373265 BLAKE2B b249e325ec1d67ad642dab9bfd886d24a596ded65f574f7f9b5c77b7d879c21cbbca1d563cf3b8167f72306a273f616d54129bdc17c94f69003896e7cea4d40b SHA512 02db06115e1f1f7c8a872b5cae4e299011813bc9f097e9d77756dfd68d4cb7fc91d6b94380d70910cb6994c0f71d60400a58c226fbce08dd9efc337ab028f6a6
diff --git a/dev-db/mariadb/mariadb-10.11.6.ebuild b/dev-db/mariadb/mariadb-10.11.7.ebuild
index 17e3f6655187..4659641ec020 100644
--- a/dev-db/mariadb/mariadb-10.11.6.ebuild
+++ b/dev-db/mariadb/mariadb-10.11.7.ebuild
@@ -29,7 +29,7 @@ REQUIRED_USE="jdbc? ( extraengine server !static )
static? ( yassl !pam )
test? ( extraengine )"
-KEYWORDS="~amd64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~x86"
# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
@@ -206,7 +206,6 @@ src_unpack() {
src_prepare() {
eapply "${WORKDIR}"/mariadb-patches
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_user
diff --git a/dev-db/mariadb/mariadb-10.11.5-r1.ebuild b/dev-db/mariadb/mariadb-10.11.8.ebuild
index c746545f8e79..406c7f242ccf 100644
--- a/dev-db/mariadb/mariadb-10.11.5-r1.ebuild
+++ b/dev-db/mariadb/mariadb-10.11.8.ebuild
@@ -11,7 +11,7 @@ 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.11.3-patches-01.tar.xz"
+ https://github.com/hydrapolic/gentoo-dist/raw/main/mariadb/mariadb-10.11.6-patches-01.tar.xz"
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
LICENSE="GPL-2 LGPL-2.1+"
@@ -29,7 +29,7 @@ REQUIRED_USE="jdbc? ( extraengine server !static )
static? ( yassl !pam )
test? ( extraengine )"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~x86"
# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
@@ -108,6 +108,10 @@ RDEPEND="${COMMON_DEPEND}
!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 )
@@ -206,7 +210,6 @@ src_unpack() {
src_prepare() {
eapply "${WORKDIR}"/mariadb-patches
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_user
diff --git a/dev-db/mariadb/mariadb-10.6.16.ebuild b/dev-db/mariadb/mariadb-10.6.17.ebuild
index 675c53c34db1..07dceb2a13e5 100644
--- a/dev-db/mariadb/mariadb-10.6.16.ebuild
+++ b/dev-db/mariadb/mariadb-10.6.17.ebuild
@@ -29,7 +29,7 @@ REQUIRED_USE="jdbc? ( extraengine server !static )
static? ( yassl !pam )
test? ( extraengine )"
-KEYWORDS="~amd64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv x86"
# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
@@ -217,7 +217,6 @@ src_unpack() {
src_prepare() {
eapply "${WORKDIR}"/mariadb-patches
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_user
diff --git a/dev-db/mariadb/mariadb-10.6.15-r1.ebuild b/dev-db/mariadb/mariadb-10.6.18.ebuild
index 8ffeec4aa737..739054f5b222 100644
--- a/dev-db/mariadb/mariadb-10.6.15-r1.ebuild
+++ b/dev-db/mariadb/mariadb-10.6.18.ebuild
@@ -11,7 +11,7 @@ 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/main/mariadb/mariadb-10.6.16-patches-01.tar.xz"
DESCRIPTION="An enhanced, drop-in replacement for MySQL"
LICENSE="GPL-2 LGPL-2.1+"
@@ -29,7 +29,7 @@ REQUIRED_USE="jdbc? ( extraengine server !static )
static? ( yassl !pam )
test? ( extraengine )"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~x86"
# Shorten the path because the socket path length must be shorter than 107 chars
# and we will run a mysql server during test phase
@@ -111,6 +111,10 @@ RDEPEND="${COMMON_DEPEND}
!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 )
@@ -217,7 +221,6 @@ src_unpack() {
src_prepare() {
eapply "${WORKDIR}"/mariadb-patches
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_user
diff --git a/dev-db/mariadb/mariadb-11.4.2.ebuild b/dev-db/mariadb/mariadb-11.4.2.ebuild
new file mode 100644
index 000000000000..c0f3096224ad
--- /dev/null
+++ b/dev-db/mariadb/mariadb-11.4.2.ebuild
@@ -0,0 +1,1324 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+SUBSLOT="18"
+
+JAVA_PKG_OPT_USE="jdbc"
+
+inherit systemd flag-o-matic prefix toolchain-funcs \
+ multiprocessing java-pkg-opt-2 cmake
+
+HOMEPAGE="https://mariadb.org/"
+SRC_URI="mirror://mariadb/${PN}-${PV}/source/${P}.tar.gz
+ https://github.com/hydrapolic/gentoo-dist/raw/main/mariadb/mariadb-11.4.2-patches-01.tar.xz"
+
+DESCRIPTION="An enhanced, drop-in replacement for MySQL"
+LICENSE="GPL-2 LGPL-2.1+"
+SLOT="$(ver_cut 1-2)/${SUBSLOT:-0}"
+IUSE="+backup bindist columnstore cracklib debug extraengine galera innodb-lz4
+ innodb-lzo innodb-snappy jdbc jemalloc kerberos latin1 mroonga
+ numa odbc oqgraph pam +perl profiling rocksdb selinux +server sphinx
+ sst-rsync sst-mariabackup static systemd systemtap s3 tcmalloc
+ test xml yassl"
+
+RESTRICT="!bindist? ( bindist ) !test? ( test )"
+
+REQUIRED_USE="jdbc? ( extraengine server !static )
+ ?? ( tcmalloc jemalloc )
+ static? ( yassl !pam )
+ test? ( extraengine )"
+
+#KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~x86"
+
+# Shorten the path because the socket path length must be shorter than 107 chars
+# and we will run a mysql server during test phase
+S="${WORKDIR}/mysql"
+
+# Be warned, *DEPEND are version-dependant
+# These are used for both runtime and compiletime
+COMMON_DEPEND="
+ dev-libs/libfmt:=
+ >=dev-libs/libpcre2-10.34:=
+ >=sys-apps/texinfo-4.7-r1
+ sys-libs/ncurses:0=
+ >=sys-libs/zlib-1.2.3:0=
+ virtual/libcrypt:=
+ !bindist? (
+ sys-libs/binutils-libs:0=
+ >=sys-libs/readline-4.1:0=
+ )
+ jemalloc? ( dev-libs/jemalloc:0= )
+ kerberos? ( virtual/krb5 )
+ kernel_linux? (
+ dev-libs/libaio:0=
+ sys-libs/liburing:=
+ sys-process/procps:0=
+ )
+ server? (
+ app-arch/bzip2
+ app-arch/xz-utils
+ backup? ( app-arch/libarchive:0= )
+ columnstore? (
+ app-arch/snappy:=
+ dev-libs/boost:=
+ dev-libs/libxml2:2=
+ )
+ cracklib? ( sys-libs/cracklib:0= )
+ extraengine? (
+ odbc? ( dev-db/unixODBC:0= )
+ xml? ( dev-libs/libxml2:2= )
+ )
+ innodb-lz4? ( app-arch/lz4 )
+ innodb-lzo? ( dev-libs/lzo )
+ innodb-snappy? ( app-arch/snappy:= )
+ mroonga? ( app-text/groonga-normalizer-mysql >=app-text/groonga-7.0.4 )
+ numa? ( sys-process/numactl )
+ oqgraph? (
+ dev-libs/boost:=
+ dev-libs/judy:0=
+ )
+ pam? ( sys-libs/pam:0= )
+ s3? ( net-misc/curl )
+ systemd? ( sys-apps/systemd:= )
+ )
+ systemtap? ( >=dev-debug/systemtap-1.3:0= )
+ tcmalloc? ( dev-util/google-perftools:0= )
+ yassl? ( net-libs/gnutls:0= )
+ !yassl? (
+ >=dev-libs/openssl-1.0.0:0=
+ )
+"
+BDEPEND="app-alternatives/yacc"
+DEPEND="${COMMON_DEPEND}
+ server? (
+ extraengine? ( jdbc? ( >=virtual/jdk-1.8 ) )
+ test? ( acct-group/mysql acct-user/mysql )
+ )
+ static? ( sys-libs/ncurses[static-libs] )
+"
+RDEPEND="${COMMON_DEPEND}
+ !dev-db/mysql !dev-db/percona-server
+ !dev-db/mariadb:10.3
+ !dev-db/mariadb:10.4
+ !dev-db/mariadb:10.5
+ !dev-db/mariadb:10.6
+ !dev-db/mariadb:10.7
+ !dev-db/mariadb:10.8
+ !dev-db/mariadb:10.9
+ !dev-db/mariadb:10.10
+ !dev-db/mariadb:10.11
+ !dev-db/mariadb:11.0
+ !dev-db/mariadb:11.1
+ !dev-db/mariadb:11.2
+ !dev-db/mariadb:11.3
+ selinux? ( sec-policy/selinux-mysql )
+ server? (
+ columnstore? ( dev-db/mariadb-connector-c )
+ extraengine? ( jdbc? ( >=virtual/jre-1.8 ) )
+ galera? (
+ sys-apps/iproute2
+ =sys-cluster/galera-26*
+ sst-rsync? ( sys-process/lsof )
+ sst-mariabackup? ( net-misc/socat[ssl] )
+ )
+ !prefix? ( dev-db/mysql-init-scripts acct-group/mysql acct-user/mysql )
+ )
+"
+# For other stuff to bring us in
+# dev-perl/DBD-MariaDB is needed by some scripts installed by MySQL
+PDEPEND="perl? ( dev-perl/DBD-MariaDB )"
+
+mysql_init_vars() {
+ MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mariadb"}
+ MY_SYSCONFDIR=${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
+ MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
+ MY_LOGDIR=${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
+
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR=""
+ if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then
+ MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \
+ | sed -ne '/datadir/s|^--datadir=||p' \
+ | tail -n1)
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR=$(grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \
+ | sed -e 's/.*=\s*//' \
+ | tail -n1)
+ fi
+ fi
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ MY_DATADIR="${MY_LOCALSTATEDIR}"
+ einfo "Using default MY_DATADIR"
+ fi
+ elog "MySQL MY_DATADIR is ${MY_DATADIR}"
+
+ if [[ -z "${PREVIOUS_DATADIR}" ]] ; then
+ if [[ -e "${MY_DATADIR}" ]] ; then
+ # If you get this and you're wondering about it, see bug #207636
+ elog "MySQL datadir found in ${MY_DATADIR}"
+ elog "A new one will not be created."
+ PREVIOUS_DATADIR="yes"
+ else
+ PREVIOUS_DATADIR="no"
+ fi
+ export PREVIOUS_DATADIR
+ fi
+ else
+ if [[ ${EBUILD_PHASE} == "config" ]]; then
+ local new_MY_DATADIR
+ new_MY_DATADIR=$(my_print_defaults mysqld 2>/dev/null \
+ | sed -ne '/datadir/s|^--datadir=||p' \
+ | tail -n1)
+
+ if [[ ( -n "${new_MY_DATADIR}" ) && ( "${new_MY_DATADIR}" != "${MY_DATADIR}" ) ]]; then
+ ewarn "MySQL MY_DATADIR has changed"
+ ewarn "from ${MY_DATADIR}"
+ ewarn "to ${new_MY_DATADIR}"
+ MY_DATADIR="${new_MY_DATADIR}"
+ fi
+ fi
+ fi
+
+ export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+ export MY_LOCALSTATEDIR MY_LOGDIR
+ export MY_DATADIR
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if has test ${FEATURES} ; then
+ # Bug #213475 - MySQL _will_ object strenuously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if ! has userpriv ${FEATURES} ; then
+ die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+ fi
+ fi
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A}
+
+ mv -f "${WORKDIR}/${P/_rc/}" "${S}" || die
+}
+
+src_prepare() {
+ eapply "${WORKDIR}"/mariadb-patches
+ eapply "${FILESDIR}"/${PN}-10.6.11-gssapi.patch
+ eapply "${FILESDIR}"/${PN}-10.6.12-gcc-13.patch
+
+ eapply_user
+
+ _disable_plugin() {
+ echo > "${S}/plugin/${1}/CMakeLists.txt" || die
+ }
+ _disable_engine() {
+ echo > "${S}/storage/${1}/CMakeLists.txt" || die
+ }
+
+ if use jemalloc; then
+ echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC jemalloc)" >> "${S}/sql/CMakeLists.txt"
+ elif use tcmalloc; then
+ echo "TARGET_LINK_LIBRARIES(mariadbd LINK_PUBLIC tcmalloc)" >> "${S}/sql/CMakeLists.txt"
+ fi
+
+ local plugin
+ local server_plugins=( handler_socket auth_socket feedback metadata_lock_info
+ locale_info qc_info server_audit sql_errlog auth_ed25519 )
+ local test_plugins=( audit_null auth_examples daemon_example fulltext
+ debug_key_management example_key_management versioning )
+ if ! use server; then # These plugins are for the server
+ for plugin in "${server_plugins[@]}" ; do
+ _disable_plugin "${plugin}"
+ done
+ fi
+
+ if ! use test; then # These plugins are only used during testing
+ for plugin in "${test_plugins[@]}" ; do
+ _disable_plugin "${plugin}"
+ done
+ _disable_engine test_sql_discovery
+ echo > "${S}/plugin/auth_pam/testing/CMakeLists.txt" || die
+ fi
+
+ _disable_engine example
+
+ if ! use oqgraph ; then # avoids extra library checks
+ _disable_engine oqgraph
+ fi
+
+ if use mroonga ; then
+ # Remove the bundled groonga
+ # There is no CMake flag, it simply checks for existance
+ rm -r "${S}"/storage/mroonga/vendor/groonga || die "could not remove packaged groonga"
+ else
+ _disable_engine mroonga
+ fi
+
+ # Fix static bindings in galera replication
+ sed -i -e 's~add_library(wsrep_api_v26$~add_library(wsrep_api_v26 STATIC~' \
+ "${S}"/wsrep-lib/wsrep-API/CMakeLists.txt || die
+ sed -i -e 's~add_library(wsrep-lib$~add_library(wsrep-lib STATIC~' \
+ "${S}"/wsrep-lib/src/CMakeLists.txt || die
+
+ # Fix galera_recovery.sh script
+ sed -i -e "s~@bindir@/my_print_defaults~${EPREFIX}/usr/libexec/mariadb/my_print_defaults~" \
+ scripts/galera_recovery.sh || die
+
+ sed -i -e 's~ \$basedir/lib/\*/mariadb19/plugin~~' \
+ "${S}"/scripts/mysql_install_db.sh || die
+
+ cmake_src_prepare
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ # bug #855233 (MDEV-11914, MDEV-25633) at least
+ filter-lto
+ # bug 508724 mariadb cannot use ld.gold
+ tc-ld-disable-gold
+ # Bug #114895, bug #110149
+ filter-flags "-O" "-O[01]"
+
+ # It fails on alpha without this
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ append-cxxflags -felide-constructors
+
+ # bug #283926, with GCC4.4, this is required to get correct behavior.
+ append-flags -fno-strict-aliasing
+
+ CMAKE_BUILD_TYPE="RelWithDebInfo"
+
+ # debug hack wrt #497532
+ local mycmakeargs=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usex debug '' '-DNDEBUG')"
+ -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql"
+ -DSYSCONFDIR="${EPREFIX}/etc/mysql"
+ -DINSTALL_BINDIR=bin
+ -DINSTALL_DOCDIR=share/doc/${PF}
+ -DINSTALL_DOCREADMEDIR=share/doc/${PF}
+ -DINSTALL_INCLUDEDIR=include/mysql
+ -DINSTALL_INFODIR=share/info
+ -DINSTALL_LIBDIR=$(get_libdir)
+ -DINSTALL_MANDIR=share/man
+ -DINSTALL_MYSQLSHAREDIR=share/mariadb
+ -DINSTALL_PLUGINDIR=$(get_libdir)/mariadb/plugin
+ -DINSTALL_SCRIPTDIR=bin
+ -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql"
+ -DINSTALL_SBINDIR=sbin
+ -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mariadb"
+ -DWITH_COMMENT="Gentoo Linux ${PF}"
+ -DWITH_UNIT_TESTS=$(usex test ON OFF)
+ -DWITH_LIBEDIT=0
+ -DWITH_ZLIB=system
+ -DWITHOUT_LIBWRAP=1
+ -DENABLED_LOCAL_INFILE=1
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DINSTALL_UNIX_ADDRDIR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DWITH_DEFAULT_COMPILER_OPTIONS=0
+ -DWITH_DEFAULT_FEATURE_SET=0
+ -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)"
+ # The build forces this to be defined when cross-compiling. We pass it
+ # all the time for simplicity and to make sure it is actually correct.
+ -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
+ -DPKG_CONFIG_EXECUTABLE="${EPREFIX}/usr/bin/$(tc-getPKG_CONFIG)"
+ -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
+ -DAUTH_GSSAPI_PLUGIN_TYPE=$(usex kerberos DYNAMIC OFF)
+ -DCONC_WITH_EXTERNAL_ZLIB=YES
+ -DWITH_EXTERNAL_ZLIB=YES
+ -DSUFFIX_INSTALL_DIR=""
+ -DWITH_UNITTEST=OFF
+ -DWITHOUT_CLIENTLIBS=YES
+ -DCLIENT_PLUGIN_DIALOG=OFF
+ -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF
+ -DCLIENT_PLUGIN_CLIENT_ED25519=OFF
+ -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=STATIC
+ -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=OFF
+ )
+ if use test ; then
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mariadb/mysql-test )
+ else
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+ fi
+
+ if ! use yassl ; then
+ mycmakeargs+=( -DWITH_SSL=system -DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC )
+ else
+ mycmakeargs+=( -DWITH_SSL=bundled )
+ fi
+
+ # bfd.h is only used starting with 10.1 and can be controlled by NOT_FOR_DISTRIBUTION
+ mycmakeargs+=(
+ -DWITH_READLINE=$(usex bindist 1 0)
+ -DNOT_FOR_DISTRIBUTION=$(usex bindist 0 1)
+ -DENABLE_DTRACE=$(usex systemtap)
+ )
+
+ if use server ; then
+ # Connect and Federated{,X} must be treated special
+ # otherwise they will not be built as plugins
+ if ! use extraengine ; then
+ mycmakeargs+=(
+ -DPLUGIN_CONNECT=NO
+ -DPLUGIN_FEDERATED=NO
+ -DPLUGIN_FEDERATEDX=NO
+ )
+ fi
+
+ mycmakeargs+=(
+ -DWITH_PCRE=system
+ -DPLUGIN_OQGRAPH=$(usex oqgraph DYNAMIC NO)
+ -DPLUGIN_SPHINX=$(usex sphinx YES NO)
+ -DPLUGIN_AUTH_PAM=$(usex pam YES NO)
+ -DPLUGIN_AWS_KEY_MANAGEMENT=NO
+ -DPLUGIN_CRACKLIB_PASSWORD_CHECK=$(usex cracklib YES NO)
+ -DPLUGIN_SEQUENCE=$(usex extraengine YES NO)
+ -DPLUGIN_SPIDER=$(usex extraengine YES NO)
+ -DPLUGIN_S3=$(usex s3 YES NO)
+ -DPLUGIN_COLUMNSTORE=$(usex columnstore YES NO)
+ -DCONNECT_WITH_MYSQL=1
+ -DCONNECT_WITH_LIBXML2=$(usex xml)
+ -DCONNECT_WITH_ODBC=$(usex odbc)
+ -DCONNECT_WITH_JDBC=$(usex jdbc)
+ # Build failure and autodep wrt bug 639144
+ -DCONNECT_WITH_MONGO=OFF
+ -DWITH_WSREP=$(usex galera)
+ -DWITH_INNODB_LZ4=$(usex innodb-lz4 ON OFF)
+ -DWITH_INNODB_LZO=$(usex innodb-lzo ON OFF)
+ -DWITH_INNODB_SNAPPY=$(usex innodb-snappy ON OFF)
+ -DPLUGIN_MROONGA=$(usex mroonga DYNAMIC NO)
+ -DPLUGIN_AUTH_GSSAPI=$(usex kerberos DYNAMIC NO)
+ -DWITH_MARIABACKUP=$(usex backup ON OFF)
+ -DWITH_LIBARCHIVE=$(usex backup ON OFF)
+ -DINSTALL_SQLBENCHDIR=""
+ -DPLUGIN_ROCKSDB=$(usex rocksdb DYNAMIC NO)
+ # systemd is only linked to for server notification
+ -DWITH_SYSTEMD=$(usex systemd yes no)
+ -DWITH_NUMA=$(usex numa ON OFF)
+ )
+
+ if use test ; then
+ # This is needed for the new client lib which tests a real, open server
+ mycmakeargs+=( -DSKIP_TESTS=ON )
+ fi
+
+ if [[ ( -n ${MYSQL_DEFAULT_CHARSET} ) && ( -n ${MYSQL_DEFAULT_COLLATION} ) ]]; then
+ ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
+ ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
+ ewarn "You MUST file bugs without these variables set."
+
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
+ -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
+ )
+
+ elif ! use latin1 ; then
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=utf8mb4
+ -DDEFAULT_COLLATION=utf8mb4_unicode_520_ci
+ )
+ else
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=latin1
+ -DDEFAULT_COLLATION=latin1_swedish_ci
+ )
+ fi
+ mycmakeargs+=(
+ -DEXTRA_CHARSETS=all
+ -DMYSQL_USER=mysql
+ -DDISABLE_SHARED=$(usex static YES NO)
+ -DWITH_DEBUG=$(usex debug)
+ -DWITH_EMBEDDED_SERVER=OFF
+ -DWITH_PROFILING=$(usex profiling)
+ )
+
+ if use static; then
+ mycmakeargs+=( -DWITH_PIC=1 )
+ fi
+
+ if use jemalloc || use tcmalloc ; then
+ mycmakeargs+=( -DWITH_SAFEMALLOC=OFF )
+ fi
+
+ # Storage engines
+ mycmakeargs+=(
+ -DWITH_ARCHIVE_STORAGE_ENGINE=1
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1
+ -DWITH_CSV_STORAGE_ENGINE=1
+ -DWITH_HEAP_STORAGE_ENGINE=1
+ -DWITH_INNOBASE_STORAGE_ENGINE=1
+ -DWITH_MYISAMMRG_STORAGE_ENGINE=1
+ -DWITH_MYISAM_STORAGE_ENGINE=1
+ -DWITH_PARTITION_STORAGE_ENGINE=1
+ )
+ else
+ mycmakeargs+=(
+ -DWITHOUT_SERVER=1
+ -DWITH_EMBEDDED_SERVER=OFF
+ -DEXTRA_CHARSETS=none
+ -DINSTALL_SQLBENCHDIR=
+ -DWITH_SYSTEMD=no
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+# Official test instructions:
+# USE='extraengine perl server' \
+# FEATURES='test userpriv' \
+# ebuild mariadb-X.X.XX.ebuild \
+# digest clean package
+src_test() {
+ _disable_test() {
+ local rawtestname bug reason
+ rawtestname="${1}" ; shift
+ bug="${1}" ; shift
+ reason="${@}"
+ ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})"
+ echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def"
+ }
+
+ local TESTDIR="${BUILD_DIR}/mysql-test"
+ local retstatus_tests
+
+ if ! use server ; then
+ einfo "Skipping server tests due to minimal build."
+ return 0
+ fi
+
+ # Ensure that parallel runs don't die
+ export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ if [[ -z "${MTR_PARALLEL}" ]] ; then
+ local -x MTR_PARALLEL=$(makeopts_jobs)
+
+ if [[ ${MTR_PARALLEL} -gt 4 ]] ; then
+ # Running multiple tests in parallel usually require higher ulimit
+ # and fs.aio-max-nr setting. In addition, tests like main.multi_update
+ # are known to hit timeout when system is busy.
+ # To avoid test failure we will limit MTR_PARALLEL to 4 instead of
+ # using "auto".
+ local info_msg="Parallel MySQL test suite jobs limited to 4 (MAKEOPTS=${MTR_PARALLEL})"
+ info_msg+=" to avoid test failures. Set MTR_PARALLEL if you know what you are doing!"
+ einfo "${info_msg}"
+ unset info_msg
+ MTR_PARALLEL=4
+ fi
+ else
+ einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
+ fi
+
+ # Try to increase file limits to increase test coverage
+ if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
+ # Upper limit comes from parts.partition_* tests
+ ewarn "For maximum test coverage please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
+
+ if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
+ # Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
+ ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
+
+ if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
+ ewarn "For minimum test coverage please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
+ else
+ einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
+ fi
+ else
+ einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
+ fi
+ else
+ einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
+ fi
+
+ # create directories because mysqladmin might run out of order
+ mkdir -p "${T}"/var-tests{,/log} || die
+
+ if [[ ! -f "${S}/mysql-test/unstable-tests" ]] ; then
+ touch "${S}"/mysql-test/unstable-tests || die
+ fi
+
+ cp "${S}"/mysql-test/unstable-tests "${T}/disabled.def" || die
+
+ local -a disabled_tests
+ disabled_tests+=( "compat/oracle.plugin;0;Needs example plugin which Gentoo disables" )
+ disabled_tests+=( "innodb_gis.1;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "innodb_gis.gis;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "main.gis;25095;Known rounding error with latest AMD processors" )
+ disabled_tests+=( "main.explain_non_select;0;Sporadically failing test" )
+ disabled_tests+=( "main.func_time;0;Dependent on time test was written" )
+ disabled_tests+=( "main.mysql_upgrade;27044;Sporadically failing test" )
+ disabled_tests+=( "main.plugin_auth;0;Needs client libraries built" )
+ disabled_tests+=( "main.selectivity_no_engine;26320;Sporadically failing test" )
+ disabled_tests+=( "main.stat_tables;0;Sporadically failing test" )
+ disabled_tests+=( "main.stat_tables_innodb;0;Sporadically failing test" )
+ disabled_tests+=( "main.upgrade_MDEV-19650;25096;Known to be broken" )
+ disabled_tests+=( "mariabackup.*;0;Broken test suite" )
+ disabled_tests+=( "perfschema.nesting;23458;Known to be broken" )
+ disabled_tests+=( "perfschema.prepared_statements;0;Broken test suite" )
+ disabled_tests+=( "perfschema.privilege_table_io;27045;Sporadically failing test" )
+ disabled_tests+=( "plugins.auth_ed25519;0;Needs client libraries built" )
+ disabled_tests+=( "plugins.cracklib_password_check;0;False positive due to varying policies" )
+ disabled_tests+=( "plugins.two_password_validations;0;False positive due to varying policies" )
+ disabled_tests+=( "roles.acl_statistics;0;False positive due to a user count mismatch caused by previous test" )
+ disabled_tests+=( "spider.*;0;Fails with network sandbox" )
+ disabled_tests+=( "sys_vars.wsrep_on_without_provider;25625;Known to be broken" )
+
+ if ! use latin1 ; then
+ disabled_tests+=( "funcs_1.is_columns_mysql;0;Requires USE=latin1" )
+ disabled_tests+=( "main.information_schema;0;Requires USE=latin1" )
+ disabled_tests+=( "main.sp2;24177;Requires USE=latin1" )
+ disabled_tests+=( "main.system_mysql_db;0;Requires USE=latin1" )
+ disabled_tests+=( "main.upgrade_MDEV-19650;24178;Requires USE=latin1" )
+ fi
+
+ local test_infos_str test_infos_arr
+ for test_infos_str in "${disabled_tests[@]}" ; do
+ IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}"
+
+ if [[ ${#test_infos_arr[@]} != 3 ]] ; then
+ die "Invalid test data set, not matching format: ${test_infos_str}"
+ fi
+
+ _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}"
+ done
+ unset test_infos_str test_infos_arr
+
+ # run mysql-test tests
+ pushd "${TESTDIR}" &>/dev/null || die
+ perl mysql-test-run.pl --force --vardir="${T}/var-tests" --reorder --skip-test-list="${T}/disabled.def"
+ retstatus_tests=$?
+
+ popd &>/dev/null || die
+
+ # Cleanup is important for these testcases.
+ pkill -9 -f "${S}/ndb" 2>/dev/null
+ pkill -9 -f "${S}/sql" 2>/dev/null
+
+ local failures=""
+ [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests"
+
+ [[ -z "${failures}" ]] || die "Test failures: ${failures}"
+ einfo "Tests successfully completed"
+}
+
+src_install() {
+ cmake_src_install
+
+ # Remove an unnecessary, private config header which will never match between ABIs and is not meant to be used
+ if [[ -f "${ED}/usr/include/mysql/server/private/config.h" ]] ; then
+ rm "${ED}/usr/include/mysql/server/private/config.h" || die
+ fi
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Convenience links
+ einfo "Making Convenience links for mysqlcheck multi-call binary"
+ dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
+ dosym "mysqlcheck" "/usr/bin/mysqlrepair"
+ dosym "mysqlcheck" "/usr/bin/mysqloptimize"
+
+ # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
+ if [[ -d "${ED}/usr/data" ]] ; then
+ rm -Rf "${ED}/usr/data" || die
+ fi
+
+ # Unless they explicitly specific USE=test, then do not install the
+ # testsuite. It DOES have a use to be installed, esp. when you want to do a
+ # validation of your database configuration after tuning it.
+ if ! use test ; then
+ rm -rf "${D}/${MY_SHAREDSTATEDIR}/mysql-test"
+ fi
+
+ # Configuration stuff
+ einfo "Building default configuration ..."
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}"
+ [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
+ cp "${FILESDIR}/my.cnf-10.2" "${TMPDIR}/my.cnf" || die
+ eprefixify "${TMPDIR}/my.cnf"
+ doins "${TMPDIR}/my.cnf"
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}/mariadb.d"
+ cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
+ eprefixify "${TMPDIR}/50-distro-client.cnf"
+ doins "${TMPDIR}/50-distro-client.cnf"
+
+ if use server ; then
+ mycnf_src="my.cnf.distro-server"
+ sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
+ "${FILESDIR}/${mycnf_src}" \
+ > "${TMPDIR}/my.cnf.ok" || die
+ if use prefix ; then
+ sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+ if use latin1 ; then
+ sed -i \
+ -e "/character-set/s|utf8|latin1|g" \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+ eprefixify "${TMPDIR}/my.cnf.ok"
+ newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
+
+ einfo "Including support files and sample configurations"
+ docinto "support-files"
+ local script
+ for script in \
+ "${S}"/support-files/magic
+ do
+ [[ -f "$script" ]] && dodoc "${script}"
+ done
+
+ docinto "scripts"
+ for script in "${S}"/scripts/mysql* ; do
+ [[ ( -f "$script" ) && ( "${script%.sh}" == "${script}" ) ]] && dodoc "${script}"
+ done
+ # Manually install supporting files that conflict with other packages
+ # but are needed for galera and initial installation
+ exeinto /usr/libexec/mariadb
+ doexe "${BUILD_DIR}/extra/my_print_defaults" "${BUILD_DIR}/extra/perror"
+
+ if use pam ; then
+ keepdir /usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir
+ fi
+ fi
+
+ # Conflicting files
+ conflicting_files=()
+
+ # We prefer my_print_defaults from dev-db/mysql-connector-c
+ conflicting_files=( "${ED}/usr/share/man/man1/my_print_defaults.1" )
+
+ # Remove bundled mytop in favor of dev-db/mytop
+ conflicting_files+=( "${ED}/usr/bin/mytop" )
+ conflicting_files+=( "${ED}/usr/share/man/man1/mytop.1" )
+
+ local conflicting_file
+ for conflicting_file in "${conflicting_files[@]}" ; do
+ if [[ -e "${conflicting_file}" ]] ; then
+ rm -v "${conflicting_file}" || die
+ fi
+ done
+
+ # Fix a dangling symlink when galera is not built
+ if [[ -L "${ED}/usr/bin/wsrep_sst_rsync_wan" ]] && ! use galera ; then
+ rm "${ED}/usr/bin/wsrep_sst_rsync_wan" || die
+ fi
+
+ # Remove dangling symlink
+ rm "${ED}/usr/$(get_libdir)/libmariadb.a" || die
+
+ # Remove broken SST scripts that are incompatible
+ local scriptremove
+ for scriptremove in wsrep_sst_xtrabackup wsrep_sst_xtrabackup-v2 ; do
+ if [[ -e "${ED}/usr/bin/${scriptremove}" ]] ; then
+ rm "${ED}/usr/bin/${scriptremove}" || die
+ fi
+ done
+}
+
+pkg_preinst() {
+ java-pkg-opt-2_pkg_preinst
+}
+
+pkg_postinst() {
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Create log directory securely if it does not exist
+ [[ -d "${ROOT}/${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}/${MY_LOGDIR}"
+
+ if use server ; then
+ if use pam; then
+ einfo
+ elog "This install includes the PAM authentication plugin."
+ elog "To activate and configure the PAM plugin, please read:"
+ elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/"
+ einfo
+ chown mysql:mysql "${EROOT}/usr/$(get_libdir)/mariadb/plugin/auth_pam_tool_dir" || die
+ fi
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ einfo
+ elog "You might want to run:"
+ elog "\"emerge --config =${CATEGORY}/${PF}\""
+ elog "if this is a new install."
+ elog
+ elog "If you are switching server implentations, you should run the"
+ elog "mysql_upgrade tool."
+ einfo
+ else
+ einfo
+ elog "If you are upgrading major versions, you should run the"
+ elog "mysql_upgrade tool."
+ einfo
+ fi
+
+ if use galera ; then
+ einfo
+ elog "Be sure to edit the my.cnf file to activate your cluster settings."
+ elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\""
+ elog "The first time the cluster is activated, you should add"
+ elog "--wsrep-new-cluster to the options in /etc/conf.d/mysql for one node."
+ elog "This option should then be removed for subsequent starts."
+ einfo
+ if [[ -n "${REPLACING_VERSIONS}" ]] ; then
+ local rver
+ for rver in ${REPLACING_VERSIONS} ; do
+ if ver_test "${rver}" -lt "10.4.0" ; then
+ ewarn "Upgrading galera from a previous version requires admin restart of the entire cluster."
+ ewarn "Please refer to https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-104/#galera-4"
+ ewarn "for more information"
+ fi
+ done
+ fi
+ fi
+ fi
+
+ # Note about configuration change
+ einfo
+ elog "This version of mariadb reorganizes the configuration from a single my.cnf"
+ elog "to several files in /etc/mysql/${PN}.d."
+ elog "Please backup any changes you made to /etc/mysql/my.cnf"
+ elog "and add them as a new file under /etc/mysql/${PN}.d with a .cnf extension."
+ elog "You may have as many files as needed and they are read alphabetically."
+ elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
+ einfo
+}
+
+pkg_config() {
+ _getoptval() {
+ local section="${1}"
+ local option="--${2}"
+ local extra_options="${3}"
+ local cmd=(
+ "${my_print_defaults_binary}"
+ "${extra_options}"
+ "${section}"
+ )
+
+ local values=()
+ local parameters=( $(eval "${cmd[@]}" 2>/dev/null) )
+ for parameter in "${parameters[@]}"
+ do
+ # my_print_defaults guarantees output of options, one per line,
+ # in the form that they would be specified on the command line.
+ # So checking for --option=* should be safe.
+ case ${parameter} in
+ ${option}=*)
+ values+=( "${parameter#*=}" )
+ ;;
+ esac
+ done
+
+ if [[ ${#values[@]} -gt 0 ]] ; then
+ # Option could have been set multiple times
+ # in which case only the last occurrence
+ # contains the current value
+ echo "${values[-1]}"
+ fi
+ }
+
+ _mktemp_dry() {
+ # emktemp has no --dry-run option
+ local template="${1}"
+
+ if [[ -z "${template}" ]] ; then
+ if [[ -z "${T}" ]] ; then
+ template="/tmp/XXXXXXX"
+ else
+ template="${T}/XXXXXXX"
+ fi
+ fi
+
+ local template_wo_X=${template//X/}
+ local n_X
+ let n_X=${#template}-${#template_wo_X}
+ if [[ ${n_X} -lt 3 ]] ; then
+ echo "${FUNCNAME[0]}: too few X's in template ‘${template}’" >&2
+ return
+ fi
+
+ local attempts=0
+ local character tmpfile
+ while [[ true ]] ; do
+ let attempts=attempts+1
+
+ new_file=
+ while read -n1 character ; do
+ if [[ "${character}" == "X" ]] ; then
+ tmpfile+="${RANDOM:0:1}"
+ else
+ tmpfile+="${character}"
+ fi
+ done < <(echo -n "${template}")
+
+ if [[ ! -f "${tmpfile}" ]]
+ then
+ echo "${tmpfile}"
+ return
+ fi
+
+ if [[ ${attempts} -ge 100 ]] ; then
+ echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2
+ return
+ fi
+ done
+ }
+
+ local mysql_binary="${EROOT}/usr/bin/mysql"
+ if [[ ! -x "${mysql_binary}" ]] ; then
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local mysqld_binary="${EROOT}/usr/sbin/mysqld"
+ if [[ ! -x "${mysqld_binary}" ]] ; then
+ die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local mysql_install_db_binary="${EROOT}/usr/bin/mysql_install_db"
+ if [[ ! -x "${mysql_install_db_binary}" ]] ; then
+ die "'${mysql_install_db_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults"
+ if [[ ! -x "${my_print_defaults_binary}" ]] ; then
+ die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!"
+ fi
+
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ MYSQL_USER=mysql
+ if use prefix ; then
+ MYSQL_USER=$(id -u -n 2>/dev/null)
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ die "Failed to determine current username!"
+ fi
+ fi
+ fi
+
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ MYSQL_GROUP=mysql
+ if use prefix ; then
+ MYSQL_GROUP=$(id -g -n 2>/dev/null)
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ die "Failed to determine current user groupname!"
+ fi
+ fi
+ fi
+
+ # my_print_defaults needs to read stuff in $HOME/.my.cnf
+ local -x HOME="${EROOT}/root"
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Read currently set data directory
+ MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+
+ # Bug #213475 - MySQL _will_ object strenously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ die "Sorry, unable to find MY_DATADIR!"
+ elif [[ -d "${MY_DATADIR}/mysql" ]] ; then
+ ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!"
+ ewarn "Please rename or delete its content if you wish to initialize a new data directory."
+ die "${PN} data directory at '${MY_DATADIR}' looks already initialized!"
+ fi
+
+ MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_TMPDIR=${MYSQL_TMPDIR%/}
+ # These are dir+prefix
+ MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
+ MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
+
+ # Create missing directories.
+ # Always check if mysql user can write to directory even if we just
+ # created directory because a parent directory might be not
+ # accessible for that user.
+ PID_DIR="${EROOT}/run/mysqld"
+ if [[ ! -d "${PID_DIR}" ]] ; then
+ einfo "Creating ${PN} PID directory '${PID_DIR}' ..."
+ install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \
+ || die "Failed to create PID directory '${PID_DIR}'!"
+ fi
+
+ local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_pid_dir_testfile}" ]] \
+ && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_pid_dir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!"
+ else
+ rm "${_pid_dir_testfile}" || die
+ unset _pid_dir_testfile
+ fi
+
+ if [[ ! -d "${MY_DATADIR}" ]] ; then
+ einfo "Creating ${PN} data directory '${MY_DATADIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \
+ || die "Failed to create ${PN} data directory '${MY_DATADIR}'!"
+ fi
+
+ local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_datadir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_datadir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!"
+ else
+ rm "${_my_datadir_testfile}" || die
+ unset _my_datadir_testfile
+ fi
+
+ if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then
+ einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \
+ || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!"
+ fi
+
+ if [[ -z "${MYSQL_TMPDIR}" ]] ; then
+ MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")"
+ [[ -z "${MYSQL_TMPDIR}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!"
+
+ mkdir "${MYSQL_TMPDIR}" || die
+ chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die
+ fi
+
+ # Now we need to test MYSQL_TMPDIR...
+ local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_tmpdir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_tmpdir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!"
+ else
+ rm "${_my_tmpdir_testfile}" || die
+ unset _my_tmpdir_testfile
+ fi
+
+ if [[ "${MYSQL_LOG_BIN}" == /* && ! -d "${MYSQL_LOG_BIN}" ]] ; then
+ # Only create directory when MYSQL_LOG_BIN is an absolute path
+ einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \
+ || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'"
+ fi
+
+ if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then
+ # Only test when MYSQL_LOG_BIN is an absolute path
+ local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_logbin_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_logbin_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!"
+ else
+ rm "${_my_logbin_testfile}" || die
+ unset _my_logbin_testfile
+ fi
+ fi
+
+ if [[ "${MYSQL_RELAY_LOG}" == /* && ! -d "${MYSQL_RELAY_LOG}" ]] ; then
+ # Only create directory when MYSQL_RELAY_LOG is an absolute path
+ einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \
+ || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!"
+ fi
+
+ if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then
+ # Only test when MYSQL_RELAY_LOG is an absolute path
+ local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_relaylog_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_relaylog_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!"
+ else
+ rm "${_my_relaylog_testfile}" || die
+ unset _my_relaylog_testfile
+ fi
+ fi
+
+ local SETUP_TMPDIR=$(mktemp -d "/tmp/${PN}-config.XXXXXXXXX" 2>/dev/null)
+ [[ -z "${SETUP_TMPDIR}" ]] && die "Failed to create setup tmpdir"
+
+ # Limit access
+ chmod 0770 "${SETUP_TMPDIR}" || die
+ chown ${MYSQL_USER} "${SETUP_TMPDIR}" || die
+
+ local mysql_install_log="${SETUP_TMPDIR}/install_db.log"
+ local mysqld_logfile="${SETUP_TMPDIR}/mysqld.log"
+
+ echo ""
+ einfo "Detected settings:"
+ einfo "=================="
+ einfo "MySQL User:\t\t\t\t${MYSQL_USER}"
+ einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}"
+ einfo "MySQL DATA directory:\t\t${MY_DATADIR}"
+ einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}"
+
+ if [[ "${MYSQL_LOG_BIN}" == /* ]] ; then
+ # Absolute path for binary log files specified
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}"
+ fi
+
+ if [[ "${MYSQL_RELAY_LOG}" == /* ]] ; then
+ # Absolute path for relay log files specified
+ einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}"
+ fi
+
+ einfo "PID DIR:\t\t\t\t${PID_DIR}"
+ einfo "Install db log:\t\t\t${mysql_install_log}"
+ einfo "Install server log:\t\t\t${mysqld_logfile}"
+
+ echo
+
+ if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ local tmp_mysqld_password_source=
+
+ for tmp_mysqld_password_source in mysql client ; do
+ einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
+ MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
+ if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
+ ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
+ MYSQL_ROOT_PASSWORD=
+ continue
+ fi
+
+ einfo "Found password in '${tmp_mysqld_password_source}' section!"
+ break
+ fi
+ done
+
+ # Sometimes --show is required to display passwords in some implementations of my_print_defaults
+ if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
+ MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
+ fi
+
+ unset tmp_mysqld_password_source
+ fi
+
+ if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ local pwd1="a"
+ local pwd2="b"
+
+ echo
+ einfo "No password for mysql 'root' user was specified via environment"
+ einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config"
+ einfo "file like '${HOME}/.my.cnf'."
+ einfo "To continue please provide a password for the mysql 'root' user"
+ einfo "now on console:"
+ ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!"
+ read -rsp " >" pwd1 ; echo
+
+ einfo "Retype the password"
+ read -rsp " >" pwd2 ; echo
+
+ if [[ "x${pwd1}" != "x${pwd2}" ]] ; then
+ die "Passwords are not the same!"
+ fi
+
+ MYSQL_ROOT_PASSWORD="${pwd1}"
+ unset pwd1 pwd2
+
+ echo
+ fi
+
+ local -a mysqld_options
+
+ # Fix bug 446200. Don't reference host my.cnf, needs to come first,
+ # see http://bugs.mysql.com/bug.php?id=31312
+ use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" )
+
+ # Figure out which options we need to disable to do the setup
+ local helpfile="${TMPDIR}/mysqld-help"
+ "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
+
+ local opt optexp optfull
+ for opt in host-cache name-resolve networking slave-start \
+ federated ssl log-bin relay-log slow-query-log external-locking \
+ log-slave-updates \
+ ; do
+ optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
+ grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" )
+ done
+
+ # Prepare timezones, see
+ # https://dev.mysql.com/doc/mysql/en/time-zone-support.html
+ local tz_sql="${SETUP_TMPDIR}/tz.sql"
+
+ echo "USE mysql;" >"${tz_sql}"
+ "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null
+ if [[ $? -ne 0 ]] ; then
+ die "mysql_tzinfo_to_sql failed!"
+ fi
+
+ local cmd=(
+ "${mysql_install_db_binary}"
+ "${mysqld_options[@]}"
+ "--init-file='${tz_sql}'"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ "--log-error='${mysql_install_log}'"
+ "--rpm"
+ "--cross-bootstrap"
+ "--skip-test-db"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Initializing ${PN} data directory: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1
+
+ if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql/user.frm" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2
+ die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!"
+ fi
+
+ local x=${RANDOM}
+ local socket="${PID_DIR}/mysqld.${x}.sock"
+ [[ -f "${socket}" ]] && die "Randomness failed; Socket ${socket} already exists!"
+ local pidfile="${PID_DIR}/mysqld.${x}.pid"
+ [[ -f "${pidfile}" ]] && die "Randomness failed; Pidfile ${pidfile} already exists!"
+ unset x
+
+ cmd=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ --max_allowed_packet=8M
+ --net_buffer_length=16K
+ "--socket='${socket}'"
+ "--pid-file='${pidfile}'"
+ "--log-error='${mysqld_logfile}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Starting mysqld to finalize initialization: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 &
+
+ echo -n "Waiting for mysqld to accept connections "
+ local maxtry=15
+ while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ if [[ -S "${socket}" ]] ; then
+ # Even with a socket we don't know if mysqld will abort
+ # start due to an error so just wait a little bit more...
+ maxtry=5
+ while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+ fi
+
+ echo
+
+ if [[ ! -S "${socket}" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2
+ die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!"
+ fi
+
+ local mysql_logfile="${SETUP_TMPDIR}/set_root_pw.log"
+ touch "${mysql_logfile}" || die
+
+ ebegin "Setting root password"
+ # Do this from memory, as we don't want clear text passwords in temp files
+ local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'"
+ cmd=(
+ "${mysql_binary}"
+ --no-defaults
+ "--socket='${socket}'"
+ -hlocalhost
+ "-e \"${sql}\""
+ )
+ eval "${cmd[@]}" >"${mysql_logfile}" 2>&1
+ local rc=$?
+ eend ${rc}
+
+ if [[ ${rc} -ne 0 ]] ; then
+ # Poor man's solution which tries to avoid having password
+ # in log. NOTE: sed can fail if user didn't follow advice
+ # and included character which will require escaping...
+ sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null
+
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}"
+ die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!"
+ fi
+
+ # Stop the server
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ echo -n "Stopping the server "
+ pkill -F "${pidfile}" &>/dev/null
+
+ maxtry=10
+ while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ echo
+
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ # We somehow failed to stop server.
+ # However, not a fatal error. Just warn the user.
+ ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!"
+ fi
+ fi
+
+ rm -r "${SETUP_TMPDIR}" || die
+
+ einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!"
+}
diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest
index 259768739a73..0d19b4137668 100644
--- a/dev-db/mongodb/Manifest
+++ b/dev-db/mongodb/Manifest
@@ -1,2 +1,2 @@
-DIST mongodb-src-r4.4.20.tar.gz 50883098 BLAKE2B 3ef2fddc4d926e372033449a14b0a71c606b6f8a9bb6767ff32c8da5a9287bf2972fae9dd83eab3ad934b1341c3edeed7708afd46f9a096819e9eca48aca40f5 SHA512 70b264b6a6f3ec16c8b0750d47026928f6250cb7a1a64d980c400ffbcc3af1b9c6301fe098d209fb8461cba4534b7c2edffdcdeb0548e627da107cc23d9a6b9c
-DIST mongodb-src-r5.0.16.tar.gz 56217257 BLAKE2B d78704c0cff4f8c1da20fdc5e083634c6dbe539136de58410ae6b86c9c5cd8044926425545ae07a7011a5febec5abb6f67773b8e539a4ac16daa1ad0ffc6a070 SHA512 d5fccd6cd3ee3f70457bd96a8eff66ca9872df37e196f1baf26993b6c080297d77504020e5554eaf3a2e92bb2730a467226b4bef47ab7fdc4de247d91c0143eb
+DIST mongodb-4.4.29.gh.tar.gz 51651007 BLAKE2B 9e9bd08ce87659fcf788964ec1bff80baef5bb9c2f5bd4968588511d289b9baf9fc68812f72ee89f90fb557dcc8d2ecbb3f607ca8e31c2212ec9633c0b99da37 SHA512 3c32a918c8b5587b04ee9263788c250a9bbd64f34ed2c19939e78607456215697966e596c2cfd160604b629188e4bdf3fff071db268bb3c25de3077a7c2ef335
+DIST mongodb-5.0.26.gh.tar.gz 57252091 BLAKE2B a4663a4dbac90118b56646816b178680a6bd99be6abb582fdfdb662c8ddf14eb9db18ed97260a37b2d04bf11715e6cfaa34bb12c4f4b08426e3afa90908f0b3c SHA512 efd56649006bb61070a2f255e8d843e4ddab33562ec9454afe55848dcc3ce8ee90431f70c9362b14e52c4a49a162ea3075a869a6fd71f63efdd5f4358703fea4
diff --git a/dev-db/mongodb/files/mongodb-4.4.29-boost-1.85.patch b/dev-db/mongodb/files/mongodb-4.4.29-boost-1.85.patch
new file mode 100644
index 000000000000..92831264b4e3
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-4.4.29-boost-1.85.patch
@@ -0,0 +1,146 @@
+https://bugs.gentoo.org/932251#c7
+--- a/src/mongo/db/initialize_server_global_state.cpp 2024-02-13 00:46:45.000000000 -0800
++++ b/src/mongo/db/initialize_server_global_state.cpp 2024-06-05 01:07:27.035053336 -0700
+@@ -34,7 +34,7 @@
+ #include "mongo/db/initialize_server_global_state.h"
+ #include "mongo/db/initialize_server_global_state_gen.h"
+
+-#include <boost/filesystem/operations.hpp>
++#include <boost/filesystem.hpp>
+ #include <fmt/format.h>
+ #include <iostream>
+ #include <memory>
+@@ -346,7 +346,7 @@
+ << "\" should name a file, not a directory.");
+ }
+
+- if (!serverGlobalParams.logAppend && boost::filesystem::is_regular(absoluteLogpath)) {
++ if (!serverGlobalParams.logAppend && boost::filesystem::is_regular_file(absoluteLogpath)) {
+ std::string renameTarget = absoluteLogpath + "." + terseCurrentTime(false);
+ boost::system::error_code ec;
+ boost::filesystem::rename(absoluteLogpath, renameTarget, ec);
+
+
+--- a/src/mongo/db/startup_warnings_mongod.cpp 2024-02-13 00:46:45.000000000 -0800
++++ b/src/mongo/db/startup_warnings_mongod.cpp 2024-06-05 01:09:36.740158960 -0700
+@@ -34,6 +34,7 @@
+ #include "mongo/db/startup_warnings_mongod.h"
+
+ #include <boost/filesystem/operations.hpp>
++#include <boost/filesystem/exception.hpp>
+ #include <fstream>
+ #ifndef _WIN32
+ #include <sys/resource.h>
+
+
+--- a/src/mongo/db/storage/storage_engine_lock_file_posix.cpp 2024-06-05 00:46:38.374648451 -0700
++++ b/src/mongo/db/storage/storage_engine_lock_file_posix.cpp 2024-06-05 00:47:33.178731500 -0700
+@@ -55,7 +55,7 @@
+ // if called without a fully qualified path it asserts; that makes mongoperf fail.
+ // so make a warning. need a better solution longer term.
+ // massert(40389, str::stream() << "Couldn't find parent dir for file: " << file.string(),);
+- if (!file.has_branch_path()) {
++ if (!file.has_parent_path()) {
+ LOGV2(22274,
+ "warning flushMyDirectory couldn't find parent dir for file: {file}",
+ "flushMyDirectory couldn't find parent dir for file",
+@@ -64,7 +64,7 @@
+ }
+
+
+- boost::filesystem::path dir = file.branch_path(); // parent_path in new boosts
++ boost::filesystem::path dir = file.parent_path(); // parent_path in new boosts
+
+ LOGV2_DEBUG(22275, 1, "flushing directory {dir_string}", "dir_string"_attr = dir.string());
+
+
+--- a/src/mongo/db/storage/storage_engine_metadata.cpp 2024-02-13 00:46:45.000000000 -0800
++++ b/src/mongo/db/storage/storage_engine_metadata.cpp 2024-06-05 01:26:46.904273382 -0700
+@@ -220,7 +220,7 @@
+ // if called without a fully qualified path it asserts; that makes mongoperf fail.
+ // so make a warning. need a better solution longer term.
+ // massert(13652, str::stream() << "Couldn't find parent dir for file: " << file.string(),);
+- if (!file.has_branch_path()) {
++ if (!file.has_parent_path()) {
+ LOGV2(22283,
+ "warning flushMyDirectory couldn't find parent dir for file: {file}",
+ "flushMyDirectory couldn't find parent dir for file",
+@@ -229,7 +229,7 @@
+ }
+
+
+- boost::filesystem::path dir = file.branch_path(); // parent_path in new boosts
++ boost::filesystem::path dir = file.parent_path(); // parent_path in new boosts
+
+ LOGV2_DEBUG(22284, 1, "flushing directory {dir_string}", "dir_string"_attr = dir.string());
+
+
+--- a/src/mongo/shell/shell_utils_launcher.cpp 2024-02-13 00:46:45.000000000 -0800
++++ b/src/mongo/shell/shell_utils_launcher.cpp 2024-06-05 01:29:45.140048809 -0700
+@@ -39,6 +39,7 @@
+ #include <boost/iostreams/stream.hpp>
+ #include <boost/iostreams/stream_buffer.hpp>
+ #include <boost/iostreams/tee.hpp>
++#include <boost/filesystem.hpp>
+ #include <cctype>
+ #include <fcntl.h>
+ #include <fmt/format.h>
+@@ -907,26 +908,26 @@
+ boost::filesystem::directory_iterator i(from);
+ while (i != end) {
+ boost::filesystem::path p = *i;
+- if (p.leaf() == "metrics.interim" || p.leaf() == "metrics.interim.temp") {
++ if (p.filename() == "metrics.interim" || p.filename() == "metrics.interim.temp") {
+ // Ignore any errors for metrics.interim* files as these may disappear during copy
+ boost::system::error_code ec;
+- boost::filesystem::copy_file(p, to / p.leaf(), ec);
++ boost::filesystem::copy_file(p, to / p.filename(), ec);
+ if (ec) {
+ LOGV2_INFO(22814,
+ "Skipping copying of file from '{from}' to "
+ "'{to}' due to: {error}",
+ "Skipping copying of file due to error"
+ "from"_attr = p.generic_string(),
+- "to"_attr = (to / p.leaf()).generic_string(),
++ "to"_attr = (to / p.filename()).generic_string(),
+ "error"_attr = ec.message());
+ }
+- } else if (p.leaf() != "mongod.lock" && p.leaf() != "WiredTiger.lock") {
++ } else if (p.filename() != "mongod.lock" && p.filename() != "WiredTiger.lock") {
+ if (boost::filesystem::is_directory(p)) {
+- boost::filesystem::path newDir = to / p.leaf();
++ boost::filesystem::path newDir = to / p.filename();
+ boost::filesystem::create_directory(newDir);
+ copyDir(p, newDir);
+ } else {
+- boost::filesystem::copy_file(p, to / p.leaf());
++ boost::filesystem::copy_file(p, to / p.filename());
+ }
+ }
+ ++i;
+
+
+--- a/src/mongo/scripting/engine.cpp 2024-02-13 00:46:45.000000000 -0800
++++ b/src/mongo/scripting/engine.cpp 2024-06-05 00:59:57.488909335 -0700
+@@ -34,6 +34,7 @@
+ #include "mongo/scripting/engine.h"
+
+ #include <boost/filesystem/operations.hpp>
++#include <boost/filesystem/directory.hpp>
+ #include <cctype>
+
+ #include "mongo/client/dbclient_base.h"
+
+
+--- a/src/mongo/shell/shell_utils_launcher.h 2024-02-13 00:46:45.000000000 -0800
++++ b/src/mongo/shell/shell_utils_launcher.h 2024-06-05 01:04:44.286162623 -0700
+@@ -29,7 +29,7 @@
+
+ #pragma once
+
+-#include <boost/filesystem/convenience.hpp>
++#include <boost/filesystem/path.hpp>
+ #include <map>
+ #include <sstream>
+ #include <string>
+
diff --git a/dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch b/dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch
new file mode 100644
index 000000000000..bbcbe34fe6f3
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-4.4.29-no-enterprise.patch
@@ -0,0 +1,24 @@
+ buildscripts/moduleconfig.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/buildscripts/moduleconfig.py b/buildscripts/moduleconfig.py
+index b4d0bba0490..03541fab940 100644
+--- a/buildscripts/moduleconfig.py
++++ b/buildscripts/moduleconfig.py
+@@ -27,7 +27,6 @@ MongoDB SConscript files do.
+ __all__ = ('discover_modules', 'discover_module_directories', 'configure_modules',
+ 'register_module_test') # pylint: disable=undefined-all-variable
+
+-import imp
+ import inspect
+ import os
+
+@@ -71,8 +70,6 @@ def discover_modules(module_root, allowed_modules):
+ print("adding module: %s" % (name))
+ fp = open(build_py, "r")
+ try:
+- module = imp.load_module("module_" + name, fp, build_py,
+- (".py", "r", imp.PY_SOURCE))
+ if getattr(module, "name", None) is None:
+ module.name = name
+ found_modules.append(module)
diff --git a/dev-db/mongodb/files/mongodb-4.4.8-gcc-13.patch b/dev-db/mongodb/files/mongodb-4.4.8-gcc-13.patch
deleted file mode 100644
index 00b82aca94fc..000000000000
--- a/dev-db/mongodb/files/mongodb-4.4.8-gcc-13.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://cgit.openembedded.org/meta-openembedded-contrib/commit/?id=856c21b061e000640829e158b9bb9e978a974386
-
-From 5d8218b8a1b5bc71e2a0cf543a000e194daba599 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 29 Jan 2023 17:15:30 -0800
-Subject: [PATCH] free_mon: Include missing <cstdint>
-
-gcc 13 moved some includes around and as a result <cstdint> is no
-longer transitively included [1]. Explicitly include it
-for uintXX_t.
-
-[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/src/mongo/db/free_mon/free_mon_options.h
-+++ b/src/mongo/db/free_mon/free_mon_options.h
-@@ -29,6 +29,7 @@
-
- #pragma once
-
-+#include <cstdint>
- #include <string>
- #include <vector>
-
-
diff --git a/dev-db/mongodb/files/mongodb-5.0.26-boost-1.85.patch b/dev-db/mongodb/files/mongodb-5.0.26-boost-1.85.patch
new file mode 100644
index 000000000000..71da50fe21eb
--- /dev/null
+++ b/dev-db/mongodb/files/mongodb-5.0.26-boost-1.85.patch
@@ -0,0 +1,139 @@
+https://bugs.gentoo.org/932251
+https://github.com/mongodb/mongo/commit/f8e4be7f6da71f978b2aa9991febb4c7ad89c903#diff-010644a9158d28e5745762753c7ce454444c9fb9ab4c684e9f2fdcff50c6f539
+https://bugs.gentoo.org/932251#c3
+
+--- a/src/mongo/db/initialize_server_global_state.cpp
++++ b/src/mongo/db/initialize_server_global_state.cpp
+@@ -34,7 +34,7 @@
+ #include "mongo/db/initialize_server_global_state.h"
+ #include "mongo/db/initialize_server_global_state_gen.h"
+
+-#include <boost/filesystem/operations.hpp>
++#include <boost/filesystem.hpp>
+ #include <fmt/format.h>
+ #include <iostream>
+ #include <memory>
+@@ -328,7 +328,7 @@
+ << "\" should name a file, not a directory.");
+ }
+
+- if (!serverGlobalParams.logAppend && boost::filesystem::is_regular(absoluteLogpath)) {
++ if (!serverGlobalParams.logAppend && boost::filesystem::is_regular_file(absoluteLogpath)) {
+ std::string renameTarget = absoluteLogpath + "." + terseCurrentTimeForFilename();
+ boost::system::error_code ec;
+ boost::filesystem::rename(absoluteLogpath, renameTarget, ec);
+--- a/src/mongo/db/startup_warnings_mongod.cpp
++++ b/src/mongo/db/startup_warnings_mongod.cpp
+@@ -34,6 +34,7 @@
+ #include "mongo/db/startup_warnings_mongod.h"
+
+ #include <boost/filesystem/operations.hpp>
++#include <boost/filesystem/exception.hpp>
+ #include <fstream>
+ #ifndef _WIN32
+ #include <sys/resource.h>
+--- a/src/mongo/db/storage/storage_engine_lock_file_posix.cpp
++++ b/src/mongo/db/storage/storage_engine_lock_file_posix.cpp
+@@ -55,7 +55,7 @@
+ // if called without a fully qualified path it asserts; that makes mongoperf fail.
+ // so make a warning. need a better solution longer term.
+ // massert(40389, str::stream() << "Couldn't find parent dir for file: " << file.string(),);
+- if (!file.has_branch_path()) {
++ if (!file.has_parent_path()) {
+ LOGV2(22274,
+ "warning flushMyDirectory couldn't find parent dir for file: {file}",
+ "flushMyDirectory couldn't find parent dir for file",
+@@ -64,7 +64,7 @@
+ }
+
+
+- boost::filesystem::path dir = file.branch_path(); // parent_path in new boosts
++ boost::filesystem::path dir = file.parent_path(); // parent_path in new boosts
+
+ LOGV2_DEBUG(22275, 1, "flushing directory {dir_string}", "dir_string"_attr = dir.string());
+
+--- a/src/mongo/db/storage/storage_engine_metadata.cpp
++++ b/src/mongo/db/storage/storage_engine_metadata.cpp
+@@ -220,7 +220,7 @@
+ // if called without a fully qualified path it asserts; that makes mongoperf fail.
+ // so make a warning. need a better solution longer term.
+ // massert(13652, str::stream() << "Couldn't find parent dir for file: " << file.string(),);
+- if (!file.has_branch_path()) {
++ if (!file.has_parent_path()) {
+ LOGV2(22283,
+ "warning flushMyDirectory couldn't find parent dir for file: {file}",
+ "flushMyDirectory couldn't find parent dir for file",
+@@ -229,7 +229,7 @@
+ }
+
+
+- boost::filesystem::path dir = file.branch_path(); // parent_path in new boosts
++ boost::filesystem::path dir = file.parent_path(); // parent_path in new boosts
+
+ LOGV2_DEBUG(22284, 1, "flushing directory {dir_string}", "dir_string"_attr = dir.string());
+
+--- a/src/mongo/scripting/engine.cpp
++++ b/src/mongo/scripting/engine.cpp
+@@ -35,6 +35,7 @@
+
+ #include <algorithm>
+ #include <boost/filesystem/operations.hpp>
++#include <boost/filesystem/directory.hpp>
+
+ #include "mongo/base/string_data.h"
+ #include "mongo/client/dbclient_base.h"
+--- a/src/mongo/shell/shell_utils_launcher.cpp
++++ b/src/mongo/shell/shell_utils_launcher.cpp
+@@ -39,6 +39,7 @@
+ #include <boost/iostreams/stream.hpp>
+ #include <boost/iostreams/stream_buffer.hpp>
+ #include <boost/iostreams/tee.hpp>
++#include <boost/filesystem.hpp>
+ #include <fcntl.h>
+ #include <fmt/format.h>
+ #include <iostream>
+@@ -947,26 +948,26 @@
+ boost::filesystem::directory_iterator i(from);
+ while (i != end) {
+ boost::filesystem::path p = *i;
+- if (p.leaf() == "metrics.interim" || p.leaf() == "metrics.interim.temp") {
++ if (p.filename() == "metrics.interim" || p.filename() == "metrics.interim.temp") {
+ // Ignore any errors for metrics.interim* files as these may disappear during copy
+ boost::system::error_code ec;
+- boost::filesystem::copy_file(p, to / p.leaf(), ec);
++ boost::filesystem::copy_file(p, to / p.filename(), ec);
+ if (ec) {
+ LOGV2_INFO(22814,
+ "Skipping copying of file from '{from}' to "
+ "'{to}' due to: {error}",
+ "Skipping copying of file due to error"
+ "from"_attr = p.generic_string(),
+- "to"_attr = (to / p.leaf()).generic_string(),
++ "to"_attr = (to / p.filename()).generic_string(),
+ "error"_attr = ec.message());
+ }
+- } else if (p.leaf() != "mongod.lock" && p.leaf() != "WiredTiger.lock") {
++ } else if (p.filename() != "mongod.lock" && p.filename() != "WiredTiger.lock") {
+ if (boost::filesystem::is_directory(p)) {
+- boost::filesystem::path newDir = to / p.leaf();
++ boost::filesystem::path newDir = to / p.filename();
+ boost::filesystem::create_directory(newDir);
+ copyDir(p, newDir);
+ } else {
+- boost::filesystem::copy_file(p, to / p.leaf());
++ boost::filesystem::copy_file(p, to / p.filename());
+ }
+ }
+ ++i;
+--- a/src/mongo/shell/shell_utils_launcher.h
++++ b/src/mongo/shell/shell_utils_launcher.h
+@@ -29,7 +29,7 @@
+
+ #pragma once
+
+-#include <boost/filesystem/convenience.hpp>
++#include <boost/filesystem/path.hpp>
+ #include <map>
+ #include <sstream>
+ #include <string>
+
diff --git a/dev-db/mongodb/metadata.xml b/dev-db/mongodb/metadata.xml
index f8c3c65fba50..1f55f5a2d2d2 100644
--- a/dev-db/mongodb/metadata.xml
+++ b/dev-db/mongodb/metadata.xml
@@ -17,4 +17,7 @@
<flag name="mongosh">Install the MongoDB shell from <pkg>app-admin/mongosh-bin</pkg></flag>
<flag name="tools">Install the MongoDB tools (mongoimport, mongodump...) from <pkg>app-admin/mongo-tools</pkg></flag>
</use>
+ <upstream>
+ <remote-id type="github">mongodb/mongo</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-db/mongodb/mongodb-4.4.20.ebuild b/dev-db/mongodb/mongodb-4.4.29.ebuild
index 12cef7fbaaa0..7c004e0b2b0a 100644
--- a/dev-db/mongodb/mongodb-4.4.20.ebuild
+++ b/dev-db/mongodb/mongodb-4.4.29.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
SCONS_MIN_VERSION="3.3.1"
CHECKREQS_DISK_BUILD="2400M"
@@ -12,15 +12,16 @@ CHECKREQS_MEMORY="1024M"
inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
-MY_P=${PN}-src-r${PV/_rc/-rc}
+MY_PV=r${PV/_rc/-rc}
+MY_P=mongo-${MY_PV}
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
HOMEPAGE="https://www.mongodb.com"
-SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
-
+SRC_URI="https://github.com/mongodb/mongo/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
LICENSE="Apache-2.0 SSPL-1"
SLOT="0"
-KEYWORDS="amd64 ~arm64 -riscv"
+KEYWORDS="~amd64 ~arm64 -riscv"
IUSE="debug kerberos ssl test +tools"
RESTRICT="!test? ( test )"
@@ -32,7 +33,7 @@ RDEPEND="acct-group/mongodb
>=dev-libs/libpcre-8.42[cxx]
app-arch/zstd:=
dev-libs/snowball-stemmer:=
- net-libs/libpcap
+ net-misc/curl
>=sys-libs/zlib-1.2.11:=
kerberos? ( dev-libs/cyrus-sasl[kerberos] )
ssl? (
@@ -62,21 +63,19 @@ PATCHES=(
"${FILESDIR}/${PN}-4.4.10-boost-1.79.patch"
"${FILESDIR}/${PN}-4.4.10-no-force-lld.patch"
"${FILESDIR}/${PN}-4.4.10-boost-1.81.patch"
- "${FILESDIR}/${PN}-4.4.8-gcc-13.patch"
+ "${FILESDIR}/${P}-no-enterprise.patch"
+ "${FILESDIR}/${PN}-4.4.29-boost-1.85.patch"
)
-S="${WORKDIR}/${MY_P}"
-
python_check_deps() {
if use test; then
python_has_version "dev-python/pymongo[${PYTHON_USEDEP}]" || return 1
python_has_version "dev-python/requests[${PYTHON_USEDEP}]" || return 1
fi
-
- python_has_version ">=dev-build/scons-3.1.1[${PYTHON_USEDEP}]" &&
- python_has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
- python_has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
- python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ python_has_version -b ">=dev-build/scons-3.1.1[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/psutil[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pyyaml[${PYTHON_USEDEP}]"
}
pkg_pretend() {
@@ -105,10 +104,17 @@ src_configure() {
# https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
# --use-system-icu fails tests
# --use-system-tcmalloc is strongly NOT recommended:
+ # for MONGO_GIT_HASH use GitOrigin-RevId from the commit of the tag
scons_opts=(
AR="$(tc-getAR)"
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
+ CCFLAGS="${CXXFLAGS}"
+
+ VERBOSE=1
+ VARIANT_DIR=gentoo
+ MONGO_VERSION="${PV}"
+ MONGO_GIT_HASH="f4dda329a99811c707eb06d05ad023599f9be263"
--disable-warnings-as-errors
--use-system-boost
@@ -172,11 +178,8 @@ src_install() {
# see bug #526114
pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
- local x
- for x in /var/{lib,log}/${PN}; do
- diropts -m0750 -o mongodb -g mongodb
- keepdir "${x}"
- done
+ diropts -m0750 -o mongodb -g mongodb
+ keepdir /var/log/${PN}
}
pkg_postinst() {
diff --git a/dev-db/mongodb/mongodb-5.0.16-r1.ebuild b/dev-db/mongodb/mongodb-5.0.26.ebuild
index 239cdc96c99c..efb618e4f155 100644
--- a/dev-db/mongodb/mongodb-5.0.16-r1.ebuild
+++ b/dev-db/mongodb/mongodb-5.0.26.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
SCONS_MIN_VERSION="3.3.1"
CHECKREQS_DISK_BUILD="2400M"
@@ -12,11 +12,13 @@ CHECKREQS_MEMORY="1024M"
inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
-MY_P=${PN}-src-r${PV/_rc/-rc}
+MY_PV=r${PV/_rc/-rc}
+MY_P=mongo-${MY_PV}
DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
HOMEPAGE="https://www.mongodb.com"
-SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
+SRC_URI="https://github.com/mongodb/mongo/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${MY_P}"
LICENSE="Apache-2.0 SSPL-1"
SLOT="0"
@@ -30,14 +32,13 @@ RESTRICT="test"
RDEPEND="acct-group/mongodb
acct-user/mongodb
- >=app-arch/snappy-1.1.3:=
+ >=app-arch/snappy-1.1.7:=
>=dev-cpp/yaml-cpp-0.6.2:=
dev-libs/boost:=[nls]
>=dev-libs/libpcre-8.42[cxx]
app-arch/zstd:=
dev-libs/snowball-stemmer:=
- net-libs/libpcap
- >=sys-libs/zlib-1.2.11:=
+ >=sys-libs/zlib-1.2.12:=
kerberos? ( dev-libs/cyrus-sasl[kerberos] )
ssl? (
>=dev-libs/openssl-1.0.1g:0=
@@ -71,17 +72,16 @@ PATCHES=(
"${FILESDIR}/${PN}-5.0.5-no-force-lld.patch"
"${FILESDIR}/${PN}-4.4.10-boost-1.81.patch"
"${FILESDIR}/${PN}-5.0.5-boost-1.81-extra.patch"
- "${FILESDIR}/${PN}-4.4.8-gcc-13.patch"
"${FILESDIR}/${PN}-5.0.16-arm64-assert.patch"
+ "${FILESDIR}/${PN}-4.4.29-no-enterprise.patch"
+ "${FILESDIR}/${PN}-5.0.26-boost-1.85.patch"
)
-S="${WORKDIR}/${MY_P}"
-
python_check_deps() {
- python_has_version ">=dev-build/scons-3.1.1[${PYTHON_USEDEP}]" &&
- python_has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
- python_has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
- python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ python_has_version -b ">=dev-build/scons-3.1.1[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/psutil[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pyyaml[${PYTHON_USEDEP}]"
}
pkg_pretend() {
@@ -89,7 +89,7 @@ pkg_pretend() {
if use amd64 && ! use cpu_flags_x86_avx; then
ewarn "MongoDB 5.0 requires use of the AVX instruction set."
ewarn "This ebuild will use --experimental-optimization=-sandybridge which"
- ewarn "will result in an experimental build of MongoDB as per upstream."
+ ewarn "will result in an experimental build of MongoDB as per upstream."
ewarn "https://docs.mongodb.com/v5.0/administration/production-notes/"
fi
@@ -118,13 +118,20 @@ src_configure() {
# https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
# --use-system-icu fails tests
# --use-system-tcmalloc is strongly NOT recommended:
+ # for MONGO_GIT_HASH use GitOrigin-RevId from the commit of the tag
scons_opts=(
AR="$(tc-getAR)"
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
+ CCFLAGS="${CXXFLAGS}"
+
+ VERBOSE=1
+ VARIANT_DIR=gentoo
+ MONGO_VERSION="${PV}"
+ MONGO_GIT_HASH="0b4f1ea980b5380a66425a90b414106a191365f4"
--disable-warnings-as-errors
- --force-jobs
+ --force-jobs # Reapply #906897, fix #935274
--jobs="$(makeopts_jobs)"
--use-system-boost
--use-system-pcre
@@ -136,9 +143,9 @@ src_configure() {
)
use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300
+ use amd64 && scons_opts+=( --experimental-optimization=-sandybridge ) # Bug 890294
use debug && scons_opts+=( --dbg=on )
use kerberos && scons_opts+=( --use-sasl-client )
- use amd64 && ! use cpu_flags_x86_avx && scons_opts+=( --experimental-optimization=-sandybridge ) # Bug 890294
scons_opts+=( --ssl=$(usex ssl on off) )
@@ -146,6 +153,13 @@ src_configure() {
# Gentoo's toolchain applies these anyway
scons_opts+=( --runtime-hardening=off )
+ # gold is an option here but we don't really do that anymore
+ if tc-ld-is-lld; then
+ scons_opts+=( --linker=lld )
+ else
+ scons_opts+=( --linker=bfd )
+ fi
+
# respect mongoDB upstream's basic recommendations
# see bug #536688 and #526114
if ! use debug; then
@@ -183,11 +197,8 @@ src_install() {
# see bug #526114
pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
- local x
- for x in /var/{lib,log}/${PN}; do
- diropts -m0750 -o mongodb -g mongodb
- keepdir "${x}"
- done
+ diropts -m0750 -o mongodb -g mongodb
+ keepdir /var/log/${PN}
}
pkg_postinst() {
diff --git a/dev-db/mycli/Manifest b/dev-db/mycli/Manifest
index de5904294910..ffedc59bb7eb 100644
--- a/dev-db/mycli/Manifest
+++ b/dev-db/mycli/Manifest
@@ -1 +1 @@
-DIST mycli-1.27.0.gh.tar.gz 285739 BLAKE2B 9b3ba8b98289721774d7bf06465402440d70772ee4f456f1a14a02a0f0cf90e6c4e6fe2abe36436ea051042bed208868dc469e9ef7c4499a9fdacd519b119199 SHA512 ae6fa9ed9151a39988ea64c5d551a68c92014cbaae4ec6695a727cd008882298d3373d1992768eff0781e881738f72f00dfe4756196c0ba82009758b1ea16b51
+DIST mycli-1.27.2.gh.tar.gz 286537 BLAKE2B 7bff978f9a08561c33f5327f13b8b69226e5c735527a607190a3c5d75f091b9f76b8d432e7a3e315ff250995e0baea7f7e0bede17e0b1cc6654939b7ec82b0ae SHA512 fdf0342b0e850b5232c815e73f44f22c7ea162201588681ccf2f4107b84b87f01fff3999a9720fef454239192356f074f47642ddc760af18973a2aaaac4676cd
diff --git a/dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch b/dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch
deleted file mode 100644
index 7c802a803337..000000000000
--- a/dev-db/mycli/files/mycli-1.21.1-fix-test-install.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/setup.py 2020-04-19 16:15:15.000000000 -0400
-+++ b/setup.py 2020-07-07 13:56:25.181039348 -0400
-@@ -85,7 +85,7 @@
- author_email='mycli-dev@googlegroups.com',
- version=version,
- url='http://mycli.net',
-- packages=find_packages(),
-+ packages=find_packages(exclude=["*.test","*.test.*","test.*","test"]),
- package_data={'mycli': ['myclirc', 'AUTHORS', 'SPONSORS']},
- description=description,
- long_description=description,
diff --git a/dev-db/mycli/mycli-1.27.0.ebuild b/dev-db/mycli/mycli-1.27.2.ebuild
index 6e6fd4275fc0..445b7b84997e 100644
--- a/dev-db/mycli/mycli-1.27.0.ebuild
+++ b/dev-db/mycli/mycli-1.27.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -39,9 +39,8 @@ RDEPEND="
>=dev-python/pyperclip-1.8.1[${PYTHON_USEDEP}]
>=dev-python/sqlglot-5.1.3[${PYTHON_USEDEP}]
>=dev-python/sqlparse-0.3.0[${PYTHON_USEDEP}]
- <dev-python/sqlparse-0.5.0[${PYTHON_USEDEP}]
- ssh? ( dev-python/paramiko[${PYTHON_USEDEP}] )'
- )
+ ssh? ( dev-python/paramiko[${PYTHON_USEDEP}] )
+ ')
"
BDEPEND="
test? (
@@ -52,9 +51,6 @@ BDEPEND="
"
EPYTEST_DESELECT=(
- # Fails after a seemingly benign change in sqlparse 0.4.3
- # https://github.com/dbcli/mycli/issues/1103
- "test/test_smart_completion_public_schema_only.py::test_auto_escaped_col_names"
# Requires a running mysql daemon
"test/test_main.py::test_batch"
"test/test_main.py::test_execute"
@@ -71,12 +67,10 @@ EPYTEST_IGNORE=(
distutils_enable_tests pytest
-PATCHES=( "${FILESDIR}/mycli-1.21.1-fix-test-install.patch" )
-
src_prepare() {
default
- # Remove unnecessary pin, we have paramiko 3.2.0.
- # https://github.com/dbcli/mycli/commit/eaddc5ca3e208d66fd4f400b90eb76089dd35e4c
- sed -i -e 's:==:>=:' setup.py || die
+ # Relax sqlparse requirement, 0.5.0 didn't have major API changes that would necessitate this restriction.
+ # bug #930690
+ sed -i -e '/sqlparse/ s/,<0.5.0//' setup.py || die
}
diff --git a/dev-db/mydumper/Manifest b/dev-db/mydumper/Manifest
index 800df8c84dc6..d5631d1e7320 100644
--- a/dev-db/mydumper/Manifest
+++ b/dev-db/mydumper/Manifest
@@ -1,2 +1,2 @@
DIST mydumper-0.14.5-2.tar.gz 177402 BLAKE2B bcd2658e1d8e452803608f27ed1b2ccc6fe428fcb44117f88a5cb0e6de1536f89c1f0768020da2d954a95cc20fe1315af8a38f477aee7c394540fbb4f001ac8d SHA512 d19c22fb3932f7428f560dcd7cdafc92e035f924ee35320048eca2067e75a297a44aaf08c6f124ef55c604c34311be2eeb0858c6d41be5ea73a68c8c0afa66ab
-DIST mydumper-0.15.1-3.tar.gz 165488 BLAKE2B 696a725528ad4e32ef6a53f29770a74ecadf55640421f744e49d033c2107050d35950fbd407d0d755159c05c662c92d0cb95e21b8595f43dcd2a95cc324194be SHA512 5e62ca872d3bd763a0a2782413fc90875e5b8159a3861eb2c3ec4c8d6ddb9bb6b33998cafdcdc4c014915b436ee89fde1674de0f90c7bec09f0474a7c76bc62d
+DIST mydumper-0.15.2-8.tar.gz 186389 BLAKE2B 84e08fa6460a156771f598a8a0c98c79089490f9f2fe3b90fa49efd519e2270468fe86287bab03612006489a3a1d5ab2442e76cc0f4825c8df95acec30a1c4ba SHA512 f6ca5c5756944bd2704e8a25432db1fbe14ed2a1e88b549c0799c3e0c251e524523ed39797b0b2c15c9d65c0e6e5ce3d93a60a17c77090732a8f909ab24a0126
diff --git a/dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch b/dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch
new file mode 100644
index 000000000000..fe5fc15378d8
--- /dev/null
+++ b/dev-db/mydumper/files/mydumper-0.14-Do-not-overwrite-the-user-CFLAGS.patch
@@ -0,0 +1,29 @@
+From a7630737a37c11478de265e69605befa89b910b4 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz93@gmail.com>
+Date: Sun, 10 Mar 2024 21:12:29 -0400
+Subject: [PATCH] Do not overwrite the user CFLAGS
+
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 088811c..c051a31 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,10 +35,10 @@ if (WITH_ZSTD)
+ endif (WITH_ZSTD)
+
+ if (WITH_ZSTD)
+- set(CMAKE_C_FLAGS "-Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -g -DZWRAP_USE_ZSTD=1 -Werror -Wno-discarded-qualifiers ${MYSQL_CFLAGS}")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wextra -Wshadow -DZWRAP_USE_ZSTD=1 -Wno-discarded-qualifiers ${MYSQL_CFLAGS}")
+ include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} ${ZSTD_INCLUDE_DIR} )
+ else (WITH_ZSTD)
+- set(CMAKE_C_FLAGS "-Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -g -Werror ${MYSQL_CFLAGS}")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wextra -Wshadow ${MYSQL_CFLAGS}")
+ include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} )
+ endif (WITH_ZSTD)
+
+--
+2.43.2
+
diff --git a/dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch b/dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch
new file mode 100644
index 000000000000..5d6ba09a4df4
--- /dev/null
+++ b/dev-db/mydumper/files/mydumper-0.15-Do-not-overwrite-the-user-CFLAGS.patch
@@ -0,0 +1,25 @@
+From 925d052aa05cf7d97fe474d7cf64b8491ced68ae Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz93@gmail.com>
+Date: Sun, 10 Mar 2024 21:17:16 -0400
+Subject: [PATCH] Do not overwrite the user CFLAGS
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1fbf228..7741aa9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,7 +39,7 @@ if (MARIADB_FOUND AND NOT MARIADB_SSL AND WITH_SSL)
+ set(WITH_SSL OFF)
+ endif()
+
+-set(CMAKE_C_FLAGS "-std=gnu99 -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wno-strict-aliasing -Wextra -Wshadow -g -Werror ${MYSQL_CFLAGS}")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wno-deprecated-declarations -Wunused -Wwrite-strings -Wextra -Wshadow ${MYSQL_CFLAGS}")
+ include_directories(${MYDUMPER_SOURCE_DIR} ${MYSQL_INCLUDE_DIR} ${GLIB2_INCLUDE_DIR} ${PCRE_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS} )
+
+ OPTION(WITH_ASAN "Build with ASAN" OFF)
+--
+2.43.2
+
diff --git a/dev-db/mydumper/files/mydumper-0.15-fix-call-to-open.patch b/dev-db/mydumper/files/mydumper-0.15-fix-call-to-open.patch
new file mode 100644
index 000000000000..46c7f6aea8c5
--- /dev/null
+++ b/dev-db/mydumper/files/mydumper-0.15-fix-call-to-open.patch
@@ -0,0 +1,42 @@
+From https://github.com/mydumper/mydumper/pull/1557
+From: Brahmajit Das <brahmajit.xyz@gmail.com>
+Date: Sun, 7 Jul 2024 20:40:30 +0000
+Subject: [PATCH] Fix building on musl libc
+
+On musl libc we are getting buid errors:
+mydumper/src/mydumper_stream.c:100:9: error: implicit declaration of function 'open'; did you mean 'popen'? [-Wimplicit-
+function-declaration]
+ 100 | f=open(sf->filename,O_RDONLY);
+ | ^~~~
+ | popen
+mydumper/src/mydumper_stream.c:100:27: error: 'O_RDONLY' undeclared (first use in this function)
+ 100 | f=open(sf->filename,O_RDONLY);
+ | ^~~~~~~~
+This probably due to musl being more strict. Fix was to include the
+fcntl.h header file as the Linux Manual Page suggests open should come
+from fcntl.h
+
+First reported on Gentoo Linux with musl profile
+
+Bug: https://bugs.gentoo.org/935389
+Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com>
+--- a/src/mydumper_common.c
++++ b/src/mydumper_common.c
+@@ -20,6 +20,7 @@
+ */
+ #include "string.h"
+ #include <stdlib.h>
++#include <fcntl.h>
+ #include <mysql.h>
+ #include <glib.h>
+ #include <glib/gstdio.h>
+--- a/src/mydumper_stream.c
++++ b/src/mydumper_stream.c
+@@ -26,6 +26,7 @@
+ #include "mydumper_stream.h"
+ #include <sys/file.h>
+ #include <errno.h>
++#include <fcntl.h>
+
+ extern GAsyncQueue *stream_queue;
+
diff --git a/dev-db/mydumper/metadata.xml b/dev-db/mydumper/metadata.xml
index 7c00b95bef1c..23e34fafb893 100644
--- a/dev-db/mydumper/metadata.xml
+++ b/dev-db/mydumper/metadata.xml
@@ -10,6 +10,6 @@
<name>Proxy Maintainers</name>
</maintainer>
<upstream>
- <remote-id type="github">maxbube/mydumper</remote-id>
+ <remote-id type="github">mydumper/mydumper</remote-id>
</upstream>
</pkgmetadata>
diff --git a/dev-db/mydumper/mydumper-0.14.5.2.ebuild b/dev-db/mydumper/mydumper-0.14.5.2.ebuild
index 8777ec59b286..44adc19c83dd 100644
--- a/dev-db/mydumper/mydumper-0.14.5.2.ebuild
+++ b/dev-db/mydumper/mydumper-0.14.5.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit cmake
+inherit cmake flag-o-matic
MY_PV="$(ver_rs 3 -)"
MY_P="${PN}-${MY_PV}"
@@ -30,12 +30,11 @@ BDEPEND="virtual/pkgconfig
PATCHES=(
"${FILESDIR}/${PN}-0.13.1-atomic.patch" #654314
+
+ "${FILESDIR}"/${PN}-0.14-Do-not-overwrite-the-user-CFLAGS.patch
)
src_prepare() {
- # respect user cflags; do not expand ${CMAKE_C_FLAGS} (!)
- sed -i -e 's|-O3 -g -Werror|${CMAKE_C_FLAGS}|' CMakeLists.txt || die
-
# fix doc install path
sed -i -e "s|share/doc/mydumper|share/doc/${PF}|" docs/CMakeLists.txt || die
@@ -43,6 +42,13 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855239
+ #
+ # Fixed upstream in git master:
+ # https://github.com/mydumper/mydumper/pull/1413
+ filter-lto
+
local mycmakeargs=(-DBUILD_DOCS=$(usex doc))
cmake_src_configure
diff --git a/dev-db/mydumper/mydumper-0.15.2.8-r1.ebuild b/dev-db/mydumper/mydumper-0.15.2.8-r1.ebuild
new file mode 100644
index 000000000000..388b59989451
--- /dev/null
+++ b/dev-db/mydumper/mydumper-0.15.2.8-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+MY_PV="$(ver_rs 3 -)"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="A high-performance multi-threaded backup (and restore) toolset for MySQL"
+HOMEPAGE="https://github.com/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"
+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/sphinx )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.13.1-atomic.patch" #654314
+
+ "${FILESDIR}"/${PN}-0.15-Do-not-overwrite-the-user-CFLAGS.patch
+
+ "${FILESDIR}"/${PN}-0.15-fix-call-to-open.patch
+)
+
+src_prepare() {
+ # fix doc install path
+ sed -i -e "s|share/doc/mydumper|share/doc/${PF}|" docs/CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855239
+ #
+ # Fixed upstream in git master:
+ # https://github.com/mydumper/mydumper/pull/1413
+ filter-lto
+
+ local mycmakeargs=(-DBUILD_DOCS=$(usex doc))
+
+ cmake_src_configure
+}
diff --git a/dev-db/mydumper/mydumper-0.15.1.3.ebuild b/dev-db/mydumper/mydumper-0.15.2.8.ebuild
index 10f1909e2f79..3163f03bbf04 100644
--- a/dev-db/mydumper/mydumper-0.15.1.3.ebuild
+++ b/dev-db/mydumper/mydumper-0.15.2.8.ebuild
@@ -1,21 +1,21 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit cmake
+inherit cmake flag-o-matic
MY_PV="$(ver_rs 3 -)"
MY_P="${PN}-${MY_PV}"
DESCRIPTION="A high-performance multi-threaded backup (and restore) toolset for MySQL"
-HOMEPAGE="https://github.com/maxbube/mydumper"
-SRC_URI="https://github.com/maxbube/mydumper/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/mydumper/mydumper"
+SRC_URI="https://github.com/mydumper/mydumper/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
S="${WORKDIR}/${MY_P}"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="amd64 ~x86"
+KEYWORDS="~amd64 ~x86"
IUSE="doc"
RDEPEND="app-arch/zstd
@@ -30,12 +30,11 @@ BDEPEND="virtual/pkgconfig
PATCHES=(
"${FILESDIR}/${PN}-0.13.1-atomic.patch" #654314
+
+ "${FILESDIR}"/${PN}-0.15-Do-not-overwrite-the-user-CFLAGS.patch
)
src_prepare() {
- # respect user cflags; do not expand ${CMAKE_C_FLAGS} (!)
- sed -i -e 's|-g -Werror|${CMAKE_C_FLAGS}|' CMakeLists.txt || die
-
# fix doc install path
sed -i -e "s|share/doc/mydumper|share/doc/${PF}|" docs/CMakeLists.txt || die
@@ -43,6 +42,13 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855239
+ #
+ # Fixed upstream in git master:
+ # https://github.com/mydumper/mydumper/pull/1413
+ filter-lto
+
local mycmakeargs=(-DBUILD_DOCS=$(usex doc))
cmake_src_configure
diff --git a/dev-db/myodbc/Manifest b/dev-db/myodbc/Manifest
index 9aab17339b8a..36c1165fbe55 100644
--- a/dev-db/myodbc/Manifest
+++ b/dev-db/myodbc/Manifest
@@ -1 +1,2 @@
DIST mysql-connector-odbc-8.0.27-src.tar.gz 3849283 BLAKE2B 6a2500cdd706c0f8cda83dd04d3e573baa0bfbad59c931e20bb25a3f09dd78d2380079d0a20e075c3f44482d58acb6e727f4cbcf490e9d4d7817dd26f98061ee SHA512 4f907b7647425c274d3bd1c3b3ebbb83ac2360f2ee56733dabb501c17b800a26ef1117e16e5b05180ff904bfc642d25393baa861b96a79edf9d35f186a8689b2
+DIST mysql-connector-odbc-8.0.32-src.tar.gz 3845574 BLAKE2B 84adca951149739b79c60ee89416d2e638c5a5880feaed69afbd9de3a671ce505bad04303ccab9f13410f83e8827d9e3ee658b9e1241e66243d3424ac525525b SHA512 8011b131657e214de3f33407893ff990e2238e79a5d0ef76a64797c6f160f0895ed819e81c04054b3b4d439fc0db85c4813c713401db28092a9f6da16f24fb34
diff --git a/dev-db/myodbc/files/myodbc-8.0.32-include-string.patch b/dev-db/myodbc/files/myodbc-8.0.32-include-string.patch
new file mode 100644
index 000000000000..6bf31e1a53eb
--- /dev/null
+++ b/dev-db/myodbc/files/myodbc-8.0.32-include-string.patch
@@ -0,0 +1,14 @@
+# Gentoo Bug: https://bugs.gentoo.org/919501
+
+diff --git a/dltest/dltest.c b/dltest/dltest.c
+index d3b9360..3fb354b 100644
+--- a/dltest/dltest.c
++++ b/dltest/dltest.c
+@@ -28,6 +28,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+
+ #ifdef WIN32
+ #include <windows.h>
diff --git a/dev-db/myodbc/myodbc-8.0.32.ebuild b/dev-db/myodbc/myodbc-8.0.32.ebuild
new file mode 100644
index 000000000000..942a50b491f7
--- /dev/null
+++ b/dev-db/myodbc/myodbc-8.0.32.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib
+
+MAJOR="$(ver_cut 1-2)"
+MY_PN="mysql-connector-odbc"
+MY_P="${MY_PN}-${PV/_p/r}-src"
+
+DESCRIPTION="ODBC driver for MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/connector/odbc/"
+SRC_URI="https://dev.mysql.com/get/Downloads/Connector-ODBC/${MAJOR}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="${MAJOR}"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+RDEPEND="
+ dev-db/unixODBC[${MULTILIB_USEDEP}]
+ >=dev-db/mysql-connector-c-8.0:0=[${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+# Careful!
+DRIVER_NAME="${PN}-${SLOT}"
+
+PATCHES=(
+ # Patch document path so it doesn't install files to /usr
+ "${FILESDIR}/${MAJOR}-cmake-doc-path.patch"
+ "${FILESDIR}/${PN}-8.0.19-cxxlinkage.patch"
+ "${FILESDIR}/${PN}-8.0.32-include-string.patch"
+)
+
+src_prepare() {
+ # Remove tests
+ sed -i -e "s/ADD_SUBDIRECTORY(test)//" \
+ "${S}/CMakeLists.txt" || die
+
+ cmake_src_prepare
+}
+
+multilib_src_configure() {
+ CMAKE_BUILD_TYPE="RelWithDebInfo"
+
+ mycmakeargs+=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DMYSQLCLIENT_STATIC_LINKING=OFF
+ -DMYSQL_CXX_LINKAGE=YES
+ -DWITH_UNIXODBC=YES
+ -DWITH_DOCUMENTATION_INSTALL_PATH="${EPREFIX}"/usr/share/doc/${PF}
+ -DLIB_SUBDIR="$(get_libdir)/${PN}-${MAJOR}"
+ -DMYSQLCLIENT_NO_THREADS=ON
+ -DDISABLE_GUI=ON
+ # Don't build "libmysql_strings.so" and "libmysql_sys.so" which are only
+ # used internally
+ -DBUILD_SHARED_LIBS=OFF
+ # The NUMA and LIBWRAP options are not really used.
+ # They are just copied from the server code
+ -DWITH_NUMA=OFF
+ -DWITH_LIBWRAP=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_install_all() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ rm -rf "${ED}"/usr/test || die
+
+ dodir /usr/share/${PN}-${SLOT}
+ for i in odbc.ini odbcinst.ini; do
+ einfo "Building $i"
+ sed \
+ -e "s,__PN__,${DRIVER_NAME},g" \
+ -e "s,__PF__,${MAJOR},g" \
+ -e "s,lib/libmyodbc3.so,$(get_libdir)/${PN}-${MAJOR}/libmyodbc${SLOT:0:1}a.so,g" \
+ >"${D}"/usr/share/${PN}-${SLOT}/${i} \
+ <"${FILESDIR}"/${i}.m4 \
+ || die "Failed to build $i"
+ done
+
+ rm -rf "${ED}/usr/$(get_libdir)/${PN}-${MAJOR}/private" \
+ || die "failed to remove bundled libs"
+
+ mv "${D}/usr/bin/myodbc-installer" \
+ "${D}/usr/bin/myodbc-installer-${MAJOR}" || die "failed to move slotted binary"
+}
+
+pkg_config() {
+ [ -n "${ROOT}" ] && \
+ die 'Sorry, non-standard ROOT setting is not supported :-('
+
+ local msg='MySQL ODBC driver'
+ local drivers=$(/usr/bin/odbcinst -q -d)
+
+ if echo $drivers | grep -vq "^\[${DRIVER_NAME}\]$" ; then
+ ebegin "Installing ${msg}"
+ /usr/bin/odbcinst -i -d -f /usr/share/${PN}-${SLOT}/odbcinst.ini
+ rc=$?
+ eend $rc
+ [ $rc -ne 0 ] && die
+ else
+ einfo "Skipping already installed ${msg}"
+ fi
+
+ local sources=$(/usr/bin/odbcinst -q -s)
+ msg='sample MySQL ODBC DSN'
+ if echo $sources | grep -vq "^\[${DRIVER_NAME}-test\]$"; then
+ ebegin "Installing ${msg}"
+ /usr/bin/odbcinst -i -s -l -f /usr/share/${PN}-${SLOT}/odbc.ini
+ rc=$?
+ eend $rc
+ [ $rc -ne 0 ] && die
+ else
+ einfo "Skipping already installed ${msg}"
+ fi
+}
+
+pkg_postinst() {
+ elog "If this is a new install, please run the following command"
+ elog "to configure the MySQL ODBC drivers and sources:"
+ elog "emerge --config =${CATEGORY}/${PF}"
+ elog "Please note that the driver name used to form the DSN now includes the SLOT."
+ elog "The myodbc-install utility is installed as myodbc-install-${MAJOR}"
+}
diff --git a/dev-db/mysql-connector-c++/Manifest b/dev-db/mysql-connector-c++/Manifest
index bf885879f346..1f03e10738cc 100644
--- a/dev-db/mysql-connector-c++/Manifest
+++ b/dev-db/mysql-connector-c++/Manifest
@@ -1,3 +1 @@
-DIST mysql-connector-c++-8.0.31-src.tar.gz 4201904 BLAKE2B 48385db732572ccf2ba91edca0fbdecf94b3ac5ca6c095e1e2e525e5f9b17749b9cb1ed9732253f9239296d364a69a91d56f60958eb4cf399f16db38f6bd76a8 SHA512 a088936e207926031b6bafe45925bf0c9d2acede9477b605adb09dc875c87965e58e3ecd0332168021122c9def831f0dfdb837ad2c4ea2f140b07b43c9f8bb3c
-DIST mysql-connector-c++-8.0.32-src.tar.gz 4202413 BLAKE2B fe15be7b6ec0c4699ded6e392f3f2e1c12fa9fe033172f6219916fb6ce4ae78d3e8cc882eaf66da606dc1445a59a5cf573f92ee6f1d18178d6c11762dcffb0c0 SHA512 cdfddaf84efe0d49d07c5ef07b5c50bde2f64cbf58d48016573a20ca372b0ba5dab640305d16d8b34032a63f2ceb2954eac108f838fb2f3849a7f3838329df48
DIST mysql-connector-c++-8.0.33-src.tar.gz 4531693 BLAKE2B b8f426742fa343ebc1f1da5ba1fbf7dfc0db39493bafd0f5d16e355d43277d78ff27b183edad31792a7591ac59bbfb4033f3498dc646883988cba189535a8ddf SHA512 a625a28f63161c97d727d90e7b1211273fe931ae1325c2fbeca16e770761e3159abdcaba1fb6eb1a557674fd817bf266875a089c8c2ea4d2dd1553e6fa887ef1
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild
deleted file mode 100644
index 8ee5fb48953d..000000000000
--- a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.31.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR=emake
-inherit cmake
-
-URI_DIR="Connector-C++"
-DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
-HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
-SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
-S="${WORKDIR}/${P}-src"
-
-LICENSE="Artistic GPL-2"
-SLOT="0"
-# -ppc, -sparc for bug #711940
-KEYWORDS="amd64 arm ~arm64 -ppc ppc64 -sparc x86"
-IUSE="+legacy"
-
-RDEPEND="
- app-arch/lz4:=
- app-arch/zstd:=
- dev-libs/openssl:=
- dev-libs/protobuf:=
- sys-libs/zlib
- legacy? (
- dev-libs/boost:=
- >=dev-db/mysql-connector-c-8.0.27:=
- )
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.0.27-mysqlclient_r.patch
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUNDLE_DEPENDENCIES=OFF
- -DWITH_PROTOBUF=system
- -DWITH_LZ4=system
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITH_ZSTD=system
- -DWITH_JDBC=$(usex legacy)
- )
-
- if use legacy ; then
- mycmakeargs+=(
- -DWITH_BOOST="${ESYSROOT}"/usr
- -DMYSQLCLIENT_STATIC_BINDING=0
- -DMYSQLCLIENT_STATIC_LINKING=0
- )
- fi
-
- cmake_src_configure
-}
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild
deleted file mode 100644
index 3e1cef8f1ae0..000000000000
--- a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.32.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR=emake
-inherit cmake
-
-URI_DIR="Connector-C++"
-DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
-HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
-SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
-S="${WORKDIR}/${P}-src"
-
-LICENSE="Artistic GPL-2"
-SLOT="0"
-# -ppc, -sparc for bug #711940
-KEYWORDS="amd64 arm ~arm64 -ppc ppc64 -sparc x86"
-IUSE="+legacy"
-
-RDEPEND="
- app-arch/lz4:=
- app-arch/zstd:=
- dev-libs/openssl:=
- >=dev-libs/protobuf-3.19.6:=
- sys-libs/zlib
- legacy? (
- dev-libs/boost:=
- >=dev-db/mysql-connector-c-8.0.27:=
- )
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.0.27-mysqlclient_r.patch
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUNDLE_DEPENDENCIES=OFF
- -DWITH_PROTOBUF=system
- -DWITH_LZ4=system
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITH_ZSTD=system
- -DWITH_JDBC=$(usex legacy)
- )
-
- if use legacy ; then
- mycmakeargs+=(
- -DWITH_BOOST="${ESYSROOT}"/usr
- -DMYSQLCLIENT_STATIC_BINDING=0
- -DMYSQLCLIENT_STATIC_LINKING=0
- )
- fi
-
- cmake_src_configure
-}
diff --git a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild b/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild
deleted file mode 100644
index 30dae737eb56..000000000000
--- a/dev-db/mysql-connector-c++/mysql-connector-c++-8.0.33.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_MAKEFILE_GENERATOR=emake
-inherit cmake
-
-URI_DIR="Connector-C++"
-DESCRIPTION="MySQL database connector for C++ (mimics JDBC 4.0 API)"
-HOMEPAGE="https://dev.mysql.com/downloads/connector/cpp/"
-SRC_URI="https://dev.mysql.com/get/Downloads/${URI_DIR}/${P}-src.tar.gz"
-S="${WORKDIR}/${P}-src"
-
-LICENSE="Artistic GPL-2"
-SLOT="0"
-# -ppc, -sparc for bug #711940
-KEYWORDS="~amd64 ~arm ~arm64 -ppc ~ppc64 -sparc ~x86"
-
-RDEPEND="
- app-arch/lz4:=
- app-arch/zstd:=
- dev-libs/openssl:=
- sys-libs/zlib
-"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-8.0.27-mysqlclient_r.patch
-)
-
-src_configure() {
- local mycmakeargs=(
- -DBUNDLE_DEPENDENCIES=OFF
- # Cannot handle protobuf >23, bug #912797
- #-DWITH_PROTOBUF=system
- -DWITH_LZ4=system
- -DWITH_SSL=system
- -DWITH_ZLIB=system
- -DWITH_ZSTD=system
- -DWITH_JDBC=OFF
- )
-
- cmake_src_configure
-}
diff --git a/dev-db/mysql-connector-c/Manifest b/dev-db/mysql-connector-c/Manifest
index bba4363fe6e8..b1933a7ac25c 100644
--- a/dev-db/mysql-connector-c/Manifest
+++ b/dev-db/mysql-connector-c/Manifest
@@ -1 +1,2 @@
DIST mysql-boost-8.0.32.tar.gz 436207624 BLAKE2B 8a75fd6fe12d4f870622b3386118737b8f17d116df625ef6187647c870d456823543e0a1e9aa05fff53313c3872df1df23add2508ec735bb7972718fc1e90539 SHA512 937e0d0350cb583bb4de15b080f08ed92b253a6d7c09f13a028855dae154fc84f0c95fb082b818b2fa6fa792cd2d9db8d7dc7a20a2a0d3d2b6839fbd2c821b44
+DIST mysql-boost-8.0.36.tar.gz 438154682 BLAKE2B 066c9dd7f2804ad29808c3bfcf5eae53466f7c40cf1386a9c1f26a0b45dcc3eda8d9618de36e8008e5e4d58b726d6c8ca85aec8d1eda8981f5a49e495b32f046 SHA512 a6c1c009a322b7e7aa2aa607573060414c847c77d48f44a24058ffb89673621f2ebbcc1a4448fa841a87ff721159cc8eaf44a57721c7dc233c130691c16a9d4a
diff --git a/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch
new file mode 100644
index 000000000000..9c8e654ba280
--- /dev/null
+++ b/dev-db/mysql-connector-c/files/mysql-connector-c-8.0.36-always-build-decompress-utilities.patch
@@ -0,0 +1,23 @@
+diff --git a/utilities/CMakeLists.txt b/utilities/CMakeLists.txt
+index da34524..96c7299 100644
+--- a/utilities/CMakeLists.txt
++++ b/utilities/CMakeLists.txt
+@@ -124,13 +124,11 @@ MYSQL_ADD_EXECUTABLE(perror
+ DEPENDENCIES GenError
+ LINK_LIBRARIES mysys
+ )
+-IF(WITH_LZ4 STREQUAL "bundled")
+- MYSQL_ADD_EXECUTABLE(lz4_decompress
+- lz4_decompress.cc
+- COMPONENT Server
+- LINK_LIBRARIES ext::lz4 mysys
+- )
+-ENDIF()
++MYSQL_ADD_EXECUTABLE(lz4_decompress
++ lz4_decompress.cc
++ COMPONENT Server
++ LINK_LIBRARIES ext::lz4 mysys
++ )
+
+ MYSQL_ADD_EXECUTABLE(zlib_decompress
+ zlib_decompress.cc
diff --git a/dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild b/dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild
new file mode 100644
index 000000000000..724061855292
--- /dev/null
+++ b/dev-db/mysql-connector-c/mysql-connector-c-8.0.36.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib flag-o-matic
+
+DESCRIPTION="C client library for MariaDB/MySQL"
+HOMEPAGE="https://dev.mysql.com/downloads/"
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/mysql/mysql-server.git"
+
+ inherit git-r3
+else
+ SRC_URI="https://dev.mysql.com/get/Downloads/MySQL-$(ver_cut 1-2)/mysql-boost-${PV}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+ S="${WORKDIR}/mysql-${PV}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0/21"
+IUSE="ldap static-libs"
+
+RDEPEND="
+ >=app-arch/lz4-1.9.4:=[${MULTILIB_USEDEP}]
+ app-arch/zstd:=[${MULTILIB_USEDEP}]
+ dev-libs/openssl:=[${MULTILIB_USEDEP}]
+ >=sys-libs/zlib-1.2.13:=[${MULTILIB_USEDEP}]
+ ldap? ( dev-libs/cyrus-sasl:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+# Avoid file collisions, #692580
+RDEPEND+="
+ !<dev-db/mysql-5.6.45-r1
+ !=dev-db/mysql-5.7.23*
+ !=dev-db/mysql-5.7.24*
+ !=dev-db/mysql-5.7.25*
+ !=dev-db/mysql-5.7.26-r0
+ !=dev-db/mysql-5.7.27-r0
+ !<dev-db/percona-server-5.7.26.29-r1
+"
+
+DOCS=( README )
+
+# Wrap the config script
+MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.36-always-build-decompress-utilities.patch
+ "${FILESDIR}"/${PN}-8.0.19-do-not-install-comp_err.patch
+ "${FILESDIR}"/${PN}-8.0.27-res_n.patch
+)
+
+src_prepare() {
+ sed -i -e 's/CLIENT_LIBS/CONFIG_CLIENT_LIBS/' "scripts/CMakeLists.txt" || die
+
+ # All these are for the server only.
+ # Disable rpm call which would trigger sandbox, #692368
+ sed -i \
+ -e '/MYSQL_CHECK_LIBEVENT/d' \
+ -e '/MYSQL_CHECK_RAPIDJSON/d' \
+ -e '/MYSQL_CHECK_ICU/d' \
+ -e '/MYSQL_CHECK_EDITLINE/d' \
+ -e '/MYSQL_CHECK_CURL/d' \
+ -e '/ADD_SUBDIRECTORY(man)/d' \
+ -e '/ADD_SUBDIRECTORY(share)/d' \
+ -e '/INCLUDE(cmake\/boost/d' \
+ -e 's/MY_RPM rpm/MY_RPM rpmNOTEXISTENT/' \
+ CMakeLists.txt || die
+
+ # Skip building clients
+ echo > client/CMakeLists.txt || die
+
+ # Forcefully disable auth plugin
+ if ! use ldap ; then
+ sed -i -e '/MYSQL_CHECK_SASL/d' CMakeLists.txt || die
+ echo > libmysql/authentication_ldap/CMakeLists.txt || die
+ fi
+
+ cmake_src_prepare
+}
+
+multilib_src_configure() {
+ # Code is now requiring C++17 due to https://github.com/mysql/mysql-server/commit/236ab55bedd8c9eacd80766d85edde2a8afacd08
+ append-cxxflags -std=c++17
+
+ local mycmakeargs=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-DNDEBUG
+ -DINSTALL_LAYOUT=RPM
+ -DINSTALL_LIBDIR=$(get_libdir)
+ -DWITH_DEFAULT_COMPILER_OPTIONS=OFF
+ -DENABLED_LOCAL_INFILE=ON
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/run/mysqld/mysqld.sock"
+ # Automagically uses LLD with not using LTO (bug #710272, #775845)
+ -DUSE_LD_LLD=OFF
+ -DWITH_LZ4=system
+ -DWITH_NUMA=OFF
+ -DWITH_SSL=system
+ -DWITH_ZLIB=system
+ -DWITH_ZSTD=system
+ -DLIBMYSQL_OS_OUTPUT_NAME=mysqlclient
+ -DSHARED_LIB_PATCH_VERSION="0"
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+ -DWITHOUT_SERVER=ON
+ -DWITH_BUILD_ID=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_install_all() {
+ doman \
+ man/my_print_defaults.1 \
+ man/perror.1 \
+ man/zlib_decompress.1
+
+ if ! use static-libs ; then
+ find "${ED}" -name "*.a" -delete || die
+ fi
+}
diff --git a/dev-db/mysql-init-scripts/files/init.d-2.3 b/dev-db/mysql-init-scripts/files/init.d-2.3
index 90e7e7536881..1216ac9a67c3 100644
--- a/dev-db/mysql-init-scripts/files/init.d-2.3
+++ b/dev-db/mysql-init-scripts/files/init.d-2.3
@@ -1,12 +1,12 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
extra_commands="checkconfig"
extra_stopped_commands="bootstrap_galera"
description_checkconfig="Verify the server's configuration"
-description_boostrap_galera="Start a new Galera cluster with this server as the initial node"
+description_bootstrap_galera="Start a new Galera cluster with this server as the initial node"
depend() {
use net.lo
diff --git a/dev-db/mysql-init-scripts/files/init.d-s6-2.3 b/dev-db/mysql-init-scripts/files/init.d-s6-2.3
index 5bf62e3ef937..4222de898125 100644
--- a/dev-db/mysql-init-scripts/files/init.d-s6-2.3
+++ b/dev-db/mysql-init-scripts/files/init.d-s6-2.3
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
@@ -41,7 +41,7 @@ extra_commands="checkconfig"
extra_stopped_commands="bootstrap_galera"
description_checkconfig="Verify the server's configuration"
-description_boostrap_galera="Start a new Galera cluster with this server as the initial node"
+description_bootstrap_galera="Start a new Galera cluster with this server as the initial node"
supervisor=s6
name=$(mysql_svcname)
s6_service_timeout_stop="$((1000*${STOP_TIMEOUT:-120}))"
diff --git a/dev-db/mysql-init-scripts/files/init.d-supervise-2.3 b/dev-db/mysql-init-scripts/files/init.d-supervise-2.3
index 1bacbd4d8566..fa7cba8d45c4 100644
--- a/dev-db/mysql-init-scripts/files/init.d-supervise-2.3
+++ b/dev-db/mysql-init-scripts/files/init.d-supervise-2.3
@@ -1,12 +1,12 @@
#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
extra_commands="checkconfig"
-extra_stopped_commands="boostrap_galera"
+extra_stopped_commands="bootstrap_galera"
description_checkconfig="Verify the server's configuration"
-description_boostrap_galera="Start a new Galera cluster with this server as the initial node"
+description_bootstrap_galera="Start a new Galera cluster with this server as the initial node"
depend() {
use net.lo
diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r7.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r8.ebuild
index ce3110eecafa..ce3110eecafa 100644
--- a/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r7.ebuild
+++ b/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r8.ebuild
diff --git a/dev-db/mysql-workbench/Manifest b/dev-db/mysql-workbench/Manifest
index 89f6c6141073..6a27f1c9b1a1 100644
--- a/dev-db/mysql-workbench/Manifest
+++ b/dev-db/mysql-workbench/Manifest
@@ -1,2 +1,3 @@
DIST antlr-4.11.1-complete.jar 3547867 BLAKE2B 24e9799a402302fd13ebd91028a8e3b8141af50b446bc06bb4df3f7619cad956e9b681c0908b870a1f9d6701049e89099906cdc6038dc007984b19f7a8cc756b SHA512 a445bb71e4470ffa7bbb382a873fe5c5737b96b2c68b57593c1151ed9944ec701ce0c299ea5c3b593bd33916d384d598e2538a9b0b11b41c77a399beca4aab88
DIST mysql-workbench-community-8.0.36-src.tar.gz 27419906 BLAKE2B 47ab5c64b5beee712c9227cdb5c46a6863d830ef75983e0e56702e0b08370b9118b301d0c34ba95180bef2fe0b01ae24791337c9e1922cd412a37f057906027a SHA512 953f072414abb8c236ffccb8a4439dcd4c5eb76ff07f5ca276c35e8cf6102ef73292412fc70113a167f34bd998603ef22b59038ae06cf84d2f0440769c1d9689
+DIST mysql-workbench-community-8.0.38-src.tar.gz 59069184 BLAKE2B ace0afbab46c106200da5234595065766798d97f57008261c166f97bed842f185e1bba90e0c60b9acf4843b54261b5aa49c8a3a6b096e72597443fcb1a011217 SHA512 9fa18d3a66111461dd47dec05ea8dfa214dac85017d51358e694d56cb05439d96a91f675e105cfbecc70c456127964a81ddb2a5a2951457196b20b10dcb6f502
diff --git a/dev-db/mysql-workbench/mysql-workbench-8.0.38.ebuild b/dev-db/mysql-workbench/mysql-workbench-8.0.38.ebuild
new file mode 100644
index 000000000000..584f3a01ce3c
--- /dev/null
+++ b/dev-db/mysql-workbench/mysql-workbench-8.0.38.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+GCONF_DEBUG="no"
+
+PYTHON_COMPAT=( python3_{10,11,12} )
+PYTHON_REQ_USE="sqlite"
+
+ANTLR_VERSION=4.11.1
+
+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++-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() {
+ ## remove hardcoded CXXFLAGS
+ sed -i -e 's/-O0 -g3//' ext/scintilla/gtk/CMakeLists.txt || die
+ ## 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() {
+ 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 0672320ea6b4..83b7c67873ba 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -2,8 +2,11 @@ DIST mysql-5.7.36-patches-01.tar.xz 6396 BLAKE2B ed9783f207d40fc220992c4193bdd8e
DIST mysql-8.0.27-patches-03.tar.xz 9864 BLAKE2B 03136477a97a5bff0c5f1cbc7921a77d9b36e148e94f80463f00f0efd1a6859af4595f9cf15aa492bce043fdc9d6c6328bd64102f8b0127eacbc7795b1785ecb SHA512 8c00c8fef2b01389f59138eaa29399d8a9ce7930b6bdfb7689d1d7bf14a32fbb10a2b8dbe91933b805899ef3af0cf0bda704d4be14249991b381054bcc496058
DIST mysql-8.0.31-patches-01.tar.xz 5464 BLAKE2B c067bf311c83d4aa0f48d56621997bc58820fa0b41bd708eae04b0b54b89d549c5c1b84ca93adcbbdcb008199510ea667a12b1bcd44bf6b6df02062b4551d0a2 SHA512 95af6bb5aa0c407f0a1014f33523608b0df0797fd7fbdbba8a19985258a7c04788d7587c8f67cd1745284522c58297931c8827e31f77e8c89baaeff71a5e0ddc
DIST mysql-8.0.34-patches-01.tar.xz 9304 BLAKE2B e80dd1fab00fb183e0b980763a9b6c3b879357b776b2acc9709527e5d6e2549f801835936433e55fcde2820201edb3dead5d95f31ef617ef9542d2a0bd95efca SHA512 1ac196d609fabd9c978bc8dd3564a45f0d681c292215d8979604d7e402c622d70a1c66ed191ded081c597042298c43154a9bb09bb4566e7fe97991f67d91d999
+DIST mysql-8.0.36-patches-01.tar.xz 10768 BLAKE2B d9b9c6f170e08eee249bbef77713116ad2f1bd05d638f908011c8be406548b9a87a5189d440147c76ac8aef8058d3fdf25d754191a52fef786812ddd6a2409dd SHA512 3f6af0f17e2ded2ec5cc9b0001062bda061e51a17f4f2d1f1fb604590de026a70bd21cecdff28e05adb1b89356fec1c1b33bc9c848e8a20186412d8547452305
DIST mysql-boost-5.7.41.tar.gz 53266489 BLAKE2B 7201d6c53cf711bd121464fc85260e1799f7195f45706b91f3cb8d605fe2bd2639d532b4045a336645a553d9b0b1131cc45140a19483902e5dc37d3e2479b6f5 SHA512 88e1cc4864616ed92880a3f02285763aac2ddfc1cdeeff07e1502c97bbdfd31c9ed9d02f8f6381a352857a85241e4e4eb6bc0d978e3928a68ef49362f670482a
DIST mysql-boost-8.0.27.tar.gz 292184025 BLAKE2B 177209f3c62b0326ca9d021c751a701dec84c1b15c946ab0a68b1b4cf0620468eb3a1df77a918284007a0fde1aaa6a9767d0baed57936612813ef583df51c35e SHA512 6ef2426c0bee46bdf8e2fa5cb159d5ae19f0bed4f7c9bea9b33e0dd922b568c3c68ca063dcbcd7ea6904aaea31877c10064ea10b4bc63fb40d9f31778e3a7891
DIST mysql-boost-8.0.31.tar.gz 334504577 BLAKE2B 0506472c732351a1055be9bbd81212e95280ae464af95cb5b579777dd8fad4634b099fa2830c3095066daf8c586f1d8cd2316e7268fb0d2577dd706c595c9102 SHA512 87b1678de8c2fd640fd6f3ae58266ea63fe240578330e3296d0e5fc209bbe9b0c22996214b6ca4cce8c0d9cc2f9897f4e6723d835b33fc4342983c82929c3d96
DIST mysql-boost-8.0.32.tar.gz 436207624 BLAKE2B 8a75fd6fe12d4f870622b3386118737b8f17d116df625ef6187647c870d456823543e0a1e9aa05fff53313c3872df1df23add2508ec735bb7972718fc1e90539 SHA512 937e0d0350cb583bb4de15b080f08ed92b253a6d7c09f13a028855dae154fc84f0c95fb082b818b2fa6fa792cd2d9db8d7dc7a20a2a0d3d2b6839fbd2c821b44
DIST mysql-boost-8.0.34.tar.gz 439550780 BLAKE2B f50701b7e97e6cec21d6ce0f80f07a8df68a14c637a67841c06f578be8ed01d216dcb3b859a29f1befd4223b99e60675d6fa70f4b227bf6af81804e2c43161d4 SHA512 e5e79ac6870c214cf62c8e2830106d60e09d2e6df30654b84bb5d26864b4eabe777468a223e6ee4c1e22b7f6ec086c73e85e3f4c1fa66912b0e59b606ab46cd6
+DIST mysql-boost-8.0.36.tar.gz 438154682 BLAKE2B 066c9dd7f2804ad29808c3bfcf5eae53466f7c40cf1386a9c1f26a0b45dcc3eda8d9618de36e8008e5e4d58b726d6c8ca85aec8d1eda8981f5a49e495b32f046 SHA512 a6c1c009a322b7e7aa2aa607573060414c847c77d48f44a24058ffb89673621f2ebbcc1a4448fa841a87ff721159cc8eaf44a57721c7dc233c130691c16a9d4a
+DIST mysql-boost-8.0.37.tar.gz 445594692 BLAKE2B 105521985ec8c622a28b5e0f7f13e519b2d91af6ce7c2b483cf1c096aa79f156cc59eabb6281b485d6f558eb6e20a95d5edc349bbd72d1c4a2591eef59270f4c SHA512 4c6033d4f96990d3f324f0d5733273425ddf7cc11660e110e0dc848da6cfa47b7565c1eb0b5d1e08878a0ea2c7d1eb85b400ccca28e5b4383f7e9216ba3e1660
diff --git a/dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch b/dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch
new file mode 100644
index 000000000000..31a2946a41ed
--- /dev/null
+++ b/dev-db/mysql/files/mysql-8.0.36-boost-clang-fix.patch
@@ -0,0 +1,76 @@
+From 50a1eae942effb0a9b90724323ef8f2a67e7984a Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@gmail.com>
+Date: Wed, 16 Nov 2022 10:43:31 +0200
+Subject: [PATCH] Change mpl::integral_c to boost::integral_constant to avoid
+ Clang 16 errors when constructing out of range enums (refs #24,
+ https://github.com/boostorg/mpl/issues/69)
+
+--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/int_float_mixture.hpp
++++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/int_float_mixture.hpp
+@@ -16,15 +16,15 @@
+ #include "boost/numeric/conversion/int_float_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'IntFloatMixture'
+- typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, integral_to_float> int2float_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, float_to_integral> float2int_c ;
+- typedef mpl::integral_c<int_float_mixture_enum, float_to_float> float2float_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, integral_to_integral> int2int_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, integral_to_float> int2float_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, float_to_integral> float2int_c ;
++ typedef boost::integral_constant<int_float_mixture_enum, float_to_float> float2float_c ;
+
+ // Metafunction:
+ //
+--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/sign_mixture.hpp
++++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/sign_mixture.hpp
+@@ -16,15 +16,15 @@
+ #include "boost/numeric/conversion/sign_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'SignMixture'
+- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, signed_to_signed> sig2sig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
+- typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, signed_to_signed> sig2sig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, signed_to_unsigned> sig2unsig_c ;
++ typedef boost::integral_constant<sign_mixture_enum, unsigned_to_signed> unsig2sig_c ;
+
+ // Metafunction:
+ //
+--- a/boost/boost_1_77_0/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
++++ b/boost/boost_1_77_0/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
+@@ -15,15 +15,15 @@
+ #include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
+ #include "boost/numeric/conversion/detail/meta.hpp"
+
+-#include "boost/mpl/integral_c.hpp"
++#include "boost/type_traits/integral_constant.hpp"
+
+ namespace boost { namespace numeric { namespace convdetail
+ {
+ // Integral Constants for 'UdtMixture'
+- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
+- typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, builtin_to_udt> builtin2udt_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_builtin> udt2builtin_c ;
++ typedef boost::integral_constant<udt_builtin_mixture_enum, udt_to_udt> udt2udt_c ;
+
+ // Metafunction:
+ //
diff --git a/dev-db/mysql/mysql-5.7.41.ebuild b/dev-db/mysql/mysql-5.7.41.ebuild
index 3efb6229af13..ded1631d3809 100644
--- a/dev-db/mysql/mysql-5.7.41.ebuild
+++ b/dev-db/mysql/mysql-5.7.41.ebuild
@@ -9,7 +9,7 @@ inherit check-reqs cmake flag-o-matic linux-info \
multiprocessing prefix toolchain-funcs multilib-minimal
# Patch version
-PATCH_SET="https://dev.gentoo.org/~whissi/dist/mysql/${PN}-5.7.36-patches-01.tar.xz"
+PATCH_SET="mirror://gentoo/51/${PN}-5.7.36-patches-01.tar.xz"
SRC_URI="https://cdn.mysql.com/Downloads/MySQL-$(ver_cut 1-2)/${PN}-boost-${PV}.tar.gz
https://cdn.mysql.com/archives/mysql-$(ver_cut 1-2)/mysql-boost-${PV}.tar.gz
diff --git a/dev-db/mysql/mysql-8.0.36.ebuild b/dev-db/mysql/mysql-8.0.36.ebuild
new file mode 100644
index 000000000000..724501d96d0c
--- /dev/null
+++ b/dev-db/mysql/mysql-8.0.36.ebuild
@@ -0,0 +1,1271 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs cmake edo flag-o-matic linux-info multiprocessing prefix
+
+MY_PV="${PV//_pre*}"
+MY_P="${PN}-${MY_PV}"
+
+# Patch version
+PATCH_SET=( https://github.com/parona-source/mysql-server/releases/download/mysql-8.0.36-patches-01/mysql-8.0.36-patches-01.tar.xz )
+
+DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
+HOMEPAGE="https://www.mysql.com/"
+SRC_URI="https://cdn.mysql.com/Downloads/MySQL-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz"
+SRC_URI+=" https://cdn.mysql.com/archives/mysql-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz"
+SRC_URI+=" https://downloads.mysql.com/archives/MySQL-$(ver_cut 1-2)/${PN}-boost-${MY_PV}.tar.gz"
+SRC_URI+=" ${PATCH_SET[@]}"
+# Shorten the path because the socket path length must be shorter than 107 chars
+# and we will run a mysql server during test phase
+S="${WORKDIR}/mysql"
+
+LICENSE="GPL-2"
+SLOT="8.0"
+# -ppc for bug #761715
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ~mips -ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+IUSE="cjk cracklib debug jemalloc latin1 numa +perl profiling router selinux +server tcmalloc test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="?? ( tcmalloc jemalloc )
+ cjk? ( server )
+ jemalloc? ( server )
+ numa? ( server )
+ profiling? ( server )
+ router? ( server )
+ tcmalloc? ( server )"
+
+# Be warned, *DEPEND are version-dependent
+# These are used for both runtime and compiletime
+COMMON_DEPEND="
+ >=app-arch/lz4-1.9.4:=
+ >=app-arch/zstd-1.2.0:=
+ >=dev-libs/openssl-1.0.0:=
+ sys-libs/ncurses:=
+ >=sys-libs/zlib-1.2.13:=
+ server? (
+ dev-libs/icu:=
+ dev-libs/libevent:=[ssl,threads(+)]
+ net-libs/libtirpc:=
+ cjk? ( app-text/mecab:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ kernel_linux? (
+ dev-libs/libaio:=
+ sys-process/procps
+ )
+ numa? ( sys-process/numactl )
+ tcmalloc? ( dev-util/google-perftools:= )
+ )
+"
+
+# https://bugs.gentoo.org/623962
+# tests set TZ for tests leading to failures on musl if sys-libs/timezone-data isnt installed
+DEPEND="
+ ${COMMON_DEPEND}
+ app-alternatives/yacc
+ server? ( net-libs/rpcsvc-proto )
+ test? (
+ acct-group/mysql acct-user/mysql
+ dev-perl/Expect
+ dev-perl/JSON
+ sys-libs/timezone-data
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ !dev-db/mariadb
+ !dev-db/mariadb-galera
+ !dev-db/percona-server
+ !dev-db/mysql-cluster
+ !dev-db/mysql:0
+ !dev-db/mysql:5.7
+ selinux? ( sec-policy/selinux-mysql )
+ !prefix? (
+ acct-group/mysql acct-user/mysql
+ dev-db/mysql-init-scripts
+ )
+"
+# For other stuff to bring us in
+# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
+PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
+
+PATCHES=(
+ "${WORKDIR}"/mysql-patches
+ # Needed due to bundled boost-1.77, this fix is included in boost-1.81
+ "${FILESDIR}"/mysql-8.0.36-boost-clang-fix.patch
+)
+
+mysql_init_vars() {
+ : ${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mysql"}
+ : ${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
+ : ${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
+ : ${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
+ MY_DATADIR="${MY_LOCALSTATEDIR}"
+
+ export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+ export MY_LOCALSTATEDIR MY_LOGDIR
+ export MY_DATADIR
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use server ; then
+ CHECKREQS_DISK_BUILD="3G"
+
+ if has test ${FEATURES} ; then
+ CHECKREQS_DISK_BUILD="10G"
+
+ if use elibc_musl; then
+ # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server"
+ CHECKREQS_DISK_BUILD="18G"
+ fi
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ CHECKREQS_DISK_BUILD="3G"
+
+ if has test ${FEATURES} ; then
+ CHECKREQS_DISK_BUILD="10G"
+
+ if use elibc_musl; then
+ # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server"
+ CHECKREQS_DISK_BUILD="18G"
+ fi
+
+ # Bug #213475 - MySQL _will_ object strenuously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if ! has userpriv ${FEATURES} ; then
+ die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+ fi
+
+ local aio_max_nr=$(sysctl -n fs.aio-max-nr 2>/dev/null)
+ if [[ -z "${aio_max_nr}" || ${aio_max_nr} -lt 250000 ]] ; then
+ die "FEATURES=test will require fs.aio-max-nr=250000 at minimum!"
+ fi
+
+ if use latin1 ; then
+ # Upstream only supports tests with default charset
+ die "Testing with USE=latin1 is not supported."
+ fi
+ fi
+
+ if use kernel_linux && use numa ; then
+ linux-info_get_any_version
+
+ local CONFIG_CHECK="~NUMA"
+
+ local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
+ WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
+
+ check_extra_config
+ fi
+
+ use server && check-reqs_pkg_setup
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+
+ mv -f "${WORKDIR}/${MY_P}" "${S}" || die
+}
+
+src_prepare() {
+ # Avoid rpm call which would trigger sandbox, #692368
+ sed -i \
+ -e 's/MY_RPM rpm/MY_RPM rpmNOTEXISTENT/' \
+ CMakeLists.txt || die
+
+ # Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
+ if [[ -d "${S}/support-files/SELinux" ]] ; then
+ echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
+ fi
+
+ # Remove man pages for client-lib tools we don't install
+ rm \
+ man/my_print_defaults.1 \
+ man/perror.1 \
+ man/zlib_decompress.1 \
+ || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # Bug #114895, bug #110149
+ filter-flags "-O" "-O[01]"
+
+ # Code is now requiring C++17 due to https://github.com/mysql/mysql-server/commit/236ab55bedd8c9eacd80766d85edde2a8afacd08
+ append-cxxflags -std=c++17
+
+ if has sandbox ${FEATURES} ; then
+ # bug #823656
+ append-cppflags -DGTEST_NO_DEATH_TEST=1
+ fi
+
+ local mycmakeargs=(
+ -Wno-dev # less noise
+
+ -DMYSQL_DATADIR="${EPREFIX}/var/lib/mysql"
+ -DSYSCONFDIR="${EPREFIX}/etc/mysql"
+
+ -DINSTALL_BINDIR=bin
+ -DINSTALL_DOCDIR=share/doc/${PF}
+ -DINSTALL_DOCREADMEDIR=share/doc/${PF}
+ -DINSTALL_INCLUDEDIR=include/mysql
+ -DINSTALL_INFODIR=share/info
+ -DINSTALL_LIBDIR=$(get_libdir)
+ -DINSTALL_MANDIR=share/man
+ -DINSTALL_MYSQLSHAREDIR=share/mysql
+ -DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
+ -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql"
+ -DINSTALL_SBINDIR=sbin
+ -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mysql"
+
+ -DROUTER_INSTALL_LOGROTATEDIR="${EPREFIX}/etc/logrotate.d"
+ -DROUTER_INSTALL_DOCDIR="share/doc/${PF}"
+
+ -DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
+ -DWITH_UNIT_TESTS=$(usex test ON OFF)
+
+ # Enables -Werror
+ -DMYSQL_MAINTAINER_MODE=OFF
+
+ # Causes issues on musl bug #922808
+ -DWITH_BUILD_ID=OFF
+
+ # Using bundled editline to get CTRL+C working
+ -DWITH_EDITLINE=bundled
+ -DWITH_ZLIB=system
+ -DWITH_SSL=system
+ -DWITH_LIBWRAP=0
+ -DENABLED_LOCAL_INFILE=1
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DWITH_DEFAULT_COMPILER_OPTIONS=0
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+
+ -DWITH_CURL=system
+ -DWITH_BOOST="${S}/boost"
+ -DWITH_ROUTER=$(usex router ON OFF)
+ )
+
+ if use debug; then
+ # Debug build type used extensively to add preprocessor definitions
+ local -x CMAKE_BUILD_TYPE="Debug"
+ else
+ # debug hack wrt #497532
+ mycmakeargs+=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+ )
+ fi
+
+ if tc-is-lto ; then
+ mycmakeargs+=( -DWITH_LTO=ON )
+ else
+ mycmakeargs+=( -DWITH_LTO=OFF )
+ fi
+
+ if use test ; then
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
+ else
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+ fi
+
+ mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
+
+ mycmakeargs+=(
+ -DWITH_ICU=system
+ -DWITH_LZ4=system
+ # Our dev-libs/rapidjson doesn't carry necessary fixes for std::regex
+ -DWITH_RAPIDJSON=bundled
+ -DWITH_ZSTD=system
+ )
+
+ if [[ -n "${MYSQL_DEFAULT_CHARSET}" && -n "${MYSQL_DEFAULT_COLLATION}" ]] ; then
+ ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
+ ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
+ ewarn "You MUST file bugs without these variables set."
+ ewarn "Tests will probably fail!"
+
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
+ -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
+ )
+ elif use latin1 ; then
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=latin1
+ -DDEFAULT_COLLATION=latin1_swedish_ci
+ )
+ else
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=utf8mb4
+ -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci
+ )
+ fi
+
+ if use server ; then
+ mycmakeargs+=(
+ -DWITH_EXTRA_CHARSETS=all
+ -DWITH_DEBUG=$(usex debug)
+ -DWITH_MECAB=$(usex cjk system OFF)
+ -DWITH_LIBEVENT=system
+ # Cannot handle protobuf >23 bug #912797
+ -DWITH_PROTOBUF=bundled
+ -DWITH_NUMA=$(usex numa ON OFF)
+ )
+
+ if use jemalloc ; then
+ mycmakeargs+=( -DWITH_JEMALLOC=ON )
+ elif use tcmalloc ; then
+ mycmakeargs+=( -DWITH_TCMALLOC=ON )
+ fi
+
+ if use profiling ; then
+ # Setting to OFF doesn't work: Once set, profiling options will be added
+ # to `mysqld --help` output via sql/sys_vars.cc causing
+ # "main.mysqld--help-notwin" test to fail
+ mycmakeargs+=( -DENABLED_PROFILING=ON )
+ fi
+
+ # Storage engines
+ mycmakeargs+=(
+ -DWITH_EXAMPLE_STORAGE_ENGINE=0
+ -DWITH_ARCHIVE_STORAGE_ENGINE=1
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1
+ -DWITH_CSV_STORAGE_ENGINE=1
+ -DWITH_FEDERATED_STORAGE_ENGINE=1
+ -DWITH_HEAP_STORAGE_ENGINE=1
+ -DWITH_INNOBASE_STORAGE_ENGINE=1
+ -DWITH_INNODB_MEMCACHED=0
+ -DWITH_MYISAMMRG_STORAGE_ENGINE=1
+ -DWITH_MYISAM_STORAGE_ENGINE=1
+ )
+ else
+ mycmakeargs+=(
+ -DWITHOUT_SERVER=1
+ -DWITH_SYSTEMD=no
+ )
+ fi
+
+ cmake_src_configure
+}
+
+# Official test instructions:
+# ulimit -n 16500 && USE='perl server' FEATURES='test userpriv' \
+# ebuild mysql-X.X.XX.ebuild digest clean test install
+src_test() {
+ _disable_test() {
+ local rawtestname bug reason
+ rawtestname="${1}" ; shift
+ bug="${1}" ; shift
+ reason="${@}"
+
+ ewarn "test '${rawtestname}' disabled: '${reason}' (BUG#${bug})"
+ echo "${rawtestname} : BUG#${bug} ${reason}" >> "${T}/disabled.def"
+ }
+
+ local TESTDIR="${BUILD_DIR}/mysql-test"
+ local retstatus_tests
+
+ einfo "Official test instructions:"
+ einfo "ulimit -n 16500 && USE='perl server' FEATURES='test userpriv' ebuild ..."
+
+ if ! use server ; then
+ ewarn "Skipping server tests due to minimal build!"
+ return 0
+ fi
+
+ # Ensure that parallel runs don't die
+ local -x MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ local -x MTR_PARALLEL=${MTR_PARALLEL:-$(makeopts_jobs)}
+ einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
+
+ # Disable unit tests, run them separately with eclass defaults
+ local -x MTR_UNIT_TESTS=0
+
+ # Increase test timeouts
+ # bug #923649
+ # https://github.com/gentoo/gentoo/pull/35002#issuecomment-1926101030
+ local -x MTR_SUITE_TIMEOUT=$(( 60 * 40 )) # minutes
+ local -x MTR_TESTCASE_TIMEOUT=60 # minutes
+
+ # Include config for tests, this is for scenarios where mysql wasn't installed previously or if the
+ # configuration was from an older version.
+ sed \
+ -e "s/@GENTOO_PORTAGE_EPREFIX@/${EPREFIX}/" \
+ -e "s/@DATADIR@/${MY_DATADIR}/" \
+ "${FILESDIR}"/my.cnf-8.0.distro-client \
+ "${FILESDIR}"/my.cnf-8.0.distro-server \
+ > "${T}"/my.cnf || die
+ local -X PATH_CONFIG_FILE="${T}/my.cnf"
+
+ # Create directories because mysqladmin might run out of order
+ mkdir -p "${T}"/var-tests{,/log} || die
+
+ # Run mysql tests
+ pushd "${TESTDIR}" &>/dev/null || die
+
+ touch "${T}/disabled.def" || die
+
+ local -a disabled_tests=(
+ "auth_sec.atomic_rename_user;103512;Depends on user running test"
+ "auth_sec.keyring_file_data_qa;0;Won't work with user privileges"
+ "auth_sec.openssl_without_fips;94718;Known test failure"
+
+ "gis.geometry_class_attri_prop;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.geometry_property_function_issimple;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.gis_bugs_crashes;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_buffer;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_centroid;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_distance;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_op_testingfunc_mix;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_operators_intersection;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_utility_function_distance_sphere;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_utility_function_simplify;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.st_symdifference;5452;Known rounding error with latest AMD processors (PS)"
+
+ "innodb.alter_kill;0;Known test failure -- no upstream bug yet"
+
+ "main.derived_limit;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.explain_tree;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.gis-precise;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.mysql_load_data_local_dir;0;Known test failure -- no upstream bug yet"
+ "main.select_icp_mrr;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_bugs;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_mat_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_all_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.window_std_var;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.window_std_var_optimized;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.with_recursive;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "perfschema.statement_digest_query_sample;0;Test will fail on slow hardware"
+
+ "rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch;0;Unstable test"
+ "rpl_gtid.rpl_multi_source_mtr_includes;97844;Unstable test"
+ "main.partition_datatype;0;Unstable test"
+
+ "sys_vars.myisam_data_pointer_size_func;87935;Test will fail on slow hardware"
+
+ "x.connection;0;Known failure - no upstream bug yet"
+ "main.slow_log;0;Known failure - no upstream bug yet"
+
+ "sys_vars.build_id_basic;0;Requires -DWITH_BUILD_ID=ON"
+ )
+
+ if ! hash zip 1>/dev/null 2>&1 ; then
+ # No need to force dep app-arch/zip for one test
+ disabled_tests+=(
+ "innodb.discarded_partition_create;0;Requires app-arch/zip"
+ "innodb.partition_upgrade_create;0;Requires app-arch/zip"
+ )
+ fi
+
+ if has_version ">=dev-libs/openssl-3.2" ; then
+ # https://bugs.mysql.com/bug.php?id=113258
+ disabled_tests+=(
+ "rpl.rpl_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2"
+ "auth_sec.wl15800_ciphers_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2"
+ )
+ fi
+
+ if use debug; then
+ disabled_tests+=(
+ "innodb.dblwr_unencrypt;0;Known test failure -- no upstream bug yet"
+ )
+ fi
+
+ local test_infos_str test_infos_arr
+ for test_infos_str in "${disabled_tests[@]}" ; do
+ IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}"
+
+ if [[ ${#test_infos_arr[@]} != 3 ]] ; then
+ die "Invalid test data set, not matching format: ${test_infos_str}"
+ fi
+
+ _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}"
+ done
+ unset test_infos_str test_infos_arr
+
+ local -a CMAKE_SKIP_TESTS=(
+ # timing test, can be unreliable
+ "routertest_harness_net_ts_timer"
+
+ # Could not get local host address: Name or service not known(errno: -2)
+ "routertest_component_bootstrap"
+ "routertest_component_bootstrap_account"
+ "routertest_component_bootstrap_clusterset"
+ "routertest_component_config_overwrites"
+ "routertest_component_rest_api_enable"
+ "routertest_component_routing"
+ "routertest_component_sd_notify"
+ "routertest_component_state_file"
+ "routertest_integration_routing_direct"
+ "routertest_integration_routing_reuse"
+ "routertest_integration_routing_sharing"
+ "routertest_integration_routing_sharing_constrained_pools"
+ "routertest_integration_routing_sharing_restart"
+
+ # TODO: ???
+ "pfs_host-oom"
+ "pfs_user-oom"
+ "pfs"
+ )
+
+ if use debug; then
+ CMAKE_SKIP_TESTS+=(
+ # binary_log::transaction::compression::Payload_event_buffer_istream::~Payload_event_buffer_istream(): Assertion `!m_outstanding_error' failed.
+ "payload_event_buffer_istream"
+ )
+ fi
+
+ # Try to increase file limits to increase test coverage
+ if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
+ # Upper limit comes from parts.partition_* tests
+ ewarn "For maximum test coverage, please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
+
+ if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
+ # Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
+ ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
+
+ if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
+ ewarn "For minimum test coverage, please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
+ else
+ einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
+ fi
+ else
+ einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
+ fi
+ else
+ einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
+ fi
+
+ # run mysql-test tests
+ # Enable force restart to ensure success when tests don't cleanup sufficiently.
+ # Anything touching gtid_executed is negatively affected if you have unlucky ordering
+ nonfatal edo perl mysql-test-run.pl \
+ --force --force-restart \
+ --vardir="${T}/var-tests" --tmpdir="${T}/tmp-tests" \
+ --skip-test=tokudb --skip-test-list="${T}/disabled.def" \
+ --retry-failure=0 --max-test-fail=0
+ retstatus_tests=$?
+
+ popd &>/dev/null || die
+
+ # Cleanup is important for these testcases.
+ pkill -9 -f "${S}/ndb" 2>/dev/null
+ pkill -9 -f "${S}/sql" 2>/dev/null
+
+ local failures=""
+ [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests"
+
+ cmake_src_test
+
+ [[ -z "${failures}" ]] || die "Test failures: ${failures}"
+ einfo "Tests successfully completed"
+}
+
+src_install() {
+ cmake_src_install
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Convenience links
+ einfo "Making Convenience links for mysqlcheck multi-call binary"
+ dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
+ dosym "mysqlcheck" "/usr/bin/mysqlrepair"
+ dosym "mysqlcheck" "/usr/bin/mysqloptimize"
+
+ # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
+ if [[ -d "${ED}/usr/data" ]] ; then
+ rm -Rf "${ED}/usr/data" || die
+ fi
+
+ # Unless they explicitly specific USE=test, then do not install the
+ # testsuite. It DOES have a use to be installed, esp. when you want to do a
+ # validation of your database configuration after tuning it.
+ if ! use test ; then
+ rm -rf "${ED}/${MY_SHAREDSTATEDIR#${EPREFIX}}/mysql-test"
+ fi
+
+ # Configuration stuff
+ einfo "Building default configuration ..."
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}"
+ [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
+ cp "${FILESDIR}/my.cnf-5.7" "${TMPDIR}/my.cnf" || die
+ eprefixify "${TMPDIR}/my.cnf"
+ doins "${TMPDIR}/my.cnf"
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.d"
+ cp "${FILESDIR}/my.cnf-8.0.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
+ eprefixify "${TMPDIR}/50-distro-client.cnf"
+ doins "${TMPDIR}/50-distro-client.cnf"
+
+ mycnf_src="my.cnf-8.0.distro-server"
+ sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
+ "${FILESDIR}/${mycnf_src}" \
+ > "${TMPDIR}/my.cnf.ok" || die
+
+ if use prefix ; then
+ sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+
+ if use latin1 ; then
+ sed -i \
+ -e "/character-set/s|utf8mb4|latin1|g" \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+
+ eprefixify "${TMPDIR}/my.cnf.ok"
+
+ newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
+
+ #Remove mytop if perl is not selected
+ [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
+
+ if use router ; then
+ rm -rf \
+ "${ED}/usr/LICENSE.router" \
+ "${ED}/usr/README.router" \
+ "${ED}/usr/run" \
+ "${ED}/usr/var" \
+ || die
+ fi
+
+ # Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them.
+ find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
+}
+
+pkg_postinst() {
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Create log directory securely if it does not exist
+ # NOTE: $MY_LOGDIR contains $EPREFIX by default
+ [[ -d "${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${MY_LOGDIR}"
+
+ # Note about configuration change
+ einfo
+ elog "This version of ${PN} reorganizes the configuration from a single my.cnf"
+ elog "to several files in /etc/mysql/mysql.d."
+ elog "Please backup any changes you made to /etc/mysql/my.cnf"
+ elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension."
+ elog "You may have as many files as needed and they are read alphabetically."
+ elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
+ einfo
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ einfo
+ elog "You might want to run:"
+ elog " \"emerge --config =${CATEGORY}/${PF}\""
+ elog "if this is a new install."
+ einfo
+ else
+ einfo
+ elog "Upgrade process for ${PN}-8.x has changed. Please read"
+ elog "https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html"
+ einfo
+ fi
+}
+
+pkg_config() {
+ _getoptval() {
+ local section="$1"
+ local flag="--${2}="
+ local extra_options="${3}"
+ local cmd=(
+ "${my_print_defaults_binary}"
+ "${extra_options}"
+ "${section}"
+ )
+ local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") )
+
+ if [[ ${#results[@]} -gt 0 ]] ; then
+ # When option is set multiple times only return last value
+ echo "${results[-1]}"
+ fi
+ }
+
+ _mktemp_dry() {
+ # emktemp has no --dry-run option
+ local template="${1}"
+
+ if [[ -z "${template}" ]] ; then
+ if [[ -z "${T}" ]] ; then
+ template="/tmp/XXXXXXX"
+ else
+ template="${T}/XXXXXXX"
+ fi
+ fi
+
+ local template_wo_X=${template//X/}
+ local n_X
+ let n_X=${#template}-${#template_wo_X}
+ if [[ ${n_X} -lt 3 ]] ; then
+ echo "${FUNCNAME[0]}: too few X's in template ‘${template}’" >&2
+ return
+ fi
+
+ local attempts=0
+ local character tmpfile
+ while [[ true ]] ; do
+ let attempts=attempts+1
+
+ new_file=
+ while read -n1 character ; do
+ if [[ "${character}" == "X" ]] ; then
+ tmpfile+="${RANDOM:0:1}"
+ else
+ tmpfile+="${character}"
+ fi
+ done < <(echo -n "${template}")
+
+ if [[ ! -f "${tmpfile}" ]]
+ then
+ echo "${tmpfile}"
+ return
+ fi
+
+ if [[ ${attempts} -ge 100 ]] ; then
+ echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2
+ return
+ fi
+ done
+ }
+
+ local mysqld_binary="${EROOT}/usr/sbin/mysqld"
+ if [[ ! -x "${mysqld_binary}" ]] ; then
+ die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local mysql_binary="${EROOT}/usr/bin/mysql"
+ if [[ ! -x "${mysql_binary}" ]] ; then
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults"
+ if [[ ! -x "${my_print_defaults_binary}" ]] ; then
+ die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!"
+ fi
+
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ MYSQL_USER=mysql
+ if use prefix ; then
+ MYSQL_USER=$(id -u -n 2>/dev/null)
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ die "Failed to determine current username!"
+ fi
+ fi
+ fi
+
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ MYSQL_GROUP=mysql
+ if use prefix ; then
+ MYSQL_GROUP=$(id -g -n 2>/dev/null)
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ die "Failed to determine current user groupname!"
+ fi
+ fi
+ fi
+
+ # my_print_defaults needs to read stuff in $HOME/.my.cnf
+ local -x HOME="${EROOT}/root"
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Read currently set data directory
+ MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+
+ # Bug #213475 - MySQL _will_ object strenously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ die "Sorry, unable to find MY_DATADIR!"
+ elif [[ -d "${MY_DATADIR}/mysql" ]] ; then
+ ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!"
+ ewarn "Please rename or delete its content if you wish to initialize a new data directory."
+ die "${PN} data directory at '${MY_DATADIR}' looks already initialized!"
+ fi
+
+ MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_TMPDIR=${MYSQL_TMPDIR%/}
+ # These are dir+prefix
+ MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
+ MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
+
+ # Create missing directories.
+ # Always check if mysql user can write to directory even if we just
+ # created directory because a parent directory might be not
+ # accessible for that user.
+ PID_DIR="${EROOT}/run/mysqld"
+ if [[ ! -d "${PID_DIR}" ]] ; then
+ einfo "Creating ${PN} PID directory '${PID_DIR}' ..."
+ install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \
+ || die "Failed to create PID directory '${PID_DIR}'!"
+ fi
+
+ local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_pid_dir_testfile}" ]] \
+ && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_pid_dir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!"
+ else
+ rm "${_pid_dir_testfile}" || die
+ unset _pid_dir_testfile
+ fi
+
+ if [[ ! -d "${MY_DATADIR}" ]] ; then
+ einfo "Creating ${PN} data directory '${MY_DATADIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \
+ || die "Failed to create ${PN} data directory '${MY_DATADIR}'!"
+ fi
+
+ local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_datadir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_datadir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!"
+ else
+ rm "${_my_datadir_testfile}" || die
+ unset _my_datadir_testfile
+ fi
+
+ if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then
+ einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \
+ || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!"
+ fi
+
+ if [[ -z "${MYSQL_TMPDIR}" ]] ; then
+ MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")"
+ [[ -z "${MYSQL_TMPDIR}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!"
+
+ mkdir "${MYSQL_TMPDIR}" || die
+ chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die
+ fi
+
+ # Now we need to test MYSQL_TMPDIR...
+ local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_tmpdir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_tmpdir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!"
+ else
+ rm "${_my_tmpdir_testfile}" || die
+ unset _my_tmpdir_testfile
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" && ! -d "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \
+ || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'"
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_logbin_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_logbin_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!"
+ else
+ rm "${_my_logbin_testfile}" || die
+ unset _my_logbin_testfile
+ fi
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" && ! -d "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \
+ || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_relaylog_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_relaylog_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!"
+ else
+ rm "${_my_relaylog_testfile}" || die
+ unset _my_relaylog_testfile
+ fi
+ fi
+
+ local mysql_install_log="$(_mktemp_dry "${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log")"
+ if [[ -z "${mysql_install_log}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysql_install_log}" || die
+ chown ${MYSQL_USER} "${mysql_install_log}" || die
+ fi
+
+ local mysqld_logfile="$(_mktemp_dry "${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log")"
+ if [[ -z "${mysqld_logfile}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysqld_logfile}" || die
+ chown ${MYSQL_USER} "${mysqld_logfile}" || die
+ fi
+
+ echo ""
+ einfo "Detected settings:"
+ einfo "=================="
+ einfo "MySQL User:\t\t\t\t${MYSQL_USER}"
+ einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}"
+ einfo "MySQL DATA directory:\t\t${MY_DATADIR}"
+ einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}"
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}"
+ fi
+
+ einfo "PID DIR:\t\t\t\t${PID_DIR}"
+ einfo "Install db log:\t\t\t${mysql_install_log}"
+ einfo "Install server log:\t\t\t${mysqld_logfile}"
+
+ local -a config_files
+
+ local config_file="${EROOT}/etc/mysql/mysql.d/50-distro-client.cnf"
+ if [[ -f "${config_file}" ]] ; then
+ config_files+=( "${config_file}" )
+ else
+ ewarn "Client configuration '${config_file}' not found; Skipping configuration of default authentication plugin for client ..."
+ fi
+
+ config_file="${EROOT}/etc/mysql/mysql.d/50-distro-server.cnf"
+ if [[ -f "${config_file}" ]] ; then
+ config_files+=( "${config_file}" )
+ else
+ ewarn "Server configuration '${config_file}' not found; Skipping configuration of default authentication plugin for mysqld ..."
+ fi
+
+ if [[ ${#config_files[@]} -gt 0 ]] ; then
+ if [[ -z "${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" ]] ; then
+ local user_answer
+
+ echo
+ einfo "Please select default authentication plugin (enter number or plugin name):"
+ einfo "1) caching_sha2_password [MySQL 8.0 default]"
+ einfo "2) mysql_native_password [MySQL 5.7 default]"
+ einfo
+ einfo "For details see:"
+ einfo "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password"
+ read -p " >" user_answer
+ echo
+
+ case "${user_answer}" in
+ 1|caching_sha2_password)
+ MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=caching_sha2_password
+ ;;
+ 2|mysql_native_password)
+ MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=mysql_native_password
+ ;;
+ '')
+ die "No authentication plugin selected!"
+ ;;
+ *)
+ die "Authentication plugin '${user_answer}' is unknown/unsupported!"
+ ;;
+ esac
+
+ echo "Selected authentication plugin: ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" >> "${mysql_install_log}"
+
+ unset user_answer
+ fi
+
+ local cfg_option cfg_option_tabs cfg_section
+ for config_file in "${config_files[@]}" ; do
+ cfg_option="default-authentication-plugin"
+ cfg_section="mysqld"
+ cfg_option_tabs="\t\t"
+ if [[ "${config_file}" == *client.cnf ]] ; then
+ cfg_option="default-auth"
+ cfg_section="client"
+ cfg_option_tabs="\t\t\t\t"
+ fi
+
+ if grep -qE "^(loose-)?${cfg_option}\b.*=" "${config_file}" 2>/dev/null ; then
+ einfo "Ensuring that ${cfg_option} is set to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..."
+ sed -i \
+ -e "s/^\(loose-\)\?${cfg_option}\b.*=.*/loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}/" \
+ "${config_file}" || die "Failed to change ${cfg_option} in '${config_file}'!"
+ else
+ einfo "Setting ${cfg_option} to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..."
+ sed -i \
+ -e "/^\[${cfg_section}\]$/a loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" \
+ "${config_file}" || die "Failed to add ${cfg_option} to '${config_file}'!"
+ fi
+ done
+ unset cfg_option cfg_option_tabs cfg_section
+ fi
+ unset config_files config_file
+
+ echo
+
+ if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ local tmp_mysqld_password_source=
+
+ for tmp_mysqld_password_source in mysql client ; do
+ einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
+ MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
+ if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
+ ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
+ MYSQL_ROOT_PASSWORD=
+ continue
+ fi
+
+ einfo "Found password in '${tmp_mysqld_password_source}' section!"
+ break
+ fi
+ done
+
+ # Sometimes --show is required to display passwords in some implementations of my_print_defaults
+ if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
+ MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
+ fi
+
+ unset tmp_mysqld_password_source
+ fi
+
+ if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ local pwd1="a"
+ local pwd2="b"
+
+ echo
+ einfo "No password for mysql 'root' user was specified via environment"
+ einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config"
+ einfo "file like '${HOME}/.my.cnf'."
+ einfo "To continue please provide a password for the mysql 'root' user"
+ einfo "now on console:"
+ ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!"
+ read -rsp " >" pwd1 ; echo
+
+ einfo "Retype the password"
+ read -rsp " >" pwd2 ; echo
+
+ if [[ "x$pwd1" != "x$pwd2" ]] ; then
+ die "Passwords are not the same!"
+ fi
+
+ MYSQL_ROOT_PASSWORD="${pwd1}"
+ unset pwd1 pwd2
+
+ echo
+ fi
+
+ local -a mysqld_options
+
+ # Fix bug 446200. Don't reference host my.cnf, needs to come first,
+ # see http://bugs.mysql.com/bug.php?id=31312
+ use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" )
+
+ # Figure out which options we need to disable to do the setup
+ local helpfile="${TMPDIR}/mysqld-help"
+ "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
+
+ local opt optexp optfull
+ for opt in host-cache name-resolve networking slave-start \
+ federated ssl log-bin relay-log slow-query-log external-locking \
+ log-slave-updates \
+ ; do
+ optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
+ grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" )
+ done
+
+ # Prepare timezones, see
+ # https://dev.mysql.com/doc/mysql/en/time-zone-support.html
+ local tz_sql="$(_mktemp_dry "${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql")"
+ [[ -z "${tz_sql}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql' failed!"
+
+ echo "USE mysql;" >"${tz_sql}"
+ "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null
+ if [[ $? -ne 0 ]] ; then
+ die "mysql_tzinfo_to_sql failed!"
+ fi
+
+ # --initialize-insecure will not set root password
+ # --initialize would set a random one in the log which we don't need as we set it ourselves
+ local cmd=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--initialize-insecure"
+ "--init-file='${tz_sql}'"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ "--log-error='${mysql_install_log}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Initializing ${PN} data directory: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1
+
+ if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql.ibd" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2
+ die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!"
+ fi
+
+ rm "${tz_sql}" || die
+
+ local x=${RANDOM}
+ local socket="${EROOT}${PID_DIR}/mysqld${x}.sock"
+ local pidfile="${EROOT}${PID_DIR}/mysqld${x}.pid"
+ unset x
+
+ cmd=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ --max_allowed_packet=8M
+ --net_buffer_length=16K
+ "--socket='${socket}'"
+ "--pid-file='${pidfile}'"
+ "--log-error='${mysqld_logfile}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Starting mysqld to finalize initialization: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 &
+
+ echo -n "Waiting for mysqld to accept connections "
+ local maxtry=15
+ while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ if [[ -S "${socket}" ]] ; then
+ # Even with a socket we don't know if mysqld will abort
+ # start due to an error so just wait a little bit more...
+ maxtry=5
+ while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+ fi
+
+ echo
+
+ if [[ ! -S "${socket}" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2
+ die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!"
+ fi
+
+ local mysql_logfile="${TMPDIR}/set_root_pw.log"
+ touch "${mysql_logfile}" || die
+
+ ebegin "Setting root password"
+ # Do this from memory, as we don't want clear text passwords in temp files
+ local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'"
+ cmd=(
+ "${mysql_binary}"
+ --no-defaults
+ "--socket='${socket}'"
+ -hlocalhost
+ "-e \"${sql}\""
+ )
+ eval "${cmd[@]}" >"${mysql_logfile}" 2>&1
+ local rc=$?
+ eend ${rc}
+
+ if [[ ${rc} -ne 0 ]] ; then
+ # Poor man's solution which tries to avoid having password
+ # in log. NOTE: sed can fail if user didn't follow advice
+ # and included character which will require escaping...
+ sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null
+
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}"
+ die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!"
+ fi
+
+ # Stop the server
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ echo -n "Stopping the server "
+ pkill -F "${pidfile}" &>/dev/null
+
+ maxtry=10
+ while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ echo
+
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ # We somehow failed to stop server.
+ # However, not a fatal error. Just warn the user.
+ ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!"
+ fi
+ fi
+
+ einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!"
+}
diff --git a/dev-db/mysql/mysql-8.0.37.ebuild b/dev-db/mysql/mysql-8.0.37.ebuild
new file mode 100644
index 000000000000..27ef30ae8d8c
--- /dev/null
+++ b/dev-db/mysql/mysql-8.0.37.ebuild
@@ -0,0 +1,1281 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs cmake edo flag-o-matic linux-info multiprocessing prefix 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.36-patches-01/mysql-8.0.36-patches-01.tar.xz )
+
+DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
+HOMEPAGE="https://www.mysql.com/"
+SRC_URI="https://cdn.mysql.com/Downloads/MySQL-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz"
+SRC_URI+=" https://cdn.mysql.com/archives/mysql-$(ver_cut 1-2)/mysql-boost-${MY_PV}.tar.gz"
+SRC_URI+=" https://downloads.mysql.com/archives/MySQL-$(ver_cut 1-2)/${PN}-boost-${MY_PV}.tar.gz"
+SRC_URI+=" ${PATCH_SET[@]}"
+# Shorten the path because the socket path length must be shorter than 107 chars
+# and we will run a mysql server during test phase
+S="${WORKDIR}/mysql"
+
+LICENSE="GPL-2"
+SLOT="8.0"
+# -ppc for bug #761715
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips -ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
+IUSE="cjk cracklib debug jemalloc latin1 numa +perl profiling router selinux +server tcmalloc test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="?? ( tcmalloc jemalloc )
+ cjk? ( server )
+ jemalloc? ( server )
+ numa? ( server )
+ profiling? ( server )
+ router? ( server )
+ tcmalloc? ( server )"
+
+# Be warned, *DEPEND are version-dependent
+# These are used for both runtime and compiletime
+COMMON_DEPEND="
+ >=app-arch/lz4-1.9.4:=
+ >=app-arch/zstd-1.2.0:=
+ >=dev-libs/openssl-1.0.0:=
+ sys-libs/ncurses:=
+ >=sys-libs/zlib-1.2.13:=
+ server? (
+ dev-libs/icu:=
+ dev-libs/libevent:=[ssl,threads(+)]
+ net-libs/libtirpc:=
+ cjk? ( app-text/mecab )
+ jemalloc? ( dev-libs/jemalloc:= )
+ kernel_linux? (
+ dev-libs/libaio
+ sys-process/procps
+ )
+ numa? ( sys-process/numactl )
+ tcmalloc? ( dev-util/google-perftools:= )
+ )
+"
+
+# https://bugs.gentoo.org/623962
+# tests set TZ for tests leading to failures on musl if sys-libs/timezone-data isnt installed
+DEPEND="
+ ${COMMON_DEPEND}
+ app-alternatives/yacc
+ server? ( net-libs/rpcsvc-proto )
+ test? (
+ acct-group/mysql acct-user/mysql
+ dev-perl/Expect
+ dev-perl/JSON
+ sys-libs/timezone-data
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ !dev-db/mariadb
+ !dev-db/mariadb-galera
+ !dev-db/percona-server
+ !dev-db/mysql-cluster
+ !dev-db/mysql:0
+ !dev-db/mysql:5.7
+ selinux? ( sec-policy/selinux-mysql )
+ !prefix? (
+ acct-group/mysql acct-user/mysql
+ dev-db/mysql-init-scripts
+ )
+"
+# For other stuff to bring us in
+# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
+PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
+
+PATCHES=(
+ "${WORKDIR}"/mysql-patches
+ # Needed due to bundled boost-1.77, this fix is included in boost-1.81
+ "${FILESDIR}"/mysql-8.0.36-boost-clang-fix.patch
+)
+
+mysql_init_vars() {
+ : ${MY_SHAREDSTATEDIR="${EPREFIX}/usr/share/mysql"}
+ : ${MY_SYSCONFDIR="${EPREFIX}/etc/mysql"}
+ : ${MY_LOCALSTATEDIR="${EPREFIX}/var/lib/mysql"}
+ : ${MY_LOGDIR="${EPREFIX}/var/log/mysql"}
+ MY_DATADIR="${MY_LOCALSTATEDIR}"
+
+ export MY_SHAREDSTATEDIR MY_SYSCONFDIR
+ export MY_LOCALSTATEDIR MY_LOGDIR
+ export MY_DATADIR
+}
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if use server ; then
+ CHECKREQS_DISK_BUILD="3G"
+
+ if has test ${FEATURES} ; then
+ CHECKREQS_DISK_BUILD="10G"
+
+ if use elibc_musl; then
+ # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server"
+ CHECKREQS_DISK_BUILD="18G"
+ fi
+ fi
+
+ check-reqs_pkg_pretend
+ fi
+ fi
+}
+
+pkg_setup() {
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ CHECKREQS_DISK_BUILD="3G"
+
+ if has test ${FEATURES} ; then
+ CHECKREQS_DISK_BUILD="10G"
+
+ if use elibc_musl; then
+ # <parona@protonmail.com> i've seen it take 17GB on musl with FEATURES="test" USE="perl server"
+ CHECKREQS_DISK_BUILD="18G"
+ fi
+
+ # Bug #213475 - MySQL _will_ object strenuously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if ! has userpriv ${FEATURES} ; then
+ die "Testing with FEATURES=-userpriv is no longer supported by upstream. Tests MUST be run as non-root."
+ fi
+
+ local aio_max_nr=$(sysctl -n fs.aio-max-nr 2>/dev/null)
+ if [[ -z "${aio_max_nr}" || ${aio_max_nr} -lt 250000 ]] ; then
+ die "FEATURES=test will require fs.aio-max-nr=250000 at minimum!"
+ fi
+
+ if use latin1 ; then
+ # Upstream only supports tests with default charset
+ die "Testing with USE=latin1 is not supported."
+ fi
+ fi
+
+ if use kernel_linux && use numa ; then
+ linux-info_get_any_version
+
+ local CONFIG_CHECK="~NUMA"
+
+ local WARNING_NUMA="This package expects NUMA support in kernel which this system does not have at the moment;"
+ WARNING_NUMA+=" Either expect runtime errors, enable NUMA support in kernel or rebuild the package without NUMA support"
+
+ check_extra_config
+ fi
+
+ use server && check-reqs_pkg_setup
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+
+ mv -f "${WORKDIR}/${MY_P}" "${S}" || die
+}
+
+src_prepare() {
+ # Avoid rpm call which would trigger sandbox, #692368
+ sed -i \
+ -e 's/MY_RPM rpm/MY_RPM rpmNOTEXISTENT/' \
+ CMakeLists.txt || die
+
+ # Remove the centos and rhel selinux policies to support mysqld_safe under SELinux
+ if [[ -d "${S}/support-files/SELinux" ]] ; then
+ echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
+ fi
+
+ # Remove man pages for client-lib tools we don't install
+ rm \
+ man/my_print_defaults.1 \
+ man/perror.1 \
+ man/zlib_decompress.1 \
+ || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # Bug #114895, bug #110149
+ filter-flags "-O" "-O[01]"
+
+ # Code is now requiring C++17 due to https://github.com/mysql/mysql-server/commit/236ab55bedd8c9eacd80766d85edde2a8afacd08
+ append-cxxflags -std=c++17
+
+ if has sandbox ${FEATURES} ; then
+ # bug #823656
+ append-cppflags -DGTEST_NO_DEATH_TEST=1
+ fi
+
+ local mycmakeargs=(
+ -Wno-dev # less noise
+
+ # 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_MYSQLSHAREDIR=share/mysql
+ -DINSTALL_PLUGINDIR=$(get_libdir)/mysql/plugin
+ -DINSTALL_MYSQLDATADIR="${EPREFIX}/var/lib/mysql"
+ -DINSTALL_SBINDIR=sbin
+ -DINSTALL_SUPPORTFILESDIR="${EPREFIX}/usr/share/mysql"
+
+ -DROUTER_INSTALL_LOGROTATEDIR="${EPREFIX}/etc/logrotate.d"
+ -DROUTER_INSTALL_DOCDIR="share/doc/${PF}"
+
+ -DCOMPILATION_COMMENT="Gentoo Linux ${PF}"
+ -DWITH_UNIT_TESTS=$(usex test ON OFF)
+
+ # Enables -Werror
+ -DMYSQL_MAINTAINER_MODE=OFF
+
+ # Causes issues on musl bug #922808
+ -DWITH_BUILD_ID=OFF
+
+ # Using bundled editline to get CTRL+C working
+ -DWITH_EDITLINE=bundled
+ -DWITH_ZLIB=system
+ -DWITH_SSL=system
+ -DWITH_LIBWRAP=0
+ -DENABLED_LOCAL_INFILE=1
+ -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
+ -DWITH_DEFAULT_COMPILER_OPTIONS=0
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON
+
+ -DWITH_CURL=system
+ -DWITH_BOOST="${S}/boost"
+ -DWITH_ROUTER=$(usex router ON OFF)
+ )
+
+ if use debug; then
+ # Debug build type used extensively to add preprocessor definitions
+ local -x CMAKE_BUILD_TYPE="Debug"
+ else
+ # debug hack wrt #497532
+ mycmakeargs+=(
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(usev !debug '-DNDEBUG' )"
+ )
+ fi
+
+ if tc-is-lto ; then
+ mycmakeargs+=( -DWITH_LTO=ON )
+ else
+ mycmakeargs+=( -DWITH_LTO=OFF )
+ fi
+
+ if use test ; then
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
+ else
+ mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
+ fi
+
+ mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
+
+ mycmakeargs+=(
+ -DWITH_ICU=system
+ -DWITH_LZ4=system
+ # Our dev-libs/rapidjson doesn't carry necessary fixes for std::regex
+ -DWITH_RAPIDJSON=bundled
+ -DWITH_ZSTD=system
+ )
+
+ if [[ -n "${MYSQL_DEFAULT_CHARSET}" && -n "${MYSQL_DEFAULT_COLLATION}" ]] ; then
+ ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}"
+ ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}."
+ ewarn "You MUST file bugs without these variables set."
+ ewarn "Tests will probably fail!"
+
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=${MYSQL_DEFAULT_CHARSET}
+ -DDEFAULT_COLLATION=${MYSQL_DEFAULT_COLLATION}
+ )
+ elif use latin1 ; then
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=latin1
+ -DDEFAULT_COLLATION=latin1_swedish_ci
+ )
+ else
+ mycmakeargs+=(
+ -DDEFAULT_CHARSET=utf8mb4
+ -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci
+ )
+ fi
+
+ if use server ; then
+ mycmakeargs+=(
+ -DWITH_EXTRA_CHARSETS=all
+ -DWITH_DEBUG=$(usex debug)
+ -DWITH_MECAB=$(usex cjk system OFF)
+ -DWITH_LIBEVENT=system
+ # Cannot handle protobuf >23 bug #912797
+ # 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 ..."
+
+ if ! use server ; then
+ ewarn "Skipping server tests due to minimal build!"
+ return 0
+ fi
+
+ # Ensure that parallel runs don't die
+ local -x MTR_BUILD_THREAD="$((${RANDOM} % 100))"
+
+ local -x MTR_PARALLEL=${MTR_PARALLEL:-$(makeopts_jobs)}
+ einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
+
+ # Disable unit tests, run them separately with eclass defaults
+ local -x MTR_UNIT_TESTS=0
+
+ # Increase test timeouts
+ # bug #923649
+ # https://github.com/gentoo/gentoo/pull/35002#issuecomment-1926101030
+ local -x MTR_SUITE_TIMEOUT=$(( 60 * 40 )) # minutes
+ local -x MTR_TESTCASE_TIMEOUT=60 # minutes
+
+ # Include config for tests, this is for scenarios where mysql wasn't installed previously or if the
+ # configuration was from an older version.
+ sed \
+ -e "s/@GENTOO_PORTAGE_EPREFIX@/${EPREFIX}/" \
+ -e "s/@DATADIR@/${MY_DATADIR}/" \
+ "${FILESDIR}"/my.cnf-8.0.distro-client \
+ "${FILESDIR}"/my.cnf-8.0.distro-server \
+ > "${T}"/my.cnf || die
+ local -X PATH_CONFIG_FILE="${T}/my.cnf"
+
+ # Create directories because mysqladmin might run out of order
+ mkdir -p "${T}"/var-tests{,/log} || die
+
+ # Run mysql tests
+ pushd "${TESTDIR}" &>/dev/null || die
+
+ touch "${T}/disabled.def" || die
+
+ local -a disabled_tests=(
+ "auth_sec.atomic_rename_user;103512;Depends on user running test"
+ "auth_sec.keyring_file_data_qa;0;Won't work with user privileges"
+ "auth_sec.openssl_without_fips;94718;Known test failure"
+
+ "gis.geometry_class_attri_prop;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.geometry_property_function_issimple;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.gis_bugs_crashes;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_buffer;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_centroid;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_analysis_functions_distance;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_op_testingfunc_mix;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_operators_intersection;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_utility_function_distance_sphere;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.spatial_utility_function_simplify;5452;Known rounding error with latest AMD processors (PS)"
+ "gis.st_symdifference;5452;Known rounding error with latest AMD processors (PS)"
+
+ "innodb.alter_kill;0;Known test failure -- no upstream bug yet"
+
+ "main.derived_limit;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.explain_tree;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.gis-precise;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.mysql_load_data_local_dir;0;Known test failure -- no upstream bug yet"
+ "main.select_icp_mrr;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_bugs;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_dupsweed_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch_bka;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_firstmatch_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_mat_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.subquery_sj_all_bka_nobnl;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.window_std_var;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.window_std_var_optimized;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "main.with_recursive;0;Known rounding error with latest AMD processors -- no upstream bug yet"
+ "perfschema.statement_digest_query_sample;0;Test will fail on slow hardware"
+
+ "rpl.rpl_innodb_info_tbl_slave_tmp_tbl_mismatch;0;Unstable test"
+ "rpl_gtid.rpl_multi_source_mtr_includes;97844;Unstable test"
+ "main.partition_datatype;0;Unstable test"
+
+ "sys_vars.myisam_data_pointer_size_func;87935;Test will fail on slow hardware"
+
+ "x.connection;0;Known failure - no upstream bug yet"
+ "main.slow_log;0;Known failure - no upstream bug yet"
+
+ "sys_vars.build_id_basic;0;Requires -DWITH_BUILD_ID=ON"
+ )
+
+ if ! hash zip 1>/dev/null 2>&1 ; then
+ # No need to force dep app-arch/zip for one test
+ disabled_tests+=(
+ "innodb.discarded_partition_create;0;Requires app-arch/zip"
+ "innodb.partition_upgrade_create;0;Requires app-arch/zip"
+ )
+ fi
+
+ if has_version ">=dev-libs/openssl-3.2" ; then
+ # https://bugs.mysql.com/bug.php?id=113258
+ # Fails still with 8.0.37
+ disabled_tests+=(
+ "rpl.rpl_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2"
+ "auth_sec.wl15800_ciphers_tlsv13;0;CCM8 ciphers have a lower security level with OpenSSL 3.2"
+ )
+ fi
+
+ if use debug; then
+ disabled_tests+=(
+ "innodb.dblwr_unencrypt;0;Known test failure -- no upstream bug yet"
+ )
+ fi
+
+ local test_infos_str test_infos_arr
+ for test_infos_str in "${disabled_tests[@]}" ; do
+ IFS=';' read -r -a test_infos_arr <<< "${test_infos_str}"
+
+ if [[ ${#test_infos_arr[@]} != 3 ]] ; then
+ die "Invalid test data set, not matching format: ${test_infos_str}"
+ fi
+
+ _disable_test "${test_infos_arr[0]}" "${test_infos_arr[1]}" "${test_infos_arr[2]}"
+ done
+ unset test_infos_str test_infos_arr
+
+ local -a CMAKE_SKIP_TESTS=(
+ # timing test, can be unreliable
+ "routertest_harness_net_ts_timer"
+
+ # Could not get local host address: Name or service not known(errno: -2)
+ "routertest_component_bootstrap"
+ "routertest_component_bootstrap_account"
+ "routertest_component_bootstrap_clusterset"
+ "routertest_component_config_overwrites"
+ "routertest_component_rest_api_enable"
+ "routertest_component_routing"
+ "routertest_component_sd_notify"
+ "routertest_component_state_file"
+ "routertest_integration_routing_direct"
+ "routertest_integration_routing_reuse"
+ "routertest_integration_routing_sharing"
+ "routertest_integration_routing_sharing_constrained_pools"
+ "routertest_integration_routing_sharing_restart"
+
+ # TODO: ???
+ "pfs_host-oom"
+ "pfs_user-oom"
+ "pfs"
+ )
+
+ if use debug; then
+ CMAKE_SKIP_TESTS+=(
+ # binary_log::transaction::compression::Payload_event_buffer_istream::~Payload_event_buffer_istream(): Assertion `!m_outstanding_error' failed.
+ "payload_event_buffer_istream"
+ )
+ fi
+
+ # Try to increase file limits to increase test coverage
+ if ! ulimit -n 16500 1>/dev/null 2>&1 ; then
+ # Upper limit comes from parts.partition_* tests
+ ewarn "For maximum test coverage, please raise open file limit to 16500 (ulimit -n 16500) before calling the package manager."
+
+ if ! ulimit -n 4162 1>/dev/null 2>&1 ; then
+ # Medium limit comes from '[Warning] Buffered warning: Could not increase number of max_open_files to more than 3000 (request: 4162)'
+ ewarn "For medium test coverage please raise open file limit to 4162 (ulimit -n 4162) before calling the package manager."
+
+ if ! ulimit -n 3000 1>/dev/null 2>&1 ; then
+ ewarn "For minimum test coverage, please raise open file limit to 3000 (ulimit -n 3000) before calling the package manager."
+ else
+ einfo "Will run test suite with open file limit set to 3000 (minimum test coverage)."
+ fi
+ else
+ einfo "Will run test suite with open file limit set to 4162 (medium test coverage)."
+ fi
+ else
+ einfo "Will run test suite with open file limit set to 16500 (best test coverage)."
+ fi
+
+ # run mysql-test tests
+ # Enable force restart to ensure success when tests don't cleanup sufficiently.
+ # Anything touching gtid_executed is negatively affected if you have unlucky ordering
+ nonfatal edo perl mysql-test-run.pl \
+ --force --force-restart \
+ --vardir="${T}/var-tests" --tmpdir="${T}/tmp-tests" \
+ --skip-test=tokudb --skip-test-list="${T}/disabled.def" \
+ --retry-failure=0 --max-test-fail=0
+ retstatus_tests=$?
+
+ popd &>/dev/null || die
+
+ # Cleanup is important for these testcases.
+ pkill -9 -f "${S}/ndb" 2>/dev/null
+ pkill -9 -f "${S}/sql" 2>/dev/null
+
+ local failures=""
+ [[ ${retstatus_tests} -eq 0 ]] || failures="${failures} tests"
+
+ cmake_src_test
+
+ [[ -z "${failures}" ]] || die "Test failures: ${failures}"
+ einfo "Tests successfully completed"
+}
+
+src_install() {
+ cmake_src_install
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Convenience links
+ einfo "Making Convenience links for mysqlcheck multi-call binary"
+ dosym "mysqlcheck" "/usr/bin/mysqlanalyze"
+ dosym "mysqlcheck" "/usr/bin/mysqlrepair"
+ dosym "mysqlcheck" "/usr/bin/mysqloptimize"
+
+ # INSTALL_LAYOUT=STANDALONE causes cmake to create a /usr/data dir
+ if [[ -d "${ED}/usr/data" ]] ; then
+ rm -Rf "${ED}/usr/data" || die
+ fi
+
+ # Unless they explicitly specific USE=test, then do not install the
+ # testsuite. It DOES have a use to be installed, esp. when you want to do a
+ # validation of your database configuration after tuning it.
+ if ! use test ; then
+ rm -rf "${ED}/${MY_SHAREDSTATEDIR#${EPREFIX}}/mysql-test"
+ fi
+
+ # Configuration stuff
+ einfo "Building default configuration ..."
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}"
+ [[ -f "${S}/scripts/mysqlaccess.conf" ]] && doins "${S}"/scripts/mysqlaccess.conf
+ cp "${FILESDIR}/my.cnf-5.7" "${TMPDIR}/my.cnf" || die
+ eprefixify "${TMPDIR}/my.cnf"
+ doins "${TMPDIR}/my.cnf"
+ insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.d"
+ cp "${FILESDIR}/my.cnf-8.0.distro-client" "${TMPDIR}/50-distro-client.cnf" || die
+ eprefixify "${TMPDIR}/50-distro-client.cnf"
+ doins "${TMPDIR}/50-distro-client.cnf"
+
+ mycnf_src="my.cnf-8.0.distro-server"
+ sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
+ "${FILESDIR}/${mycnf_src}" \
+ > "${TMPDIR}/my.cnf.ok" || die
+
+ if use prefix ; then
+ sed -i -r -e '/^user[[:space:]]*=[[:space:]]*mysql$/d' \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+
+ if use latin1 ; then
+ sed -i \
+ -e "/character-set/s|utf8mb4|latin1|g" \
+ "${TMPDIR}/my.cnf.ok" || die
+ fi
+
+ eprefixify "${TMPDIR}/my.cnf.ok"
+
+ newins "${TMPDIR}/my.cnf.ok" 50-distro-server.cnf
+
+ #Remove mytop if perl is not selected
+ [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f "${ED}/usr/bin/mytop"
+
+ if use router ; then
+ rm -rf \
+ "${ED}/usr/LICENSE.router" \
+ "${ED}/usr/README.router" \
+ "${ED}/usr/run" \
+ "${ED}/usr/var" \
+ || die
+ fi
+
+ # Kill old libmysqclient_r symlinks if they exist. Time to fix what depends on them.
+ find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
+}
+
+pkg_postinst() {
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Create log directory securely if it does not exist
+ # NOTE: $MY_LOGDIR contains $EPREFIX by default
+ [[ -d "${MY_LOGDIR}" ]] || install -d -m0750 -o mysql -g mysql "${MY_LOGDIR}"
+
+ # Note about configuration change
+ einfo
+ elog "This version of ${PN} reorganizes the configuration from a single my.cnf"
+ elog "to several files in /etc/mysql/mysql.d."
+ elog "Please backup any changes you made to /etc/mysql/my.cnf"
+ elog "and add them as a new file under /etc/mysql/mysql.d with a .cnf extension."
+ elog "You may have as many files as needed and they are read alphabetically."
+ elog "Be sure the options have the appropriate section headers, i.e. [mysqld]."
+ einfo
+
+ if [[ -z "${REPLACING_VERSIONS}" ]] ; then
+ einfo
+ elog "You might want to run:"
+ elog " \"emerge --config =${CATEGORY}/${PF}\""
+ elog "if this is a new install."
+ einfo
+ else
+ einfo
+ elog "Upgrade process for ${PN}-8.x has changed. Please read"
+ elog "https://dev.mysql.com/doc/refman/8.0/en/upgrade-binary-package.html"
+ einfo
+ fi
+}
+
+pkg_config() {
+ _getoptval() {
+ local section="$1"
+ local flag="--${2}="
+ local extra_options="${3}"
+ local cmd=(
+ "${my_print_defaults_binary}"
+ "${extra_options}"
+ "${section}"
+ )
+ local results=( $(eval "${cmd[@]}" 2>/dev/null | sed -n "/^${flag}/s,${flag},,gp") )
+
+ if [[ ${#results[@]} -gt 0 ]] ; then
+ # When option is set multiple times only return last value
+ echo "${results[-1]}"
+ fi
+ }
+
+ _mktemp_dry() {
+ # emktemp has no --dry-run option
+ local template="${1}"
+
+ if [[ -z "${template}" ]] ; then
+ if [[ -z "${T}" ]] ; then
+ template="/tmp/XXXXXXX"
+ else
+ template="${T}/XXXXXXX"
+ fi
+ fi
+
+ local template_wo_X=${template//X/}
+ local n_X
+ let n_X=${#template}-${#template_wo_X}
+ if [[ ${n_X} -lt 3 ]] ; then
+ echo "${FUNCNAME[0]}: too few X's in template ‘${template}’" >&2
+ return
+ fi
+
+ local attempts=0
+ local character tmpfile
+ while [[ true ]] ; do
+ let attempts=attempts+1
+
+ new_file=
+ while read -n1 character ; do
+ if [[ "${character}" == "X" ]] ; then
+ tmpfile+="${RANDOM:0:1}"
+ else
+ tmpfile+="${character}"
+ fi
+ done < <(echo -n "${template}")
+
+ if [[ ! -f "${tmpfile}" ]]
+ then
+ echo "${tmpfile}"
+ return
+ fi
+
+ if [[ ${attempts} -ge 100 ]] ; then
+ echo "${FUNCNAME[0]}: Cannot create temporary file after 100 attempts." >&2
+ return
+ fi
+ done
+ }
+
+ local mysqld_binary="${EROOT}/usr/sbin/mysqld"
+ if [[ ! -x "${mysqld_binary}" ]] ; then
+ die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local mysql_binary="${EROOT}/usr/bin/mysql"
+ if [[ ! -x "${mysql_binary}" ]] ; then
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!"
+ fi
+
+ local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults"
+ if [[ ! -x "${my_print_defaults_binary}" ]] ; then
+ die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!"
+ fi
+
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ MYSQL_USER=mysql
+ if use prefix ; then
+ MYSQL_USER=$(id -u -n 2>/dev/null)
+ if [[ -z "${MYSQL_USER}" ]] ; then
+ die "Failed to determine current username!"
+ fi
+ fi
+ fi
+
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ MYSQL_GROUP=mysql
+ if use prefix ; then
+ MYSQL_GROUP=$(id -g -n 2>/dev/null)
+ if [[ -z "${MYSQL_GROUP}" ]] ; then
+ die "Failed to determine current user groupname!"
+ fi
+ fi
+ fi
+
+ # my_print_defaults needs to read stuff in $HOME/.my.cnf
+ local -x HOME="${EROOT}/root"
+
+ # Make sure the vars are correctly initialized
+ mysql_init_vars
+
+ # Read currently set data directory
+ MY_DATADIR="$(_getoptval mysqld datadir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+
+ # Bug #213475 - MySQL _will_ object strenously if your machine is named
+ # localhost. Also causes weird failures.
+ [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost"
+
+ if [[ -z "${MY_DATADIR}" ]] ; then
+ die "Sorry, unable to find MY_DATADIR!"
+ elif [[ -d "${MY_DATADIR}/mysql" ]] ; then
+ ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!"
+ ewarn "Please rename or delete its content if you wish to initialize a new data directory."
+ die "${PN} data directory at '${MY_DATADIR}' looks already initialized!"
+ fi
+
+ MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_TMPDIR=${MYSQL_TMPDIR%/}
+ # These are dir+prefix
+ MYSQL_LOG_BIN="$(_getoptval mysqld log-bin "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_LOG_BIN=${MYSQL_LOG_BIN%/*}
+ MYSQL_RELAY_LOG="$(_getoptval mysqld relay-log "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")"
+ MYSQL_RELAY_LOG=${MYSQL_RELAY_LOG%/*}
+
+ # Create missing directories.
+ # Always check if mysql user can write to directory even if we just
+ # created directory because a parent directory might be not
+ # accessible for that user.
+ PID_DIR="${EROOT}/run/mysqld"
+ if [[ ! -d "${PID_DIR}" ]] ; then
+ einfo "Creating ${PN} PID directory '${PID_DIR}' ..."
+ install -d -m 755 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${PID_DIR}" \
+ || die "Failed to create PID directory '${PID_DIR}'!"
+ fi
+
+ local _pid_dir_testfile="$(_mktemp_dry "${PID_DIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_pid_dir_testfile}" ]] \
+ && die "_mktemp_dry() for '${PID_DIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_pid_dir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_pid_dir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into PID dir '${PID_DIR}'!"
+ else
+ rm "${_pid_dir_testfile}" || die
+ unset _pid_dir_testfile
+ fi
+
+ if [[ ! -d "${MY_DATADIR}" ]] ; then
+ einfo "Creating ${PN} data directory '${MY_DATADIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MY_DATADIR}" \
+ || die "Failed to create ${PN} data directory '${MY_DATADIR}'!"
+ fi
+
+ local _my_datadir_testfile="$(_mktemp_dry "${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_datadir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MY_DATADIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_datadir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!"
+ else
+ rm "${_my_datadir_testfile}" || die
+ unset _my_datadir_testfile
+ fi
+
+ if [[ -n "${MYSQL_TMPDIR}" && ! -d "${MYSQL_TMPDIR}" ]] ; then
+ einfo "Creating ${PN} tmpdir '${MYSQL_TMPDIR}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_TMPDIR}" \
+ || die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!"
+ fi
+
+ if [[ -z "${MYSQL_TMPDIR}" ]] ; then
+ MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")"
+ [[ -z "${MYSQL_TMPDIR}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!"
+
+ mkdir "${MYSQL_TMPDIR}" || die
+ chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die
+ fi
+
+ # Now we need to test MYSQL_TMPDIR...
+ local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_tmpdir_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_tmpdir_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!"
+ else
+ rm "${_my_tmpdir_testfile}" || die
+ unset _my_tmpdir_testfile
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" && ! -d "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \
+ || die "Failed to create ${PN} log-bin directory '${MYSQL_LOG_BIN}'"
+ fi
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ local _my_logbin_testfile="$(_mktemp_dry "${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_logbin_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_LOG_BIN}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_logbin_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!"
+ else
+ rm "${_my_logbin_testfile}" || die
+ unset _my_logbin_testfile
+ fi
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" && ! -d "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "Creating ${PN} relay-log directory '${MYSQL_RELAY_LOG}' ..."
+ install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_RELAY_LOG}" \
+ || die "Failed to create ${PN} relay-log directory '${MYSQL_RELAY_LOG}'!"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ local _my_relaylog_testfile="$(_mktemp_dry "${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX")"
+ [[ -z "${_my_relaylog_testfile}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_RELAY_LOG}/.pkg_config-access-test.XXXXXXXXX' failed!"
+
+ if use prefix ; then
+ touch "${_my_relaylog_testfile}" &>/dev/null
+ else
+ su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null
+ fi
+
+ if [[ $? -ne 0 ]] ; then
+ die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!"
+ else
+ rm "${_my_relaylog_testfile}" || die
+ unset _my_relaylog_testfile
+ fi
+ fi
+
+ local mysql_install_log="$(_mktemp_dry "${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log")"
+ if [[ -z "${mysql_install_log}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysql_install_log}" || die
+ chown ${MYSQL_USER} "${mysql_install_log}" || die
+ fi
+
+ local mysqld_logfile="$(_mktemp_dry "${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log")"
+ if [[ -z "${mysqld_logfile}" ]] ; then
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log' failed!"
+ else
+ # make sure file is writable for MYSQL_USER...
+ touch "${mysqld_logfile}" || die
+ chown ${MYSQL_USER} "${mysqld_logfile}" || die
+ fi
+
+ echo ""
+ einfo "Detected settings:"
+ einfo "=================="
+ einfo "MySQL User:\t\t\t\t${MYSQL_USER}"
+ einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}"
+ einfo "MySQL DATA directory:\t\t${MY_DATADIR}"
+ einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}"
+
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}"
+ fi
+
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then
+ einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}"
+ fi
+
+ einfo "PID DIR:\t\t\t\t${PID_DIR}"
+ einfo "Install db log:\t\t\t${mysql_install_log}"
+ einfo "Install server log:\t\t\t${mysqld_logfile}"
+
+ local -a config_files
+
+ local config_file="${EROOT}/etc/mysql/mysql.d/50-distro-client.cnf"
+ if [[ -f "${config_file}" ]] ; then
+ config_files+=( "${config_file}" )
+ else
+ ewarn "Client configuration '${config_file}' not found; Skipping configuration of default authentication plugin for client ..."
+ fi
+
+ config_file="${EROOT}/etc/mysql/mysql.d/50-distro-server.cnf"
+ if [[ -f "${config_file}" ]] ; then
+ config_files+=( "${config_file}" )
+ else
+ ewarn "Server configuration '${config_file}' not found; Skipping configuration of default authentication plugin for mysqld ..."
+ fi
+
+ if [[ ${#config_files[@]} -gt 0 ]] ; then
+ if [[ -z "${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" ]] ; then
+ local user_answer
+
+ echo
+ einfo "Please select default authentication plugin (enter number or plugin name):"
+ einfo "1) caching_sha2_password [MySQL 8.0 default]"
+ einfo "2) mysql_native_password [MySQL 5.7 default]"
+ einfo
+ einfo "For details see:"
+ einfo "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password"
+ read -p " >" user_answer
+ echo
+
+ case "${user_answer}" in
+ 1|caching_sha2_password)
+ MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=caching_sha2_password
+ ;;
+ 2|mysql_native_password)
+ MYSQL_DEFAULT_AUTHENTICATION_PLUGIN=mysql_native_password
+ ;;
+ '')
+ die "No authentication plugin selected!"
+ ;;
+ *)
+ die "Authentication plugin '${user_answer}' is unknown/unsupported!"
+ ;;
+ esac
+
+ echo "Selected authentication plugin: ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" >> "${mysql_install_log}"
+
+ unset user_answer
+ fi
+
+ local cfg_option cfg_option_tabs cfg_section
+ for config_file in "${config_files[@]}" ; do
+ cfg_option="default-authentication-plugin"
+ cfg_section="mysqld"
+ cfg_option_tabs="\t\t"
+ if [[ "${config_file}" == *client.cnf ]] ; then
+ cfg_option="default-auth"
+ cfg_section="client"
+ cfg_option_tabs="\t\t\t\t"
+ fi
+
+ if grep -qE "^(loose-)?${cfg_option}\b.*=" "${config_file}" 2>/dev/null ; then
+ einfo "Ensuring that ${cfg_option} is set to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..."
+ sed -i \
+ -e "s/^\(loose-\)\?${cfg_option}\b.*=.*/loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}/" \
+ "${config_file}" || die "Failed to change ${cfg_option} in '${config_file}'!"
+ else
+ einfo "Setting ${cfg_option} to '${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}' in '${config_file}' ..."
+ sed -i \
+ -e "/^\[${cfg_section}\]$/a loose-${cfg_option}${cfg_option_tabs}= ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" \
+ "${config_file}" || die "Failed to add ${cfg_option} to '${config_file}'!"
+ fi
+ done
+ unset cfg_option cfg_option_tabs cfg_section
+ fi
+ unset config_files config_file
+
+ echo
+
+ if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ local tmp_mysqld_password_source=
+
+ for tmp_mysqld_password_source in mysql client ; do
+ einfo "Trying to get password for mysql 'root' user from '${tmp_mysqld_password_source}' section ..."
+ MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password)"
+ if [[ -n "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ if [[ ${MYSQL_ROOT_PASSWORD} == *$'\n'* ]] ; then
+ ewarn "Ignoring password from '${tmp_mysqld_password_source}' section due to newline character (do you have multiple password options set?)!"
+ MYSQL_ROOT_PASSWORD=
+ continue
+ fi
+
+ einfo "Found password in '${tmp_mysqld_password_source}' section!"
+ break
+ fi
+ done
+
+ # Sometimes --show is required to display passwords in some implementations of my_print_defaults
+ if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]] ; then
+ MYSQL_ROOT_PASSWORD="$(_getoptval "${tmp_mysqld_password_source}" password --show)"
+ fi
+
+ unset tmp_mysqld_password_source
+ fi
+
+ if [[ -z "${MYSQL_ROOT_PASSWORD}" ]] ; then
+ local pwd1="a"
+ local pwd2="b"
+
+ echo
+ einfo "No password for mysql 'root' user was specified via environment"
+ einfo "variable MYSQL_ROOT_PASSWORD and no password was found in config"
+ einfo "file like '${HOME}/.my.cnf'."
+ einfo "To continue please provide a password for the mysql 'root' user"
+ einfo "now on console:"
+ ewarn "NOTE: Please avoid [\"'\\_%] characters in the password!"
+ read -rsp " >" pwd1 ; echo
+
+ einfo "Retype the password"
+ read -rsp " >" pwd2 ; echo
+
+ if [[ "x$pwd1" != "x$pwd2" ]] ; then
+ die "Passwords are not the same!"
+ fi
+
+ MYSQL_ROOT_PASSWORD="${pwd1}"
+ unset pwd1 pwd2
+
+ echo
+ fi
+
+ local -a mysqld_options
+
+ # Fix bug 446200. Don't reference host my.cnf, needs to come first,
+ # see http://bugs.mysql.com/bug.php?id=31312
+ use prefix && mysqld_options+=( "--defaults-file='${MY_SYSCONFDIR}/my.cnf'" )
+
+ # Figure out which options we need to disable to do the setup
+ local helpfile="${TMPDIR}/mysqld-help"
+ "${EROOT}/usr/sbin/mysqld" --verbose --help >"${helpfile}" 2>/dev/null
+
+ local opt optexp optfull
+ for opt in host-cache name-resolve networking slave-start \
+ federated ssl log-bin relay-log slow-query-log external-locking \
+ log-slave-updates \
+ ; do
+ optexp="--(skip-)?${opt}" optfull="--loose-skip-${opt}"
+ grep -E -sq -- "${optexp}" "${helpfile}" && mysqld_options+=( "${optfull}" )
+ done
+
+ # Prepare timezones, see
+ # https://dev.mysql.com/doc/mysql/en/time-zone-support.html
+ local tz_sql="$(_mktemp_dry "${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql")"
+ [[ -z "${tz_sql}" ]] \
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql' failed!"
+
+ echo "USE mysql;" >"${tz_sql}"
+ "${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null
+ if [[ $? -ne 0 ]] ; then
+ die "mysql_tzinfo_to_sql failed!"
+ fi
+
+ # --initialize-insecure will not set root password
+ # --initialize would set a random one in the log which we don't need as we set it ourselves
+ local cmd=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--initialize-insecure"
+ "--init-file='${tz_sql}'"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ "--log-error='${mysql_install_log}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Initializing ${PN} data directory: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysql_install_log}" 2>&1
+
+ if [[ $? -ne 0 || ! -f "${MY_DATADIR}/mysql.ibd" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_install_log}" 1>&2
+ die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!"
+ fi
+
+ rm "${tz_sql}" || die
+
+ local x=${RANDOM}
+ local socket="${EROOT}${PID_DIR}/mysqld${x}.sock"
+ local pidfile="${EROOT}${PID_DIR}/mysqld${x}.pid"
+ unset x
+
+ cmd=(
+ "${mysqld_binary}"
+ "${mysqld_options[@]}"
+ "--basedir='${EROOT}/usr'"
+ "--datadir='${MY_DATADIR}'"
+ "--tmpdir='${MYSQL_TMPDIR}'"
+ --max_allowed_packet=8M
+ --net_buffer_length=16K
+ "--socket='${socket}'"
+ "--pid-file='${pidfile}'"
+ "--log-error='${mysqld_logfile}'"
+ "--user=${MYSQL_USER}"
+ )
+
+ einfo "Starting mysqld to finalize initialization: ${cmd[@]}"
+ eval "${cmd[@]}" >>"${mysqld_logfile}" 2>&1 &
+
+ echo -n "Waiting for mysqld to accept connections "
+ local maxtry=15
+ while [[ ! -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ if [[ -S "${socket}" ]] ; then
+ # Even with a socket we don't know if mysqld will abort
+ # start due to an error so just wait a little bit more...
+ maxtry=5
+ while [[ -S "${socket}" && "${maxtry}" -gt 1 ]] ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+ fi
+
+ echo
+
+ if [[ ! -S "${socket}" ]] ; then
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysqld_logfile}" 1>&2
+ die "mysqld was unable to start from initialized data directory. Please review '${mysqld_logfile}'!"
+ fi
+
+ local mysql_logfile="${TMPDIR}/set_root_pw.log"
+ touch "${mysql_logfile}" || die
+
+ ebegin "Setting root password"
+ # Do this from memory, as we don't want clear text passwords in temp files
+ local sql="ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}'"
+ cmd=(
+ "${mysql_binary}"
+ --no-defaults
+ "--socket='${socket}'"
+ -hlocalhost
+ "-e \"${sql}\""
+ )
+ eval "${cmd[@]}" >"${mysql_logfile}" 2>&1
+ local rc=$?
+ eend ${rc}
+
+ if [[ ${rc} -ne 0 ]] ; then
+ # Poor man's solution which tries to avoid having password
+ # in log. NOTE: sed can fail if user didn't follow advice
+ # and included character which will require escaping...
+ sed -i -e "s/${MYSQL_ROOT_PASSWORD}/*****/" "${mysql_logfile}" 2>/dev/null
+
+ grep -B5 -A999 -iE "(Aborting|ERROR|errno)" "${mysql_logfile}"
+ die "Failed to set ${PN} root password. Please review '${mysql_logfile}'!"
+ fi
+
+ # Stop the server
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ echo -n "Stopping the server "
+ pkill -F "${pidfile}" &>/dev/null
+
+ maxtry=10
+ while [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; do
+ maxtry=$((${maxtry}-1))
+ echo -n "."
+ sleep 1
+ done
+
+ echo
+
+ if [[ -f "${pidfile}" ]] && pgrep -F "${pidfile}" &>/dev/null ; then
+ # We somehow failed to stop server.
+ # However, not a fatal error. Just warn the user.
+ ewarn "WARNING: mysqld[$(cat "${pidfile}")] is still running!"
+ fi
+ fi
+
+ einfo "${PN} data directory at '${MY_DATADIR}' successfully initialized!"
+}
diff --git a/dev-db/mysqltuner/Manifest b/dev-db/mysqltuner/Manifest
index dd279be50776..6f2a4fd61356 100644
--- a/dev-db/mysqltuner/Manifest
+++ b/dev-db/mysqltuner/Manifest
@@ -1,2 +1 @@
-DIST mysqltuner-2.2.12.tar.gz 5130342 BLAKE2B 9a62f634a18f94d8f844aa93a0c7b2595bf29c9888005c89bdf8c0acb7376548dd745e46b2c0d67bb2ab5b79acd4ce19f6fd99b525bf8794e92b7713020128ac SHA512 84352c3bce74a7288ea1ac5a7c2e513ff0cd35656df5280bedf8738eb4b90ad0cdf039510d874947080720f56f0f947a964cf5152788a7566616e012a5f94c85
DIST mysqltuner-2.5.2.tar.gz 5132683 BLAKE2B 439559c05ed9daad6f21fc90f91b3b39619ca2012a719eca3ba4b5d8cb2d963fb8bc10b0ea2855052ca5716fc98aa62f35bd0288380dceb79c1832150fe7f2a8 SHA512 9fe3d77636e3779ca2ab5f93cd7c480d651f6c26f4e6271adfcee6012aa423579f124ce6858bbf7142b2967f30bc0f0517b5d82ad2a35ecc004b1b621d0bee45
diff --git a/dev-db/mysqltuner/mysqltuner-2.2.12.ebuild b/dev-db/mysqltuner/mysqltuner-2.2.12.ebuild
deleted file mode 100644
index f7d7b73e56c1..000000000000
--- a/dev-db/mysqltuner/mysqltuner-2.2.12.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MY_PN="MySQLTuner-perl"
-
-DESCRIPTION="Makes recommendations for increased performance and stability for MySQL"
-HOMEPAGE="https://github.com/major/MySQLTuner-perl"
-SRC_URI="https://github.com/major/${MY_PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-RDEPEND="
- dev-lang/perl
- virtual/perl-Getopt-Long
-"
-
-src_compile() {
- :;
-}
-
-src_install() {
- newbin mysqltuner.pl mysqltuner
- dodoc {CONTRIBUTING,INTERNALS,USAGE}.md
- einstalldocs
-
- # Passwords and vulnerabilities are meant to be fed to the script uncompressed.
- dodoc basic_passwords.txt vulnerabilities.csv
- docompress -x "/usr/share/doc/${PF}/basic_passwords.txt" "/usr/share/doc/${PF}/vulnerabilities.csv"
-}
diff --git a/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild b/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild
index 7ce503589cae..0fe8e0faba42 100644
--- a/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild
+++ b/dev-db/mysqltuner/mysqltuner-2.5.2.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
RDEPEND="
dev-lang/perl
diff --git a/dev-db/oracle-instantclient/Manifest b/dev-db/oracle-instantclient/Manifest
index a06d0dbd82d1..b2d2676606de 100644
--- a/dev-db/oracle-instantclient/Manifest
+++ b/dev-db/oracle-instantclient/Manifest
@@ -1,28 +1,35 @@
DIST instantclient-basic-linux-19.11.0.0.0dbru.zip 70336706 BLAKE2B 061f6abc83bab7f2e6712e33274783f96caee3d97629d39cacd925af658f737a072207449468e05f89672bcfc7ff98f81d7d9c92a8f844664ce97b4c6afabf27 SHA512 da4db9c64c0f92c2b78cc6b26ff710e3330e937395d62942625921401042af27fdf80d25eb3748c97f4281442ddb72f3ddc5f68171a89ae289f3d2f492c56ef7
DIST instantclient-basic-linux-21.3.0.0.0.zip 74751697 BLAKE2B f9b29d1c98a55946670ce6a5c674f2c9e6a8d6152b0f4d335f41ad9479b0a2bcf9ba791aeba894161c64c5e088b458506c068d4ece386956158cb09f27f91b07 SHA512 b8599ebe0cf867336b1dfb4edb974b934ed29e96aa7b7a866b93c8d8271c8dfacc693b884a9e422272098e09b4c5a2d6badb11fffb57b43ca4eb15907878bb99
DIST instantclient-basic-linux.x64-19.11.0.0.0dbru.zip 75943090 BLAKE2B 6e081d22af1161d1505847c6918cc618f92810d7803f2bb13b3c58f2e8c5bb3aa70d2006fbd1fcc193d3719ecf224c3541f3dc5c5ccfc6105a10c54c51ddd2c9 SHA512 0f7242a1becb062b6c55202587360895529e7ec277b0e41e27466dc01caf4b97cf0a256d0ccb9b71fb86b4802d9c427e0428f0419260b609d94472f89f7f33e6
+DIST instantclient-basic-linux.x64-21.13.0.0.0dbru.zip 83761712 BLAKE2B d7922bb6372bfb5a2c251f373ebf84130ec235ec95fa83a347aadf325f90f3be746de5c031035af7496ba728d75269434137090eb538790149ed051b23ebd63a SHA512 e2cf006fc542917367dbcf82287ac3a4614a5238d2d2dcf8f998fc0b91b3a3177aa2296bdbbea277d68dfe523f72ed32a2bca7dbc113a16bdaf5fe7982742aa3
DIST instantclient-basic-linux.x64-21.3.0.0.0.zip 79375865 BLAKE2B 2215829c6f7df463d0cd1108755976eb5cc6d4fdf41201687236131151d2068a9e3c8762bfdac65ce2890c57cdb2fea6684e6012d836f232a8ff3cb93223deec SHA512 812dd6bb3a3c24b87e40a3df0c2a0dcfe1b5e27524b8e1622c533d8561cd4d674e9d90b8e66f571ee21bf3d1e152092ee986b6ff226d51674f1253f1ffb97ae4
DIST instantclient-jdbc-linux-19.11.0.0.0dbru.zip 1577534 BLAKE2B 954049186c80028567f5ec0bb30aa28f6d9092d8c8be7cfef67f94e397dc26b935cfbbf75bee3b32e56c3697fb5a7e3181f9948ef91177af68c648e102a7db77 SHA512 5717137a6ebf28669347dd6f03f61b7242a332b927b55502b9019d108714c77e3dd31894f6d5260df6553604b0255b657aed46b63262db9f2e7153c067387e0e
DIST instantclient-jdbc-linux-21.3.0.0.0.zip 1578398 BLAKE2B 42fbcd9946ff87f438297751febcaef4d361d36ac9d6538bc52f988f98c51531efb3a2721ba5c3859bf7f8e9092667704c206cc373d6ad099c1e6048077b3662 SHA512 3bb62dbe0738f6800945858acf56780d8049af0d6c6466e926c7173deaecf3dcd277f9a7e57f3b89aef08e73a585b57eded7175809ddf8a53402523ba392c1d5
DIST instantclient-jdbc-linux.x64-19.11.0.0.0dbru.zip 1578059 BLAKE2B f5db4ab8b4424d21bb685b43012f71a228fdf1444e055b44dcf029b3beeefcca96aaddc496ac5912d4b337ec5d2bbd959df6083c18f7921811e996a2d73e5af6 SHA512 b2f906ae887f0421ff2edb80a70d0ede1fa624792e45ebfd205ade3f24dcd3cbc596c3ee64c39d7143810a2a11fafc649ad46cb5549d519dd3a1ffb7476fb537
+DIST instantclient-jdbc-linux.x64-21.13.0.0.0dbru.zip 1579013 BLAKE2B 3a3623fdddd8612c64ad42347c3272923753937d137f6af44b1211540dff0df495793caeb069ea1eb731e25d022728c2dca41eae8123af81070ffb30b509ef68 SHA512 634fdabfa4a2a90b436ff6fbe7227c0667a035a86aa51bb8d1ce3bb9b6a62a8285d3845cc58d29b5ec0a53c66c0314f63fff9412de8b25f4837428ad7863e9c4
DIST instantclient-jdbc-linux.x64-21.3.0.0.0.zip 1578995 BLAKE2B 9913c62abe55d5c5ebe7e9feeb9051b7833d33e3a7bc8b96667336d2ecb8bd8766d268f2eef2f2de247b0edf1d3abb65c56316a3d11b14ebcf782a3c75ed332e SHA512 8d2b7344c99ec0744e147c899e252f34fd29b7dff49b2bbe5497836130fd8e9d01f874b33ddaf7a8cca442d62eb7da56ed547120ffd409bb4731a9b56166bb42
DIST instantclient-odbc-linux-19.11.0.0.0dbru.zip 600428 BLAKE2B b4bcb4131bab1fac2650bee8cf1db4f389e89bbf0e310f9df2a9f1ce29ebf35f8056e350175ceb406e82bd077825cb4e6ad405c5ec00929f2db2630e99630006 SHA512 9a21c2dc06b6e1c4ae7305ce248cbfe45e4ad830a48f3e088be11065471beda002fd5a6bcca71f5095ad70186d742bddffc82bdb79a4368e89c59bfd3f04af4b
DIST instantclient-odbc-linux-21.3.0.0.0.zip 760101 BLAKE2B 68a96fa5e24f5d44f64eabfd142280d620423f15fff62b10094b4425b520a2a31ba54fe6bce2d723700d38ce5a579d31a1c49ef6928eb6f4e342c7c8d98a49aa SHA512 e2e4cf126652580bf2d8f8ace7694881382b745a7adfabbba0c3e6fddcbb9ca7e300b0d18b19c8da029ca8f33c5f8f95baa141da20659ba49c9a8e6f4848b2db
DIST instantclient-odbc-linux.x64-19.11.0.0.0dbru.zip 638686 BLAKE2B c9fa1b8988d85870bb4c2d9cb5c34c1572079c36a51da0ef726250f03ca0b53dbc19990582358011f099ca183d6148f8110cf80c1a17917549f6e38be503f706 SHA512 7d92ff08ea48de0e981cadad15a3c392749b3e20331b25f00f2f96ef7cc11a9802408f18dbfbf36366b0122d6c8fd256d43297c3bd87b4304b0479b1593e35fc
+DIST instantclient-odbc-linux.x64-21.13.0.0.0dbru.zip 798628 BLAKE2B 1cc41d2f1538924debbe0ee04c251abda45be769097103c8782c946772e8ab3c3734f443b5d910d29a308e9a3470fb1c72f5e72b208e347164f8fd44cabe1d5f SHA512 65551dbe35c5ac5bd709973147ef3a1a6cead8f21f4a5675cad6b8b5fc670f0eb0c897fcdeb2f421b1005c1c2763e3c4090c81fa73122f146411a27cdfbdd042
DIST instantclient-odbc-linux.x64-21.3.0.0.0.zip 798599 BLAKE2B d020c68895dbb59e53e2e7ebc599e9016dee123dc03d3ce5f9263e721fa7664ecc6fc8b49b0b498a87b0d24bf74e79854edd66c2b2e7a9367be8e1e9c2cbe159 SHA512 0bf756458f3a856bbe6942d1f4bc30a7261ce3da7524ab8b71f77d9f367767ad75e8ed83e4de18bed1eb8d597f2aa0efe0c713a2e407e801e7ce3f83e152361b
DIST instantclient-precomp-linux-19.11.0.0.0dbru.zip 5194893 BLAKE2B cbfda89f2f97728234aa3aa58d13289be66db0127f1e73675ea2fae348d8dff28e86b85b0a5a8f372dc155a07d6aa71f2096ef5b3cdc3082ca80c107fac06f4b SHA512 196ea51fc11d59212e274669e623d86cd91c6a8d7425cab5a08044d216b118ef2e4597e0c2a904579f35de87b5fb87f9d6a6eeab927af5878c3a7e1e504730b5
DIST instantclient-precomp-linux-21.3.0.0.0.zip 5290951 BLAKE2B 3df4c41019315119d63ec780b9ae23d48823ecb2b9aa61a923c87c3e1f30fd97266030bbbc898d59b402931e02e8b3dcedfb6b96bd41381b583da2b380526f5d SHA512 b1fb267c373410c3c24fbdc4102b3395beaf0609ec3439f730a31ba43c5f2e1b276ce6e7df04de0d542c211dfef3ecadfccfe33f1472653feb42fb25a9dc700a
DIST instantclient-precomp-linux.x64-19.11.0.0.0dbru.zip 6254880 BLAKE2B 0035623721a12c096a38ee64bc41465682214763f123ce9c529c61b6081c6de54bd7835f8b4ef07dca5eafda5354a77fa589c7c54cde412e1bdd4f313e58b3bb SHA512 d322b7896992cef8e48cc48acc68a5730d2a04ba0af5130eafa6ada79b64b16a4bd8cfaa02a28587d0871713579a5215ff46162499cd1f422252ef8dab61b7ab
+DIST instantclient-precomp-linux.x64-21.13.0.0.0dbru.zip 6389884 BLAKE2B 81921e1fb2cda680c1eafca4edc82c69fcb1afe2d573cdfefdd24fd50568cedf3c3992542486aad5acac083679221a14696c19ea6fc016ec8d0c7c8cb1cf7349 SHA512 1552723385e502bafa39853e12781cea3ef5d7a5407040fd8bf6ee878d1246dc8f976192861f60dbd71da1c854271953f98604d707393ce688b1fc726245f88e
DIST instantclient-precomp-linux.x64-21.3.0.0.0.zip 6386663 BLAKE2B fea4e0465330d4309791f9ca58ae169b1ff2cd1f17b003210aab1fe4faa92d6e48ee20bbf7d84f44f437bf5297c69c9c2b5a2e3cfb687c8010f8ba75bb928c9f SHA512 8235236175f35d4634005249ccbe0ea5dec4078fd795545184578cefbb8d45663731c507baac4a952fb9603272aa3ff58197eb23801894bbd240cf5736460d57
DIST instantclient-sdk-linux-19.11.0.0.0dbru.zip 933913 BLAKE2B 08cb6c94cd152f58fe9e52874b40dec56a6f7d3c9913122303b46f75ae2df0e13fff1a375136b6fffabe9ee7a7d844a2b95b1be380b6d957338b09a15c9fe83a SHA512 8d7aff3d066f423021a5babda86b1b378333966fd892146bf46a967495180fc099e9766deab27d81735fee845ab43ee48d8815fd96a73e3a235c4fde74952e40
DIST instantclient-sdk-linux-21.3.0.0.0.zip 1000869 BLAKE2B 3e3f01da8218dad9de699b587ecd37dc465bd5779c7d6919149bcd947e9e9575d35727fe7d1251db8df12214a399b665c62be9e790dbaeaa895b2442ffcdd8fd SHA512 dd88433810e5b72d96747e57b34f7880607fdd0250d04972afed9a9f20c27ce1b74d7030b4de60e03621f98117b7ee93062c6c750b5c2dd104668a0afd45cd47
DIST instantclient-sdk-linux.x64-19.11.0.0.0dbru.zip 933906 BLAKE2B 7d15f4c5a53708fd311ca75c35db5cf1241070217c21acf05f181ad07259135fd64eeb8f84582ce1faa6bbdd9c3fc29c07e44d82ff60fe1bbb9acaf7f70612c3 SHA512 d964612f0bb571c5c1fe78d14f861b2189d917d23e9be936faa637d5a2f8b530dc93a1ae0130346b70897bd1382f23953ff3e7f3163a580b7c6058675ac5fcf2
+DIST instantclient-sdk-linux.x64-21.13.0.0.0dbru.zip 1001591 BLAKE2B 36f3c40da230b66edc9c9462020f6070b7610ea55d20ffc0f2ef3e1729a4ed09edf0d105136939bd6d30ac5a5323fd43efe7327214d7b9d39480fdb553f1480e SHA512 b0d040e0d4e0dc59a35efed58162ec9cb8b1c0440a7d499bffca2da11c9a62ecf91ad5ac840bb5f35da1bbadb552bee757b0cffd8fef71dfadf44ff5f52ce4c3
DIST instantclient-sdk-linux.x64-21.3.0.0.0.zip 1000777 BLAKE2B b593e3ef880a22d712a4e2b0c51f2f68e5d9ab6c3e4124b32de643eab7d3b41b6d5eb46f4ac98af743d90343d29975760048af5b7be0919c40a9b84217b31939 SHA512 5372c151a5b45bb2cdf80c47ea65b4d8ad849cc5a50818917484b952e03c344f2d7f1896a13d51ad9daf7fa9c43226aa011dca03161d6976375f239f782bdd23
DIST instantclient-sqlplus-linux-19.11.0.0.0dbru.zip 884155 BLAKE2B f681321cc43646af74eda4d6da102587123e0f3fb423d978066f014c4729ed046806f9c49cae6928704b4993459089e8d8c1ab4fb1aab912cd6fa7ee27382fe3 SHA512 1f4bc70b070c9a0597f1433913018021e87a7b059784a56e47842afd8a501039def6591f4e7a009f3f4598f23c45aa807578a74082174862ecb444b1855f7b22
DIST instantclient-sqlplus-linux-21.3.0.0.0.zip 909623 BLAKE2B 181da5e352dfea2ee1d87e138601f8b84ae2df278deb1c205bf25e5958a32da13252c8455a8aeb9941de2fc3752fd0510c53f196e8755bedae24e704cb4197a3 SHA512 e4417bccf0abbbfe16fce06b1a18c6e4f58ede1b87a1ab6407f74e3b926aa9d9b4d390c881bd578f95ed4fec6980e8b28cb9f624b8480e1ffac6dc599dcf49a7
DIST instantclient-sqlplus-linux.x64-19.11.0.0.0dbru.zip 911265 BLAKE2B 78215f683458147792be3182eaf9edfde5943e8e470a7bcbe09c82c298df709bc7cdf919e349a9130b8d6313f2f8a1d04ad9b5b3c5ad91d49802ad14c3f15515 SHA512 dd1343ae49917a031cbd8d757d11da46354f157f46dd651afcde09b4b74a9e02008c6370eabf6bd313190629944cc075d6fbd893b491ad3505b7a05dbeecd963
+DIST instantclient-sqlplus-linux.x64-21.13.0.0.0dbru.zip 936856 BLAKE2B b4217412ed0b6f2d5cdff92c4e35a1bde119afaf0e6a5eb543d9b916a6d88fd358ee3396a4cddf2a5bd32252119a20047feaa6118cb086c6b0efc282f51ad080 SHA512 963535debcb8f811b0e2d5da03fdd7024ee6d8963d8d0450721b351a420042e1d3948fb4423dea0b6a3f7f4196ab054a99c202586adf73362640316b7a7171af
DIST instantclient-sqlplus-linux.x64-21.3.0.0.0.zip 936305 BLAKE2B b6021f3ab3badb282f1a13a93beee6caa093b905efe6a647cc8ec9ea84eb3f7de4d9885692fd8d965608ba89964d13b5427af0f8710711f673ec97c528a6063c SHA512 9c6e87b4d319fc2bc35b2bd492b9608023d0f90b6230a66c75d9cd4d9fdea9b5dab178751cd188f9d1368f639d40f342ef1c71773dc4f9e9d8a199f4b46deaee
DIST instantclient-tools-linux-19.11.0.0.0dbru.zip 1020021 BLAKE2B e2a615e0ffb4608af05931a8b49406c85db5d549761319c7116395fae206fe6cc0cf56b49e6c3968419e63616f2d07ad6ec3ed70c862fb2394b8dc0ce9f6dbb0 SHA512 255593c1e62a11f41793619c856d316815d77fa83cc9efee1d5366dc86b32e9909b042f7ac81ad693aafb8c34cdcc8faa7eebf816a90d037d36ce461df33f469
DIST instantclient-tools-linux-21.3.0.0.0.zip 1083935 BLAKE2B e0caed4063d3322322beea599053fc40f1e08470d03c4bbe7cb5b46e5f4ba4759d313ea714806facd35d24924cb83e6d9d7d3a44bcf1da62c6c80d0321f33ce9 SHA512 301c126a3d2fefe36400c2287515ff6716a68a3273ae1450393d04509447d68e3bd2cc0412c5c078923421ff80534c3fa56123df61fbf92ea42965e3eed80bce
DIST instantclient-tools-linux.x64-19.11.0.0.0dbru.zip 1085194 BLAKE2B 321e1cd7704f6a5ad33a9ca0eed35feb4d8e4a3ac2b5a5d11f992569f0024ae8ef5b8fb42b02d627ee4a81d2ae9170367ba7107e0f975f89d189c576eef45edd SHA512 d355b0a457ede28b20004b4709ada5bb2c2c8a72a20a19df07bc4fb8607f78ed4d24bbf07a9f2157873b544de7a43406faa27374a0f2d6a47d63f36478e97d3e
+DIST instantclient-tools-linux.x64-21.13.0.0.0dbru.zip 1150015 BLAKE2B f0263bd528e26658e4ee2f79365d3d891dcb25ef156486a3d39dc4aa819d77784e4638ab970375c9a85604f404930d8cd939a20f6adbcc8d9652bbfac74d91b0 SHA512 8b62c07ceeef342da835ba0d58802beecff366cb89142547732b368f8757e3017eaead4746816f37cbbe0ef053df8de2cadc4f6bed9307b92b15a27bf1523dc3
DIST instantclient-tools-linux.x64-21.3.0.0.0.zip 1149632 BLAKE2B 3ad6ee973f813733e48c58f9a18d1dad321f9fb886d9460c2bc8f9d766d5a021722b34d9d9ea0ffb7a8466a38f5cf816bc55767b668e5cb5ee59b549fe4fc4ca SHA512 4c47b51f4801cab6d71a201c12ddb7a30616050584630107968a50457d4eca0e92f3344505bdd8f36481924a21a508d476c9f26ed111bad846f4a8feab98110d
diff --git a/dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch b/dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch
new file mode 100644
index 000000000000..907d43494bf7
--- /dev/null
+++ b/dev-db/oracle-instantclient/files/21.13.0.0.0-makefile.patch
@@ -0,0 +1,22 @@
+diff --color -Naru a/sdk/demo/demo.mk b/sdk/demo/demo.mk
+--- a/sdk/demo/demo.mk 2021-08-22 17:20:17.232777697 +0200
++++ b/sdk/demo/demo.mk 2021-08-22 17:24:49.800783794 +0200
+@@ -43,10 +43,15 @@
+ CC=/opt/SunProd/SUNWspro6.1/bin/CC
+ cc=/opt/SunProd/SUNWspro6.1/bin/cc
+
+-ICINCHOME=../
+-ICLIBHOME=../../
++ifeq ($(BUILD32),T)
++LIBDIR=lib
++else
++LIBDIR=lib64
++endif
++ICINCHOME=$(ORACLE_HOME)/include
++ICLIBHOME=$(ORACLE_HOME)/$(LIBDIR)
+ ICLIBPATH=-L$(ICLIBHOME)
+-CCINCLUDES=-I$(ICINCHOME)include
++CCINCLUDES=-I$(ICINCHOME)
+
+ THREADLIBS=-lthread
+ CCLIB=$(ICLIBPATH) -locci -lclntsh $(THREADLIBS)
diff --git a/dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild b/dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild
new file mode 100644
index 000000000000..405f63eaceca
--- /dev/null
+++ b/dev-db/oracle-instantclient/oracle-instantclient-21.13.0.0.0.ebuild
@@ -0,0 +1,310 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils
+
+DESCRIPTION="Oracle 21c Instant Client with SDK"
+HOMEPAGE="https://www.oracle.com/database/technologies/instant-client.html"
+
+MY_SOVER=21.1 # the library soname found in the zip files
+
+IUSE="jdbc odbc precomp +sdk +sqlplus tools"
+REQUIRED_USE="precomp? ( sdk )"
+
+MY_PVM=$(ver_cut 1-2)
+MY_P="instantclient_$(ver_rs 1 _ ${MY_PVM})"
+
+MY_PVP=$(ver_cut 5) # p2
+
+MY_URI="https://download.oracle.com/otn_software/linux/instantclient/$(ver_rs 1-5 '' $(ver_cut 1-5))"
+
+# MY_PLAT_x86="Linux x86"
+# MY_BITS_x86=32
+# MY_A_x86="${MY_URI}/${PN/oracle-/}-basic-linux-${PV}.zip"
+# MY_A_x86_jdbc="${MY_A_x86/basic/jdbc}"
+# MY_A_x86_odbc="${MY_A_x86/basic/odbc}"
+# MY_A_x86_precomp="${MY_A_x86/basic/precomp}"
+# MY_A_x86_sdk="${MY_A_x86/basic/sdk}"
+# MY_A_x86_sqlplus="${MY_A_x86/basic/sqlplus}"
+# MY_A_x86_tools="${MY_A_x86/basic/tools}"
+
+MY_PLAT_amd64="Linux x86-64"
+MY_BITS_amd64=64
+MY_A_amd64="${MY_URI}/${PN/oracle-}-basic-linux.x64-${PV}dbru.zip"
+MY_A_amd64_jdbc="${MY_A_amd64/basic/jdbc}"
+MY_A_amd64_odbc="${MY_A_amd64/basic/odbc}"
+MY_A_amd64_precomp="${MY_A_amd64/basic/precomp}"
+MY_A_amd64_sdk="${MY_A_amd64/basic/sdk}"
+MY_A_amd64_sqlplus="${MY_A_amd64/basic/sqlplus}"
+MY_A_amd64_tools="${MY_A_amd64/basic/tools}"
+
+if [[ ${MY_PVP} == p* ]]
+then
+ MY_PVP=-${MY_PVP#p}
+ # Updated 9/22/2017: instantclient-odbc-linux-12.2.0.1.0-2.zip
+ MY_A_x86_odbc="${MY_URI}/${MY_A_x86_odbc%.zip}${MY_PVP}.zip"
+ MY_A_amd64_odbc="${MY_URI}/${MY_A_amd64_odbc%.zip}${MY_PVP}.zip"
+fi
+
+#SRC_URI="
+# x86? (
+# ${MY_A_x86}
+# jdbc? ( ${MY_A_x86_jdbc} )
+# odbc? ( ${MY_A_x86_odbc} )
+# precomp? ( ${MY_A_x86_precomp} )
+# !abi_x86_64? (
+# sdk? ( ${MY_A_x86_sdk} )
+# sqlplus? ( ${MY_A_x86_sqlplus} )
+# tools? ( ${MY_A_x86_tools} )
+# ) )
+SRC_URI="
+ amd64? (
+ ${MY_A_amd64}
+ jdbc? ( ${MY_A_amd64_jdbc} )
+ odbc? ( ${MY_A_amd64_odbc} )
+ precomp? ( ${MY_A_amd64_precomp} )
+ sdk? ( ${MY_A_amd64_sdk} )
+ sqlplus? ( ${MY_A_amd64_sqlplus} )
+ tools? ( ${MY_A_amd64_tools} )
+ )
+"
+
+LICENSE="OTN"
+SLOT="0/${MY_SOVER}"
+KEYWORDS="~amd64"
+RESTRICT="mirror splitdebug test"
+
+RDEPEND="
+ >=dev-libs/libaio-0.3.109-r5
+ odbc? ( dev-db/unixODBC )
+"
+BDEPEND="app-arch/unzip"
+
+S="${WORKDIR}/${MY_P}"
+
+QA_PREBUILT="usr/lib*/oracle/client/*/*"
+
+src_unpack() {
+ local ABI=${ARCH}
+ MY_WORKDIR="${WORKDIR}"
+ MY_S="${S}"
+ MY_PLAT=MY_PLAT_${ABI} ; MY_PLAT=${!MY_PLAT} # platform name
+ MY_BITS=MY_BITS_${ABI} ; MY_BITS=${!MY_BITS} # platform bitwidth
+ MY_A=MY_A_${ABI} ; MY_A=${!MY_A##*/} # runtime distfile
+ MY_A_jdbc=MY_A_${ABI}_jdbc ; MY_A_jdbc=${!MY_A_jdbc##*/} # jdbc distfile
+ MY_A_odbc=MY_A_${ABI}_odbc ; MY_A_odbc=${!MY_A_odbc##*/} # odbc distfile
+ MY_A_precomp=MY_A_${ABI}_precomp; MY_A_precomp=${!MY_A_precomp##*/} # precomp distfile
+ MY_A_sdk=MY_A_${ABI}_sdk ; MY_A_sdk=${!MY_A_sdk##*/} # sdk distfile
+ MY_A_sqlplus=MY_A_${ABI}_sqlplus; MY_A_sqlplus=${!MY_A_sqlplus##*/} # sqlplus distfile
+ MY_A_tools=MY_A_${ABI}_tools ; MY_A_tools=${!MY_A_tools##*/} # tools distfile
+
+ mkdir -p "${MY_WORKDIR}" || die
+ cd "${MY_WORKDIR}" || die
+ unpack ${MY_A}
+ use jdbc && unpack ${MY_A_jdbc}
+ use odbc && unpack ${MY_A_odbc}
+ use precomp && unpack ${MY_A_precomp}
+ use sdk && unpack ${MY_A_sdk}
+ use sqlplus && unpack ${MY_A_sqlplus}
+ use tools && unpack ${MY_A_tools}
+}
+
+src_prepare() {
+ local PATCHES=()
+ if use precomp; then
+ # Not supporting COBOL for now
+ rm -f sdk/demo/*procob*
+ fi
+ if use sdk; then
+ PATCHES+=( "${FILESDIR}"/21.13.0.0.0-makefile.patch )
+ rm sdk/include/ldap.h || die #299562
+ fi
+ default
+}
+
+# silence configure&compile messages from multilib-minimal
+src_configure() { :; }
+src_compile() { :; }
+
+src_install() {
+ # all content goes here without version number, bug#578402
+ local oracle_home=/usr/$(get_libdir)/oracle/client
+ local oracle_home_to_root=../../../.. # for dosym
+ local ldpath=
+
+ local ABI=${ARCH}
+
+ einfo "Installing runtime for ${MY_PLAT} ..."
+
+ cd "${MY_S}" || die
+
+ # shared libraries
+ into "${oracle_home}"
+ dolib.so lib*.so*
+ use precomp && dolib.a cobsqlintf.o
+
+ # ensure to be linkable
+ [[ -e libocci.so ]] ||
+ dosym libocci.so.${MY_SOVER} \
+ "${oracle_home}"/$(get_libdir)/libocci.so
+ [[ -e libclntsh.so ]] ||
+ dosym libclntsh.so.${MY_SOVER} \
+ "${oracle_home}"/$(get_libdir)/libclntsh.so
+
+ # java archives
+ insinto "${oracle_home}"/$(get_libdir)
+ doins *.jar
+
+ # runtime library path
+ ldpath+=${ldpath:+:}${oracle_home}/$(get_libdir)
+
+ # Vanilla filesystem layout does not support multilib
+ # installation, so we need to move the libs into the
+ # ABI specific libdir. However, ruby-oci8 build system
+ # detects an instantclient along the shared libraries,
+ # and does expect the sdk right there.
+ use sdk && dosym ../sdk "${oracle_home}"/$(get_libdir)/sdk
+
+ local DOCS=( BASIC_README )
+ local HTML_DOCS=()
+ local paxbins=( adrci genezi uidrvci )
+ local scripts=()
+
+ if use jdbc; then
+ DOCS+=( JDBC_README )
+ fi
+ if use odbc; then
+ DOCS+=( ODBC_README )
+ HTML_DOCS+=( help )
+ scripts+=( odbc_update_ini.sh )
+ fi
+ if use precomp; then
+ DOCS+=( PRECOMP_README )
+ paxbins+=( sdk/proc )
+ # Install pcscfg.cfg into /etc/oracle, as the user probably
+ # wants to add the include path for the compiler headers
+ # here and we do not want this to be overwritten.
+ insinto /etc/oracle
+ doins precomp/admin/pcscfg.cfg
+ sed -i -e "s%^sys_include=.*%sys_include=(${oracle_home}/sdk/include,${EPREFIX}/usr/include)%" \
+ "${ED}"/etc/oracle/pcscfg.cfg || die
+ dosym ../../${oracle_home_to_root}/etc/oracle/pcscfg.cfg "${oracle_home}/precomp/admin/pcscfg.cfg"
+ dosym ../.."${oracle_home}"/bin/proc /usr/bin/proc
+ # Not supporting COBOL for now
+ # paxbins+=( sdk/{procob,rtsora} )
+ # doins precomp/admin/pcbcfg.cfg
+ fi
+ if use sdk; then
+ einfo "Installing SDK ..."
+ DOCS+=( SDK_README )
+ scripts+=( sdk/ott )
+ insinto "${oracle_home}"/$(get_libdir)
+ doins sdk/ottclasses.zip
+ insinto "${oracle_home}"/sdk
+ doins -r sdk/{admin,demo,include}
+ # Some build systems simply expect ORACLE_HOME/include.
+ dosym sdk/include "${oracle_home}"/include
+ # Some build systems do not know the instant client,
+ # expecting headers in rdbms/public, see bug#669316.
+ # Additionally, some (probably older ruby-oci8) do
+ # require rdbms/public to be a real directory.
+ insinto "${oracle_home}"/rdbms/public
+ doins -r sdk/include/*
+ # Others (like the DBD::Oracle perl module) know the Oracle
+ # eXpress Edition's client, parsing an rdbms/demo/demo_xe.mk.
+ dosym ../../sdk/demo/demo.mk "${oracle_home}"/rdbms/demo/demo_xe.mk
+ # And some do expect /usr/include/oracle/<ver>/client/include,
+ # querying 'sqlplus' for the version number, also see bug#652096.
+ dosym ../../../.."${oracle_home}"/sdk/include /usr/include/oracle/${MY_PVM}/client
+ fi
+ if use sqlplus; then
+ DOCS+=( SQLPLUS_README )
+ paxbins+=( sqlplus )
+ insinto "${oracle_home}"/sqlplus/admin
+ doins glogin.sql
+ dosym ../.."${oracle_home}"/bin/sqlplus /usr/bin/sqlplus
+ fi
+ if use tools; then
+ DOCS+=( TOOLS_README )
+ paxbins+=( exp expdp imp impdp sqlldr wrc )
+ fi
+
+ einfo "Installing binaries for ${MY_PLAT} ..."
+ into "${oracle_home}"
+ dobin ${paxbins[*]} ${scripts[*]}
+ pushd "${ED}${oracle_home}/bin" >/dev/null || die
+ pax-mark -c ${paxbins[*]#*/} || die
+ popd >/dev/null || die
+
+ einstalldocs
+
+ # create path for tnsnames.ora
+ insinto /etc/oracle
+ doins "${FILESDIR}"/tnsnames.ora.sample
+
+ # Add OCI libs to library path
+ {
+ echo "# ${EPREFIX}/etc/env.d/50${PN}"
+ echo "# Do not edit this file, but 99${PN} instead"
+ echo
+ echo "ORACLE_HOME=${EPREFIX}${oracle_home}"
+ echo "LDPATH=${ldpath}"
+ echo "TNS_ADMIN=${EPREFIX}/etc/oracle/"
+ } > "${T}"/50${PN}
+
+ doenvd "${T}"/50${PN}
+
+ # ensure ORACLE_HOME/lib exists
+# [[ -e ${ED}${oracle_home}/lib/. ]] ||
+# dosym $(get_libdir) "${oracle_home#/}"/lib
+}
+
+pkg_preinst() {
+ if [[ -r ${EROOT}/etc/env.d/99${PN} ]]; then
+ cp "${EROOT}/etc/env.d/99${PN}" "${ED}/etc/env.d/" || die
+ else
+ {
+ echo "# ${EPREFIX}/etc/env.d/99${PN}"
+ echo "# Configure system-wide defaults for your Oracle Instant Client here"
+ echo
+ echo "#$(grep '^ORACLE_HOME=' "${ED}/etc/env.d/50${PN}")"
+ echo "#$(grep '^TNS_ADMIN=' "${ED}/etc/env.d/50${PN}")"
+ echo "#NLS_LANG="
+ } > "${ED}/etc/env.d/99${PN}"
+ fi
+}
+
+pkg_postinst() {
+ elog "${P} does not provide an sqlnet.ora"
+ elog "configuration file, redirecting oracle diagnostics for database-"
+ elog "and network-issues into ~USER/oradiag_USER/ instead."
+ elog "It should be safe to ignore this message in sqlnet.log there:"
+ elog " Directory does not exist for read/write [ORACLE_HOME/client/log] []"
+ elog "See https://bugs.gentoo.org/show_bug.cgi?id=465252 for reference."
+ elog "If you want to directly analyse low-level debug info or don't want"
+ elog "to see it at all, so you really need an sqlnet.ora file, please"
+ elog "consult http://search.oracle.com/search/search?q=sqlnet.ora"
+ elog ""
+ elog "TNS_ADMIN has been set to ${EPREFIX}/etc/oracle by default,"
+ elog "put your tnsnames.ora there or configure TNS_ADMIN"
+ elog "to point to your user specific configuration."
+ if use precomp; then
+ elog ""
+ elog "The proc precompiler uses the system library headers, which in"
+ elog "turn include the headers of the used compiler."
+ elog "To make proc work, please add the compiler header path of your"
+ elog "preferred compiler to sys_include in:"
+ elog " ${EPREFIX}/etc/oracle/pcscfg.cfg"
+ elog "Remember to update this setting when you switch or update the"
+ elog "compiler."
+ elog "For gcc, the headers are usually found in a path matching the"
+ elog "following pattern:"
+ elog " ${EPREFIX}/usr/lib/gcc/*/*/include"
+ elog "The exact details depend on the architecture and the version of"
+ elog "the compiler to be used."
+ fi
+ ewarn "Please re-source your shell settings for ORACLE_HOME"
+ ewarn " changes, such as: source ${EPREFIX}/etc/profile"
+}
diff --git a/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild b/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild
index ebf0aeb32043..b0e0d9ef4d84 100644
--- a/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild
+++ b/dev-db/percona-server/percona-server-8.0.26.16-r2.ebuild
@@ -17,7 +17,7 @@ MY_MAJOR_PV=$(ver_cut 1-2)
MY_RELEASE_NOTES_URI="https://www.percona.com/doc/percona-server/${MY_MAJOR_PV}/"
# Patch version
-PATCH_SET="https://dev.gentoo.org/~whissi/dist/percona-server/${PN}-8.0.26.16-patches-01.tar.xz"
+PATCH_SET="mirror://gentoo/fb/${PN}-8.0.26.16-patches-01.tar.xz"
SRC_URI="https://www.percona.com/downloads/${MY_PN}-${MY_MAJOR_PV}/${MY_PN}-${MY_PV}/source/tarball/${PN}-${MY_PV}.tar.gz
https://dl.bintray.com/boostorg/release/${MY_BOOST_VERSION}/source/boost_$(ver_rs 1- _ ${MY_BOOST_VERSION}).tar.bz2
diff --git a/dev-db/percona-toolkit/Manifest b/dev-db/percona-toolkit/Manifest
index 45e40278b2eb..62b4a28cf654 100644
--- a/dev-db/percona-toolkit/Manifest
+++ b/dev-db/percona-toolkit/Manifest
@@ -1,3 +1,4 @@
-DIST percona-toolkit-3.5.1.tar.gz 14700246 BLAKE2B 58e1ae76a2fce32dd16fde3a9caae2a470882e737893cc22f67cf810533ceafa95c5b26ec390cc58b2b9f0db3a2323fe78c00a631da107e6dbbbef73e65c1bb4 SHA512 33ec22c2fc1c3cc855caead7ac7ca153328e280500f56e24e074cca6a2ba95572430369908cb557eedfcadfb7246fbb5670c943673aa41d5210dc38603aeb492
DIST percona-toolkit-3.5.3.tar.gz 14673470 BLAKE2B f0eeaaf20924a75ff68eb623d4027fd8402169bbd8479e91ec174638f20109cee33a3e93b19dd88cd860a3f572db7e0a645fb1bd96e63f52c5d261167ad5eae8 SHA512 80abe6fe1d690d8faff01d72918c5b5da188819389d0fafe8f88f23489b609aa9730b0c7c2b284eb057e0cc3ae8ccb5b83849b31ff61291d8ab75d58abcdf85f
DIST percona-toolkit-3.5.5.tar.gz 14847253 BLAKE2B f26b88581b84a12fd2b353984b2dbfbf43056388a48821739e70f43a28f448fc7caea99bdb0f5284b91ce04436e0969da1eec85e66054bfc1e8ff2771dede6d2 SHA512 0fb367e2a967c1a459e2d8a70f3db6c75043caf4127c14472b2bdfdb89415286c9f52929e326fa4f402d73a4c3e95b4cf8b0ee0f0624e54e382e44eb653bfaf9
+DIST percona-toolkit-3.5.7-deps.tar.xz 108954608 BLAKE2B 788246531bdf3e1faa7d310fdd920b2fa42d9d82a75d730bb143047d0ce0c22d23ee86cf58bd646aae3dac503d88793040168be15fc74a7686979233a8d65dc1 SHA512 54a0698c5e3ae0fe30b6e253a31829db4c4656cccd48107126a5b99c148fe1ed9515d91e79784e1970569bfe8853d1b5cb74cf968dbc2d08e95aec6ef209659d
+DIST percona-toolkit-3.5.7.tar.gz 138784243 BLAKE2B a589c884348ad820ccadbb871ad85bf89a21ae49e8cea34fa019c61ab53302a5b7db03f01ae191138e15f61c77068388cb5d3863f360a7207d9f9075e9100385 SHA512 cfe232aa5b59d262242348ec18b676d0d8c7752dddadd1f027772346e02d329f5bc53b96dfdb82fbdb18524095f88ad0721e4b4c6ed611c727c0a5cde85998bd
diff --git a/dev-db/percona-toolkit/percona-toolkit-3.5.1.ebuild b/dev-db/percona-toolkit/percona-toolkit-3.5.7.ebuild
index 488a2c186226..40dc0b2abad8 100644
--- a/dev-db/percona-toolkit/percona-toolkit-3.5.1.ebuild
+++ b/dev-db/percona-toolkit/percona-toolkit-3.5.7.ebuild
@@ -1,17 +1,18 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit perl-module
+inherit go-module perl-module
DESCRIPTION="Advanced command-line tools to perform a variety of MySQL and system tasks"
HOMEPAGE="https://www.percona.com/software/mysql-tools/percona-toolkit"
-SRC_URI="https://www.percona.com/downloads/${PN}/${PV}/source/tarball/${P}.tar.gz"
+SRC_URI="https://www.percona.com/downloads/${PN}/${PV}/source/tarball/${P}.tar.gz
+ https://github.com/hydrapolic/gentoo-dist/releases/download/${P}/${P}-deps.tar.xz"
LICENSE="|| ( GPL-2 Artistic )"
SLOT="0"
-KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~amd64 ~x86"
# Package warrants IUSE doc
IUSE=""
@@ -42,10 +43,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.0.10-slave-delay-fix.patch
)
-src_prepare() {
+src_install() {
default
-
- sed -i \
- -e "s/=> 'percona-toolkit',/=> 'Percona::Toolkit',/g" \
- Makefile.PL || die
+ dobin bin/*
}
diff --git a/dev-db/pg_activity/Manifest b/dev-db/pg_activity/Manifest
index 7815c6858608..4b17cda8ea28 100644
--- a/dev-db/pg_activity/Manifest
+++ b/dev-db/pg_activity/Manifest
@@ -1 +1 @@
-DIST pg_activity-3.4.2.tar.gz 432160 BLAKE2B 3f9a54a9f58c2d107e01e15aad1e8bb58c2df589cb8f0d58288636c16adfad2156f2c140506dc15bd6eb26a75a441afbf9db8a2db0766a17867fd5b8ed50b9bc SHA512 adcc12277341c60a8959103c30d38bdc76d2315130f1bb92239e5c2c8d20f8fc4a786be3fe1f97e3c142e6c74303a631017e1a3e6feaf18266b7fd42c2e155f3
+DIST pg_activity-3.5.1.tar.gz 436863 BLAKE2B 8312b2145ba89b807fb5e4e76f8eb57ad1f33079735e1be4a6ef7614034bbfbbb428567e90d7b8a6bc16dd65af186a3f6742e09584cef6136a7f8b3763724806 SHA512 f44f1ca08a250e35c056441f11c19e3618fba82a36f367df211ceb5787983ff76d2637a155de80c998680f9c0f79d66fcb38873d1b04368e73b5a06e650789c5
diff --git a/dev-db/pg_activity/pg_activity-3.4.2.ebuild b/dev-db/pg_activity/pg_activity-3.5.1.ebuild
index bb4c7b32493d..778d01d26dde 100644
--- a/dev-db/pg_activity/pg_activity-3.4.2.ebuild
+++ b/dev-db/pg_activity/pg_activity-3.5.1.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit distutils-r1
diff --git a/dev-db/pg_background/Manifest b/dev-db/pg_background/Manifest
new file mode 100644
index 000000000000..489edc250c39
--- /dev/null
+++ b/dev-db/pg_background/Manifest
@@ -0,0 +1 @@
+DIST pg_background-1.2.tar.gz 30870 BLAKE2B 809a66ddbe989fe0503f3c5fefd088e8c11338e3cbe44fd5ce0c5c3967a46339a60546d38d3177cc7382c6efd4cf76ca8207f0ab1c668f5582529e5e3229c4b7 SHA512 f4449eae750451286aa5bc8ffd941d2aeb75ff9801f0ed1d902674dfd362eab1ed72783c86ae1b8058dd8e995b441fd669409989cb69fcb237414422cd1b63af
diff --git a/dev-db/pg_background/metadata.xml b/dev-db/pg_background/metadata.xml
new file mode 100644
index 000000000000..2caf1921afa7
--- /dev/null
+++ b/dev-db/pg_background/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>fordfrog@gentoo.org</email>
+ <name>Miroslav Šulc</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">vibhorkum/pg_background</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-db/pg_background/pg_background-1.2.ebuild b/dev-db/pg_background/pg_background-1.2.ebuild
new file mode 100644
index 000000000000..318571305d31
--- /dev/null
+++ b/dev-db/pg_background/pg_background-1.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+POSTGRES_COMPAT=( 13 14 15 16 )
+
+inherit postgres-multi
+
+DESCRIPTION="Postgres Background Worker"
+HOMEPAGE="https://github.com/vibhorkum/pg_background"
+SRC_URI="https://github.com/vibhorkum/pg_background/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+
+SLOT=0
+KEYWORDS="~amd64"
+
+RESTRICT="test"
+
+DEPEND="${POSTGRES_DEP}"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ postgres-multi_foreach emake || die "emake failed"
+}
+
+src_install() {
+ postgres-multi_foreach emake DESTDIR="${D}" install
+}
diff --git a/dev-db/pg_top/Manifest b/dev-db/pg_top/Manifest
index 665565040f09..0b6b37204975 100644
--- a/dev-db/pg_top/Manifest
+++ b/dev-db/pg_top/Manifest
@@ -1 +1,2 @@
DIST pg_top-4.0.0.tar.xz 117920 BLAKE2B 5c13fd868804492ccce3b660875602df958f065126f9dc17f45ebcac7961384cd1d3d3313da49832a1219ea7e86ae78cbbdb975467b13b32d5f836f5cd33a443 SHA512 b7a016137495ceecdcf0ac0e95c73b7eca20b57264f7b63b0a38c3f31db742c704ed0094e07f6df051bce9bc26214f5a8f66ced1e923bb66e0c86fff1e2ffc19
+DIST pg_top-4.1.1.tar.xz 103128 BLAKE2B 6899b3e4963880aff9e4b3d94441903ea6a2141fb2cac56821c9ca3a5333cca4ed6a80c83f6feef34c9fe634c7c7b2d9ab1fbaba844b0485d7a5edb2e5bc9598 SHA512 bc58b0aaf02326d90cd7e6ed894021edf20dd6f7b67125d856bec474afe16cb6f096506c73becbde4a104c61fe62e5281df02f16c7bdbdd74478faa1e91ed9ae
diff --git a/dev-db/pg_top/pg_top-4.1.1.ebuild b/dev-db/pg_top/pg_top-4.1.1.ebuild
new file mode 100644
index 000000000000..d27371e092fe
--- /dev/null
+++ b/dev-db/pg_top/pg_top-4.1.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="'top' for PostgreSQL"
+HOMEPAGE="https://pg_top.gitlab.io/"
+SRC_URI="https://pg_top.gitlab.io/source/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="dev-db/postgresql:=
+ dev-libs/libbsd
+ sys-libs/ncurses:=
+ virtual/libelf:="
+DEPEND="${RDEPEND}"
+
+DOCS=( HISTORY.rst README.rst TODO Y2K )
+
+src_prepare() {
+ sed 's/set(CMAKE_C_FLAGS "-Wall")//' -i CMakeLists.txt || die
+ cmake_src_prepare
+}
diff --git a/dev-db/pgbouncer/Manifest b/dev-db/pgbouncer/Manifest
index 55b0060c363d..f6710438c8f5 100644
--- a/dev-db/pgbouncer/Manifest
+++ b/dev-db/pgbouncer/Manifest
@@ -1,5 +1,3 @@
DIST pgbouncer-1.16.1.tar.gz 591450 BLAKE2B 137193ad614586d708598fd7003af4dee69f03f88a7235ba4074b63d57ffc3ee1c41fbccb49c5df7c23a2272b33810f8c2a9084d98e2e695a3b5f5ec317e0227 SHA512 9ecb7c7ae136d85e3da434094909df3a6ff06ce8586a1848c0c00914d87a877aecbb26ea30ad8230062160f3177621cc16deb4a490e9a2a649c8032dacb86341
-DIST pgbouncer-1.20.0.tar.gz 638020 BLAKE2B 1aa253b4f211e70e882e9b7789bfcdee3436b56d88d0448a122a6975deb379ff6034f563f3ec87997a3f8c2f0e6c25a09916989d486542356a5a5d41ef6e2039 SHA512 6386f80bb8dcdf6e9882f94dde1c5ff4b58cd6eb877233952e483d5fa765072588f12dfb39eab5989dee54eaa595db541042654ad47c1ea4b754304ecc69f3dd
-DIST pgbouncer-1.20.1.tar.gz 638844 BLAKE2B 9b71b72b9baf3ce49d4b9c6597581d20a2666b5450d89bc716a4df6df0c8a8aaf92735a76033eccf358412934a3af92e1a8ed7e4ca0e863441f2d6bf43eefdc7 SHA512 7669005ac1d46d1cb5b42c853fc0fb5e495c8583c206658bf6c59f797d04eb9170a3d467a48863708ee69034ff71ac6fbbca752b239de644ef6225d46fb98e76
-DIST pgbouncer-1.21.0.tar.gz 668211 BLAKE2B 36dd43d301d1837876806688bc87febb6ae4fd40014e7e7301978026a4866b736c2c174d3b1e19a4e7bf5f8ca85025d2a0cd5711f2e4fa95e455f59ed1dbe381 SHA512 881701deae508e8e664402c0da533b25027259443551cda2974867453ad033ec5cfe8027ca3dac96a5134c57faff385c3c1e5711539e1acd6815761c9e3caee8
DIST pgbouncer-1.22.0.tar.gz 670589 BLAKE2B feb0138c09eb2e3f865f9c372d1924f9fbe67785a52534f8b99783c0bc2d5a54a6fd8b0554ea8ac7d4e8e108fd2296a3a9ae19cb75d628052c45e4a57fd037cd SHA512 1d8f4b352103e17a3905ec0677362954f4b9f606f6dc00011514c2ec46d8c4e8d17b24e9ca92794ccaf4c86c9c77ac062e6be92be7856192b7c534b5a4911163
+DIST pgbouncer-1.22.1.tar.gz 677351 BLAKE2B c67eba10b51ae74fb77ad61f7c597b687769e75b687ff9682c16d0ac0b32c0e9d20d4c90cd5803331d128f3f388800faa38dd9965b86c5a75688455db1a06d6b SHA512 ac63fe877f68745f1faab096ee9d9e185de9cab97d4fef121c2c551fa0e69ea22342dc8b5ce75cadff755314e5493a5440f0748b5ee9f524f71d871ec1861530
diff --git a/dev-db/pgbouncer/pgbouncer-1.20.0.ebuild b/dev-db/pgbouncer/pgbouncer-1.20.0.ebuild
deleted file mode 100644
index da2f7fb9f694..000000000000
--- a/dev-db/pgbouncer/pgbouncer-1.20.0.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Lightweight connection pooler for PostgreSQL"
-HOMEPAGE="https://www.pgbouncer.org/"
-SRC_URI="https://www.pgbouncer.org/downloads/files/${PV}/pgbouncer-${PV}.tar.gz"
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="+c-ares debug doc pam ssl systemd udns"
-
-# At-most-one-of, one can be enabled but not both
-REQUIRED_USE="?? ( c-ares udns )"
-
-RDEPEND="
- >=dev-libs/libevent-2.0:=
- acct-user/pgbouncer
- c-ares? ( >=net-dns/c-ares-1.10 )
- ssl? ( >=dev-libs/openssl-1.0.1:=[-bindist(-)] )
- systemd? ( sys-apps/systemd )
- udns? ( >=net-libs/udns-0.1 )
-"
-
-DEPEND="${RDEPEND}"
-
-# Tests require a local database server, wants to fiddle with iptables,
-# and doesn't support overriding.
-RESTRICT="test"
-
-src_prepare() {
- eapply "${FILESDIR}"/pgbouncer-1.12-dirs.patch
-
- default
-}
-
-src_configure() {
- # --enable-debug is only used to disable stripping
- econf \
- --docdir=/usr/share/doc/${PF} \
- --enable-debug \
- $(use_with c-ares cares) \
- $(use_enable debug cassert) \
- $(use_with pam) \
- $(use_with ssl openssl) \
- $(use_with systemd) \
- $(use_with udns)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- dodoc AUTHORS
- use doc && dodoc doc/*.md
-
- newconfd "${FILESDIR}/${PN}.confd-r1" "${PN}"
- newinitd "${FILESDIR}/${PN}.initd-r2" "${PN}"
-
- insinto /etc
- doins etc/pgbouncer.ini
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/logrotate" pgbouncer
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]] ; then
- einfo "Please read the config.txt for Configuration Directives"
- einfo
- einfo "For Administration Commands, see:"
- einfo " man pgbouncer"
- einfo
- einfo "By default, PgBouncer does not have access to any database."
- einfo "GRANT the permissions needed for your application and make sure that it"
- einfo "exists in PgBouncer's auth_file."
- fi
-}
diff --git a/dev-db/pgbouncer/pgbouncer-1.20.1.ebuild b/dev-db/pgbouncer/pgbouncer-1.20.1.ebuild
deleted file mode 100644
index da2f7fb9f694..000000000000
--- a/dev-db/pgbouncer/pgbouncer-1.20.1.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Lightweight connection pooler for PostgreSQL"
-HOMEPAGE="https://www.pgbouncer.org/"
-SRC_URI="https://www.pgbouncer.org/downloads/files/${PV}/pgbouncer-${PV}.tar.gz"
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="+c-ares debug doc pam ssl systemd udns"
-
-# At-most-one-of, one can be enabled but not both
-REQUIRED_USE="?? ( c-ares udns )"
-
-RDEPEND="
- >=dev-libs/libevent-2.0:=
- acct-user/pgbouncer
- c-ares? ( >=net-dns/c-ares-1.10 )
- ssl? ( >=dev-libs/openssl-1.0.1:=[-bindist(-)] )
- systemd? ( sys-apps/systemd )
- udns? ( >=net-libs/udns-0.1 )
-"
-
-DEPEND="${RDEPEND}"
-
-# Tests require a local database server, wants to fiddle with iptables,
-# and doesn't support overriding.
-RESTRICT="test"
-
-src_prepare() {
- eapply "${FILESDIR}"/pgbouncer-1.12-dirs.patch
-
- default
-}
-
-src_configure() {
- # --enable-debug is only used to disable stripping
- econf \
- --docdir=/usr/share/doc/${PF} \
- --enable-debug \
- $(use_with c-ares cares) \
- $(use_enable debug cassert) \
- $(use_with pam) \
- $(use_with ssl openssl) \
- $(use_with systemd) \
- $(use_with udns)
-}
-
-src_install() {
- emake DESTDIR="${D}" install
-
- dodoc AUTHORS
- use doc && dodoc doc/*.md
-
- newconfd "${FILESDIR}/${PN}.confd-r1" "${PN}"
- newinitd "${FILESDIR}/${PN}.initd-r2" "${PN}"
-
- insinto /etc
- doins etc/pgbouncer.ini
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/logrotate" pgbouncer
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]] ; then
- einfo "Please read the config.txt for Configuration Directives"
- einfo
- einfo "For Administration Commands, see:"
- einfo " man pgbouncer"
- einfo
- einfo "By default, PgBouncer does not have access to any database."
- einfo "GRANT the permissions needed for your application and make sure that it"
- einfo "exists in PgBouncer's auth_file."
- fi
-}
diff --git a/dev-db/pgbouncer/pgbouncer-1.21.0.ebuild b/dev-db/pgbouncer/pgbouncer-1.22.1.ebuild
index 7c1d9e9a01ad..1647a74fb4c5 100644
--- a/dev-db/pgbouncer/pgbouncer-1.21.0.ebuild
+++ b/dev-db/pgbouncer/pgbouncer-1.22.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-db/pglogical/Manifest b/dev-db/pglogical/Manifest
index 5741701297c1..a4d86d4a6f96 100644
--- a/dev-db/pglogical/Manifest
+++ b/dev-db/pglogical/Manifest
@@ -1,2 +1 @@
-DIST REL2_4_1.tar.gz 277428 BLAKE2B 51319e3b1491e1857e63e63640f2e6d2315ab72a0aabcfe7869456822a294bdb53fd0f4cc9bca0c60bfcf9e0926249acad86f09327c5656735b508851037ccaf SHA512 0d673e1a2b696e2cfbb94d8350bb15c280947f69b6512aa80f8ef7497e30cbd407a01b9a4f8fa9844b4ccb39377a6b2bee390a7887f3050074c2e6a11e6f3e3f
DIST REL2_4_4.tar.gz 280564 BLAKE2B 67d9cf090117875f58d671987fcd5593b9db5b78b31c79fc44c23d4ce5ebfcb1eb7b970ebb026ca6dedefd958081a3bc4ef7ce502e7edda027a5d082f879e385 SHA512 163b5f6ea61fd83eadbde843745d72ebe7f1fb401d5506c9bbf3689871e5b81c85e7536103080a71fa6567942f4278326a0fb232e19f432665757e23132be94d
diff --git a/dev-db/pglogical/pglogical-2.4.1.ebuild b/dev-db/pglogical/pglogical-2.4.1.ebuild
deleted file mode 100644
index 75619daafadd..000000000000
--- a/dev-db/pglogical/pglogical-2.4.1.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-POSTGRES_COMPAT=( 9.6 {10..14} )
-
-inherit postgres-multi
-
-MY_PV=$(ver_rs 1- '_')
-MY_P="${PN}-${MY_PV}"
-S="${WORKDIR}/${PN}-REL${MY_PV}"
-
-DESCRIPTION="Logical replication for PostgreSQL"
-HOMEPAGE="https://www.2ndquadrant.com/en/resources/pglogical/"
-SRC_URI="https://github.com/2ndQuadrant/pglogical/archive/REL${MY_PV}.tar.gz"
-
-LICENSE="POSTGRESQL"
-SLOT="0"
-KEYWORDS="~amd64"
-
-DEPEND="${POSTGRES_DEP}"
-RDEPEND="${DEPEND}"
-
-src_compile() {
- postgres-multi_foreach emake USE_PGXS=1 || die "emake failed"
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" USE_PGXS=1 install
- postgres-multi_foreach dobin pglogical_create_subscriber
-}
diff --git a/dev-db/pglogical/pglogical-2.4.4.ebuild b/dev-db/pglogical/pglogical-2.4.4.ebuild
index 27bba65b9239..9354bae60f33 100644
--- a/dev-db/pglogical/pglogical-2.4.4.ebuild
+++ b/dev-db/pglogical/pglogical-2.4.4.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI="8"
POSTGRES_COMPAT=( {12..16} )
diff --git a/dev-db/pgpool2/Manifest b/dev-db/pgpool2/Manifest
index 7f212bb30d09..5a02a36343e3 100644
--- a/dev-db/pgpool2/Manifest
+++ b/dev-db/pgpool2/Manifest
@@ -1,5 +1,5 @@
-DIST pgpool-II-4.3.2.tar.gz 5846769 BLAKE2B 82cfe7095ad303ac3a910c533d6e57edb4e3d5b28a9a9bffb2df473dd3087ec329d3a77f9490d9bb738d5d1a443020d96d0e9a1b1d6adecc04cce5d1caa04e7d SHA512 771426257eddb5c48504c80a2c8cccf44a18f7ea50df55654b7e9e017bda561a73a3e1f0db79785785ff6893d6df26f73b55310d0184ef3301838d12290d3d4c
-DIST pgpool-II-4.3.7.tar.gz 4901679 BLAKE2B 40c280a9d399246da77661a856d64691c213361193ba6af46a70c03c9193021a9f44dd9bfdfc7335c269675d04e9469d033ce55757799a7009d35d1493c50d6e SHA512 dd84b94a60fb1e75de2c14f83b3637491a4673b15dc7c23dbb8e26e69d32f617a85159f7c276a88a62d741b7758d84e94949ea6aa8f505be0960d8fffdaa10b6
+DIST pgpool-II-4.3.10.tar.gz 4938631 BLAKE2B f32d3f8080a8dced76bd448122110223b50928dbdb61db97ac33d9fca38276700d61fdd0002c1af3c2735f4f04964ff3fd17a2d791210337475e658e7fbe0b43 SHA512 28cc5b303d7437881b4042ce7ac6b516508f20e7db0ecb9c940900b9bfdb2d9311c9f0e80da7e6aeb2075c36fd19f26ef8e35de788483be653f51f64fa60a37d
DIST pgpool-II-4.3.8.tar.gz 4939785 BLAKE2B fbccfa89311c85394d48c9ff25ce68baea15a80bb87efdf9c7d06280f0a532b8bf656f7ad144b9f813293bf6bd43a7d0cead78fff422eef55598ee2a7cd6380e SHA512 93f623900f24454a1913dcf29be508a47ae3c5f7fd360d3546f48b88b93dcc66886de01a5d9b0f53fb955d1eeded1e5329c3ca1fbca4c3f16aabea79e869d9a3
DIST pgpool-II-4.4.4.tar.gz 4973024 BLAKE2B 2fa41442bc9bf677a17d98388f9977b97fb609cdd6f1494d9f4de2356b04de5a3725478381d67cc04a01f3ff964bd3dfe159d9c41c13980e477a5f0c4c198413 SHA512 fb80df3df2894e7f2cf820a2b32e04ef6447a8137341db65c3a141679ea0fcbae7d5824c1904cb19aae7b05ef9fe641ac294dbc58cdbc6231444f0c4e508e7dc
DIST pgpool-II-4.4.5.tar.gz 4992570 BLAKE2B 638812144e8ac58e56e0b9dbe6aadfa90140c05ed46da1d795d0e22515dacd3a126afa6082881ca84c031693a205c895ea69d01fc7a14f870344bae9b454c57f SHA512 cd2fb2f715aed70d67522ab1852fa7df059d5379f9d4860be82a3d32d78701c5bce75e3e1304eda6a67670475aa367a2631cce517a4d2e4eb6b07c1e74901dd9
+DIST pgpool-II-4.4.7.tar.gz 5024007 BLAKE2B 701d6b266156c565e562b926aa8c20ebfdc3e318997e9935f58b3f724fa74e2b9e4482c0b6a0f4304c12f863a0c42232d33687754c27eaa1ca46dc77bbe6af19 SHA512 89fa5288a60ae5169c0fdb681d17ebfb3fdffe60dfb275273cd9ea8023fb5bf20c1bdfa6465ef6cd9778616098cebe1bbe7019061f3c55af76bb9ac7eb29bacb
diff --git a/dev-db/pgpool2/pgpool2-4.3.2.ebuild b/dev-db/pgpool2/pgpool2-4.3.10.ebuild
index d46c7c75826a..27eb9e8121cd 100644
--- a/dev-db/pgpool2/pgpool2-4.3.2.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.3.10.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( 9.6 {10..15} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -15,7 +15,7 @@ SRC_URI="https://www.pgpool.net/download.php?f=${MY_P}.tar.gz -> ${MY_P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 x86"
+KEYWORDS="~amd64 ~x86"
IUSE="doc memcached pam ssl static-libs"
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-4.3.8.ebuild b/dev-db/pgpool2/pgpool2-4.3.8.ebuild
index d46c7c75826a..b0b928ab667f 100644
--- a/dev-db/pgpool2/pgpool2-4.3.8.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.3.8.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
POSTGRES_COMPAT=( 9.6 {10..15} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-4.4.4.ebuild b/dev-db/pgpool2/pgpool2-4.4.4.ebuild
index 7c58c30c4de0..f296ca0fb0a6 100644
--- a/dev-db/pgpool2/pgpool2-4.4.4.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.4.4.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
POSTGRES_COMPAT=( {10..16} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-4.4.5.ebuild b/dev-db/pgpool2/pgpool2-4.4.5.ebuild
index 7c58c30c4de0..f296ca0fb0a6 100644
--- a/dev-db/pgpool2/pgpool2-4.4.5.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.4.5.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
POSTGRES_COMPAT=( {10..16} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-4.3.7.ebuild b/dev-db/pgpool2/pgpool2-4.4.7.ebuild
index d46c7c75826a..8170c488c799 100644
--- a/dev-db/pgpool2/pgpool2-4.3.7.ebuild
+++ b/dev-db/pgpool2/pgpool2-4.4.7.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-POSTGRES_COMPAT=( 9.6 {10..15} )
+POSTGRES_COMPAT=( {10..16} )
-inherit autotools postgres-multi
+inherit autotools flag-o-matic postgres-multi
MY_P="${PN/2/-II}-${PV}"
@@ -15,7 +15,7 @@ SRC_URI="https://www.pgpool.net/download.php?f=${MY_P}.tar.gz -> ${MY_P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 x86"
+KEYWORDS="~amd64 ~x86"
IUSE="doc memcached pam ssl static-libs"
@@ -40,7 +40,7 @@ src_prepare() {
"${FILESDIR}/pgpool-4.2.0-configure-memcached.patch" \
"${FILESDIR}/pgpool-configure-pam.patch" \
"${FILESDIR}/pgpool-4.2.0-configure-pthread.patch" \
- "${FILESDIR}/pgpool-4.3.1-run_paths.patch"
+ "${FILESDIR}/pgpool-4.4.4-run_paths.patch"
eautoreconf
@@ -48,6 +48,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgpool2/pgpool2-9999.ebuild b/dev-db/pgpool2/pgpool2-9999.ebuild
index 0de82e93599a..aec380cbbd43 100644
--- a/dev-db/pgpool2/pgpool2-9999.ebuild
+++ b/dev-db/pgpool2/pgpool2-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ EGIT_REPO_URI="https://git.postgresql.org/git/pgpool2.git"
POSTGRES_COMPAT=( 9.6 {10..15} )
-inherit autotools git-r3 postgres-multi
+inherit autotools flag-o-matic git-r3 postgres-multi
DESCRIPTION="Connection pool server for PostgreSQL"
HOMEPAGE="https://www.pgpool.net/"
@@ -53,6 +53,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855248
+ # https://github.com/pgpool/pgpool2/issues/42
+ #
+ filter-lto
+
postgres-multi_foreach econf \
--disable-rpath \
--sysconfdir="${EPREFIX}/etc/${PN}" \
diff --git a/dev-db/pgrouting/Manifest b/dev-db/pgrouting/Manifest
index d87d06d9d225..71de5ad10bf9 100644
--- a/dev-db/pgrouting/Manifest
+++ b/dev-db/pgrouting/Manifest
@@ -1,3 +1,4 @@
DIST pgrouting-3.2.1.tar.gz 5940439 BLAKE2B 01f4ec19d4cee9165a5aca946935cf4786a42f943602eca99414b536dec11ffe298f960e11aaa8b747c1b9c1839625ac9d3e7f67f1f606e941c9c738b4970479 SHA512 ead51de138950707008a7ea6b1a18cfe4d8b1885bfe92849464c2714e39f8e43ef3dbebd1c68279987a1321705fe33a598efb463078491d52cb90a8d1a0414c7
DIST pgrouting-3.5.1.tar.gz 3613985 BLAKE2B a0af5d730673b8a9555891998f0c2cf7ff429d48efc5170aa59ae05518deb6be6b898d52f4c9bf6cd24422922a9c27329cead3281db8df7d7c6b679cec7484f2 SHA512 d29871fc55f8bfa1795816c34483dd8b6a02d24f91b111b5848be8cccc4f04916dc76b99c4bb68ccfcb9c0a745e646ec51e0144a3e09c7fb2d16caabb7a62c40
DIST pgrouting-3.6.1.tar.gz 3871417 BLAKE2B 43295bdb949daf736ba04ca0e89f0374ecbb87859ce49f8436f97bac0491aa69fe118426ddfed939163a975299d085187d51bd233051bf79f97bc4500149fdf4 SHA512 278d6d89ea49e9a38c6ae8c52936e52ae5a3508e9d8693182efdc15649b44be7208affea236046bbb67ff373831a82e2985087f890b0faa4c96be4fa6c3e07cf
+DIST pgrouting-3.6.2.tar.gz 3873384 BLAKE2B 118d57018d344055e3a7d7daef07f0f8916918b907d7d7dd5d63e22c8df0315089ab6b52f6a70b5dea4390e9f432cec602c798f46557bac2aa69f69e4d5b8555 SHA512 9fe5649d022bc1330d9f70e42a69de45eaed9fce070f58594996516f295a7bc15c099b2c3ee1c25ee4b4f0d839de4c0cc74174972e7f7f0dc5fa4be395d58dd3
diff --git a/dev-db/pgrouting/pgrouting-3.6.1.ebuild b/dev-db/pgrouting/pgrouting-3.6.1.ebuild
index dfac3a1976d6..9c53fe72688e 100644
--- a/dev-db/pgrouting/pgrouting-3.6.1.ebuild
+++ b/dev-db/pgrouting/pgrouting-3.6.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -15,7 +15,7 @@ HOMEPAGE="https://pgrouting.org/"
LICENSE="GPL-2 MIT Boost-1.0"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
SRC_URI="https://github.com/pgRouting/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
IUSE=""
diff --git a/dev-db/pgrouting/pgrouting-3.6.2.ebuild b/dev-db/pgrouting/pgrouting-3.6.2.ebuild
new file mode 100644
index 000000000000..1638d6e53236
--- /dev/null
+++ b/dev-db/pgrouting/pgrouting-3.6.2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_BUILD_TYPE="Release"
+
+POSTGRES_COMPAT=( {12..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/pgtap/Manifest b/dev-db/pgtap/Manifest
index a015f57d011e..c5f392c6b9c0 100644
--- a/dev-db/pgtap/Manifest
+++ b/dev-db/pgtap/Manifest
@@ -1,2 +1,2 @@
-DIST pgtap-1.2.0.zip 319374 BLAKE2B 1cea77860a1928ed7cbf4ddb0bb8ff418023bf88e377196ae2b505c065321e3003179227077567e676a8c551230d259ecd1cdb590001fc71bcc821b87fb3d0f6 SHA512 5569bea5e7879787a91fa9b2baae5cbff1db5b9a5a096db2a9a064012d65e02c52bd1520422b5e6f87fb5b6e64845371188ea53c43a277aee68ffc05d5152ed7
DIST pgtap-1.3.1.zip 654637 BLAKE2B 412dfcb51813552541f935328e28fbf8f0a014536a5eee8bf55ea680cd22a6424529641040627f91afebb407872d8d3d4aa25e576d965ddb11514229c2b72591 SHA512 98129bbbdf2221502e52375c3e55dff324e69cb930865d1589949ad2d96ddeac1a215e10d0612f7cc050d9a725817b01b23a9cc3e9cb42ef23a929e593ecb698
+DIST pgtap-1.3.3.zip 329966 BLAKE2B 03ba9f7af9dbb6a8077e5b6dd430171eef4afeb904c65f82b8b962af68852e32ad1dca57e710c8f722c5e2c10eeebe6c890dd3cc61e7c31257974dfaf19cb207 SHA512 6872208501498cb440e46fff9e9f953560551b60fbde11221a7c2d3ccc075780ad59585e0ab0639b630dd902d185b6844754cbc406eef4e4bf90e616adadf2b4
diff --git a/dev-db/pgtap/pgtap-1.2.0-r2.ebuild b/dev-db/pgtap/pgtap-1.3.3.ebuild
index a4658a7fd8c6..1d71d1666e21 100644
--- a/dev-db/pgtap/pgtap-1.2.0-r2.ebuild
+++ b/dev-db/pgtap/pgtap-1.3.3.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-POSTGRES_COMPAT=( 9.6 {10..14} )
+POSTGRES_COMPAT=( {12..16} )
inherit postgres-multi
diff --git a/dev-db/pgxnclient/pgxnclient-1.3.2.ebuild b/dev-db/pgxnclient/pgxnclient-1.3.2.ebuild
index 49bdb174b36a..586adb9e7094 100644
--- a/dev-db/pgxnclient/pgxnclient-1.3.2.ebuild
+++ b/dev-db/pgxnclient/pgxnclient-1.3.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{9..12} )
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 pypi
diff --git a/dev-db/postgis/Manifest b/dev-db/postgis/Manifest
index fce28441144b..2406e2d7976a 100644
--- a/dev-db/postgis/Manifest
+++ b/dev-db/postgis/Manifest
@@ -1,12 +1,8 @@
-DIST postgis-3.1.10.tar.gz 17302899 BLAKE2B 735a7ea27b07fe6bc7fb712a33015e230b498e362e83b91777de37c15df4564eb07fe88f3402a135c6a3ef9e300e5fa4569ed0ffa325fb94cd4b82291138857e SHA512 872de412792e5b237e2e60d1b3ffb739186839754286e608485dffa89ab9e58c4237c289b0a8420c9bc448b19f0983a2c32be7f72ccb5b7a7c4096adf9f93d87
+DIST postgis-3.1.11.tar.gz 17283655 BLAKE2B 237bb80ab4e38f0c6f70e6c445b3fbf0d1d547fafb1b7fd7259ace9df7775c6f01f0b9f6c6e74a9a811c5c7e3e6484c9b99b48a5e4753da807e6e05fce4c024e SHA512 0a91e1b1ce336cdc4763bafaf01f98b1bcb80f6e786feb5156fd8841ea8273df28735bf6f185108b27a30dd4a841f414f4400feaf5ebd3684d5a3272ef805715
DIST postgis-3.1.8.tar.gz 17285335 BLAKE2B 212a74866de5b8788b91cfa6d8b3a064df2933c76c8930e3c7bba310b36b4e7249de2d7481e852679da59bb9bdb3315752b62ad70176601b7110401f368200bc SHA512 c28befe1f77e7f36d63b39d027024d3f8abe8496c64c4b3c05eb7c32c3a885e824cabdda5bf0f9f320b9fe15bb97f21d5dfb65a193c64b1e27be95badefe3b37
-DIST postgis-3.1.9.tar.gz 17289185 BLAKE2B a331df130aa8becb4a25e84751f9fcdd494816d8287ade8983bc429eff42c1b98037d07358c4b7e3b9e3daee63aa59ea36f0ae49c5d00bdae9b993526544014a SHA512 b0fd0e7311c7a7672f23d4dc1732c884c7d0766f0f1c0a7e53750bd5fc4d39872dca08f5a5dfc58745fe4c80bb42b2420b63a4cbe76cac02f8e36d8cc9771623
-DIST postgis-3.2.4.tar.gz 16885605 BLAKE2B 341bf09bf5adffc6c48b0fdc6930bac25e43184357895bb90adf000f4fdf52e5c198a530722d46d8b3207e7faffe840de53a9494f3119bb56c3a8e11a4d693f0 SHA512 46bb88ebcf7697e42194e55ef1c323a94222e2870a98aa058d62e1d253c8ad15b14da268eece43b0cdb71d8cdbd2ff393ca451c45998245aaf1726bdffcc563f
-DIST postgis-3.2.5.tar.gz 16888933 BLAKE2B 7d3deb984d7f7ee202abe5deff326debe20ff449f1712abafa2b8bbfd0e56bfbea69a6c16cd10694afd4831c1a0b8e1b9fca89c2748faf092b5402e830714a97 SHA512 7d9f3242aacfc0c071454550ed8683daa211cf29e4b60cf4c7e68fb59ef6e037ff6b53c1a8f5577d224b16cb04e430c47839d9b67097dc4c642312d2f5e485f7
DIST postgis-3.2.6.tar.gz 16886873 BLAKE2B 9bf8375c08d434c0eace1807154c041d0638446385ed67a68c734fa4f5d4e0938bbc1d0761e22db497bc9379e380e6ff8b1e42476b78530f0351f7d242720120 SHA512 30e8a5b9af8a1bb12ed90daa89c71471193142dd7876b7618f237c1dab97a3f5941181cd159a6f33e34b62e6526da4e778f76b658de6fc6861d26e0dd96d10a0
DIST postgis-3.3.2.tar.gz 17793976 BLAKE2B 40dc7636f04e0d5cfd734b175da1ce49c32e4b8f5750059e79e03a7395fb8b9241c1f479815794b46dee81704d7c392fe7693c9f0180323d1ca21812c37d36b5 SHA512 4dd129057598b032ba322c42888bb8ce14b9423bd450ef7a42fa22162f6b48e34b226f38480aa67fe2da85be2529b0822655855f9846b657bdd32f50256f4305
-DIST postgis-3.3.3.tar.gz 17790503 BLAKE2B d5390e3e0713b2f74db0c6d7f953681b49611937442f89cd316b43315257db0e0734b6cd23b750a88d9fe503c5348c98578e12cfe6fd8a382fc7817d641e89cf SHA512 0025a8a5c6be7e18dfb97a6a04c468a9da2d6e99462d20eec7bddf4048b8f2fa1e8029be9f819950c910a6f89190e8295f10e8dab9b4885d03d3dbcce41380c2
-DIST postgis-3.3.4.tar.gz 18591029 BLAKE2B 5aae3804b8abcaf8436cc57c53e288f68e317b5ab930a0651f2f55fc825f9c3d6cdf43b74cb7a845de385d019737759e6ef127587015f28851734ffeedbc64da SHA512 b35811ffcb7fdddbe5d4714216f714b687f92e6984614f20c6bfd4a498e6422a3035fd0de9a0afd0a04c6999d8b8a68e0f93a5bb75f893fcb6d3c3f64fe65726
-DIST postgis-3.3.5.tar.gz 17785894 BLAKE2B 9c710430adb68d92e8326caef6c5a1117a398f04f31bb58f3b38818f3194866eb4906b843e82e4b8e4790717f778690c27f2c856263431e5051412c79c50fc55 SHA512 f9d400d7e9db0acd12ada051922e6baf566ae9ad182af937873765a64bd4e1b4948951da4a173efe7d1f85b3ead0065c6ea9b05860a78cf9942c523bacd2d351
-DIST postgis-3.4.0.tar.gz 14693348 BLAKE2B a7ae007edb12a796f58b24ec8f72264e154900335a2da8c9358dcf0455a4ff183bb77036f45a77aa3533913ab2a802a4995ce17913ef355c52e5c1d8132c04a6 SHA512 d8c5329e5394bfe1d77a207d35cf8100217d39236cfeb228e268c796e16e24068df2191403830bf190b7ae9fabb21003675a091a8cc6dbfeed9b4b02cbbb9d33
+DIST postgis-3.3.6.tar.gz 17803608 BLAKE2B 01b3a789df0af8716beefe027a46b59dfcbcee4a8a92f9e067ca1955992fa24a3e890efeb9f83200071f7d267f541444884dd7f76b225d43dbf8961376eff1da SHA512 643527d80bbc0fc29f4639b24634090b2b9a042a3f0d8224afcd7fe4a149e65dba1015c29d08ff0a53da5eb95cb6b37cf544ada36005284eccdd58de3c791419
DIST postgis-3.4.1.tar.gz 14942851 BLAKE2B 98ef490b08438c5ee35409a1c5c63d985d3024325d607a7a150b197aabb8baaaa70ec8c4bd5134136f92a106e6b1c885e3adb99aa325282122bc37d84db0d83f SHA512 66f460077066372276783d8e7acefb0d61ae5fbf7e2d3bbb7008d9289a65adfe78eb8431eee4bbdd3f8e5a9e37653e396d659f46bb285edab00ed57277fae2c7
+DIST postgis-3.4.2.tar.gz 14957647 BLAKE2B 30951950ae24ae0e0432658ef09ec95ffcf0ef377f79e45fb302f20b40d773c9d551d4ac2a07eab4f743ebeff2aae4730c8b7c2516c36a17f44a1410fbdc3069 SHA512 9dc3b78d9b4bd3d48e7eed96fc8da460177d33df2ec5bfef631b7ef39e056a243499732c9cc19274796b522bef83486eac2cea583a92a2cb18d6d329040c5ef0
+DIST postgis-3.5.0alpha2.tar.gz 15014794 BLAKE2B 7268b5e0820687bb3b3a92cc6f419d14e8a7a48d8d9ea456c020e6ddb080d7b9aff044b894c52db8c013146dcbfc2cf042d24c1508118567ce33c03bc2213b73 SHA512 aa51d7ce2b4d0d64a30f527698e551e40dfc8752e83ff2028924a7da13394aa97de9a7e67612afbb890fcde651b2140a0379d61c7e29681014a191701dc8693d
diff --git a/dev-db/postgis/postgis-3.1.10.ebuild b/dev-db/postgis/postgis-3.1.11.ebuild
index d1478aa5d62d..2d2522b17ba2 100644
--- a/dev-db/postgis/postgis-3.1.10.ebuild
+++ b/dev-db/postgis/postgis-3.1.11.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( 9.6 {10..14} )
POSTGRES_USEDEP="server"
diff --git a/dev-db/postgis/postgis-3.1.9.ebuild b/dev-db/postgis/postgis-3.1.9.ebuild
deleted file mode 100644
index d1478aa5d62d..000000000000
--- a/dev-db/postgis/postgis-3.1.9.ebuild
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( 9.6 {10..14} )
-POSTGRES_USEDEP="server"
-inherit autotools postgres-multi toolchain-funcs
-
-MY_P="${PN}-$(ver_rs 3 '')"
-
-if [[ ${PV} = *9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://git.osgeo.org/gitea/postgis/postgis.git"
-else
- PGIS="$(ver_cut 1-2)"
- SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-DESCRIPTION="Geographic Objects for PostgreSQL"
-HOMEPAGE="https://postgis.net"
-
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="address-standardizer doc gtk static-libs topology"
-
-REQUIRED_USE="${POSTGRES_REQ_USE}"
-
-# Needs a running psql instance, doesn't work out of the box
-RESTRICT="test"
-
-RDEPEND="${POSTGRES_DEP}
- dev-libs/json-c:=
- dev-libs/libxml2:2
- dev-libs/protobuf-c:=
- >=sci-libs/geos-3.9.0
- >=sci-libs/proj-4.9.0:=
- >=sci-libs/gdal-1.10.0:=
- address-standardizer? ( dev-libs/libpcre2 )
- gtk? ( x11-libs/gtk+:2 )
-"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- doc? (
- app-text/docbook-xsl-stylesheets
- app-text/docbook-xml-dtd:4.5
- dev-libs/libxslt
- virtual/imagemagick-tools[png]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.2.0-arflags.patch"
- "${FILESDIR}/${PN}-3.0.3-avoid-calling-ar-directly.patch"
- "${FILESDIR}/${PN}-3.0.3-detect-only-stdc.patch"
- "${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
-)
-
-src_prepare() {
- default
-
- if [[ ${PV} = *9999* ]] ; then
- source "${S}"/Version.config
- PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
- fi
-
- # These modules are built using the same *FLAGS that were used to build
- # dev-db/postgresql. The right thing to do is to ignore the current
- # *FLAGS settings.
- QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
-
- # bug #775968
- touch build-aux/ar-lib || die
-
- local AT_M4DIR="macros"
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- export CPP=$(tc-getCPP)
-
- local myeconfargs=(
- $(use_with address-standardizer)
- $(use_with gtk gui)
- $(use_with topology)
- )
- postgres-multi_foreach econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C topology
-
- if use doc ; then
- postgres-multi_foreach emake comments
- postgres-multi_foreach emake cheatsheets
- postgres-multi_forbest emake -C doc html
- fi
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
- postgres-multi_foreach emake -C topology DESTDIR="${D}" install
- postgres-multi_forbest dobin ./utils/postgis_restore.pl
-
- dodoc CREDITS TODO loader/README.* doc/*txt
-
- docinto topology
- dodoc topology/{TODO,README}
-
- if use doc ; then
- postgres-multi_foreach emake DESTDIR="${D}" comments-install
-
- docinto html
- postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
-
- docinto html/images
- postgres-multi_forbest dodoc doc/html/images/*
- fi
-
- use static-libs || find "${ED}" -name '*.a' -delete
-}
-
-pkg_postinst() {
- ebegin "Refreshing PostgreSQL symlinks"
- postgresql-config update
- eend $?
-
- local base_uri="https://postgis.net/docs/manual-"
- if [[ ${PV} = *9999* ]] ; then
- base_uri+="dev"
- else
- base_uri+="${PGIS}"
- fi
-
- elog "To finish installing PostGIS, follow the directions detailed at:"
- elog "${base_uri}/postgis_installation.html#create_new_db_extensions"
-}
diff --git a/dev-db/postgis/postgis-3.2.4-r1.ebuild b/dev-db/postgis/postgis-3.2.4-r1.ebuild
deleted file mode 100644
index 82013b188b93..000000000000
--- a/dev-db/postgis/postgis-3.2.4-r1.ebuild
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( 9.6 {10..14} )
-POSTGRES_USEDEP="server"
-inherit autotools postgres-multi toolchain-funcs
-
-MY_P="${PN}-$(ver_rs 3 '')"
-
-if [[ ${PV} = *9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://git.osgeo.org/gitea/postgis/postgis.git"
-else
- PGIS="$(ver_cut 1-2)"
- SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-DESCRIPTION="Geographic Objects for PostgreSQL"
-HOMEPAGE="https://postgis.net"
-
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="address-standardizer doc gtk static-libs topology"
-
-REQUIRED_USE="${POSTGRES_REQ_USE}"
-
-# Needs a running psql instance, doesn't work out of the box
-RESTRICT="test"
-
-RDEPEND="${POSTGRES_DEP}
- dev-libs/json-c:=
- dev-libs/libxml2:2
- dev-libs/protobuf-c:=
- >=sci-libs/geos-3.9.0
- >=sci-libs/proj-4.9.0:=
- >=sci-libs/gdal-1.10.0:=
- address-standardizer? ( dev-libs/libpcre2 )
- gtk? ( x11-libs/gtk+:2 )
-"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- doc? (
- app-text/docbook-xsl-stylesheets
- app-text/docbook-xml-dtd:4.5
- dev-libs/libxslt
- virtual/imagemagick-tools[png]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.2.0-arflags.patch"
- "${FILESDIR}/${PN}-3.0.3-avoid-calling-ar-directly.patch"
- "${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
-)
-
-src_prepare() {
- default
-
- if [[ ${PV} = *9999* ]] ; then
- source "${S}"/Version.config
- PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
- fi
-
- # These modules are built using the same *FLAGS that were used to build
- # dev-db/postgresql. The right thing to do is to ignore the current
- # *FLAGS settings.
- QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
-
- # bug #775968
- touch build-aux/ar-lib || die
-
- local AT_M4DIR="macros"
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- export CPP=$(tc-getCPP)
-
- local myeconfargs=(
- $(use_with address-standardizer)
- $(use_with gtk gui)
- $(use_with topology)
- )
- postgres-multi_foreach econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C topology
-
- if use doc ; then
- postgres-multi_foreach emake comments
- postgres-multi_foreach emake cheatsheets
- postgres-multi_forbest emake -C doc html
- fi
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
- postgres-multi_foreach emake -C topology DESTDIR="${D}" install
- postgres-multi_forbest dobin ./utils/postgis_restore.pl
-
- dodoc CREDITS TODO loader/README.* doc/*txt
-
- docinto topology
- dodoc topology/{TODO,README}
-
- if use doc ; then
- postgres-multi_foreach emake DESTDIR="${D}" comments-install
-
- docinto html
- postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
-
- docinto html/images
- postgres-multi_forbest dodoc doc/html/images/*
- fi
-
- use static-libs || find "${ED}" -name '*.a' -delete
-}
-
-pkg_postinst() {
- ebegin "Refreshing PostgreSQL symlinks"
- postgresql-config update
- eend $?
-
- local base_uri="https://postgis.net/docs/manual-"
- if [[ ${PV} = *9999* ]] ; then
- base_uri+="dev"
- else
- base_uri+="${PGIS}"
- fi
-
- elog "To finish installing PostGIS, follow the directions detailed at:"
- elog "${base_uri}/postgis_installation.html#create_new_db_extensions"
-}
diff --git a/dev-db/postgis/postgis-3.2.5.ebuild b/dev-db/postgis/postgis-3.2.5.ebuild
deleted file mode 100644
index 82013b188b93..000000000000
--- a/dev-db/postgis/postgis-3.2.5.ebuild
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( 9.6 {10..14} )
-POSTGRES_USEDEP="server"
-inherit autotools postgres-multi toolchain-funcs
-
-MY_P="${PN}-$(ver_rs 3 '')"
-
-if [[ ${PV} = *9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://git.osgeo.org/gitea/postgis/postgis.git"
-else
- PGIS="$(ver_cut 1-2)"
- SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-DESCRIPTION="Geographic Objects for PostgreSQL"
-HOMEPAGE="https://postgis.net"
-
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="address-standardizer doc gtk static-libs topology"
-
-REQUIRED_USE="${POSTGRES_REQ_USE}"
-
-# Needs a running psql instance, doesn't work out of the box
-RESTRICT="test"
-
-RDEPEND="${POSTGRES_DEP}
- dev-libs/json-c:=
- dev-libs/libxml2:2
- dev-libs/protobuf-c:=
- >=sci-libs/geos-3.9.0
- >=sci-libs/proj-4.9.0:=
- >=sci-libs/gdal-1.10.0:=
- address-standardizer? ( dev-libs/libpcre2 )
- gtk? ( x11-libs/gtk+:2 )
-"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- doc? (
- app-text/docbook-xsl-stylesheets
- app-text/docbook-xml-dtd:4.5
- dev-libs/libxslt
- virtual/imagemagick-tools[png]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.2.0-arflags.patch"
- "${FILESDIR}/${PN}-3.0.3-avoid-calling-ar-directly.patch"
- "${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
-)
-
-src_prepare() {
- default
-
- if [[ ${PV} = *9999* ]] ; then
- source "${S}"/Version.config
- PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
- fi
-
- # These modules are built using the same *FLAGS that were used to build
- # dev-db/postgresql. The right thing to do is to ignore the current
- # *FLAGS settings.
- QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
-
- # bug #775968
- touch build-aux/ar-lib || die
-
- local AT_M4DIR="macros"
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- export CPP=$(tc-getCPP)
-
- local myeconfargs=(
- $(use_with address-standardizer)
- $(use_with gtk gui)
- $(use_with topology)
- )
- postgres-multi_foreach econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C topology
-
- if use doc ; then
- postgres-multi_foreach emake comments
- postgres-multi_foreach emake cheatsheets
- postgres-multi_forbest emake -C doc html
- fi
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
- postgres-multi_foreach emake -C topology DESTDIR="${D}" install
- postgres-multi_forbest dobin ./utils/postgis_restore.pl
-
- dodoc CREDITS TODO loader/README.* doc/*txt
-
- docinto topology
- dodoc topology/{TODO,README}
-
- if use doc ; then
- postgres-multi_foreach emake DESTDIR="${D}" comments-install
-
- docinto html
- postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
-
- docinto html/images
- postgres-multi_forbest dodoc doc/html/images/*
- fi
-
- use static-libs || find "${ED}" -name '*.a' -delete
-}
-
-pkg_postinst() {
- ebegin "Refreshing PostgreSQL symlinks"
- postgresql-config update
- eend $?
-
- local base_uri="https://postgis.net/docs/manual-"
- if [[ ${PV} = *9999* ]] ; then
- base_uri+="dev"
- else
- base_uri+="${PGIS}"
- fi
-
- elog "To finish installing PostGIS, follow the directions detailed at:"
- elog "${base_uri}/postgis_installation.html#create_new_db_extensions"
-}
diff --git a/dev-db/postgis/postgis-3.3.3.ebuild b/dev-db/postgis/postgis-3.3.3.ebuild
deleted file mode 100644
index be3b56049e23..000000000000
--- a/dev-db/postgis/postgis-3.3.3.ebuild
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( {11..15} )
-POSTGRES_USEDEP="server"
-inherit autotools postgres-multi toolchain-funcs
-
-MY_P="${PN}-$(ver_rs 3 '')"
-
-if [[ ${PV} = *9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://git.osgeo.org/gitea/postgis/postgis.git"
-else
- PGIS="$(ver_cut 1-2)"
- SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-DESCRIPTION="Geographic Objects for PostgreSQL"
-HOMEPAGE="https://postgis.net"
-
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="address-standardizer doc gtk static-libs topology"
-
-REQUIRED_USE="${POSTGRES_REQ_USE}"
-
-# Needs a running psql instance, doesn't work out of the box
-RESTRICT="test"
-
-RDEPEND="${POSTGRES_DEP}
- dev-libs/json-c:=
- dev-libs/libxml2:2
- dev-libs/protobuf-c:=
- >=sci-libs/geos-3.9.0
- >=sci-libs/proj-4.9.0:=
- >=sci-libs/gdal-1.10.0:=
- address-standardizer? ( dev-libs/libpcre2 )
- gtk? ( x11-libs/gtk+:2 )
-"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- doc? (
- app-text/docbook-xsl-stylesheets
- app-text/docbook-xml-dtd:4.5
- dev-libs/libxslt
- virtual/imagemagick-tools[png]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
- # source: https://github.com/google/flatbuffers/pull/7897
- "${FILESDIR}/${PN}-3.3.2-flatbuffers-abseil-2023.patch" # bug 905378
-)
-
-src_prepare() {
- default
-
- if [[ ${PV} = *9999* ]] ; then
- source "${S}"/Version.config
- PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
- fi
-
- # These modules are built using the same *FLAGS that were used to build
- # dev-db/postgresql. The right thing to do is to ignore the current
- # *FLAGS settings.
- QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
-
- # bug #775968
- touch build-aux/ar-lib || die
-
- local AT_M4DIR="macros"
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- export CPP=$(tc-getCPP)
-
- local myeconfargs=(
- $(use_with address-standardizer)
- $(use_with gtk gui)
- $(use_with topology)
- )
- postgres-multi_foreach econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C topology
-
- if use doc ; then
- postgres-multi_foreach emake comments
- postgres-multi_foreach emake cheatsheets
- postgres-multi_forbest emake -C doc html
- fi
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
- postgres-multi_foreach emake -C topology DESTDIR="${D}" install
- postgres-multi_forbest dobin ./utils/postgis_restore.pl
-
- dodoc CREDITS TODO loader/README.* doc/*txt
-
- docinto topology
- dodoc topology/{TODO,README}
-
- if use doc ; then
- postgres-multi_foreach emake DESTDIR="${D}" comments-install
-
- docinto html
- postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
-
- docinto html/images
- postgres-multi_forbest dodoc doc/html/images/*
- fi
-
- use static-libs || find "${ED}" -name '*.a' -delete
-}
-
-pkg_postinst() {
- ebegin "Refreshing PostgreSQL symlinks"
- postgresql-config update
- eend $?
-
- local base_uri="https://postgis.net/docs/manual-"
- if [[ ${PV} = *9999* ]] ; then
- base_uri+="dev"
- else
- base_uri+="${PGIS}"
- fi
-
- elog "To finish installing PostGIS, follow the directions detailed at:"
- elog "${base_uri}/postgis_installation.html#create_new_db_extensions"
-}
diff --git a/dev-db/postgis/postgis-3.3.4.ebuild b/dev-db/postgis/postgis-3.3.4.ebuild
deleted file mode 100644
index be3b56049e23..000000000000
--- a/dev-db/postgis/postgis-3.3.4.ebuild
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( {11..15} )
-POSTGRES_USEDEP="server"
-inherit autotools postgres-multi toolchain-funcs
-
-MY_P="${PN}-$(ver_rs 3 '')"
-
-if [[ ${PV} = *9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://git.osgeo.org/gitea/postgis/postgis.git"
-else
- PGIS="$(ver_cut 1-2)"
- SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-DESCRIPTION="Geographic Objects for PostgreSQL"
-HOMEPAGE="https://postgis.net"
-
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="address-standardizer doc gtk static-libs topology"
-
-REQUIRED_USE="${POSTGRES_REQ_USE}"
-
-# Needs a running psql instance, doesn't work out of the box
-RESTRICT="test"
-
-RDEPEND="${POSTGRES_DEP}
- dev-libs/json-c:=
- dev-libs/libxml2:2
- dev-libs/protobuf-c:=
- >=sci-libs/geos-3.9.0
- >=sci-libs/proj-4.9.0:=
- >=sci-libs/gdal-1.10.0:=
- address-standardizer? ( dev-libs/libpcre2 )
- gtk? ( x11-libs/gtk+:2 )
-"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- doc? (
- app-text/docbook-xsl-stylesheets
- app-text/docbook-xml-dtd:4.5
- dev-libs/libxslt
- virtual/imagemagick-tools[png]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
- # source: https://github.com/google/flatbuffers/pull/7897
- "${FILESDIR}/${PN}-3.3.2-flatbuffers-abseil-2023.patch" # bug 905378
-)
-
-src_prepare() {
- default
-
- if [[ ${PV} = *9999* ]] ; then
- source "${S}"/Version.config
- PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
- fi
-
- # These modules are built using the same *FLAGS that were used to build
- # dev-db/postgresql. The right thing to do is to ignore the current
- # *FLAGS settings.
- QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
-
- # bug #775968
- touch build-aux/ar-lib || die
-
- local AT_M4DIR="macros"
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- export CPP=$(tc-getCPP)
-
- local myeconfargs=(
- $(use_with address-standardizer)
- $(use_with gtk gui)
- $(use_with topology)
- )
- postgres-multi_foreach econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C topology
-
- if use doc ; then
- postgres-multi_foreach emake comments
- postgres-multi_foreach emake cheatsheets
- postgres-multi_forbest emake -C doc html
- fi
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
- postgres-multi_foreach emake -C topology DESTDIR="${D}" install
- postgres-multi_forbest dobin ./utils/postgis_restore.pl
-
- dodoc CREDITS TODO loader/README.* doc/*txt
-
- docinto topology
- dodoc topology/{TODO,README}
-
- if use doc ; then
- postgres-multi_foreach emake DESTDIR="${D}" comments-install
-
- docinto html
- postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
-
- docinto html/images
- postgres-multi_forbest dodoc doc/html/images/*
- fi
-
- use static-libs || find "${ED}" -name '*.a' -delete
-}
-
-pkg_postinst() {
- ebegin "Refreshing PostgreSQL symlinks"
- postgresql-config update
- eend $?
-
- local base_uri="https://postgis.net/docs/manual-"
- if [[ ${PV} = *9999* ]] ; then
- base_uri+="dev"
- else
- base_uri+="${PGIS}"
- fi
-
- elog "To finish installing PostGIS, follow the directions detailed at:"
- elog "${base_uri}/postgis_installation.html#create_new_db_extensions"
-}
diff --git a/dev-db/postgis/postgis-3.3.5.ebuild b/dev-db/postgis/postgis-3.3.6.ebuild
index 6f4f58e24ace..55ecc49ccb7c 100644
--- a/dev-db/postgis/postgis-3.3.5.ebuild
+++ b/dev-db/postgis/postgis-3.3.6.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( {11..16} )
POSTGRES_USEDEP="server"
@@ -54,8 +54,6 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
- # source: https://github.com/google/flatbuffers/pull/7897
- "${FILESDIR}/${PN}-3.3.2-flatbuffers-abseil-2023.patch" # bug 905378
)
src_prepare() {
diff --git a/dev-db/postgis/postgis-3.4.0-r2.ebuild b/dev-db/postgis/postgis-3.4.2.ebuild
index 515b220b2b43..c4edb0ce080a 100644
--- a/dev-db/postgis/postgis-3.4.0-r2.ebuild
+++ b/dev-db/postgis/postgis-3.4.2.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( {12..16} )
POSTGRES_USEDEP="server"
diff --git a/dev-db/postgis/postgis-3.4.0-r1.ebuild b/dev-db/postgis/postgis-3.5.0_alpha2.ebuild
index 380ebb720957..c6635830012f 100644
--- a/dev-db/postgis/postgis-3.4.0-r1.ebuild
+++ b/dev-db/postgis/postgis-3.5.0_alpha2.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( {12..16} )
POSTGRES_USEDEP="server"
@@ -15,7 +15,7 @@ if [[ ${PV} = *9999* ]] ; then
else
PGIS="$(ver_cut 1-2)"
SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+ KEYWORDS=""
fi
DESCRIPTION="Geographic Objects for PostgreSQL"
@@ -54,8 +54,6 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
- # source: https://github.com/google/flatbuffers/pull/7897
- #"${FILESDIR}/${PN}-3.3.2-flatbuffers-abseil-2023.patch" # bug 905378
)
src_prepare() {
@@ -97,7 +95,7 @@ src_compile() {
if use doc ; then
postgres-multi_foreach emake comments
- postgres-multi_foreach emake cheatsheets
+ postgres-multi_forbest emake cheatsheets
postgres-multi_forbest emake -C doc html
fi
}
@@ -114,12 +112,7 @@ src_install() {
if use doc ; then
postgres-multi_foreach emake DESTDIR="${D}" comments-install
-
- docinto html
- postgres-multi_forbest dodoc doc/html/{postgis-en.html,style.css}
-
- docinto html/images
- postgres-multi_forbest dodoc -r doc/html/images/*
+ postgres-multi_forbest emake DESTDIR="${D}" -C doc cheatsheet-install html-install html-assets-install
fi
use static-libs || find "${ED}" -name '*.a' -delete
diff --git a/dev-db/postgis/postgis-9999.ebuild b/dev-db/postgis/postgis-9999.ebuild
deleted file mode 100644
index 82013b188b93..000000000000
--- a/dev-db/postgis/postgis-9999.ebuild
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-POSTGRES_COMPAT=( 9.6 {10..14} )
-POSTGRES_USEDEP="server"
-inherit autotools postgres-multi toolchain-funcs
-
-MY_P="${PN}-$(ver_rs 3 '')"
-
-if [[ ${PV} = *9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://git.osgeo.org/gitea/postgis/postgis.git"
-else
- PGIS="$(ver_cut 1-2)"
- SRC_URI="https://download.osgeo.org/postgis/source/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-DESCRIPTION="Geographic Objects for PostgreSQL"
-HOMEPAGE="https://postgis.net"
-
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="address-standardizer doc gtk static-libs topology"
-
-REQUIRED_USE="${POSTGRES_REQ_USE}"
-
-# Needs a running psql instance, doesn't work out of the box
-RESTRICT="test"
-
-RDEPEND="${POSTGRES_DEP}
- dev-libs/json-c:=
- dev-libs/libxml2:2
- dev-libs/protobuf-c:=
- >=sci-libs/geos-3.9.0
- >=sci-libs/proj-4.9.0:=
- >=sci-libs/gdal-1.10.0:=
- address-standardizer? ( dev-libs/libpcre2 )
- gtk? ( x11-libs/gtk+:2 )
-"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- doc? (
- app-text/docbook-xsl-stylesheets
- app-text/docbook-xml-dtd:4.5
- dev-libs/libxslt
- virtual/imagemagick-tools[png]
- )
-"
-
-PATCHES=(
- "${FILESDIR}/${PN}-2.2.0-arflags.patch"
- "${FILESDIR}/${PN}-3.0.3-avoid-calling-ar-directly.patch"
- "${FILESDIR}/${PN}-3.0.3-try-other-cpp-names.patch"
-)
-
-src_prepare() {
- default
-
- if [[ ${PV} = *9999* ]] ; then
- source "${S}"/Version.config
- PGIS="${POSTGIS_MAJOR_VERSION}.${POSTGIS_MINOR_VERSION}"
- fi
-
- # These modules are built using the same *FLAGS that were used to build
- # dev-db/postgresql. The right thing to do is to ignore the current
- # *FLAGS settings.
- QA_FLAGS_IGNORED="usr/lib(64)?/(rt)?postgis-${PGIS}\.so"
-
- # bug #775968
- touch build-aux/ar-lib || die
-
- local AT_M4DIR="macros"
- eautoreconf
-
- postgres-multi_src_prepare
-}
-
-src_configure() {
- export CPP=$(tc-getCPP)
-
- local myeconfargs=(
- $(use_with address-standardizer)
- $(use_with gtk gui)
- $(use_with topology)
- )
- postgres-multi_foreach econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- postgres-multi_foreach emake
- postgres-multi_foreach emake -C topology
-
- if use doc ; then
- postgres-multi_foreach emake comments
- postgres-multi_foreach emake cheatsheets
- postgres-multi_forbest emake -C doc html
- fi
-}
-
-src_install() {
- postgres-multi_foreach emake DESTDIR="${D}" install
- postgres-multi_foreach emake -C topology DESTDIR="${D}" install
- postgres-multi_forbest dobin ./utils/postgis_restore.pl
-
- dodoc CREDITS TODO loader/README.* doc/*txt
-
- docinto topology
- dodoc topology/{TODO,README}
-
- if use doc ; then
- postgres-multi_foreach emake DESTDIR="${D}" comments-install
-
- docinto html
- postgres-multi_forbest dodoc doc/html/{postgis.html,style.css}
-
- docinto html/images
- postgres-multi_forbest dodoc doc/html/images/*
- fi
-
- use static-libs || find "${ED}" -name '*.a' -delete
-}
-
-pkg_postinst() {
- ebegin "Refreshing PostgreSQL symlinks"
- postgresql-config update
- eend $?
-
- local base_uri="https://postgis.net/docs/manual-"
- if [[ ${PV} = *9999* ]] ; then
- base_uri+="dev"
- else
- base_uri+="${PGIS}"
- fi
-
- elog "To finish installing PostGIS, follow the directions detailed at:"
- elog "${base_uri}/postgis_installation.html#create_new_db_extensions"
-}
diff --git a/dev-db/postgresql/Manifest b/dev-db/postgresql/Manifest
index f4d4bca5dbf6..b9b775eaf196 100644
--- a/dev-db/postgresql/Manifest
+++ b/dev-db/postgresql/Manifest
@@ -1,10 +1,6 @@
-DIST postgresql-12.17.tar.bz2 21181616 BLAKE2B dda4b06d8d36d3257e1eea251ccbdf38f1ce63ca811045b7b8d156d2b54614304b83b30ad3b1ead4e7ad74fa9f42acc8934f648902e17a4f7c89a117dc8e3c03 SHA512 8bf67475db4ec5baf058ca976ea3e416df39cd9d15131be3fa3c161edbfa93f74251d33b29d23b3084c95bbb73fb6606f4615e528129674047a75a86e7417373
-DIST postgresql-12.18.tar.bz2 21208935 BLAKE2B cadb1d168185d0f73752af2a58f34bde79db51716ffbc4e974efa759ac5ebd3b340a17acc965a1fd30899321c5aef597b93f947277a35c1159bc9ff7ac4b4254 SHA512 723105a2b280ed9116615fa5fe29034a8588e474ed622de2c439f95e5b621b8865224e02553b71cba8d0288b1ee9fea077b20bd77fe2c858cd988b417efa56c0
-DIST postgresql-13.13.tar.bz2 21563452 BLAKE2B ee4b2d022c1b3003dc9c4da96e5900878a2fc70b3033470d0fb972131e063a047895e86d5d1e36297885f2821f0ef3af966cabe32941efba4bd11bdd0557e44f SHA512 d7b1076cdc406ac83440c75d18e6dc6db9af709615344978ba0135b45a127082b1d3c6ad6d8cd6259d67ddf38cfcee37dd78dcfbf8e4a710b724c67cf36170a7
-DIST postgresql-13.14.tar.bz2 21584146 BLAKE2B 67b1c85cac910f445a393060646e901e03eccf9c00d3b4d41b12acc9d94254697c46060f09a4c6ed57ec33b202c18916b03f8b322c3be0f195e0315e7a874933 SHA512 25d545de69d6ac16b044e09939678af97b6574c71d47d98f95f0ef9ad11ff65e864e503ddff119d73fbb3c61e648e31219982d60da7fc2382ba10e0bfc370aa5
-DIST postgresql-14.10.tar.bz2 22298652 BLAKE2B 0c87c02b0b279d29e4a05711312bf89a655359a687c24d1cbb76cd4f6ed7666d31113a18a9976773c36853f00c1ca332af396372524467bb19c2a3bfcddea995 SHA512 f546e62eb158efdeecf091271ee60945604ca7f3683f0b259ee18eb682431158e282bf4f81d8df304c956919788f8077e72aa47c467d32d6aef1ccfe470862a5
-DIST postgresql-14.11.tar.bz2 22354758 BLAKE2B f2ee6246c0e2c236e693e29ae2a581e818be51162a9a93f38aa1520b886557f9628111ad1e25221baa3b0bcb1d2861e2527082cb15dc6ef1493351b4cc13196a SHA512 67289cd638ed7b13e845263d5a34394347f33735d9e2fafd6aa3562989a3a9455ea547d1b5079138648f33b093e77841654188fc74a49c0d6d458a42cfb57ffe
-DIST postgresql-15.5.tar.bz2 23091780 BLAKE2B e3731b973242d4de8b4b78e00842df52e006f08510efc0ff02bf7b8b479e17aa9e1c8116644d9a82f23d4334f527f1a82a1c2eec7f7c199a2fdf500b46740264 SHA512 9ed9d160b3cef99954ccd47a970c107b7e3b0196a7d848f740bf3c52a1c626f6f457814c97f37b9f0467bb07734e19806a15bd9cf3c39445e1d89e75b37064cc
-DIST postgresql-15.6.tar.bz2 23093967 BLAKE2B 8245fd0e0f2b90d504e57021bb0069d0850f5ff409dab2a583581a5b77a39e81a08c6d4c87db15f14f5e1943c1c21451160205ea27e56808a3a4a0f166090c2a SHA512 d9f158d844ec21bc5a7eccad9193dfe026d3df46a011980412ad7d150b3894c01754be0053bed530976047d7eff657204ac321138ba8da6eac8fb7b93b9520ad
-DIST postgresql-16.1.tar.bz2 24605482 BLAKE2B f59859af644134cf0fc9289c0e0d93fe0f877794a1cc8881280d0439605a6e312866a0114d453af8e269e26173fa3742073fe5485901b7cb0af925a5c3506aad SHA512 69f4635e5841452599f13b47df41ce2425ab34b4e4582fd2c635bc78d561fa36c5b03eccb4ae6569872dc74775be1b5a62dee20c9a4f12a43339250128352918
-DIST postgresql-16.2.tar.bz2 24711703 BLAKE2B b863d7b7a1721df237c33a45aed788be9397a432a445f2267619496f1c0210196ff0904c44dbf07ea11f814921c643a6b9182b8a4c992f13578c4fe00868d491 SHA512 3194941cc3f1ec86b6cf4f08c6422d268d99890441f8fc9ab87b6a7fd16c990fa230b544308644cbef54e6960c4984e3703752e40930bdc0537b7bfda3ab7ccf
+DIST postgresql-12.19.tar.bz2 21218699 BLAKE2B d858108017ad9fd1c9813080c18f21cf2574f2b21a9881ae35e0291f3710664890983e71a2cd1c45f10b4c1ff8ab19d9d2383e35217b55e8e67b72b2673bec29 SHA512 c08cb8f902728ea5ab5872fa2e37f8646f6beb4df39425a5a42db30ce86fa499a2059fa57b4eac3089bfba875a85a55144eba5ce6c525c642ba33c82f264b1b5
+DIST postgresql-13.15.tar.bz2 21597871 BLAKE2B 63631ea73e42fb846a9a78473d5929a2c9bf91016ef0808578d6ff6ce1e3d862ae1f8524f26f074f2adb30e55fd941ef6ce9b27c5eaa83f41d165f45958e0445 SHA512 6614b3ccf3ab41f34fc36e75f501853b13e0b9900728b8f8bbf8e3ac22783d18b0f05183beab778eb84ca71665574063fac6e1153bcd86bac252a8a9bbff0d8b
+DIST postgresql-14.12.tar.bz2 22390865 BLAKE2B 09848b504c2c970d4b3a5ee3b7eec951f8966c3fcfdd77cea9a001b305ffa8ad55ea08eee2219abb6eb2e6478dddfcd29889308ee8f72eadb39d777e55f5f848 SHA512 cb6729d0fba8aa705c92beecdc5cd1131e64337db6de038da6f5b75c7d9e65381f93f6ebfac601d5622399b9485e8ec558be53e6a7dcc59350a9b053f8836bf9
+DIST postgresql-15.7.tar.bz2 23112318 BLAKE2B 6a31ca8b833caf9400ce176211005c2b522e3f431717ad6b73c0df842121d3898dcfddce4626f961539a80b09960fb7659703e6f82d5eadff7217789893b9279 SHA512 8a03e2d7a267f0d11c27d90a2fb605725accb41cfebba2b56c735d4af45bb5f977d4ba051a02ac8d31f93253372df3d3b5efdd159e258d6fcc506b73e3ad6e27
+DIST postgresql-16.3.tar.bz2 24737644 BLAKE2B 3390c781631645e9f51f31885d20cfeabf64992af9d56addaf847233e0c652aac8751dcf3a7c041962972de084722aee6070437c0517f729b200baf9e4bda2a3 SHA512 dc1c8d4fbc8e53e9be91dcf1b644b3969bd634f11bf5a1c4fe16619fd386f3349a5509788d43e6a57d099ad75233026d4dd4e0bb180ffc747fd3c1a575c51a5f
+DIST postgresql-17beta2.tar.bz2 21308699 BLAKE2B 4502b9608dbf9bc8d955a7e5f427eec7ea92786999288ad26ee2d8ef4f91443458af0b4dfdc9056589d685ffbdd6bd0b718db7e64672cba61b6bbfd90a026620 SHA512 c942f0fe4241698d359ffbab7dd564c252569792e7472acdb0ad1f7a2029e59d2a64dea6d3880243629769d5f253ff0550666508e476169d718a86803ee44ad0
diff --git a/dev-db/postgresql/postgresql-12.17.ebuild b/dev-db/postgresql/postgresql-12.17.ebuild
deleted file mode 100644
index 51c7e054b6b5..000000000000
--- a/dev-db/postgresql/postgresql-12.17.ebuild
+++ /dev/null
@@ -1,452 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-12.1-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- econf \
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable !alpha spinlocks) \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_enable nls)
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- emake check
-
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-12.18.ebuild b/dev-db/postgresql/postgresql-12.19-r2.ebuild
index 8365c8725242..b0c6363f0d16 100644
--- a/dev-db/postgresql/postgresql-12.18.ebuild
+++ b/dev-db/postgresql/postgresql-12.19-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
python? ( ${PYTHON_DEPS} )
@@ -83,7 +84,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -398,13 +399,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-13.13.ebuild b/dev-db/postgresql/postgresql-13.13.ebuild
deleted file mode 100644
index 5e8c350bca7f..000000000000
--- a/dev-db/postgresql/postgresql-13.13.ebuild
+++ /dev/null
@@ -1,464 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- eapply "${FILESDIR}"/${PN}-13.3-riscv-spinlocks.patch
-
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-13.8-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- local myconf="\
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_enable nls)"
- if use alpha; then
- myconf+=" --disable-spinlocks"
- else
- # Should be the default but just in case
- myconf+=" --enable-spinlocks"
- fi
- econf ${myconf}
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- emake check
- export LC_CTYPE=${old_ctype}
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-13.14.ebuild b/dev-db/postgresql/postgresql-13.15-r2.ebuild
index 60d28d2d7d08..822fbdabce55 100644
--- a/dev-db/postgresql/postgresql-13.14.ebuild
+++ b/dev-db/postgresql/postgresql-13.15-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
python? ( ${PYTHON_DEPS} )
@@ -83,7 +84,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -406,13 +407,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-14.10.ebuild b/dev-db/postgresql/postgresql-14.10.ebuild
deleted file mode 100644
index 341c1e37a966..000000000000
--- a/dev-db/postgresql/postgresql-14.10.ebuild
+++ /dev/null
@@ -1,464 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm lz4 nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-lz4? ( app-arch/lz4 )
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-14.5-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- local myconf="\
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with lz4) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_enable nls)"
- if use alpha; then
- myconf+=" --disable-spinlocks"
- else
- # Should be the default but just in case
- myconf+=" --enable-spinlocks"
- fi
- econf ${myconf}
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- emake check
- export LC_CTYPE=${old_ctype}
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-14.11.ebuild b/dev-db/postgresql/postgresql-14.12-r2.ebuild
index db34b02f91bd..d141a01baf2c 100644
--- a/dev-db/postgresql/postgresql-14.11.ebuild
+++ b/dev-db/postgresql/postgresql-14.12-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
@@ -84,7 +85,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -406,13 +407,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-15.5.ebuild b/dev-db/postgresql/postgresql-15.5.ebuild
deleted file mode 100644
index aebc9d9ad3be..000000000000
--- a/dev-db/postgresql/postgresql-15.5.ebuild
+++ /dev/null
@@ -1,466 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
-
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
-
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-
-SLOT=$(ver_cut 1)
-
-MY_PV=${PV/_/}
-S="${WORKDIR}/${PN}-${MY_PV}"
-
-SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
-
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
-
-IUSE="debug doc icu kerberos ldap llvm lz4 nls pam perl python +readline
- selinux +server systemd ssl static-libs tcl uuid xml zlib zstd"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-CDEPEND="
->=app-eselect/eselect-postgresql-2.0
-acct-group/postgres
-acct-user/postgres
-sys-apps/less
-virtual/libintl
-icu? ( dev-libs/icu:= )
-kerberos? ( virtual/krb5 )
-ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
-lz4? ( app-arch/lz4 )
-pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
-python? ( ${PYTHON_DEPS} )
-readline? ( sys-libs/readline:0= )
-server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
-tcl? ( >=dev-lang/tcl-8:0= )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
-zlib? ( sys-libs/zlib )
-zstd? ( app-arch/zstd )
-"
-
-# uuid flags -- depend on sys-apps/util-linux for Linux libcs, or if no
-# supported libc in use depend on dev-libs/ossp-uuid. For BSD systems,
-# the libc includes UUID functions.
-UTIL_LINUX_LIBC=( elibc_{glibc,musl} )
-
-nest_usedep() {
- local front back
- while [[ ${#} -gt 1 ]]; do
- front+="${1}? ( "
- back+=" )"
- shift
- done
- echo "${front}${1}${back}"
-}
-
-CDEPEND+="
-uuid? (
- ${UTIL_LINUX_LIBC[@]/%/? ( sys-apps/util-linux )}
- $(nest_usedep ${UTIL_LINUX_LIBC[@]/#/!} dev-libs/ossp-uuid)
-)"
-
-DEPEND="${CDEPEND}
-sys-devel/bison
-app-alternatives/lex
-nls? ( sys-devel/gettext )
-xml? ( virtual/pkgconfig )
-"
-
-RDEPEND="${CDEPEND}
-selinux? ( sec-policy/selinux-postgresql )
-"
-
-pkg_setup() {
- use llvm && llvm_pkg_setup
-
- use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- # Set proper run directory
- sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
- -i src/include/pg_config_manual.h || die
-
- # Rely on $PATH being in the proper order so that the correct
- # install program is used for modules utilizing PGXS in both
- # hardened and non-hardened environments. (Bug #528786)
- sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
-
- use server || eapply "${FILESDIR}/${PN}-15_beta3-no-server.patch"
-
- if use pam ; then
- sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
- -i src/backend/libpq/auth.c || \
- die 'PGSQL_PAM_SERVICE rename failed.'
- fi
-
- eapply_user
-}
-
-src_configure() {
- case ${CHOST} in
- *-darwin*|*-solaris*)
- use nls && append-libs intl
- ;;
- esac
-
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
-
- local PO="${EPREFIX}"
-
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="--with-uuid=e2fs"
- done
- [[ -z $uuid_config ]] && uuid_config="--with-uuid=ossp"
- fi
-
- local myconf="\
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}" \
- --datadir="${PO}/usr/share/postgresql-${SLOT}" \
- --includedir="${PO}/usr/include/postgresql-${SLOT}" \
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man" \
- --sysconfdir="${PO}/etc/postgresql-${SLOT}" \
- --with-system-tzdata="${PO}/usr/share/zoneinfo" \
- $(use_enable debug) \
- $(use_with icu) \
- $(use_with kerberos gssapi) \
- $(use_with ldap) \
- $(use_with llvm) \
- $(use_with lz4) \
- $(use_with pam) \
- $(use_with perl) \
- $(use_with python) \
- $(use_with readline) \
- $(use_with ssl openssl) \
- $(usex server "$(use_with systemd)" '--without-systemd') \
- $(use_with tcl) \
- ${uuid_config} \
- $(use_with xml libxml) \
- $(use_with xml libxslt) \
- $(use_with zlib) \
- $(use_with zstd) \
- $(use_enable nls)"
- if use alpha; then
- myconf+=" --disable-spinlocks"
- else
- # Should be the default but just in case
- myconf+=" --enable-spinlocks"
- fi
- econf ${myconf}
-}
-
-src_compile() {
- emake
- emake -C contrib
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- emake DESTDIR="${D}" install -C contrib
-
- dodoc README HISTORY
-
- # man pages are already built, but if we have the target make them,
- # they'll be generated from source before being installed so we
- # manually install man pages.
- # We use ${SLOT} instead of doman for postgresql.eselect
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r doc/src/sgml/man{1,3,7}
- if ! use server; then
- # Remove man pages for non-existent binaries
- serverman=(
- initdb
- pg_{archivecleanup,controldata,ctl,resetwal,rewind,standby}
- pg_{test_{fsync,timing},upgrade,waldump}
- post{gres,master}
- )
- for m in ${serverman[@]} ; do
- rm "${ED}/usr/share/postgresql-${SLOT}/man/man1/${m}.1"
- done
- fi
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- # Create slot specific man pages
- local bn f mansec slotted_name
- for mansec in 1 3 7 ; do
- local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
-
- mkdir -p "${ED}"/usr/share/man/man${mansec} || die "making man dir"
- pushd "${ED}"/usr/share/man/man${mansec} > /dev/null || die "pushd failed"
-
- for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
- bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
- case ${bn} in
- TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
- ;;
- *)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
- ;;
- esac
- done
-
- popd > /dev/null
- done
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
- # Make slot specific links to programs
- local f bn
- for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
- -mindepth 1 -maxdepth 1)
- do
- bn=$(basename "${f}")
- dosym "../$(get_libdir)/postgresql-${SLOT}/bin/${bn}" \
- "/usr/bin/${bn}${SLOT/.}"
- done
-
- if use doc ; then
- docinto html
- dodoc doc/src/sgml/html/*
- fi
-
- if use server; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
-
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
-
- if use prefix ; then
- keepdir /run/postgresql
- fperms 1775 /run/postgresql
- fi
- fi
-}
-
-pkg_postinst() {
- use server && use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
-
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
-
- if use server ; then
- elog
- elog "Gentoo specific documentation:"
- elog "https://wiki.gentoo.org/wiki/PostgreSQL"
- elog
- elog "Official documentation:"
- elog "https://www.postgresql.org/docs/${SLOT}/static/index.html"
- elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
- elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale in:"
- elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
-
- if [[ -n ${REPLACING_VERSIONS} ]] ; then
- ewarn "If your system is using 'pg_stat_statements' and you are running a"
- ewarn "version of PostgreSQL ${SLOT}, we advise that you execute"
- ewarn "the following command after upgrading:"
- ewarn
- ewarn "ALTER EXTENSION pg_stat_statements UPDATE;"
- fi
- fi
-}
-
-pkg_prerm() {
- if use server && [[ -z ${REPLACED_BY_VERSION} ]] ; then
- ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
- ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
-
- ebegin "Resuming removal in 10 seconds (Control-C to cancel)"
- sleep 10
- eend 0
- fi
-}
-
-pkg_postrm() {
- postgresql-config update
-}
-
-pkg_config() {
- use server || die "USE flag 'server' not enabled. Nothing to configure."
-
- [[ -f "${EROOT}/etc/conf.d/postgresql-${SLOT}" ]] \
- && source "${EROOT}/etc/conf.d/postgresql-${SLOT}"
- [[ -z "${PGDATA}" ]] && PGDATA="${EROOT}/etc/postgresql-${SLOT}/"
- [[ -z "${DATA_DIR}" ]] \
- && DATA_DIR="${EROOT}/var/lib/postgresql/${SLOT}/data"
-
- # environment.bz2 may not contain the same locale as the current system
- # locale. Unset and source from the current system locale.
- if [ -f "${EROOT}/etc/env.d/02locale" ]; then
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_ALL
- source "${EROOT}/etc/env.d/02locale"
- [ -n "${LANG}" ] && export LANG
- [ -n "${LC_CTYPE}" ] && export LC_CTYPE
- [ -n "${LC_NUMERIC}" ] && export LC_NUMERIC
- [ -n "${LC_TIME}" ] && export LC_TIME
- [ -n "${LC_COLLATE}" ] && export LC_COLLATE
- [ -n "${LC_MONETARY}" ] && export LC_MONETARY
- [ -n "${LC_MESSAGES}" ] && export LC_MESSAGES
- [ -n "${LC_ALL}" ] && export LC_ALL
- fi
-
- einfo "You can modify the paths and options passed to initdb by editing:"
- einfo " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
- einfo
- einfo "Information on options that can be passed to initdb are found at:"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/creating-cluster.html"
- einfo " https://www.postgresql.org/docs/${SLOT}/static/app-initdb.html"
- einfo
- einfo "PG_INITDB_OPTS is currently set to:"
- if [[ -z "${PG_INITDB_OPTS}" ]] ; then
- einfo " (none)"
- else
- einfo " ${PG_INITDB_OPTS}"
- fi
- einfo
- einfo "Configuration files will be installed to:"
- einfo " ${PGDATA}"
- einfo
- einfo "The database cluster will be created in:"
- einfo " ${DATA_DIR}"
- einfo
-
- ebegin "Continuing initialization in 5 seconds (Control-C to cancel)"
- sleep 5
- eend 0
-
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
- eerror "The given directory, '${DATA_DIR}', is not empty."
- eerror "Modify DATA_DIR to point to an empty directory."
- die "${DATA_DIR} is not empty."
- fi
-
- einfo "Creating the data directory ..."
- if [[ ${EUID} == 0 ]] ; then
- mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
- mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
- chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
- fi
-
- einfo "Initializing the database ..."
-
- if [[ ${EUID} == 0 ]] ; then
- su - postgres -c "${EROOT}/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -D \"${DATA_DIR}\" ${PG_INITDB_OPTS}"
- else
- "${EROOT}"/usr/$(get_libdir)/postgresql-${SLOT}/bin/initdb -U postgres -D "${DATA_DIR}" ${PG_INITDB_OPTS}
- fi
-
- if [[ "${DATA_DIR%/}" != "${PGDATA%/}" ]] ; then
- mv "${DATA_DIR%/}"/{pg_{hba,ident},postgresql}.conf "${PGDATA}"
- ln -s "${PGDATA%/}"/{pg_{hba,ident},postgresql}.conf "${DATA_DIR%/}"
- fi
-
- # unix_socket_directory has no effect in postgresql.conf as it's
- # overridden in the initscript
- sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
-
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
- einfo "The autovacuum function, which was in contrib, has been moved to the main"
- einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
- einfo "by default. You can disable it in the cluster's:"
- einfo " ${PGDATA%/}/postgresql.conf"
- einfo
- if ! use systemd; then
- einfo "The PostgreSQL server, by default, will log events to:"
- einfo " ${DATA_DIR%/}/postmaster.log"
- einfo
- fi
- if use prefix ; then
- einfo "The location of the configuration files have moved to:"
- einfo " ${PGDATA}"
- einfo "To start the server:"
- einfo " pg_ctl start -D ${DATA_DIR} -o '-D ${PGDATA} --data-directory=${DATA_DIR}'"
- einfo "To stop:"
- einfo " pg_ctl stop -D ${DATA_DIR}"
- einfo
- einfo "Or move the configuration files back:"
- einfo "mv ${PGDATA}*.conf ${DATA_DIR}"
- elif use systemd; then
- einfo "You should use the 'postgresql-${SLOT}.service' unit to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- else
- einfo "You should use the '${EROOT}/etc/init.d/postgresql-${SLOT}' script to run PostgreSQL"
- einfo "instead of 'pg_ctl'."
- fi
-}
-
-src_test() {
- if use server && [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- emake check
- export LC_CTYPE=${old_ctype}
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- use server || \
- ewarn 'Tests cannot be run without the "server" use flag enabled.'
- [[ ${UID} -eq 0 ]] || \
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
-
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/postgresql/postgresql-15.6.ebuild b/dev-db/postgresql/postgresql-15.7-r2.ebuild
index aaea88b1abe6..740bb9acf2d0 100644
--- a/dev-db/postgresql/postgresql-15.6.ebuild
+++ b/dev-db/postgresql/postgresql-15.7-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -35,10 +36,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( virtual/krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
@@ -85,7 +86,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -408,13 +409,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-16.2.ebuild b/dev-db/postgresql/postgresql-16.3-r2.ebuild
index 520395881338..f0ca408471e6 100644
--- a/dev-db/postgresql/postgresql-16.2.ebuild
+++ b/dev-db/postgresql/postgresql-16.3-r2.ebuild
@@ -3,10 +3,11 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
@@ -36,10 +37,10 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( app-crypt/mit-krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
@@ -86,7 +87,7 @@ selinux? ( sec-policy/selinux-postgresql )
"
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -409,13 +410,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-16.1.ebuild b/dev-db/postgresql/postgresql-17_beta2.ebuild
index f86079824aee..0051e4905613 100644
--- a/dev-db/postgresql/postgresql-16.1.ebuild
+++ b/dev-db/postgresql/postgresql-17_beta2.ebuild
@@ -3,12 +3,13 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
-LLVM_MAX_SLOT=17
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic linux-info llvm pam python-single-r1 systemd tmpfiles
+inherit flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+KEYWORDS=""
SLOT=$(ver_cut 1)
@@ -21,9 +22,9 @@ LICENSE="POSTGRESQL GPL-2"
DESCRIPTION="PostgreSQL RDBMS"
HOMEPAGE="https://www.postgresql.org/"
-IUSE="debug doc +icu kerberos ldap llvm lz4 nls pam perl python
+IUSE="debug doc +icu kerberos ldap llvm +lz4 nls pam perl python
+readline selinux +server systemd ssl static-libs tcl uuid xml
- zlib zstd"
+ zlib +zstd"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@@ -36,18 +37,17 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( app-crypt/mit-krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- <sys-devel/llvm-18:=
- <sys-devel/clang-18:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
perl? ( >=dev-lang/perl-5.8:= )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:0= )
server? ( systemd? ( sys-apps/systemd ) )
-ssl? ( >=dev-libs/openssl-0.9.6-r1:0=
- <dev-libs/openssl-3.2 )
+ssl? ( >=dev-libs/openssl-0.9.6-r1:0= )
tcl? ( >=dev-lang/tcl-8:0= )
xml? ( dev-libs/libxml2 dev-libs/libxslt )
zlib? ( sys-libs/zlib )
@@ -86,8 +86,20 @@ RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
+# Openjade, docbook, XML, and XSLT are needed to generate manpages and
+# any documentation that may be elected.
+BDEPEND="
+app-text/openjade
+app-text/docbook-dsssl-stylesheets
+app-text/docbook-sgml-dtd:4.5
+app-text/docbook-xml-dtd:4.5
+app-text/docbook-xsl-stylesheets
+dev-libs/libxml2
+dev-libs/libxslt
+"
+
pkg_setup() {
- use llvm && llvm_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use server && CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
@@ -173,13 +185,14 @@ src_configure() {
src_compile() {
emake
emake -C contrib
+ emake -C doc
}
src_install() {
emake DESTDIR="${D}" install
emake DESTDIR="${D}" install -C contrib
- dodoc README HISTORY
+ dodoc HISTORY
# man pages are already built, but if we have the target make them,
# they'll be generated from source before being installed so we
@@ -410,13 +423,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
diff --git a/dev-db/postgresql/postgresql-9999.ebuild b/dev-db/postgresql/postgresql-9999.ebuild
index 1fa775af92f2..3f53c730579f 100644
--- a/dev-db/postgresql/postgresql-9999.ebuild
+++ b/dev-db/postgresql/postgresql-9999.ebuild
@@ -3,25 +3,38 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10,11,12} )
+PYTHON_COMPAT=( python3_{10,11,12,13} )
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
-inherit flag-o-matic git-r3 linux-info meson pam python-single-r1 \
+inherit flag-o-matic linux-info llvm-r1 meson pam python-single-r1 \
systemd tmpfiles
-KEYWORDS=""
+DESCRIPTION="PostgreSQL RDBMS"
+HOMEPAGE="https://www.postgresql.org/"
+LICENSE="POSTGRESQL GPL-2"
-SLOT="9999"
+SLOT=$(ver_cut 1)
-EGIT_REPO_URI="https://git.postgresql.org/git/postgresql.git"
+if [[ $PV = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.postgresql.org/git/postgresql.git"
+else
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
-LICENSE="POSTGRESQL GPL-2"
-DESCRIPTION="PostgreSQL RDBMS"
-HOMEPAGE="https://www.postgresql.org/"
+ MY_PV=${PV/_/}
+ SRC_URI="https://ftp.postgresql.org/pub/source/v${MY_PV}/postgresql-${MY_PV}.tar.bz2"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
-IUSE="debug +icu kerberos ldap llvm +lz4 nls pam perl python +readline
- selinux server systemd ssl static-libs tcl uuid xml zlib zstd"
+IUSE="debug doc +icu kerberos ldap llvm +lz4 nls pam perl python +readline
+ selinux systemd ssl static-libs tcl test uuid xml zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+REQUIRED_USE="
+llvm? ( ${LLVM_REQUIRED_USE} )
+python? ( ${PYTHON_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
CDEPEND="
>=app-eselect/eselect-postgresql-2.0
@@ -32,20 +45,22 @@ virtual/libintl
icu? ( dev-libs/icu:= )
kerberos? ( app-crypt/mit-krb5 )
ldap? ( net-nds/openldap:= )
-llvm? (
- sys-devel/llvm:=
- sys-devel/clang:=
-)
+llvm? ( $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ') )
lz4? ( app-arch/lz4 )
pam? ( sys-libs/pam )
-perl? ( >=dev-lang/perl-5.8:= )
+perl? ( >=dev-lang/perl-5.14:= )
python? ( ${PYTHON_DEPS} )
readline? ( sys-libs/readline:0= )
ssl? ( >=dev-libs/openssl-0.9.6-r1:0= )
systemd? ( sys-apps/systemd )
tcl? ( >=dev-lang/tcl-8:0= )
-uuid? ( dev-libs/ossp-uuid )
-xml? ( dev-libs/libxml2 dev-libs/libxslt )
+xml? (
+ dev-libs/libxml2
+ dev-libs/libxslt
+)
zlib? ( sys-libs/zlib )
zstd? ( app-arch/zstd )
"
@@ -73,37 +88,38 @@ uuid? (
DEPEND="${CDEPEND}
>=dev-lang/perl-5.8
-app-text/docbook-dsssl-stylesheets
-app-text/docbook-sgml-dtd:4.5
-app-text/docbook-xml-dtd:4.5
-app-text/docbook-xsl-stylesheets
-app-text/openjade
-dev-libs/libxml2
-dev-libs/libxslt
-sys-devel/bison
app-alternatives/lex
+sys-devel/bison
nls? ( sys-devel/gettext )
xml? ( virtual/pkgconfig )
"
+
RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
-pkg_pretend() {
- if ! use server; then
- elog "You are using a live ebuild that uses the current source code as it is"
- elog "available from PostgreSQL's Git repository at emerge time. Given such,"
- elog "the Meson build files may be altered by upstream without notice and the"
- elog "documentation for this live version is not readily available"
- elog "online. Ergo, the ebuild maintainers will not support building a"
- elog "client-only and/or document-free version."
- ewarn "Building server anyway."
- fi
-}
+# Openjade, docbook, XML, and XSLT are needed to generate manpages and
+# any documentation that may be elected.
+BDEPEND="
+app-text/openjade
+app-text/docbook-dsssl-stylesheets
+app-text/docbook-sgml-dtd:4.5
+app-text/docbook-xml-dtd:4.5
+app-text/docbook-xsl-stylesheets
+dev-libs/libxml2
+dev-libs/libxslt
+test? (
+ >=dev-lang/perl-5.14:=
+ dev-perl/IPC-Run
+ virtual/perl-Test-Simple
+ virtual/perl-ExtUtils-MakeMaker
+)
+"
pkg_setup() {
CONFIG_CHECK="~SYSVIPC" linux-info_pkg_setup
+ use llvm && llvm-r1_pkg_setup
use python && python-single-r1_pkg_setup
}
@@ -118,42 +134,30 @@ src_prepare() {
sed 's/@install_bin@/install -c/' -i src/Makefile.global.in || die
if use pam ; then
- sed -e "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
+ sed "s/\(#define PGSQL_PAM_SERVICE \"postgresql\)/\1-${SLOT}/" \
-i src/backend/libpq/auth.c || \
die 'PGSQL_PAM_SERVICE rename failed.'
fi
- eapply_user
+ default
}
src_configure() {
- local emesonargs=()
-
case ${CHOST} in
*-darwin*|*-solaris*)
use nls && append-libs intl
;;
esac
+ export LDFLAGS_SL="${LDFLAGS}"
+ export LDFLAGS_EX="${LDFLAGS}"
- local i uuid_config=""
- if use uuid; then
- for i in ${UTIL_LINUX_LIBC[@]}; do
- use ${i} && uuid_config="-Duuid=e2fs"
- done
-
- emesonargs+=( ${uuid_config:-"-Duuid=ossp"} )
- fi
-
- use debug && emesonargs+=( "--debug" )
-
- local PO="${EPREFIX}"
- emesonargs+=(
- --prefix="${PO}/usr/$(get_libdir)/postgresql-${SLOT}"
- --datadir="${PO}/usr/share/postgresql-${SLOT}"
- --includedir="${PO}/usr/include/postgresql-${SLOT}"
- --mandir="${PO}/usr/share/postgresql-${SLOT}/man"
- --sysconfdir="${PO}/etc/postgresql-${SLOT}"
- -Dsystem_tzdata="${PO}/usr/share/zoneinfo"
+ local emesonargs=(
+ --prefix="${EPREFIX}/usr/$(get_libdir)/postgresql-${SLOT}"
+ --datadir="${EPREFIX}/usr/share/postgresql-${SLOT}"
+ --includedir="${EPREFIX}/usr/include/postgresql-${SLOT}"
+ --mandir="${EPREFIX}/usr/share/postgresql-${SLOT}/man"
+ --sysconfdir="${EPREFIX}/etc/postgresql-${SLOT}"
+ -Dsystem_tzdata="${EPREFIX}/usr/share/zoneinfo"
$(meson_feature icu)
$(meson_feature kerberos gssapi)
$(meson_feature ldap)
@@ -170,60 +174,64 @@ src_configure() {
$(meson_feature xml libxslt)
$(meson_feature zlib)
$(meson_feature zstd)
+ $(meson_use !alpha spinlocks)
)
+ use debug && emesonargs+=( "--debug" )
use ssl && emesonargs+=( "-Dssl=openssl" )
- use alpha && emesonargs+=( "-Dspinlocks=false" )
- export LDFLAGS_SL="${LDFLAGS}"
- export LDFLAGS_EX="${LDFLAGS}"
+ local i uuid_config=""
+ if use uuid; then
+ for i in ${UTIL_LINUX_LIBC[@]}; do
+ use ${i} && uuid_config="-Duuid=e2fs"
+ done
+
+ emesonargs+=( ${uuid_config:-"-Duuid=ossp"} )
+ fi
meson_src_configure
}
src_compile() {
meson_src_compile
- meson_src_compile {docs,man}
+
+ if use doc ; then
+ # Generates both manpages and HTML documentation.
+ meson_src_compile docs
+ else
+ meson_src_compile man
+ fi
+}
+
+src_test() {
+ if [[ ${UID} -ne 0 ]] ; then
+ # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
+ # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
+ local old_ctype=${LC_CTYPE}
+ export LC_CTYPE=${LC_COLLATE}
+ meson_src_test
+ export LC_CTYPE=${old_ctype}
+ else
+ ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
+ ewarn 'Skipping.'
+ fi
}
src_install() {
meson_src_install
- dodoc README HISTORY doc/TODO
- dodoc -r "${BUILD_DIR}"/doc/src/sgml/html
-
- # postgresql.eselect places the man files of the selected slot, which may
- # not be this ${SLOT}, hence doins instead of doman
- insinto /usr/share/postgresql-${SLOT}/man/
- doins -r "${BUILD_DIR}"/doc/src/sgml/man{1,3,7}
- docompress /usr/share/postgresql-${SLOT}/man/man{1,3,7}
-
- insinto /etc/postgresql-${SLOT}
- newins src/bin/psql/psqlrc.sample psqlrc
-
- # Don't delete libpg{port,common}.a (Bug #571046). They're always
- # needed by extensions utilizing PGXS.
- use static-libs || \
- find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
- -delete
-
sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.confd-9.3" | newconfd - ${PN}-${SLOT}
+ "${FILESDIR}/${PN}.confd-9.3" | newconfd - "${PN}-${SLOT}"
sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - ${PN}-${SLOT}
-
- if use systemd; then
- sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
- "${FILESDIR}/${PN}.service-9.6-r1" | \
- systemd_newunit - ${PN}-${SLOT}.service
- newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}-${SLOT}.conf
- fi
-
- newbin "${FILESDIR}"/${PN}-check-db-dir ${PN}-${SLOT}-check-db-dir
+ "${FILESDIR}/${PN}.init-9.3-r1" | newinitd - "${PN}-${SLOT}"
- use pam && pamd_mimic system-auth ${PN}-${SLOT} auth account session
+ insinto "/etc/postgresql-${SLOT}"
+ newins src/bin/psql/psqlrc.sample psqlrc
+ # Create slot specific links to their related executables, so that they're
+ # always available. For example, pg_config9999 is always available whereas
+ # the pg_config is controlled by postgresql.eselect.
local f bn
for f in $(find "${ED}/usr/$(get_libdir)/postgresql-${SLOT}/bin" \
-mindepth 1 -maxdepth 1)
@@ -233,7 +241,15 @@ src_install() {
"/usr/bin/${bn}${SLOT/.}"
done
- # Create slot specific man pages
+ # Create slot specific man pages so that they're always available. As above
+ # for the executables, make `man pg_config9999` always refer to the same
+ # manpage, whereas postgresql.eselect controls which manpage `man pg_config`
+ # refers. And, since postgresql.eselect controls the manpages, doman would
+ # actually do the wrong thing for us, hence insinto and doins.
+ insinto "/usr/share/postgresql-${SLOT}/man/"
+ doins -r "${BUILD_DIR}"/doc/src/sgml/man{1,3,7}
+ docompress /usr/share/postgresql-"${SLOT}"/man/man{1,3,7}
+
local bn f mansec slotted_name
for mansec in 1 3 7 ; do
local rel_manpath="../../postgresql-${SLOT}/man/man${mansec}"
@@ -243,54 +259,90 @@ src_install() {
for f in "${ED}/usr/share/postgresql-${SLOT}/man/man${mansec}"/* ; do
bn=$(basename "${f}")
- slotted_name=${bn%.${mansec}}${SLOT}.${mansec}
+ slotted_name=${bn%."${mansec}"}${SLOT}.${mansec}
case ${bn} in
TABLE.7|WITH.7)
- echo ".so ${rel_manpath}/SELECT.7" > ${slotted_name}
+ echo ".so ${rel_manpath}/SELECT.7" > "${slotted_name}"
;;
*)
- echo ".so ${rel_manpath}/${bn}" > ${slotted_name}
+ echo ".so ${rel_manpath}/${bn}" > "${slotted_name}"
;;
esac
done
- popd > /dev/null
+ popd > /dev/null || die "popd failed"
done
+ # All of the use flag influenced installs/removals begin here.
+ use doc && dodoc -r "${BUILD_DIR}"/doc/src/sgml/html
+
+ use pam && pamd_mimic system-auth "${PN}-${SLOT}" auth account session
+
if use prefix ; then
keepdir /run/postgresql
fperms 1775 /run/postgresql
fi
+
+ # Don't delete libpg{port,common}.a (Bug #571046). They're always
+ # needed by extensions utilizing PGXS.
+ use static-libs || \
+ find "${ED}" -name '*.a' ! -name libpgport.a ! -name libpgcommon.a \
+ -delete
+
+ if use systemd; then
+ newbin "${FILESDIR}/${PN}-check-db-dir" "${PN}-${SLOT}-check-db-dir"
+
+ sed -e "s|@SLOT@|${SLOT}|g" -e "s|@LIBDIR@|$(get_libdir)|g" \
+ "${FILESDIR}/${PN}.service-9.6-r1" | \
+ systemd_newunit - "${PN}-${SLOT}.service"
+ newtmpfiles "${FILESDIR}/${PN}.tmpfiles" "${PN}-${SLOT}.conf"
+ fi
}
pkg_postinst() {
- use systemd && tmpfiles_process ${PN}-${SLOT}.conf
- postgresql-config update
+ use systemd && tmpfiles_process "${PN}-${SLOT}.conf"
- elog "If you need a global psqlrc-file, you can place it in:"
- elog " ${EROOT}/etc/postgresql-${SLOT}/"
+ # See comment in pkg_postrm().
+ [[ ${SLOT} = $(postgresql-config show) ]] && postgresql-config update
- elog
elog "Gentoo specific documentation:"
elog "https://wiki.gentoo.org/wiki/PostgreSQL"
elog
elog "Official documentation:"
- elog "${EROOT}/usr/share/doc/${PF}/html"
+ if use doc ; then
+ elog "${EROOT}/usr/share/doc/${PF}/html"
+ else
+ elog "https://www.postgresql.org/docs/${SLOT/9999*/devel}/index.html"
+ fi
+ elog
+
+ elog "You can find release notes at:"
+ if use doc ; then
+ elog "${EROOT}/usr/share/doc/${PF}/html/release.html"
+ else
+ elog "https://www.postgresql.org/docs/${SLOT/9999*/devel}/release.html"
+ fi
elog
- elog "The default location of the Unix-domain socket is:"
- elog " ${EROOT}/run/postgresql/"
+
+ elog "If you need a global psqlrc-file, you can place it in:"
+ elog " ${EROOT}/etc/postgresql-${SLOT}/"
elog
- elog "Before initializing the database, you may want to edit PG_INITDB_OPTS"
- elog "so that it contains your preferred locale, and other options, in:"
+ elog "The next two items only apply when running a server on this machine."
+ elog "------------------------------------------------------------------------"
+ elog "1. You may want to edit PG_INITDB_OPTS in the following file so that it"
+ elog " contains your preferred locale, and other options, before"
+ elog " initializing the cluster:"
elog " ${EROOT}/etc/conf.d/postgresql-${SLOT}"
elog
- elog "Then, execute the following command to setup the initial database"
- elog "environment:"
- elog " emerge --config =${CATEGORY}/${PF}"
+ elog "2. Then, run the following command to initialize database cluster:"
+ elog " emerge --config =${CATEGORY}/${PN}:${SLOT}"
}
pkg_prerm() {
if [[ -z ${REPLACED_BY_VERSION} ]] ; then
+ ewarn "Were you running PostgreSQL ${SLOT} as a server? If no, ignore the rest"
+ ewarn "of this warning."
+ ewarn
ewarn "Have you dumped and/or migrated the ${SLOT} database cluster?"
ewarn "\thttps://wiki.gentoo.org/wiki/PostgreSQL/QuickStart#Migrating_PostgreSQL"
@@ -301,7 +353,11 @@ pkg_prerm() {
}
pkg_postrm() {
- postgresql-config update
+ # The links managed by eselect are unversioned only, and would only be
+ # impacted if the selected slot and ebuild slot are the same. For example,
+ # if the selected slot is SLOT+1, then nothing that happened with this
+ # ebuild will impact the unversioned links.
+ [[ ${SLOT} = $(postgresql-config show) ]] && postgresql-config update
}
pkg_config() {
@@ -358,7 +414,7 @@ pkg_config() {
sleep 5
eend 0
- if [ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ] ; then
+ if [[ -n "$(ls -A ${DATA_DIR} 2> /dev/null)" ]] ; then
eerror "The given directory, '${DATA_DIR}', is not empty."
eerror "Modify DATA_DIR to point to an empty directory."
die "${DATA_DIR} is not empty."
@@ -366,9 +422,9 @@ pkg_config() {
einfo "Creating the data directory ..."
if [[ ${EUID} == 0 ]] ; then
- mkdir -p "${DATA_DIR}"
- chown -Rf postgres:postgres "${DATA_DIR}"
- chmod 0700 "${DATA_DIR}"
+ mkdir -p "$(dirname ${DATA_DIR%/})" || die "Couldn't parent dirs"
+ mkdir -m 0700 "${DATA_DIR%/}" || die "Couldn't make DATA_DIR"
+ chown -h postgres:postgres "${DATA_DIR%/}" || die "Couldn't chown"
fi
einfo "Initializing the database ..."
@@ -388,13 +444,6 @@ pkg_config() {
# overridden in the initscript
sed '/^#unix_socket_directories/,+1d' -i "${PGDATA%/}"/postgresql.conf
- cat <<- EOF >> "${PGDATA%/}"/postgresql.conf
- # This is here because of https://bugs.gentoo.org/show_bug.cgi?id=518522
- # On the off-chance that you might need to work with UTF-8 encoded
- # characters in PL/Perl
- plperl.on_init = 'use utf8; use re; package utf8; require "utf8_heavy.pl";'
- EOF
-
einfo "The autovacuum function, which was in contrib, has been moved to the main"
einfo "PostgreSQL functions starting with 8.1, and starting with 8.4 is now enabled"
einfo "by default. You can disable it in the cluster's:"
@@ -423,20 +472,3 @@ pkg_config() {
einfo "instead of 'pg_ctl'."
fi
}
-
-src_test() {
- if [[ ${UID} -ne 0 ]] ; then
- # Some ICU tests fail if LC_CTYPE and LC_COLLATE aren't the same. We set
- # LC_CTYPE to be equal to LC_COLLATE since LC_COLLATE is set by Portage.
- local old_ctype=${LC_CTYPE}
- export LC_CTYPE=${LC_COLLATE}
- meson_src_test
- export LC_CTYPE=${old_ctype}
-
- einfo "If you think other tests besides the regression tests are necessary, please"
- einfo "submit a bug including a patch for this ebuild to enable them."
- else
- ewarn 'Tests cannot be run as root. Enable "userpriv" in FEATURES.'
- ewarn 'Skipping.'
- fi
-}
diff --git a/dev-db/pspg/Manifest b/dev-db/pspg/Manifest
index 896cb738a04b..2d37fc3e2f6e 100644
--- a/dev-db/pspg/Manifest
+++ b/dev-db/pspg/Manifest
@@ -1,3 +1,4 @@
DIST pspg-5.5.4.tar.gz 2415002 BLAKE2B 1b7712318069c5fe69afe5e7477aa2a415d007a1f41af866726b11e65073c507ed12a51de14fc39ee06df9ccbe2763472332f55dda49167547e6ba590850bb5b SHA512 f13f4d7424d7b172a1fc5f963e7390a53f73f5c53ea4af7a9bed32dabc99f657e46cae550e8d5c7dd756b3496dd2ad665f3fd6551e54f9add1b3aef491709572
DIST pspg-5.5.8.tar.gz 2428371 BLAKE2B 09021f61c51698fd85ccf61c559014b6ffecad72079abf10c7dc50249bffbe34b86afa124a30a8d4f5c360af069ec623a4815288267a2ee225f7030de14b76d4 SHA512 f3fa9bc097ac43ab0113586b3474e9137c84b2ca844c45397a7ec185a01c66daa204f7bf739f7b65f1d741de02be8f7c1ba7df5abaa962008f33f6082c576b9f
DIST pspg-5.8.1.tar.gz 2442046 BLAKE2B 173b7250299927f140597d510e41aacad8be10b58e14094cbca2c2c3648925f71267a44728084ebf10cb832669c601ba121e529d7130b15cb2ab6accb3a9f77e SHA512 1ffcae86559f17e2cafba31a7bf9ba0170f4cdf8f2f5885a3650fea30463327e6a040e7746a8a074302fbb5080ce032a10775da503a5788a622203669609706f
+DIST pspg-5.8.5.tar.gz 2445232 BLAKE2B 90d6ca969bd365fea1801fb9125e4d3c5e92b916c7a13ae949a8170a7566d862d436c5d23358a6433ffa90bbf2551013b2f12a6c204614e0974c1fe6698c580e SHA512 f33be2e0ddd8f56054c82f4f3a8ea531faef2f9ca21a706f894f5419e8122d291a9174495d68dc8637728cc57fe764e63c34b843e8ed8a3b3ff7546a6c904e7e
diff --git a/dev-db/pspg/metadata.xml b/dev-db/pspg/metadata.xml
index 334189f9edab..b852c5503b93 100644
--- a/dev-db/pspg/metadata.xml
+++ b/dev-db/pspg/metadata.xml
@@ -12,4 +12,7 @@
supports searching, selecting rows, columns, or block and export
selected area to clipboard.
</longdescription>
+ <upstream>
+ <remote-id type="github">okbob/pspg</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/dev-db/pspg/pspg-5.8.5.ebuild b/dev-db/pspg/pspg-5.8.5.ebuild
new file mode 100644
index 000000000000..30c83cc68ff9
--- /dev/null
+++ b/dev-db/pspg/pspg-5.8.5.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1
+
+DESCRIPTION="A better pager for CLI database clients and can be used in place of psql"
+HOMEPAGE="https://github.com/okbob/pspg"
+SRC_URI="https://github.com/okbob/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="postgres"
+RESTRICT="test"
+
+RDEPEND="
+sys-libs/ncurses:=
+sys-libs/readline:=
+postgres? ( dev-db/postgresql:= )
+"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ econf $(use_with postgres postgresql)
+}
+
+src_install() {
+ default
+
+ newbashcomp bash-completion.sh ${PN}
+}
diff --git a/dev-db/psqlodbc/Manifest b/dev-db/psqlodbc/Manifest
index d7789a3cd0b5..2933a8c1866b 100644
--- a/dev-db/psqlodbc/Manifest
+++ b/dev-db/psqlodbc/Manifest
@@ -1,3 +1,4 @@
DIST psqlodbc-11.01.0000.tar.gz 919372 BLAKE2B ce84b4bb210c4c3c3f2a3e9eae713c875e4bae491e20f207f740a02af69cb771f504de6b1da06fcd12306d986299e1537184a6787eac80e320eea6d8c13dc142 SHA512 57762bfa9925012946e56a3d5b815af00078299c121ba0142865c06f877cabf314512e4e6efc654589fb409c4dd2cbb9a3b7fd7aa1a6ace361879552774b11d7
DIST psqlodbc-13.00.0000.tar.gz 940031 BLAKE2B 346a06b5b7b16ead1d87b7bdadcd050102b1b30e19d7bf236e134439711e4832b193241d6ea02b5628a64afbfad77b0c6d3bdf921fd3ae3a5cf696a58100e53c SHA512 c8d5cb0ce304e702f3c6f0b2e1c681df283973a8459a820f92df806814659eb15668c38a855a69b44cf5ebe459283bef1ca1cba44df0fe16a361e614f5481bc7
DIST psqlodbc-15.00.0000.tar.gz 945814 BLAKE2B 0170ae9bcd1a77b0655b4d33543a7cca3551d845d8a36dd5d809567e7d7669defb278790f169a80757d41ffb5cbbfda68f0536f4fe25698e85a1fe570736409c SHA512 ae511edb9889e6cc7d05d11ee384db1aa1a52b9cac035b3449b03ab91ada5cc0d737fef34addd4be6a3ef839b68735874ee7125be9ae272328c44631fd2269e2
+DIST psqlodbc-16.00.0000.tar.gz 946997 BLAKE2B 9a4d787b1a29bb8ce874473fb126db7677ebc5e37f502b34c877341aa04c77c8acbb4d2353929631c7949ef9b482091b2dfbddf6934005d66446797bf8abcc22 SHA512 ad971cd29e431225d03faf5ebc0ba7a9f17d20dd70106867f05df8dc1e509413d4db533101a1b3418480ad758b7626c178ec345c5ff7e9409f7fcfbea9427166
diff --git a/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild b/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild
new file mode 100644
index 000000000000..eb924528a69d
--- /dev/null
+++ b/dev-db/psqlodbc/psqlodbc-16.00.0000.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Official ODBC driver for PostgreSQL"
+HOMEPAGE="https://odbc.postgresql.org/"
+SRC_URI="https://ftp.postgresql.org/pub/odbc/versions/src/${P}.tar.gz"
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="iodbc ssl threads"
+
+DEPEND="dev-db/postgresql:*[ssl?]
+ !iodbc? ( dev-db/unixODBC )
+ iodbc? ( dev-db/libiodbc )
+"
+RDEPEND="${DEPEND}"
+
+# Tests require installation and a server setup for the purpose.
+RESTRICT="test"
+
+DOCS=( readme.txt )
+HTML_DOCS=(
+ docs/config.html
+ docs/config-opt.html
+ docs/editConfiguration.jpg
+ docs/release-7.3.html
+ docs/release.html
+)
+
+src_configure() {
+ econf \
+ $(use_with iodbc) \
+ $(use_with !iodbc unixodbc) \
+ $(use_enable threads pthreads)
+}
diff --git a/dev-db/qdbm/files/qdbm-ruby.patch b/dev-db/qdbm/files/qdbm-ruby.patch
new file mode 100644
index 000000000000..8b1a946d8d8c
--- /dev/null
+++ b/dev-db/qdbm/files/qdbm-ruby.patch
@@ -0,0 +1,81 @@
+--- a/ruby/curia/extconf.rb
++++ b/ruby/curia/extconf.rb
+@@ -2,10 +2,9 @@
+
+ dir_config("curia")
+
+-home = ENV['HOME']
+-$CFLAGS = "-I. -I../.. -I#{home}/include -I/usr/local/include"
+-$LDFLAGS = "-L../.. -L#{home}/lib -L/usr/local/lib"
+-$LIBS = "-L../.. -L#{home}/lib -L/usr/local/lib"
++$CFLAGS << " -I../.. " << ENV["CFLAGS"]
++$LDFLAGS << " -L../.. " << ENV["LDFLAGS"]
++$LIBS << " -L../.."
+
+ have_library("c", "main")
+ have_library("pthread", "main")
+--- a/ruby/curia/mod_curia.c
++++ b/ruby/curia/mod_curia.c
+@@ -84,7 +84,7 @@
+ *************************************************************************************************/
+
+
+-Init_mod_curia(){
++void Init_mod_curia(void){
+ crinit();
+ ccuriaerror = rb_define_class("CuriaError", rb_eStandardError);
+ ccuriaerror_ENOERR = rb_define_class("CuriaError_ENOERR", ccuriaerror);
+--- a/ruby/depot/extconf.rb
++++ b/ruby/depot/extconf.rb
+@@ -2,10 +2,9 @@
+
+ dir_config("depot")
+
+-home = ENV['HOME']
+-$CFLAGS = "-I. -I../.. -I#{home}/include -I/usr/local/include"
+-$LDFLAGS = "-L../.. -L#{home}/lib -L/usr/local/lib"
+-$LIBS = "-L../.. -L#{home}/lib -L/usr/local/lib"
++$CFLAGS << " -I../.. " << ENV["CFLAGS"]
++$LDFLAGS << " -L../.. " << ENV["LDFLAGS"]
++$LIBS << " -L../.."
+
+ have_library("c", "main")
+ have_library("pthread", "main")
+--- a/ruby/depot/mod_depot.c
++++ b/ruby/depot/mod_depot.c
+@@ -83,7 +83,7 @@
+ *************************************************************************************************/
+
+
+-Init_mod_depot(){
++void Init_mod_depot(void){
+ dpinit();
+ cdepoterror = rb_define_class("DepotError", rb_eStandardError);
+ cdepoterror_ENOERR = rb_define_class("DepotError_ENOERR", cdepoterror);
+--- a/ruby/villa/extconf.rb
++++ b/ruby/villa/extconf.rb
+@@ -2,10 +2,9 @@
+
+ dir_config("villa")
+
+-home = ENV['HOME']
+-$CFLAGS = "-I. -I../.. -I#{home}/include -I/usr/local/include"
+-$LDFLAGS = "-L../.. -L#{home}/lib -L/usr/local/lib"
+-$LIBS = "-L../.. -L#{home}/lib -L/usr/local/lib"
++$CFLAGS << " -I../.. " << ENV["CFLAGS"]
++$LDFLAGS << " -L../.. " << ENV["LDFLAGS"]
++$LIBS << " -L../.."
+
+ have_library("c", "main")
+ have_library("pthread", "main")
+--- a/ruby/villa/mod_villa.c
++++ b/ruby/villa/mod_villa.c
+@@ -97,7 +97,7 @@
+ *************************************************************************************************/
+
+
+-Init_mod_villa(){
++void Init_mod_villa(void){
+ vlinit();
+ cvillaerror = rb_define_class("VillaError", rb_eStandardError);
+ cvillaerror_ENOERR = rb_define_class("VillaError_ENOERR", cvillaerror);
diff --git a/dev-db/qdbm/metadata.xml b/dev-db/qdbm/metadata.xml
index 9a97f3478d31..987ce1bc2ed6 100644
--- a/dev-db/qdbm/metadata.xml
+++ b/dev-db/qdbm/metadata.xml
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>hattya@gentoo.org</email>
- </maintainer>
+ <maintainer type="person">
+ <email>hattya@gentoo.org</email>
+ <name>Akinori Hattori</name>
+ </maintainer>
</pkgmetadata>
diff --git a/dev-db/qdbm/qdbm-1.8.78-r4.ebuild b/dev-db/qdbm/qdbm-1.8.78-r5.ebuild
index f1ea111f2075..c4022db45e1f 100644
--- a/dev-db/qdbm/qdbm-1.8.78-r4.ebuild
+++ b/dev-db/qdbm/qdbm-1.8.78-r5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
@@ -14,7 +14,7 @@ SRC_URI="https://fallabs.com/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="bzip2 cxx debug java lzo perl ruby static-libs zlib"
+IUSE="bzip2 cxx java lzo perl ruby static-libs zlib"
RDEPEND="bzip2? ( app-arch/bzip2 )
java? ( >=virtual/jre-1.8:* )
@@ -30,6 +30,7 @@ RUBY_S="${P}/ruby"
PATCHES=(
"${FILESDIR}"/${PN}-configure.patch
"${FILESDIR}"/${PN}-perl.patch
+ "${FILESDIR}"/${PN}-ruby.patch
"${FILESDIR}"/${PN}-ruby19.patch
"${FILESDIR}"/${PN}-runpath.patch
"${FILESDIR}"/${PN}-darwin.patch
@@ -61,14 +62,7 @@ qdbm_foreach_api() {
eautoreconf
;;
configure)
- case "${u}" in
- cgi|java|plus)
- econf $(use_enable debug)
- ;;
- *)
- econf
- ;;
- esac
+ econf
;;
compile)
emake
@@ -99,7 +93,6 @@ src_prepare() {
-e "/^CXXFLAGS/s|$| ${CXXFLAGS}|" \
-e "/^JAVACFLAGS/s|$| ${JAVACFLAGS}|" \
-e 's/make\( \|$\)/$(MAKE)\1/g' \
- -e '/^debug/,/^$/s/LDFLAGS="[^"]*" //' \
Makefile.in {cgi,java,perl,plus,ruby}/Makefile.in || die
find -name "*~" -delete || die
@@ -121,7 +114,6 @@ each_ruby_prepare() {
src_configure() {
econf \
$(use_enable bzip2 bzip) \
- $(use_enable debug) \
$(use_enable lzo) \
$(use_enable zlib) \
--enable-iconv \
diff --git a/dev-db/redict/Manifest b/dev-db/redict/Manifest
new file mode 100644
index 000000000000..a15faf344ca6
--- /dev/null
+++ b/dev-db/redict/Manifest
@@ -0,0 +1 @@
+DIST redict-7.3.0.tar.gz 3414514 BLAKE2B dd2ce2fdd8fbede33ddea9fee34e81535b0948a8963fb0d3391aac32ddf786e5cce996d1d405d81182ef6098ab8389b3c71b95ff9d8cbc68637746538e36999d SHA512 d33f4dfaf728f5a22abe7a6223f3192c39dc41a32e7bcb0f453caaa859f35b512534979c26ced9f4458c19611debd282f37955e930151c0f827035f349647226
diff --git a/dev-db/redict/files/redict-7.3.0-config.patch b/dev-db/redict/files/redict-7.3.0-config.patch
new file mode 100644
index 000000000000..aab0df2e1a45
--- /dev/null
+++ b/dev-db/redict/files/redict-7.3.0-config.patch
@@ -0,0 +1,40 @@
+diff --git a/redict.conf b/redict.conf
+index 465d56f..ef56037 100644
+--- a/redict.conf
++++ b/redict.conf
+@@ -276,7 +276,7 @@ daemonize no
+ #
+ # Note that on modern Linux systems "/run/redict.pid" is more conforming
+ # and should be used instead.
+-pidfile /var/run/redict_6379.pid
++pidfile /run/redict/redict.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -289,7 +289,7 @@ loglevel notice
+ # Specify the log file name. Also the empty string can be used to force
+ # redict to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/redict/redict.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+@@ -441,7 +441,7 @@ rdb-del-sync-files no
+ # The Append Only File will also be created inside this directory.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir /var/lib/redict/
+
+ ################################# REPLICATION #################################
+
+@@ -967,7 +967,7 @@ acllog-max-len 128
+ # limit for maxmemory so that there is some free RAM on the system for replica
+ # output buffers (but this is not needed if the policy is 'noeviction').
+ #
+-# maxmemory <bytes>
++maxmemory 64MB
+
+ # MAXMEMORY POLICY: how redict will select what to remove when maxmemory
+ # is reached. You can select one from the following behaviors:
diff --git a/dev-db/redict/files/redict-7.3.0-system-hiredict.patch b/dev-db/redict/files/redict-7.3.0-system-hiredict.patch
new file mode 100644
index 000000000000..53b9d93087d4
--- /dev/null
+++ b/dev-db/redict/files/redict-7.3.0-system-hiredict.patch
@@ -0,0 +1,240 @@
+# Patch from https://codeberg.org/redict/redict/pulls/44
+# and https://salsa.debian.org/redict-team/redict/-/blob/1d2b9f08f3dcc7ba4f03ddd9066545d0fd6b716e/debian/patches/0005-Fix-hiredict-imports.patch
+# The first patch got upstreamed, the second will be soon
+
+From ffb9f03106de48a2a09d60f691a8852a0cf917ad Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Sun, 14 Apr 2024 11:52:21 +0300
+Subject: [PATCH 1/2] Add ability to use system hiredict
+
+Co-authored-by: Chris Lamb <lamby@debian.org>
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ deps/Makefile | 2 ++
+ src/Makefile | 27 ++++++++++++++++++++++-----
+ 2 files changed, 24 insertions(+), 5 deletions(-)
+
+diff --git a/deps/Makefile b/deps/Makefile
+index 345e1f703..e071cfa03 100644
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -36,7 +36,9 @@ ifneq ($(shell sh -c '[ -f .make-ldflags ] && cat .make-ldflags || echo none'),
+ endif
+
+ distclean:
++ifneq ($(USE_SYSTEM_HIREDICT),yes)
+ -(cd hiredict && $(MAKE) clean) > /dev/null || true
++endif
+ -(cd linenoise && $(MAKE) clean) > /dev/null || true
+ -(cd lua && $(MAKE) clean) > /dev/null || true
+ ifneq ($(USE_SYSTEM_JEMALLOC),yes)
+diff --git a/src/Makefile b/src/Makefile
+index fbcc20f02..8ca30a6df 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -24,7 +24,7 @@ endif
+ ifneq ($(OPTIMIZATION),-O0)
+ OPTIMIZATION+=-fno-omit-frame-pointer
+ endif
+-DEPENDENCY_TARGETS=hiredict linenoise lua hdr_histogram fpconv
++DEPENDENCY_TARGETS=linenoise lua hdr_histogram fpconv
+ NODEPS:=clean distclean
+
+ # Default settings
+@@ -226,7 +226,7 @@ ifdef OPENSSL_PREFIX
+ endif
+
+ # Include paths to dependencies
+-FINAL_CFLAGS+= -I../deps/hiredict -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv
++FINAL_CFLAGS+= -I../deps/linenoise -I../deps/lua/src -I../deps/hdr_histogram -I../deps/fpconv
+
+ # Determine systemd support and/or build preference (defaulting to auto-detection)
+ BUILD_WITH_SYSTEMD=no
+@@ -277,6 +277,15 @@ else
+ endif
+ endif
+
++ifeq ($(USE_SYSTEM_HIREDICT),yes)
++ FINAL_LIBS+= $(shell $(PKG_CONFIG) --libs hiredict)
++ FINAL_CFLAGS+= $(shell $(PKG_CONFIG) --cflags hiredict)
++else
++ DEPENDENCY_TARGETS += hiredict
++ FINAL_LIBS+= ../deps/hiredict/libhiredict.a
++ FINAL_CFLAGS+= -I../deps/hiredict
++endif
++
+ # LIBSSL & LIBCRYPTO
+ LIBSSL_LIBS=
+ LIBSSL_PKGCONFIG := $(shell $(PKG_CONFIG) --exists libssl && echo $$?)
+@@ -299,15 +308,23 @@ BUILD_MODULE:=2
+ ifeq ($(BUILD_TLS),yes)
+ FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_YES) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_NO)
+ FINAL_LDFLAGS+=$(OPENSSL_LDFLAGS)
++ifeq ($(USE_SYSTEM_HIREDICT),yes)
++ FINAL_LIBS += $(shell $(PKG_CONFIG) --libs hiredict_ssl) $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
++else
+ FINAL_LIBS += ../deps/hiredict/libhiredict_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
+ endif
++endif
+
+ TLS_MODULE=
+ TLS_MODULE_NAME:=redict-tls$(PROG_SUFFIX).so
+ TLS_MODULE_CFLAGS:=$(FINAL_CFLAGS)
+ ifeq ($(BUILD_TLS),module)
+ FINAL_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS)
++ifeq ($(USE_SYSTEM_HIREDICT),yes)
++ TLS_CLIENT_LIBS = $(shell $(PKG_CONFIG) --libs hiredict_ssl) $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
++else
+ TLS_CLIENT_LIBS = ../deps/hiredict/libhiredict_ssl.a $(LIBSSL_LIBS) $(LIBCRYPTO_LIBS)
++endif
+ TLS_MODULE=$(TLS_MODULE_NAME)
+ TLS_MODULE_CFLAGS+=-DUSE_OPENSSL=$(BUILD_MODULE) $(OPENSSL_CFLAGS) -DBUILD_TLS_MODULE=$(BUILD_MODULE)
+ endif
+@@ -406,7 +423,7 @@ endif
+
+ # redict-server
+ $(REDICT_SERVER_NAME): $(REDICT_SERVER_OBJ)
+- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/lua/src/liblua.a ../deps/hdr_histogram/libhdrhistogram.a ../deps/fpconv/libfpconv.a $(FINAL_LIBS)
++ $(REDICT_LD) -o $@ $^ ../deps/lua/src/liblua.a ../deps/hdr_histogram/libhdrhistogram.a ../deps/fpconv/libfpconv.a $(FINAL_LIBS)
+
+ # redict-sentinel
+ $(REDICT_SENTINEL_NAME): $(REDICT_SERVER_NAME)
+@@ -426,11 +443,11 @@ $(TLS_MODULE_NAME): $(REDICT_SERVER_NAME)
+
+ # redict-cli
+ $(REDICT_CLI_NAME): $(REDICT_CLI_OBJ)
+- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/linenoise/linenoise.o $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
++ $(REDICT_LD) -o $@ $^ ../deps/linenoise/linenoise.o $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
+
+ # redict-benchmark
+ $(REDICT_BENCHMARK_NAME): $(REDICT_BENCHMARK_OBJ)
+- $(REDICT_LD) -o $@ $^ ../deps/hiredict/libhiredict.a ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
++ $(REDICT_LD) -o $@ $^ ../deps/hdr_histogram/libhdrhistogram.a $(FINAL_LIBS) $(TLS_CLIENT_LIBS)
+
+ DEP = $(REDICT_SERVER_OBJ:%.o=%.d) $(REDICT_CLI_OBJ:%.o=%.d) $(REDICT_BENCHMARK_OBJ:%.o=%.d)
+ -include $(DEP)
+--
+2.39.2
+
+
+From bd55c900ac123db05b7243f6e958e311a622fb7d Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Sun, 14 Apr 2024 11:53:13 +0300
+Subject: [PATCH 2/2] Mention USE_SYSTEM_HIREDICT setting in README
+
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ README.md | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/README.md b/README.md
+index ae77a235a..cf4944e6f 100644
+--- a/README.md
++++ b/README.md
+@@ -25,6 +25,8 @@ You can pass the following variables to Redict to customize the build:
+ * `USE_JEMALLOC=no MALLOC=libc`: use the libc allocator rather than jemalloc
+ * `USE_SYSTEM_JEMALLOC=yes`: use the system's installed jemalloc libraries
+ rather than the vendored copy.
++* `USE_SYSTEM_HIREDICT=yes`: use the system's installed hiredict libraries
++ rather than the vendored copy.
+ * `BUILD_TLS=yes`: build with TLS support. Requires OpenSSL.
+ * `USE_SYSTEMD=yes`: build with systemd support. Requires libsystemd.
+ * `PROG_SUFFIX="-suffix"`: Append "-suffix" to executable names
+--
+2.39.2
+
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Subject: Fix hiredict imports
+Forwarded: no
+
+--- a/src/cli_common.c
++++ b/src/cli_common.c
+@@ -13,15 +13,15 @@
+ #include <stdlib.h>
+ #include <fcntl.h>
+ #include <errno.h>
+-#include <hiredict.h>
+-#include <sds.h>
++#include <hiredict/hiredict.h>
++#include <hiredict/sds.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <ctype.h>
+ #ifdef USE_OPENSSL
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
+-#include <hiredict_ssl.h>
++#include <hiredict/hiredict_ssl.h>
+ #endif
+
+ #define UNUSED(V) ((void) V)
+--- a/src/cli_common.h
++++ b/src/cli_common.h
+@@ -7,8 +7,8 @@
+ #ifndef __CLICOMMON_H
+ #define __CLICOMMON_H
+
+-#include <hiredict.h>
+-#include <sds.h>
++#include <hiredict/hiredict.h>
++#include <hiredict/sds.h>
+
+ typedef struct cliSSLconfig {
+ /* Requested SNI, or NULL */
+--- a/src/redict-benchmark.c
++++ b/src/redict-benchmark.c
+@@ -19,13 +19,13 @@
+ #include <math.h>
+ #include <pthread.h>
+
+-#include <sds.h>
++#include <hiredict/sds.h>
+ #include "ae.h"
+-#include <hiredict.h>
++#include <hiredict/hiredict.h>
+ #ifdef USE_OPENSSL
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
+-#include <hiredict_ssl.h>
++#include <hiredict/hiredict_ssl.h>
+ #endif
+ #include "adlist.h"
+ #include "dict.h"
+--- a/src/redict-cli.c
++++ b/src/redict-cli.c
+@@ -23,13 +23,13 @@
+ #include <math.h>
+ #include <termios.h>
+
+-#include <hiredict.h>
++#include <hiredict/hiredict.h>
+ #ifdef USE_OPENSSL
+ #include <openssl/ssl.h>
+ #include <openssl/err.h>
+-#include <hiredict_ssl.h>
++#include <hiredict/hiredict_ssl.h>
+ #endif
+-#include <sds.h>
++#include <hiredict/sds.h>
+ #include "dict.h"
+ #include "adlist.h"
+ #include "zmalloc.h"
+--- a/src/sentinel.c
++++ b/src/sentinel.c
+@@ -6,12 +6,12 @@
+ // SPDX-License-Identifier: LGPL-3.0-only
+
+ #include "server.h"
+-#include "hiredict.h"
++#include "hiredict/hiredict.h"
+ #if USE_OPENSSL == 1 /* BUILD_YES */
+ #include "openssl/ssl.h"
+-#include "hiredict_ssl.h"
++#include "hiredict/hiredict_ssl.h"
+ #endif
+-#include "async.h"
++#include "hiredict/async.h"
+
+ #include <ctype.h>
+ #include <arpa/inet.h>
+
diff --git a/dev-db/redict/files/redict-7.3.0-system-jemalloc.patch b/dev-db/redict/files/redict-7.3.0-system-jemalloc.patch
new file mode 100644
index 000000000000..802b573dee83
--- /dev/null
+++ b/dev-db/redict/files/redict-7.3.0-system-jemalloc.patch
@@ -0,0 +1,173 @@
+# Patch comes from https://codeberg.org/redict/redict/pulls/40
+# https://codeberg.org/redict/redict/pulls/42
+# and https://codeberg.org/redict/redict/pulls/43
+# All got merged upstream and should be removed next release.
+
+From 5defea5b98859f4e1162b82120114e222b2a7465 Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Wed, 10 Apr 2024 01:10:49 +0300
+Subject: [PATCH 1/2] Add ability to use system jemalloc
+
+This time, this shouldn't cause CI tests to fail.
+
+Co-authored-by: Chris Lamb <lamby@debian.org>
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ deps/Makefile | 2 ++
+ src/Makefile | 8 +++++++-
+ src/debug.c | 3 +++
+ src/object.c | 5 +++++
+ src/sds.c | 4 ++++
+ src/zmalloc.c | 4 ++++
+ src/zmalloc.h | 4 ++++
+ 7 files changed, 29 insertions(+), 1 deletion(-)
+
+diff --git a/deps/Makefile b/deps/Makefile
+index 9a273aefc..345e1f703 100644
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -39,7 +39,9 @@ distclean:
+ -(cd hiredict && $(MAKE) clean) > /dev/null || true
+ -(cd linenoise && $(MAKE) clean) > /dev/null || true
+ -(cd lua && $(MAKE) clean) > /dev/null || true
++ifneq ($(USE_SYSTEM_JEMALLOC),yes)
+ -(cd jemalloc && [ -f Makefile ] && $(MAKE) distclean) > /dev/null || true
++endif
+ -(cd hdr_histogram && $(MAKE) clean) > /dev/null || true
+ -(cd fpconv && $(MAKE) clean) > /dev/null || true
+ -(rm -f .make-*)
+diff --git a/src/Makefile b/src/Makefile
+index 0739466b6..d399c6eb2 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -266,10 +266,16 @@ ifeq ($(MALLOC),tcmalloc_minimal)
+ endif
+
+ ifeq ($(MALLOC),jemalloc)
++ FINAL_CFLAGS+= -DUSE_JEMALLOC
++ifeq ($(USE_SYSTEM_JEMALLOC),yes)
++ FINAL_CFLAGS+= -DUSE_SYSTEM_JEMALLOC $(shell $(PKG_CONFIG) --cflags jemalloc)
++ FINAL_LIBS := $(shell $(PKG_CONFIG) --libs jemalloc) $(FINAL_LIBS)
++else
+ DEPENDENCY_TARGETS+= jemalloc
+- FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include
++ FINAL_CFLAGS+= -I../deps/jemalloc/include
+ FINAL_LIBS := ../deps/jemalloc/lib/libjemalloc.a $(FINAL_LIBS)
+ endif
++endif
+
+ # LIBSSL & LIBCRYPTO
+ LIBSSL_LIBS=
+diff --git a/src/debug.c b/src/debug.c
+index 89d33bfd7..2257d655e 100644
+--- a/src/debug.c
++++ b/src/debug.c
+@@ -56,6 +56,9 @@ void bugReportEnd(int killViaSignal, int sig);
+ void logStackTrace(void *eip, int uplevel, int current_thread);
+ void sigalrmSignalHandler(int sig, siginfo_t *info, void *secret);
+
++#if defined(USE_JEMALLOC) && defined(USE_SYSTEM_JEMALLOC)
++#define je_mallctl mallctl
++#endif
+ /* ================================= Debugging ============================== */
+
+ /* Compute the sha1 of string at 's' with 'len' bytes long.
+diff --git a/src/object.c b/src/object.c
+index cf7811e81..5da8fbcc9 100644
+--- a/src/object.c
++++ b/src/object.c
+@@ -15,6 +15,11 @@
+ #define strtold(a,b) ((long double)strtod((a),(b)))
+ #endif
+
++#if defined(USE_JEMALLOC) && defined(USE_SYSTEM_JEMALLOC)
++#define je_mallctl mallctl
++#define je_malloc_stats_print malloc_stats_print
++#endif
++
+ /* ===================== Creation and parsing of objects ==================== */
+
+ robj *createObject(int type, void *ptr) {
+diff --git a/src/sds.c b/src/sds.c
+index 0a295132c..a1ac73d5a 100644
+--- a/src/sds.c
++++ b/src/sds.c
+@@ -24,6 +24,10 @@
+ #include "sds.h"
+ #include "sdsalloc.h"
+
++#if defined(USE_JEMALLOC) && defined(USE_SYSTEM_JEMALLOC)
++#define je_nallocx nallocx
++#endif
++
+ const char *SDS_NOINIT = "SDS_NOINIT";
+
+ static inline int sdsHdrSize(char type) {
+diff --git a/src/zmalloc.c b/src/zmalloc.c
+index d737e2b14..7187599aa 100644
+--- a/src/zmalloc.c
++++ b/src/zmalloc.c
+@@ -56,6 +56,9 @@ void zlibc_free(void *ptr) {
+ #define free(ptr) tc_free(ptr)
+ /* Explicitly override malloc/free etc when using jemalloc. */
+ #elif defined(USE_JEMALLOC)
++#if defined(USE_SYSTEM_JEMALLOC)
++#define je_mallctl mallctl
++#else
+ #define malloc(size) je_malloc(size)
+ #define calloc(count,size) je_calloc(count,size)
+ #define realloc(ptr,size) je_realloc(ptr,size)
+@@ -63,6 +66,7 @@ void zlibc_free(void *ptr) {
+ #define mallocx(size,flags) je_mallocx(size,flags)
+ #define dallocx(ptr,flags) je_dallocx(ptr,flags)
+ #endif
++#endif
+
+ #define update_zmalloc_stat_alloc(__n) atomicIncr(used_memory,(__n))
+ #define update_zmalloc_stat_free(__n) atomicDecr(used_memory,(__n))
+diff --git a/src/zmalloc.h b/src/zmalloc.h
+index df7d290da..c10858439 100644
+--- a/src/zmalloc.h
++++ b/src/zmalloc.h
+@@ -27,7 +27,11 @@
+ #include <jemalloc/jemalloc.h>
+ #if (JEMALLOC_VERSION_MAJOR == 2 && JEMALLOC_VERSION_MINOR >= 1) || (JEMALLOC_VERSION_MAJOR > 2)
+ #define HAVE_MALLOC_SIZE 1
++#if defined(USE_SYSTEM_JEMALLOC)
++#define zmalloc_size(p) malloc_usable_size(p)
++#else
+ #define zmalloc_size(p) je_malloc_usable_size(p)
++#endif
+ #else
+ #error "Newer version of jemalloc required"
+ #endif
+--
+2.39.2
+
+
+From 940b0fab0318f5f306a67d0818635acc522402c4 Mon Sep 17 00:00:00 2001
+From: Maytham Alsudany <maytha8thedev@gmail.com>
+Date: Wed, 10 Apr 2024 01:11:24 +0300
+Subject: [PATCH 2/2] Mention USE_SYSTEM_JEMALLOC setting in README
+
+Signed-off-by: Maytham Alsudany <maytha8thedev@gmail.com>
+---
+ README.md | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/README.md b/README.md
+index 14caf183d..ae77a235a 100644
+--- a/README.md
++++ b/README.md
+@@ -23,6 +23,8 @@ toolchain, and GNU make. To build Redict, simply run "make".
+ You can pass the following variables to Redict to customize the build:
+
+ * `USE_JEMALLOC=no MALLOC=libc`: use the libc allocator rather than jemalloc
++* `USE_SYSTEM_JEMALLOC=yes`: use the system's installed jemalloc libraries
++ rather than the vendored copy.
+ * `BUILD_TLS=yes`: build with TLS support. Requires OpenSSL.
+ * `USE_SYSTEMD=yes`: build with systemd support. Requires libsystemd.
+ * `PROG_SUFFIX="-suffix"`: Append "-suffix" to executable names
+--
+2.39.2
+
diff --git a/dev-db/redict/files/redict-sentinel-7.3.0-config.patch b/dev-db/redict/files/redict-sentinel-7.3.0-config.patch
new file mode 100644
index 000000000000..8ed5da34b598
--- /dev/null
+++ b/dev-db/redict/files/redict-sentinel-7.3.0-config.patch
@@ -0,0 +1,27 @@
+Rebased from original redis-sentinel-5.0-config.patch
+
+diff --git a/sentinel.conf b/sentinel.conf
+index b7b3604f0..a1d7bfea9 100644
+--- a/sentinel.conf
++++ b/sentinel.conf
+@@ -17,7 +17,7 @@ daemonize no
+ # When running daemonized, redict Sentinel writes a pid file in
+ # /var/run/redict-sentinel.pid by default. You can specify a custom pid file
+ # location here.
+-pidfile /var/run/redict-sentinel.pid
++pidfile /run/redict-sentinel.pid
+
+ # Specify the server verbosity level.
+ # This can be one of:
+@@ -31,7 +31,7 @@ loglevel notice
+ # Specify the log file name. Also the empty string can be used to force
+ # Sentinel to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile "/var/log/redict/sentinel.log"
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+--
+2.41.0
+
diff --git a/dev-db/redict/files/redict-sentinel.confd b/dev-db/redict/files/redict-sentinel.confd
new file mode 100644
index 000000000000..e168b46b14f7
--- /dev/null
+++ b/dev-db/redict/files/redict-sentinel.confd
@@ -0,0 +1,16 @@
+# Redict-sentinel user.
+REDICT_SENTINEL_USER="redict"
+
+# Redict-sentinel group.
+REDICT_SENTINEL_GROUP="redict"
+
+# Redict-sentinel configuration file.
+REDICT_SENTINEL_CONF="/etc/redict/sentinel.conf"
+
+# Redict-sentinel working directory.
+REDICT_SENTINEL_DIR="/tmp"
+
+# Specify the network service that corresponds to the "bind" setting
+# in your sentinel.conf. For example, if you bind to 127.0.0.1, this should
+# be set to "net.lo" which provides the loopback interface.
+rc_need="net.lo"
diff --git a/dev-db/redict/files/redict-sentinel.initd b/dev-db/redict/files/redict-sentinel.initd
new file mode 100644
index 000000000000..e3417a33ee57
--- /dev/null
+++ b/dev-db/redict/files/redict-sentinel.initd
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${REDICT_SENTINEL_DIR:=/tmp}
+: ${REDICT_SENTINEL_CONF:=/etc/redict/sentinel.conf}
+: ${REDICT_SENTINEL_USER:=redict}
+: ${REDICT_SENTINEL_GROUP:=redict}
+: ${REDICT_SENTINEL_TIMEOUT:=30}
+
+depend() {
+ use localmount logger
+ after keepalived redict
+ provide redis-sentinel
+}
+
+command="/usr/bin/redict-sentinel"
+command_args="${REDICT_SENTINEL_CONF}"
+command_background="true"
+command_user="${REDICT_SENTINEL_USER}:${REDICT_SENTINEL_GROUP}"
+pidfile="/run/${RC_SVCNAME}.pid"
+retry="${REDICT_SENTINEL_TIMEOUT}"
+start_stop_daemon_args="--chdir \"${REDICT_SENTINEL_DIR}\""
diff --git a/dev-db/redict/files/redict.confd b/dev-db/redict/files/redict.confd
new file mode 100644
index 000000000000..02814e18f140
--- /dev/null
+++ b/dev-db/redict/files/redict.confd
@@ -0,0 +1,20 @@
+# Redict user.
+REDICT_USER="redict"
+
+# Redict group.
+REDICT_GROUP="redict"
+
+# Redict configuration file.
+REDICT_CONF="/etc/redict/redict.conf"
+
+# Redict dump directory.
+REDICT_DIR="/var/lib/redict"
+
+# Redict options.
+# (Redict expects the first argument to be the configuration file.)
+REDICT_OPTS="${REDICT_CONF}"
+
+# Specify the network service that corresponds to the "bind" setting
+# in your redict.conf. For example, if you bind to 127.0.0.1, this should
+# be set to "net.lo" which provides the loopback interface.
+rc_need="net.lo"
diff --git a/dev-db/redict/files/redict.initd b/dev-db/redict/files/redict.initd
new file mode 100644
index 000000000000..6d1916b3e83d
--- /dev/null
+++ b/dev-db/redict/files/redict.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${REDICT_DIR:=/var/lib/redict}
+: ${REDICT_CONF:=/etc/redict/redict.conf}
+: ${REDICT_OPTS:="${REDICT_CONF}"}
+: ${REDICT_USER:=redict}
+: ${REDICT_GROUP:=redict}
+: ${REDICT_TIMEOUT:=30}
+
+# https://bugs.gentoo.org/631002#c10
+# Force '--daemonize no' to override the config file
+command="/usr/bin/redict-server"
+command_args="${REDICT_OPTS} --daemonize no"
+command_background="true"
+command_user="${REDICT_USER}:${REDICT_GROUP}"
+pidfile="/run/${RC_SVCNAME}.pid"
+retry="${REDICT_TIMEOUT}"
+start_stop_daemon_args="--chdir \"${REDICT_DIR}\""
+
+depend() {
+ use localmount logger
+ after keepalived
+ provide redis
+}
diff --git a/dev-db/redict/files/redict.logrotate b/dev-db/redict/files/redict.logrotate
new file mode 100644
index 000000000000..01608529dac4
--- /dev/null
+++ b/dev-db/redict/files/redict.logrotate
@@ -0,0 +1,6 @@
+/var/log/redict/redict.log /var/log/redict/sentinel.log {
+ compress
+ delaycompress
+ notifempty
+ missingok
+}
diff --git a/dev-db/redict/files/redict.service b/dev-db/redict/files/redict.service
new file mode 100644
index 000000000000..2ec1cf7bff1d
--- /dev/null
+++ b/dev-db/redict/files/redict.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=A persistent key-value database
+After=syslog.target network.target
+
+[Service]
+Type=simple
+PIDFile=/run/redict/redict.pid
+ExecStart=/usr/bin/redict-server /etc/redict/redict.conf
+User=redict
+Group=redict
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/dev-db/redict/files/redict.tmpfiles b/dev-db/redict/files/redict.tmpfiles
new file mode 100644
index 000000000000..45e56d32afe7
--- /dev/null
+++ b/dev-db/redict/files/redict.tmpfiles
@@ -0,0 +1,2 @@
+# redict runtime directory
+d /run/redict 0755 redict root -
diff --git a/dev-db/redict/metadata.xml b/dev-db/redict/metadata.xml
new file mode 100644
index 000000000000..e00573fa4b5a
--- /dev/null
+++ b/dev-db/redict/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>navi@vlhl.dev</email>
+ <name>Anna (navi) Figueiredo Gomes</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="codeberg">redict/redict</remote-id>
+ </upstream>
+ <use>
+ <flag name="tcmalloc">
+ Use tcmalloc from <pkg>dev-util/google-perftools</pkg> for allocations.
+ </flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-db/redict/redict-7.3.0-r1.ebuild b/dev-db/redict/redict-7.3.0-r1.ebuild
new file mode 100644
index 000000000000..b53bf105c3a1
--- /dev/null
+++ b/dev-db/redict/redict-7.3.0-r1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
+# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
+
+inherit edo multiprocessing systemd tmpfiles toolchain-funcs
+
+DESCRIPTION="A persistent caching system, key-value, and data structures database"
+HOMEPAGE="https://redict.io"
+
+SRC_URI="https://codeberg.org/redict/redict/archive/${PV/_/-}.tar.gz -> ${P}.tar.gz"
+
+S=${WORKDIR}/${PN}
+
+LICENSE="BSD Boost-1.0 LGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="+jemalloc ssl systemd tcmalloc test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="?? ( jemalloc tcmalloc )"
+
+RDEPEND="
+ acct-group/redict
+ acct-user/redict
+ dev-libs/hiredict:0=[ssl?]
+ jemalloc? ( >=dev-libs/jemalloc-5.1:=[stats] )
+ ssl? ( dev-libs/openssl:0= )
+ systemd? ( sys-apps/systemd:= )
+ tcmalloc? ( dev-util/google-perftools )
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-lang/tcl:0=
+ ssl? ( dev-tcltk/tls )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/redict-7.3.0-config.patch
+ "${FILESDIR}"/redict-sentinel-7.3.0-config.patch
+ "${FILESDIR}"/redict-7.3.0-system-jemalloc.patch
+ "${FILESDIR}"/redict-7.3.0-system-hiredict.patch
+)
+
+src_prepare() {
+ default
+
+ # Respect user CFLAGS in bundled lua
+ sed -i '/LUA_CFLAGS/s: -O2::g' deps/Makefile || die
+}
+
+_build() {
+ tc-export AR CC RANLIB
+ local myconf=(
+ AR="${AR}"
+ CC="${CC}"
+ RANLIB="${RANLIB}"
+ CFLAGS="${CFLAGS}"
+ LDFLAGS="${LDFLAGS}"
+ V=1 # verbose
+ OPTIMIZATION=
+ DEBUG=
+ DEBUG_FLAGS=
+ BUILD_TLS=$(usex ssl)
+ USE_SYSTEMD=$(usex systemd)
+ USE_SYSTEM_HIREDICT=yes
+ )
+
+ if use jemalloc; then
+ myconf+=(
+ MALLOC=jemalloc
+ USE_SYSTEM_JEMALLOC=yes
+ )
+ elif use tcmalloc; then
+ myconf+=( MALLOC=tcmalloc )
+ else
+ myconf+=( MALLOC=libc )
+ fi
+
+ emake -C src "${myconf[@]}" "$@"
+}
+
+src_compile() {
+ _build
+}
+
+src_test() {
+ local runtestargs=(
+ --clients "$(makeopts_jobs)" # see bug #649868
+
+ --skiptest "Active defrag eval scripts" # see bug #851654
+ )
+
+ if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
+ ewarn "oom-score-adj related tests will be skipped." \
+ "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
+
+ runtestargs+=(
+ # unit/oom-score-adj was introduced in version 6.2.0
+ --skipunit unit/oom-score-adj # see bug #756382
+
+ # Following test was added in version 7.0.0 to unit/introspection.
+ # It also tries to adjust OOM score.
+ --skiptest "CONFIG SET rollback on apply error"
+ )
+ fi
+
+ if use ssl; then
+ edo ./utils/gen-test-certs.sh
+ runtestargs+=( --tls )
+ fi
+
+ edo ./runtest "${runtestargs[@]}"
+}
+
+src_install() {
+ insinto /etc/redict
+ doins redict.conf sentinel.conf
+ use prefix || fowners -R redict:redict /etc/redict /etc/redict/{redict,sentinel}.conf
+
+ newconfd "${FILESDIR}/redict.confd" redict
+ newinitd "${FILESDIR}/redict.initd" redict
+
+ systemd_newunit "${FILESDIR}/redict.service" redict.service
+ newtmpfiles "${FILESDIR}/redict.tmpfiles" redict.conf
+
+ newconfd "${FILESDIR}/redict-sentinel.confd" redict-sentinel
+ newinitd "${FILESDIR}/redict-sentinel.initd" redict-sentinel
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}/redict.logrotate" "${PN}"
+
+ _build DESTDIR="${ED}" PREFIX="/usr" install
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o redict -g redict
+ fi
+ keepdir /var/{log,lib}/redict
+}
+
+pkg_postinst() {
+ tmpfiles_process redict.conf
+
+ if has_version dev-db/redis && [[ -z "${REPLACING_VERSIONS}" ]]; then
+ ewarn "Redict uses different configuration files than redis:"
+ ewarn "/etc/redict/{redict,sentinel}.conf"
+ ewarn "Please apply your changes to the new configuration files."
+ fi
+}
diff --git a/dev-db/redis/Manifest b/dev-db/redis/Manifest
index a42beeee7489..e20e987cfcbf 100644
--- a/dev-db/redis/Manifest
+++ b/dev-db/redis/Manifest
@@ -1,6 +1,3 @@
DIST redis-6.2.14.tar.gz 2496149 BLAKE2B 689a0c3b558e07f43f8b1480fbf7a083184bbc0ccde0b184dc8a1d89ed22bec9694b7c8605ff729c9e9d582e8cf47c8f9cd9ee0794ea15e07cdb0b886e93c116 SHA512 140d4b23c20d459b65be8c61996e281222f978b51c52cb048039d741801e4027775ad89ed354dc0dce3d47703a08610adafaf6253fea2f973d5b9d20bc1e59ce
-DIST redis-7.0.14.tar.gz 2994188 BLAKE2B ab4325df8f1af1f7b8c634265a1c7001486c305d4210e72045e6434207e4a447e67d41fa07bd3cd5a57da173e7f9893bf386b18b556156cf559019573a7c4f8b SHA512 31d851dd72cea7d1e48c0df5646c91a2f7b72696067c017936984c49912f6e846ba6469c1ee8e361e362c8683912a25f6eee3993ed1a73cfe70051e84ad79b8b
DIST redis-7.0.15.tar.gz 2994329 BLAKE2B fa1bc85c89cb6a6fb18710a4d29c20db44a80ce445d217f39a234a2aad1d79031e9d1fc45415af7b0eb1c169bd88f45f1fe60cab35de38c6fadc839e2a27676d SHA512 83d58f98085f91754f6d87810e7da0d6cf11ffbe11a0f5d3581d5b2c63d2a752ba6b4eda921a04031aedc56ecebe349cd468ab5ad837493f55d2cac0ab3d015a
-DIST redis-7.2.1.tar.gz 3383319 BLAKE2B 92784af3d1df338a8af7475ab7c598309f33f682ad4bb0b827f170c9f20c1a0879b433c6325c90dd6ba17e06e95bf7d8a9a665d6706065ff4c4c8c141d9c93c1 SHA512 7df4afd51dceea0edbb999027c84820a6aebdd58d71b2e93a4861120fa2b9c0801a0e61c70e695845dbff4e9b96907a4215dcacf72d3593ad014cfa584b5cad0
-DIST redis-7.2.3.tar.gz 3384816 BLAKE2B 6aaf1bae377f3885affd140365eb0c2c30079fe40d770af1ac75a50647ce811e6c4dccd4b886db315e7b78e60661fa0bee280d707c1c4490f32086d0793069c3 SHA512 2ce4bbb056372f1180ceb1863106d07b021d32af2379f1f5dfc61e930c2cd0303433af22c7231adc8890ab5581cb41be3b792f19a0b1645108735c86d9fdf68e
-DIST redis-7.2.4.tar.gz 3386861 BLAKE2B 852d55f875378248fa15e189308afbe36bca73c2aa2e5423a765a3d6f6895908ac1455148e032f6d1a1087f57af5869bccf8a932684817109f3fcf09b204e639 SHA512 78590fb6680f229905c240ed8ce7a9a7153e5f8563577dbbb26aebf9bfbdcd7495d687f452bd95e0a86c76d772e1c497b506cf8d29bc97b62c9267f7d1e76f72
+DIST redis-7.2.5.tar.gz 3386454 BLAKE2B 5a0e5b0162f684ecd6db4a782a18a3c7bf272ec1ce38e2d2a4b5bc3966d968170f5b968e7f9946fd50d2b942c52298430eeccb386bbb443201eda6ac180c7f2b SHA512 e064a0f380e3a00ab8eb2f10ed7317fd6aa27d64cf00792fab80465036f92d17b166050e71b8a779fdf024528ac736cb54722316811f99951c4e386f4ab2245d
diff --git a/dev-db/redis/redis-7.0.14-r1.ebuild b/dev-db/redis/redis-7.0.14-r1.ebuild
deleted file mode 100644
index ea4ae7fc184e..000000000000
--- a/dev-db/redis/redis-7.0.14-r1.ebuild
+++ /dev/null
@@ -1,187 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
-# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
-
-inherit autotools edo flag-o-matic multiprocessing systemd tmpfiles toolchain-funcs
-
-DESCRIPTION="A persistent caching system, key-value, and data structures database"
-HOMEPAGE="https://redis.io"
-SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
-IUSE="+jemalloc selinux ssl systemd tcmalloc test"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
- jemalloc? ( >=dev-libs/jemalloc-5.1:= )
- ssl? ( dev-libs/openssl:0= )
- systemd? ( sys-apps/systemd:= )
- tcmalloc? ( dev-util/google-perftools )
-"
-
-RDEPEND="
- ${COMMON_DEPEND}
- acct-group/redis
- acct-user/redis
- selinux? ( sec-policy/selinux-redis )
-"
-
-BDEPEND="
- ${COMMON_DEPEND}
- virtual/pkgconfig
-"
-
-# Tcl is only needed in the CHOST test env
-DEPEND="
- ${COMMON_DEPEND}
- test? (
- dev-lang/tcl:0=
- ssl? ( dev-tcltk/tls )
- )"
-
-REQUIRED_USE="?? ( jemalloc tcmalloc )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.2.1-config.patch
- "${FILESDIR}"/${PN}-5.0-shared.patch
- "${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
- "${FILESDIR}"/${PN}-sentinel-5.0-config.patch
- "${FILESDIR}"/${PN}-7.0.4-no-which.patch
-)
-
-src_prepare() {
- default
-
- # Append cflag for lua_cjson
- # https://github.com/antirez/redis/commit/4fdcd213#diff-3ba529ae517f6b57803af0502f52a40bL61
- append-cflags "-DENABLE_CJSON_GLOBAL"
-
- # now we will rewrite present Makefiles
- local makefiles="" MKF
- for MKF in $(find -name 'Makefile' | cut -b 3-); do
- mv "${MKF}" "${MKF}.in"
- sed -i -e 's:$(CC):@CC@:g' \
- -e 's:$(CFLAGS):@AM_CFLAGS@:g' \
- -e 's: $(DEBUG)::g' \
- -e 's:$(OBJARCH)::g' \
- -e 's:ARCH:TARCH:g' \
- -e '/^CCOPT=/s:$: $(LDFLAGS):g' \
- "${MKF}.in" \
- || die "Sed failed for ${MKF}"
- makefiles+=" ${MKF}"
- done
- # autodetection of compiler and settings; generates the modified Makefiles
- cp "${FILESDIR}"/configure.ac-7.0 configure.ac || die
-
- sed -i \
- -e "/^AC_INIT/s|, __PV__, |, $PV, |" \
- -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
- configure.ac || die "Sed failed for configure.ac"
- eautoreconf
-}
-
-src_configure() {
- econf
-
- # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
- # also, don't define ANSI/c99 for lua twice
- sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
-}
-
-src_compile() {
- local myconf=""
-
- if use jemalloc; then
- myconf+="MALLOC=jemalloc"
- elif use tcmalloc; then
- myconf+="MALLOC=tcmalloc"
- else
- myconf+="MALLOC=libc"
- fi
-
- if use ssl; then
- myconf+=" BUILD_TLS=yes"
- fi
-
- export USE_SYSTEMD=$(usex systemd)
-
- tc-export AR CC RANLIB
- emake V=1 ${myconf} AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
-}
-
-src_test() {
- local runtestargs=(
- --clients "$(makeopts_jobs)" # see bug #649868
-
- --skiptest "Active defrag eval scripts" # see bug #851654
- )
-
- if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
- ewarn "oom-score-adj related tests will be skipped." \
- "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
-
- runtestargs+=(
- # unit/oom-score-adj was introduced in version 6.2.0
- --skipunit unit/oom-score-adj # see bug #756382
-
- # Following test was added in version 7.0.0 to unit/introspection.
- # It also tries to adjust OOM score.
- --skiptest "CONFIG SET rollback on apply error"
- )
- fi
-
- if use ssl; then
- edo ./utils/gen-test-certs.sh
- runtestargs+=( --tls )
- fi
-
- edo ./runtest "${runtestargs[@]}"
-}
-
-src_install() {
- insinto /etc/redis
- doins redis.conf sentinel.conf
- use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
- fperms 0750 /etc/redis
- fperms 0644 /etc/redis/{redis,sentinel}.conf
-
- newconfd "${FILESDIR}/redis.confd-r2" redis
- newinitd "${FILESDIR}/redis.initd-6" redis
-
- systemd_newunit "${FILESDIR}/redis.service-4" redis.service
- newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
-
- newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
- newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- dodoc 00-RELEASENOTES BUGS CONTRIBUTING.md MANIFESTO README.md
-
- dobin src/redis-cli
- dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
- fperms 0750 /usr/sbin/redis-benchmark
- dosym redis-server /usr/sbin/redis-sentinel
-
- if use prefix; then
- diropts -m0750
- else
- diropts -m0750 -o redis -g redis
- fi
- keepdir /var/{log,lib}/redis
-}
-
-pkg_postinst() {
- tmpfiles_process redis.conf
-
- ewarn "The default redis configuration file location changed to:"
- ewarn " /etc/redis/{redis,sentinel}.conf"
- ewarn "Please apply your changes to the new configuration files."
-}
diff --git a/dev-db/redis/redis-7.2.3-r1.ebuild b/dev-db/redis/redis-7.2.3-r1.ebuild
deleted file mode 100644
index dcdfd9625697..000000000000
--- a/dev-db/redis/redis-7.2.3-r1.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
-# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
-
-inherit autotools edo multiprocessing systemd tmpfiles toolchain-funcs
-
-DESCRIPTION="A persistent caching system, key-value, and data structures database"
-HOMEPAGE="
- https://redis.io
- https://github.com/redis/redis
-"
-SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
-
-LICENSE="BSD Boost-1.0"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
-IUSE="+jemalloc selinux ssl systemd tcmalloc test"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
- jemalloc? ( >=dev-libs/jemalloc-5.1:= )
- ssl? ( dev-libs/openssl:0= )
- systemd? ( sys-apps/systemd:= )
- tcmalloc? ( dev-util/google-perftools )
-"
-
-RDEPEND="
- ${COMMON_DEPEND}
- acct-group/redis
- acct-user/redis
- selinux? ( sec-policy/selinux-redis )
-"
-
-BDEPEND="
- ${COMMON_DEPEND}
- virtual/pkgconfig
-"
-
-# Tcl is only needed in the CHOST test env
-DEPEND="
- ${COMMON_DEPEND}
- test? (
- dev-lang/tcl:0=
- ssl? ( dev-tcltk/tls )
- )"
-
-REQUIRED_USE="?? ( jemalloc tcmalloc )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.2.1-config.patch
- "${FILESDIR}"/${PN}-7.2.0-system-jemalloc.patch
- "${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
- "${FILESDIR}"/${PN}-sentinel-7.2.0-config.patch
- "${FILESDIR}"/${PN}-7.0.4-no-which.patch
-)
-
-src_prepare() {
- default
-
- # Respect user CFLAGS in bundled lua
- sed -i '/LUA_CFLAGS/s: -O2::g' deps/Makefile || die
-
- # now we will rewrite present Makefiles
- local makefiles="" MKF
- local mysedconf=(
- -e 's:$(CC):@CC@:g'
- -e 's:$(CFLAGS):@AM_CFLAGS@:g'
- -e 's: $(DEBUG)::g'
-
- -e 's:-Werror ::g'
- -e 's:-Werror=deprecated-declarations ::g'
- )
- for MKF in $(find -name 'Makefile' | cut -b 3-); do
- mv "${MKF}" "${MKF}.in"
- sed -i "${mysedconf[@]}" "${MKF}.in" || die "Sed failed for ${MKF}"
- makefiles+=" ${MKF}"
- done
- # autodetection of compiler and settings; generates the modified Makefiles
- cp "${FILESDIR}"/configure.ac-7.0 configure.ac || die
-
- sed -i \
- -e "/^AC_INIT/s|, __PV__, |, $PV, |" \
- -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
- configure.ac || die "Sed failed for configure.ac"
- eautoreconf
-}
-
-src_configure() {
- econf
-
- # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
- # also, don't define ANSI/c99 for lua twice
- sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
-}
-
-src_compile() {
- tc-export AR CC RANLIB
-
- local myconf=(
- AR="${AR}"
- CC="${CC}"
- RANLIB="${RANLIB}"
-
- V=1 # verbose
-
- # OPTIMIZATION defaults to -O3. Let's respect user CFLAGS by setting it
- # to empty value.
- OPTIMIZATION=''
- # Disable debug flags in bundled hiredis
- DEBUG_FLAGS=''
-
- BUILD_TLS=$(usex ssl)
- USE_SYSTEMD=$(usex systemd)
- )
-
- if use jemalloc; then
- myconf+=( MALLOC=jemalloc )
- elif use tcmalloc; then
- myconf+=( MALLOC=tcmalloc )
- else
- myconf+=( MALLOC=libc )
- fi
-
- emake "${myconf[@]}"
-}
-
-src_test() {
- local runtestargs=(
- --clients "$(makeopts_jobs)" # see bug #649868
-
- --skiptest "Active defrag eval scripts" # see bug #851654
- )
-
- if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
- ewarn "oom-score-adj related tests will be skipped." \
- "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
-
- runtestargs+=(
- # unit/oom-score-adj was introduced in version 6.2.0
- --skipunit unit/oom-score-adj # see bug #756382
-
- # Following test was added in version 7.0.0 to unit/introspection.
- # It also tries to adjust OOM score.
- --skiptest "CONFIG SET rollback on apply error"
- )
- fi
-
- if use ssl; then
- edo ./utils/gen-test-certs.sh
- runtestargs+=( --tls )
- fi
-
- edo ./runtest "${runtestargs[@]}"
-}
-
-src_install() {
- insinto /etc/redis
- doins redis.conf sentinel.conf
- use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
- fperms 0750 /etc/redis
- fperms 0644 /etc/redis/{redis,sentinel}.conf
-
- newconfd "${FILESDIR}/redis.confd-r2" redis
- newinitd "${FILESDIR}/redis.initd-6" redis
-
- systemd_newunit "${FILESDIR}/redis.service-4" redis.service
- newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
-
- newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
- newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- dodoc 00-RELEASENOTES BUGS CONTRIBUTING.md MANIFESTO README.md
-
- dobin src/redis-cli
- dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
- fperms 0750 /usr/sbin/redis-benchmark
- dosym redis-server /usr/sbin/redis-sentinel
-
- if use prefix; then
- diropts -m0750
- else
- diropts -m0750 -o redis -g redis
- fi
- keepdir /var/{log,lib}/redis
-}
-
-pkg_postinst() {
- tmpfiles_process redis.conf
-
- ewarn "The default redis configuration file location changed to:"
- ewarn " /etc/redis/{redis,sentinel}.conf"
- ewarn "Please apply your changes to the new configuration files."
-}
diff --git a/dev-db/redis/redis-7.2.4-r1.ebuild b/dev-db/redis/redis-7.2.4-r1.ebuild
deleted file mode 100644
index dcdfd9625697..000000000000
--- a/dev-db/redis/redis-7.2.4-r1.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
-# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
-
-inherit autotools edo multiprocessing systemd tmpfiles toolchain-funcs
-
-DESCRIPTION="A persistent caching system, key-value, and data structures database"
-HOMEPAGE="
- https://redis.io
- https://github.com/redis/redis
-"
-SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
-
-LICENSE="BSD Boost-1.0"
-SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
-IUSE="+jemalloc selinux ssl systemd tcmalloc test"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
- jemalloc? ( >=dev-libs/jemalloc-5.1:= )
- ssl? ( dev-libs/openssl:0= )
- systemd? ( sys-apps/systemd:= )
- tcmalloc? ( dev-util/google-perftools )
-"
-
-RDEPEND="
- ${COMMON_DEPEND}
- acct-group/redis
- acct-user/redis
- selinux? ( sec-policy/selinux-redis )
-"
-
-BDEPEND="
- ${COMMON_DEPEND}
- virtual/pkgconfig
-"
-
-# Tcl is only needed in the CHOST test env
-DEPEND="
- ${COMMON_DEPEND}
- test? (
- dev-lang/tcl:0=
- ssl? ( dev-tcltk/tls )
- )"
-
-REQUIRED_USE="?? ( jemalloc tcmalloc )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.2.1-config.patch
- "${FILESDIR}"/${PN}-7.2.0-system-jemalloc.patch
- "${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
- "${FILESDIR}"/${PN}-sentinel-7.2.0-config.patch
- "${FILESDIR}"/${PN}-7.0.4-no-which.patch
-)
-
-src_prepare() {
- default
-
- # Respect user CFLAGS in bundled lua
- sed -i '/LUA_CFLAGS/s: -O2::g' deps/Makefile || die
-
- # now we will rewrite present Makefiles
- local makefiles="" MKF
- local mysedconf=(
- -e 's:$(CC):@CC@:g'
- -e 's:$(CFLAGS):@AM_CFLAGS@:g'
- -e 's: $(DEBUG)::g'
-
- -e 's:-Werror ::g'
- -e 's:-Werror=deprecated-declarations ::g'
- )
- for MKF in $(find -name 'Makefile' | cut -b 3-); do
- mv "${MKF}" "${MKF}.in"
- sed -i "${mysedconf[@]}" "${MKF}.in" || die "Sed failed for ${MKF}"
- makefiles+=" ${MKF}"
- done
- # autodetection of compiler and settings; generates the modified Makefiles
- cp "${FILESDIR}"/configure.ac-7.0 configure.ac || die
-
- sed -i \
- -e "/^AC_INIT/s|, __PV__, |, $PV, |" \
- -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
- configure.ac || die "Sed failed for configure.ac"
- eautoreconf
-}
-
-src_configure() {
- econf
-
- # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
- # also, don't define ANSI/c99 for lua twice
- sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
-}
-
-src_compile() {
- tc-export AR CC RANLIB
-
- local myconf=(
- AR="${AR}"
- CC="${CC}"
- RANLIB="${RANLIB}"
-
- V=1 # verbose
-
- # OPTIMIZATION defaults to -O3. Let's respect user CFLAGS by setting it
- # to empty value.
- OPTIMIZATION=''
- # Disable debug flags in bundled hiredis
- DEBUG_FLAGS=''
-
- BUILD_TLS=$(usex ssl)
- USE_SYSTEMD=$(usex systemd)
- )
-
- if use jemalloc; then
- myconf+=( MALLOC=jemalloc )
- elif use tcmalloc; then
- myconf+=( MALLOC=tcmalloc )
- else
- myconf+=( MALLOC=libc )
- fi
-
- emake "${myconf[@]}"
-}
-
-src_test() {
- local runtestargs=(
- --clients "$(makeopts_jobs)" # see bug #649868
-
- --skiptest "Active defrag eval scripts" # see bug #851654
- )
-
- if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
- ewarn "oom-score-adj related tests will be skipped." \
- "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
-
- runtestargs+=(
- # unit/oom-score-adj was introduced in version 6.2.0
- --skipunit unit/oom-score-adj # see bug #756382
-
- # Following test was added in version 7.0.0 to unit/introspection.
- # It also tries to adjust OOM score.
- --skiptest "CONFIG SET rollback on apply error"
- )
- fi
-
- if use ssl; then
- edo ./utils/gen-test-certs.sh
- runtestargs+=( --tls )
- fi
-
- edo ./runtest "${runtestargs[@]}"
-}
-
-src_install() {
- insinto /etc/redis
- doins redis.conf sentinel.conf
- use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
- fperms 0750 /etc/redis
- fperms 0644 /etc/redis/{redis,sentinel}.conf
-
- newconfd "${FILESDIR}/redis.confd-r2" redis
- newinitd "${FILESDIR}/redis.initd-6" redis
-
- systemd_newunit "${FILESDIR}/redis.service-4" redis.service
- newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
-
- newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
- newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- dodoc 00-RELEASENOTES BUGS CONTRIBUTING.md MANIFESTO README.md
-
- dobin src/redis-cli
- dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
- fperms 0750 /usr/sbin/redis-benchmark
- dosym redis-server /usr/sbin/redis-sentinel
-
- if use prefix; then
- diropts -m0750
- else
- diropts -m0750 -o redis -g redis
- fi
- keepdir /var/{log,lib}/redis
-}
-
-pkg_postinst() {
- tmpfiles_process redis.conf
-
- ewarn "The default redis configuration file location changed to:"
- ewarn " /etc/redis/{redis,sentinel}.conf"
- ewarn "Please apply your changes to the new configuration files."
-}
diff --git a/dev-db/redis/redis-7.2.1-r1.ebuild b/dev-db/redis/redis-7.2.5.ebuild
index 8ccfee0d3429..5d5a1385e115 100644
--- a/dev-db/redis/redis-7.2.1-r1.ebuild
+++ b/dev-db/redis/redis-7.2.5.ebuild
@@ -21,7 +21,7 @@ KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64
IUSE="+jemalloc selinux ssl systemd tcmalloc test"
RESTRICT="!test? ( test )"
-COMMON_DEPEND="
+DEPEND="
jemalloc? ( >=dev-libs/jemalloc-5.1:= )
ssl? ( dev-libs/openssl:0= )
systemd? ( sys-apps/systemd:= )
@@ -29,24 +29,21 @@ COMMON_DEPEND="
"
RDEPEND="
- ${COMMON_DEPEND}
+ ${DEPEND}
acct-group/redis
acct-user/redis
selinux? ( sec-policy/selinux-redis )
"
BDEPEND="
- ${COMMON_DEPEND}
+ acct-group/redis
+ acct-user/redis
virtual/pkgconfig
-"
-
-# Tcl is only needed in the CHOST test env
-DEPEND="
- ${COMMON_DEPEND}
test? (
dev-lang/tcl:0=
ssl? ( dev-tcltk/tls )
- )"
+ )
+"
REQUIRED_USE="?? ( jemalloc tcmalloc )"
diff --git a/dev-db/rqlite/Manifest b/dev-db/rqlite/Manifest
index eb9b69f8a294..32f775612de1 100644
--- a/dev-db/rqlite/Manifest
+++ b/dev-db/rqlite/Manifest
@@ -1,2 +1,4 @@
-DIST rqlite-7.17.0-vendor.tar.gz 7267193 BLAKE2B c9957c3d00960842b56e18829f87b03a8f44176652a4e6b578fafa7c58816014acee2fe96876c8112279085ed7331fb5c32e783b59e73f9db694c091757ee437 SHA512 9631f36179491abf7e81edea0ff73ea6322afd32836631d3d46dff996072eef92c3d3de929cec94b622d46cd8e0340089026cdfb3c228b04640cc917f15eee86
-DIST rqlite-8.16.8-vendor.tar.gz 7715303 BLAKE2B 50660bdfb8ce9fa8238ae028916d822e9f5d8e027ee4865f543f97f8a49b92a13e549deb07a5b79e7a52c2c9e994cf6891562a15873b09398c74773f82ffc3d2 SHA512 987c9dbe91766f4847233949cd4251aa3d0a56d23b850bbb552d8f9bb255de3908c4fa440c45e730e861e6f4f60e559a41353659ab9d953b978c45ff986ee9b5
+DIST rqlite-8.23.0-deps.tar.xz 3934116 BLAKE2B 3f56e99ab7cc6e9ae6584bfc3bb10ff28a866961a90bb77ee7acc9442d16d37eaa705b5cc85abbf7de3daea77df24ec9b4b65fbff43a11033bc8e0a11bcb089e SHA512 cace762d4f7e3a6d973dcba7ccf40ddc45d05a0cb5669d67a4c9fd4917e826828664779ab2bb293757fb46f2d5fc956d7ecae46b59f4914afe8fadc42d9d95b1
+DIST rqlite-8.23.0.tar.gz 613529 BLAKE2B 0c6c790f1a211a10f14a2f03a231567c186504c05618509733f94a7cacb6b4b23abdbeb119067a4a884ddcbc5862d301ede0a83b3059e9ff55b20876c27f85dc SHA512 6247cf72ac295a5892fe992ec90c7733de311142996d4eead2c69752d71ad55326a5f6c4f26f4c5fee229bd0b75a3379460bf69abe0c473517a8fb3ef322889f
+DIST rqlite-8.25.0-deps.tar.xz 3958656 BLAKE2B f48b155e2f8535a4189ff8403fd33e555ad57edfd16546b80f9040852bab26c5580a0f39ebde232396df1cd21b3f08e0c4a9e83fd54837aca75a89d05d159241 SHA512 49b0b010eff36a5a5fdeb243f9b248beb0f96c3d914e62bf1c6f0638b8502b6a08daa84f23620f17411269a4efd703ef60ffa567da1cb72b04538b0fbe994e6b
+DIST rqlite-8.25.0.tar.gz 619814 BLAKE2B 489e572073ea7c19092c0345881381b39ff40c2728b3b4c443ac5c9b7df3172f45e189ef2fc0ee365a9a4274d0f58476efc23ad95bb5e462e84cc449af78ba79 SHA512 79331a6a24d9d42aded35d4e9250af84f522f6bf42ed817ad93c51e019b7cf2e7149ec78de6499aac39608a31da1fbd208fd0db5bee1b6cf92dd793b60559ac3
diff --git a/dev-db/rqlite/rqlite-8.16.8.ebuild b/dev-db/rqlite/rqlite-8.23.0.ebuild
index fb6d652092cd..56c35cd04c40 100644
--- a/dev-db/rqlite/rqlite-8.16.8.ebuild
+++ b/dev-db/rqlite/rqlite-8.23.0.ebuild
@@ -3,19 +3,18 @@
EAPI=8
inherit go-module
-EGIT_COMMIT=10a5c9bd0e89e05c61e6de1a012470c432ee3591
+EGIT_COMMIT=47dfcd9d56f544c58795b6ca98a1dfd378a0505f
DESCRIPTION="Replicated SQLite using the Raft consensus protocol"
HOMEPAGE="https://github.com/rqlite/rqlite https://www.philipotoole.com/tag/rqlite/"
-SRC_URI="https://github.com/zmedico/rqlite/archive/v${PV}-vendor.tar.gz -> ${P}-vendor.tar.gz"
+SRC_URI="https://github.com/rqlite/rqlite/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
LICENSE="MIT"
LICENSE+=" Apache-2.0 BSD CC0-1.0 MPL-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-S=${WORKDIR}/${P}-vendor
-
src_compile() {
GOBIN="${S}/bin" \
go install \
diff --git a/dev-db/rqlite/rqlite-7.17.0.ebuild b/dev-db/rqlite/rqlite-8.25.0.ebuild
index 7e1f211104cf..fb2ae853ec49 100644
--- a/dev-db/rqlite/rqlite-7.17.0.ebuild
+++ b/dev-db/rqlite/rqlite-8.25.0.ebuild
@@ -1,20 +1,19 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module
-EGIT_COMMIT=6d22e2be6bc7b40571bd8ecf8366986da2f7198c
+EGIT_COMMIT=312d6b01f44630fc4f425d353bdc8dde1f34d860
DESCRIPTION="Replicated SQLite using the Raft consensus protocol"
HOMEPAGE="https://github.com/rqlite/rqlite https://www.philipotoole.com/tag/rqlite/"
-SRC_URI="https://github.com/zmedico/rqlite/archive/v${PV}-vendor.tar.gz -> ${P}-vendor.tar.gz"
+SRC_URI="https://github.com/rqlite/rqlite/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
-LICENSE="MIT Apache-2.0 BSD CC0-1.0 MPL-2.0"
+LICENSE="MIT"
+LICENSE+=" Apache-2.0 BSD CC0-1.0 MPL-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-S=${WORKDIR}/${P}-vendor
src_compile() {
GOBIN="${S}/bin" \
diff --git a/dev-db/slony1/slony1-2.2.10-r1.ebuild b/dev-db/slony1/slony1-2.2.10-r1.ebuild
index 81ec3602d9bd..1115cf1c6835 100644
--- a/dev-db/slony1/slony1-2.2.10-r1.ebuild
+++ b/dev-db/slony1/slony1-2.2.10-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,7 +6,7 @@ EAPI=7
POSTGRES_COMPAT=( 9.6 {10..14} )
POSTGRES_USEDEP="server,threads(+)"
-inherit postgres-multi
+inherit flag-o-matic postgres-multi
IUSE="doc perl"
@@ -27,7 +27,7 @@ DEPEND="${POSTGRES_DEP}
"
RDEPEND=${DEPEND}
-REQUIRE_USE="${POSTGRES_REQ_USE}"
+REQUIRED_USE="${POSTGRES_REQ_USE}"
# Testing requires a more complex setup than we benefit from being able
# to perform.
@@ -47,6 +47,11 @@ src_unpack() {
}
src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/855251
+ # https://github.com/ssinger/slony1-engine/issues/21
+ filter-lto
+
local slot_bin_dir="/usr/$(get_libdir)/postgresql-@PG_SLOT@/bin"
use perl && myconf=" --with-perltools=\"${slot_bin_dir}\""
postgres-multi_foreach econf ${myconf} \
diff --git a/dev-db/spatialite/spatialite-5.0.1-r2.ebuild b/dev-db/spatialite/spatialite-5.0.1-r2.ebuild
index 3b51ff672d08..fceb9a7de979 100644
--- a/dev-db/spatialite/spatialite-5.0.1-r2.ebuild
+++ b/dev-db/spatialite/spatialite-5.0.1-r2.ebuild
@@ -1,8 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+inherit libtool
+
MY_PN="lib${PN}"
MY_P="${MY_PN}-${PV}"
@@ -31,6 +33,11 @@ DEPEND="${RDEPEND}"
REQUIRED_USE="test? ( iconv )"
+src_prepare() {
+ default
+ elibtoolize
+}
+
src_configure() {
# 1) gcp disabled for now to preserve MPL licence
econf \
diff --git a/dev-db/spatialite/spatialite-5.1.0-r1.ebuild b/dev-db/spatialite/spatialite-5.1.0-r1.ebuild
index a509af0c9b1a..ccfc1ed4aa66 100644
--- a/dev-db/spatialite/spatialite-5.1.0-r1.ebuild
+++ b/dev-db/spatialite/spatialite-5.1.0-r1.ebuild
@@ -3,6 +3,8 @@
EAPI=8
+inherit libtool
+
MY_PN="lib${PN}"
MY_P="${MY_PN}-${PV}"
@@ -31,6 +33,11 @@ DEPEND="${RDEPEND}"
REQUIRED_USE="test? ( iconv )"
+src_prepare() {
+ default
+ elibtoolize
+}
+
src_configure() {
# 1) gcp disabled for now to preserve MPL licence
econf \
diff --git a/dev-db/sqlcipher/metadata.xml b/dev-db/sqlcipher/metadata.xml
index 62fd82723761..33cedbfbe782 100644
--- a/dev-db/sqlcipher/metadata.xml
+++ b/dev-db/sqlcipher/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>pinkbyte@gentoo.org</email>
- <name>Sergey Popov</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<remote-id type="github">sqlcipher/sqlcipher</remote-id>
</upstream>
diff --git a/dev-db/sqlcl-bin/Manifest b/dev-db/sqlcl-bin/Manifest
index 26332a8fd54c..68f055a40733 100644
--- a/dev-db/sqlcl-bin/Manifest
+++ b/dev-db/sqlcl-bin/Manifest
@@ -1 +1 @@
-DIST sqlcl-23.3.0.270.1251.zip 41859690 BLAKE2B 25ca11e1dc3d66fcd3d70a760090e21491065168298b7bb463c8bf80107e36365cf517bc10d061e45e19918ccf5284837237e5b2fa291f3dc6882a42c8b70c46 SHA512 293cf8c8c5419bafdddfa0cafd258b0506990a7fec55291e5ceb5e290de55d8e73f3b56fdd8cbb6ed9a6393a67cae8eb889ce7e7361f2bfb65bb00be4b283939
+DIST sqlcl-24.1.0.087.0929.zip 67804071 BLAKE2B 628c33be33f327e3b77e5c406f53519aee4637dfee5a760f667e6d661016def6040f81bc8ae758a175d499e6efa9903fdeb6b14fb5454f7ec64d5e933910aa37 SHA512 354a07fa291c7a281608c67c5dbf969d3ed2598f8a8b044c6ebecc8f9c1784866109d97926f69608197b354c964abb8ede2892bfaf61065b6bd92f4be27177f6
diff --git a/dev-db/sqlcl-bin/sqlcl-bin-23.3.0.270.1251.ebuild b/dev-db/sqlcl-bin/sqlcl-bin-24.1.0.087.0929.ebuild
index cfea6a71f095..6e9e1bdbeb5d 100644
--- a/dev-db/sqlcl-bin/sqlcl-bin-23.3.0.270.1251.ebuild
+++ b/dev-db/sqlcl-bin/sqlcl-bin-24.1.0.087.0929.ebuild
@@ -9,21 +9,21 @@ MY_P="${MY_PN}-${PV}"
inherit java-pkg-2
DESCRIPTION="Oracle SQLcl is the new SQL*Plus"
-HOMEPAGE="https://www.oracle.com/database/technologies/appdev/sqlcl.html"
+HOMEPAGE="https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/"
SRC_URI="https://download.oracle.com/otn_software/java/sqldeveloper/${MY_P}.zip"
-RESTRICT="mirror"
+
+S="${WORKDIR}"
LICENSE="OTN"
SLOT="0"
KEYWORDS="~amd64 ~x86"
+RESTRICT="mirror"
BDEPEND="app-arch/unzip"
RDEPEND="dev-db/oracle-instantclient
dev-java/java-config:2
>=virtual/jre-11"
-S="${WORKDIR}"
-
src_install() {
java-pkg_dojar sqlcl/lib/*.jar sqlcl/lib/ext/*.jar
diff --git a/dev-db/sqlite/Manifest b/dev-db/sqlite/Manifest
index 155c537a1dcc..12e948d841ac 100644
--- a/dev-db/sqlite/Manifest
+++ b/dev-db/sqlite/Manifest
@@ -1,4 +1,4 @@
-DIST sqlite-doc-3440200.zip 10704552 BLAKE2B 3d50ac157bd2793c9167328994334a417835e5381e432fd8028e064869b8eab2ab1d213815d2232850d695bc71626e9d89518b201888a43673274cba2a1b345d SHA512 a7c92af0d3a61a2450511cfb507785c7ab64c21c6dbcf5a8bdef509d25a6b3ca35ce93a25ca827497c27abca77d11b794fbbc783e4d8e131981bf1d4b29f83e8
-DIST sqlite-doc-3450100.zip 10746925 BLAKE2B 6e45a33b41b8fd1e0b5ef3a44febf5ed53a19883441f0eaef6d811190a26cd072a49d254a35d5b90f92255082f91d3f7956a6e574b638b34f156f7297588b57e SHA512 dc036737973a29ea2b6cb4fe7ab4468f449e21eed34a773600570ed2e57ed4d195286c75afec91ab76ac55e25a0cc82e73c3b3119a9c8e7b5918bae8a1a3c8c0
-DIST sqlite-src-3440200.zip 14070781 BLAKE2B 9d29964ee15da6a104f4857cb5f2621df5b51d043012789793526f34c56097d7b1b1dcaa7672637f2d16bcab4ff775ba2c8415213b79f80636c0ff2aeff883ba SHA512 5c1fed9c399dad75735a1b4451f8f6be474b07652d74500649e60474691923f56156ef6d5bce51b58367c1676371f1184e32584fe9ac4d5dd0c4776fa6f1d9a3
-DIST sqlite-src-3450100.zip 14152147 BLAKE2B 815fb3e92b080a7c0014b68451f571c174c656ba26c75f76bfca8b2d4c5373e82f4314ad3d9657ee711194019b4534c51bcd3fe71abfec588df2c5e4cdf2f153 SHA512 475de1c473d2d828038a2afb98d74d52b5e0fd06a5bfc8516e44084ed38b1438310172905fd4fe0a64a736d699095ed286dfdee059ceeb50dfb9bb49131e2005
+DIST sqlite-doc-3450300.zip 10759906 BLAKE2B 3ad2307d4c5de10f20d0cb58bb673b291a63bf0328c3f1e40e37a4823fadda82e0f1fbfe7c9c76925ab1d1448e76cc4cbce4d4ad15c732f134f1b4b4caee9543 SHA512 8f865302137684c31c4f54d6cbe4ee82126394887930ec50501fb811023bc612878d2dc1c2317e960fe818a277b008a9835475e7a47822fc5ece5fe37aa61e31
+DIST sqlite-doc-3460000.zip 10842823 BLAKE2B 4b4b36d78ba540abaa39bb510465e23e39cabcce97d19e4cb1374d941183ea05e1150356d15c99dbdf5513adebe2e9b06cbc59bd268fe6ce17905523488ec682 SHA512 22748bf113ff96320c90227ba104ff081bf1761550944afbc78b6768d6677b13982d7e759c5f67eb7ba7ed0dcbffee500bc39fc9929d28f86b2a269145fefebd
+DIST sqlite-src-3450300.zip 14160555 BLAKE2B 1c16a9b26587ed6b50dcd8373d4328266da0a47da7ffff15d505eddc8df74850a5bca3330bd9ee2b52036ccff9fb8aeebea02ef5713cc933753b4d8a4c15b2e8 SHA512 8f44ffdefd2cf09e7edb7cd78d5416fe7b42e01fe4b4e4803ce9d34c7b1b2971ec170a908a94b4bb11737dd3888675c8ff101ff2b41c53b8db05b5954e947cc9
+DIST sqlite-src-3460000.zip 14275927 BLAKE2B 8f8c7da56226cfbc669bc5cce7c897849dd0c6088189be2fc972fdc58bbc2933df979f040066a1cb9aea942117867eb31c9c97e7074e17215bfe747f9024a6c2 SHA512 441c51943e77655652409965b831df5af8662b4c585134be7fcd9bb5755a495170f37bd6510a80c18c42de72dda23536b583e84e58f042d342dd9e4139ae3327
diff --git a/dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch b/dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch
deleted file mode 100644
index 369732f81b38..000000000000
--- a/dev-db/sqlite/files/sqlite-3.44.2-fts-regression.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-https://bugs.gentoo.org/921490
-https://www.sqlite.org/forum/forumpost/d16aeb397d
-
-https://github.com/kovidgoyal/calibre/commit/0a23fabd5b4bff152047ba0cffbc2b67592645d1
-https://github.com/kovidgoyal/calibre/commit/3349979551db05ec0c8754d7ea5a4e57a97f8a0a
-https://github.com/kovidgoyal/calibre/commit/da82b673f09efbe9cdcc1e0900f0a9f04d8de052
---- a/ext/fts5/fts5_aux.c
-+++ b/ext/fts5/fts5_aux.c
-@@ -209,10 +209,18 @@
- rc = fts5CInstIterNext(&p->iter);
- }
- }
-
- if( iPos==p->iRangeEnd ){
-+ if( p->bOpen ){
-+ if( p->iter.iStart>=0 && iPos>=p->iter.iStart ){
-+ fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff);
-+ p->iOff = iEndOff;
-+ }
-+ fts5HighlightAppend(&rc, p, p->zClose, -1);
-+ p->bOpen = 0;
-+ }
- fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff);
- p->iOff = iEndOff;
- }
-
- return rc;
-
-ADDED ext/fts5/test/fts5tokenizer2.test
-Index: ext/fts5/test/fts5tokenizer2.test
-==================================================================
---- /dev/null
-+++ b/ext/fts5/test/fts5tokenizer2.test
-@@ -0,0 +1,89 @@
-+# 2023 Nov 03
-+#
-+# The author disclaims copyright to this source code. In place of
-+# a legal notice, here is a blessing:
-+#
-+# May you do good and not evil.
-+# May you find forgiveness for yourself and forgive others.
-+# May you share freely, never taking more than you give.
-+#
-+#***********************************************************************
-+#
-+# Tests focusing on the built-in fts5 tokenizers.
-+#
-+
-+source [file join [file dirname [info script]] fts5_common.tcl]
-+set testprefix fts5tokenizer2
-+
-+# If SQLITE_ENABLE_FTS5 is defined, omit this file.
-+ifcapable !fts5 {
-+ finish_test
-+ return
-+}
-+
-+sqlite3_fts5_create_tokenizer db tst get_tst_tokenizer
-+proc get_tst_tokenizer {args} {
-+ return "tst_tokenizer"
-+}
-+proc tst_tokenizer {flags txt} {
-+ set token ""
-+ set lTok [list]
-+
-+ foreach c [split $txt {}] {
-+ if {$token==""} {
-+ append token $c
-+ } else {
-+ set t1 [string is upper $token]
-+ set t2 [string is upper $c]
-+
-+ if {$t1!=$t2} {
-+ lappend lTok $token
-+ set token ""
-+ }
-+ append token $c
-+ }
-+ }
-+ if {$token!=""} { lappend lTok $token }
-+
-+ set iOff 0
-+ foreach t $lTok {
-+ set n [string length $t]
-+ sqlite3_fts5_token $t $iOff [expr $iOff+$n]
-+ incr iOff $n
-+ }
-+}
-+
-+do_execsql_test 1.0 {
-+ CREATE VIRTUAL TABLE t1 USING fts5(t, tokenize=tst);
-+}
-+
-+do_execsql_test 1.1 {
-+ INSERT INTO t1 VALUES('AAdontBBmess');
-+}
-+
-+do_execsql_test 1.2 {
-+ SELECT snippet(t1, 0, '>', '<', '...', 4) FROM t1('BB');
-+} {AAdont>BB<mess}
-+
-+do_execsql_test 1.3 {
-+ SELECT highlight(t1, 0, '>', '<') FROM t1('BB');
-+} {AAdont>BB<mess}
-+
-+do_execsql_test 1.4 {
-+ SELECT highlight(t1, 0, '>', '<') FROM t1('AA');
-+} {>AA<dontBBmess}
-+
-+do_execsql_test 1.5 {
-+ SELECT highlight(t1, 0, '>', '<') FROM t1('dont');
-+} {AA>dont<BBmess}
-+
-+do_execsql_test 1.6 {
-+ SELECT highlight(t1, 0, '>', '<') FROM t1('mess');
-+} {AAdontBB>mess<}
-+
-+do_execsql_test 1.7 {
-+ SELECT highlight(t1, 0, '>', '<') FROM t1('BB mess');
-+} {AAdont>BBmess<}
-+
-+
-+finish_test
-
-
diff --git a/dev-db/sqlite/files/sqlite-3.44.2-tracker-regression.patch b/dev-db/sqlite/files/sqlite-3.44.2-tracker-regression.patch
deleted file mode 100644
index b03848a19147..000000000000
--- a/dev-db/sqlite/files/sqlite-3.44.2-tracker-regression.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-https://sqlite.org/forum/forumpost/cb59d962fd
-https://sqlite.org/src/vinfo/d8c6b246
-https://sqlite.org/src/info/67da596d82ec0ed3 (backport)
-
---- a/ext/fts5/fts5_index.c
-+++ b/ext/fts5/fts5_index.c
-@@ -355,10 +355,11 @@
- int nContentlessDelete; /* Number of contentless delete ops */
- int nPendingRow; /* Number of INSERT in hash table */
-
- /* Error state. */
- int rc; /* Current error code */
-+ int flushRc;
-
- /* State used by the fts5DataXXX() functions. */
- sqlite3_blob *pReader; /* RO incr-blob open on %_data table */
- sqlite3_stmt *pWriter; /* "INSERT ... %_data VALUES(?,?)" */
- sqlite3_stmt *pDeleter; /* "DELETE FROM %_data ... id>=? AND id<=?" */
-@@ -4000,10 +4001,11 @@
- assert( p->pHash || p->nPendingData==0 );
- if( p->pHash ){
- sqlite3Fts5HashClear(p->pHash);
- p->nPendingData = 0;
- p->nPendingRow = 0;
-+ p->flushRc = SQLITE_OK;
- }
- p->nContentlessDelete = 0;
- }
-
- /*
-@@ -5582,18 +5584,24 @@
- /*
- ** Flush any data stored in the in-memory hash tables to the database.
- */
- static void fts5IndexFlush(Fts5Index *p){
- /* Unless it is empty, flush the hash table to disk */
-+ if( p->flushRc ){
-+ p->rc = p->flushRc;
-+ return;
-+ }
- if( p->nPendingData || p->nContentlessDelete ){
- assert( p->pHash );
- fts5FlushOneHash(p);
- if( p->rc==SQLITE_OK ){
- sqlite3Fts5HashClear(p->pHash);
- p->nPendingData = 0;
- p->nPendingRow = 0;
- p->nContentlessDelete = 0;
-+ }else if( p->nPendingData || p->nContentlessDelete ){
-+ p->flushRc = p->rc;
- }
- }
- }
-
- static Fts5Structure *fts5IndexOptimizeStruct(
-
---- a/ext/fts5/fts5_main.c
-+++ b/ext/fts5/fts5_main.c
-@@ -116,11 +116,11 @@
- Fts5Table p; /* Public class members from fts5Int.h */
- Fts5Storage *pStorage; /* Document store */
- Fts5Global *pGlobal; /* Global (connection wide) data */
- Fts5Cursor *pSortCsr; /* Sort data from this cursor */
- int iSavepoint; /* Successful xSavepoint()+1 */
-- int bInSavepoint;
-+
- #ifdef SQLITE_DEBUG
- struct Fts5TransactionState ts;
- #endif
- };
-
-@@ -2613,13 +2613,11 @@
- sqlite3_vtab *pVtab, /* Virtual table handle */
- const char *zName /* New name of table */
- ){
- int rc;
- Fts5FullTable *pTab = (Fts5FullTable*)pVtab;
-- pTab->bInSavepoint = 1;
- rc = sqlite3Fts5StorageRename(pTab->pStorage, zName);
-- pTab->bInSavepoint = 0;
- return rc;
- }
-
- int sqlite3Fts5FlushToDisk(Fts5Table *pTab){
- fts5TripCursors((Fts5FullTable*)pTab);
-@@ -2632,30 +2630,16 @@
- ** Flush the contents of the pending-terms table to disk.
- */
- static int fts5SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){
- Fts5FullTable *pTab = (Fts5FullTable*)pVtab;
- int rc = SQLITE_OK;
-- char *zSql = 0;
-+
- fts5CheckTransactionState(pTab, FTS5_SAVEPOINT, iSavepoint);
--
-- if( pTab->bInSavepoint==0 ){
-- zSql = sqlite3_mprintf("INSERT INTO %Q.%Q(%Q) VALUES('flush')",
-- pTab->p.pConfig->zDb, pTab->p.pConfig->zName, pTab->p.pConfig->zName
-- );
-- if( zSql ){
-- pTab->bInSavepoint = 1;
-- rc = sqlite3_exec(pTab->p.pConfig->db, zSql, 0, 0, 0);
-- pTab->bInSavepoint = 0;
-- sqlite3_free(zSql);
-- }else{
-- rc = SQLITE_NOMEM;
-- }
-- if( rc==SQLITE_OK ){
-- pTab->iSavepoint = iSavepoint+1;
-- }
-- }
--
-+ rc = sqlite3Fts5FlushToDisk((Fts5Table*)pVtab);
-+ if( rc==SQLITE_OK ){
-+ pTab->iSavepoint = iSavepoint+1;
-+ }
- return rc;
- }
-
- /*
- ** The xRelease() method.
-@@ -2912,11 +2896,11 @@
- /*
- ** Run an integrity check on the FTS5 data structures. Return a string
- ** if anything is found amiss. Return a NULL pointer if everything is
- ** OK.
- */
--static int fts5Integrity(
-+static int fts5IntegrityMethod(
- sqlite3_vtab *pVtab, /* the FTS5 virtual table to check */
- const char *zSchema, /* Name of schema in which this table lives */
- const char *zTabname, /* Name of the table itself */
- int isQuick, /* True if this is a quick-check */
- char **pzErr /* Write error message here */
-@@ -2970,11 +2954,11 @@
- /* xRename */ fts5RenameMethod,
- /* xSavepoint */ fts5SavepointMethod,
- /* xRelease */ fts5ReleaseMethod,
- /* xRollbackTo */ fts5RollbackToMethod,
- /* xShadowName */ fts5ShadowName,
-- /* xIntegrity */ fts5Integrity
-+ /* xIntegrity */ fts5IntegrityMethod
- };
-
- int rc;
- Fts5Global *pGlobal = 0;
-
-
---- a/ext/fts5/test/fts5misc.test
-+++ b/ext/fts5/test/fts5misc.test
-@@ -89,11 +89,10 @@
- CREATE VIRTUAL TABLE vt0 USING fts5(c0);
- BEGIN TRANSACTION;
- INSERT INTO vt0(c0) VALUES ('xyz');
- }
-
--breakpoint
- do_execsql_test 2.2.2 {
- ALTER TABLE t0 RENAME TO t1;
- }
- do_execsql_test 2.2.3 {
- INSERT INTO vt0(vt0) VALUES('integrity-check');
-@@ -498,8 +497,23 @@
- } {assertionfaultproblem}
- do_execsql_test 17.5 {
- SELECT c0 FROM t0 WHERE c0 GLOB '*faul*';
- } {assertionfaultproblem}
-
-+#-------------------------------------------------------------------------
-+reset_db
-+do_execsql_test 18.0 {
-+ BEGIN;
-+ CREATE VIRTUAL TABLE t1 USING fts5(text);
-+ ALTER TABLE t1 RENAME TO t2;
-+}
-+
-+do_execsql_test 18.1 {
-+ DROP TABLE t2;
-+}
-+
-+do_execsql_test 18.2 {
-+ COMMIT;
-+}
-
- finish_test
-
-
diff --git a/dev-db/sqlite/files/sqlite-3.45.1-lto.patch b/dev-db/sqlite/files/sqlite-3.45.1-lto.patch
deleted file mode 100644
index 3f15d1a29265..000000000000
--- a/dev-db/sqlite/files/sqlite-3.45.1-lto.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-# Bug: https://bugs.gentoo.org/924300
-# Taken from https://sqlite.org/src/info/803481f25020f3c
---- a/test/fuzzcheck.c
-+++ b/test/fuzzcheck.c
-@@ -159,12 +159,12 @@
- } g;
-
- /*
- ** Include the external vt02.c and randomjson.c modules.
- */
--extern int sqlite3_vt02_init(sqlite3*,char***,void*);
--extern int sqlite3_randomjson_init(sqlite3*,char***,void*);
-+extern int sqlite3_vt02_init(sqlite3*,char**,const sqlite3_api_routines*);
-+extern int sqlite3_randomjson_init(sqlite3*,char**,const sqlite3_api_routines*);
-
-
- /*
- ** Print an error message and quit.
- */
-
diff --git a/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch b/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch
new file mode 100644
index 000000000000..153dd82c1e19
--- /dev/null
+++ b/dev-db/sqlite/files/sqlite-3.45.2-tests-x86.patch
@@ -0,0 +1,112 @@
+https://sqlite.org/forum/forumpost/7dfd585ce1
+https://sqlite.org/src/info/d0fbe779bc2460e1
+
+Index: test/func4.test
+==================================================================
+--- a/test/func4.test
++++ b/test/func4.test
+@@ -1,6 +1,6 @@
+-# 2013 March 10
++# 2023-03-10
+ #
+ # The author disclaims copyright to this source code. In place of
+ # a legal notice, here is a blessing:
+ #
+ # May you do good and not evil.
+@@ -7,11 +7,14 @@
+ # May you find forgiveness for yourself and forgive others.
+ # May you share freely, never taking more than you give.
+ #
+ #***********************************************************************
+ # This file implements regression tests for SQLite library. The focus of
+-# this file is testing the tointeger() and toreal() functions.
++# this file is testing the tointeger() and toreal() functions that are
++# part of the "totype.c" extension. This file does not test the core
++# SQLite library. Failures of tests in this file are related to the
++# ext/misc/totype.c extension.
+ #
+ # Several of the toreal() tests are disabled on platforms where floating
+ # point precision is not high enough to represent their constant integer
+ # expression arguments as double precision floating point values.
+ #
+@@ -21,10 +24,24 @@
+ set tcl_precision 0
+ load_static_extension db totype
+
+ set highPrecision(1) [expr \
+ {[db eval {SELECT tointeger(9223372036854775807 + 1);}] eq {{}}}]
++set highPrecision(2) [expr \
++ {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}]
++
++# highPrecision(3) is only known to be false on i586 with gcc-13 and -O2.
++# It is true on the exact same platform with -O0. Both results seem
++# reasonable, so we'll just very the expectation accordingly.
++#
++set highPrecision(3) [expr \
++ {[db eval {SELECT toreal(9007199254740992 + 1);}] eq {{}}}]
++
++if {!$highPrecision(1) || !$highPrecision(2) || !$highPrecision(3)} {
++ puts "NOTICE: use_long_double: [use_long_double] \
++ highPrecision: $highPrecision(1) $highPrecision(2) $highPrecision(3)"
++}
+
+ do_execsql_test func4-1.1 {
+ SELECT tointeger(NULL);
+ } {{}}
+ do_execsql_test func4-1.2 {
+@@ -193,12 +210,10 @@
+ do_execsql_test func4-1.55 {
+ SELECT tointeger(18446744073709551616 + 1);
+ } {{}}
+
+ ifcapable floatingpoint {
+- set highPrecision(2) [expr \
+- {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}]
+
+ do_execsql_test func4-2.1 {
+ SELECT toreal(NULL);
+ } {{}}
+ do_execsql_test func4-2.2 {
+@@ -339,14 +354,18 @@
+ SELECT toreal(9007199254740992 - 1);
+ } {9007199254740991.0}
+ do_execsql_test func4-2.45 {
+ SELECT toreal(9007199254740992);
+ } {9007199254740992.0}
+- if {$highPrecision(2)} {
++ if {$highPrecision(3)} {
++ do_execsql_test func4-2.46 {
++ SELECT toreal(9007199254740992 + 1);
++ } {{}}
++ } else {
+ do_execsql_test func4-2.46 {
+ SELECT toreal(9007199254740992 + 1);
+- } {{}}
++ } {9007199254740992.0}
+ }
+ do_execsql_test func4-2.47 {
+ SELECT toreal(9007199254740992 + 2);
+ } {9007199254740994.0}
+ do_execsql_test func4-2.48 {
+@@ -624,14 +643,18 @@
+ SELECT tointeger(toreal(9007199254740992 - 1));
+ } {9007199254740991}
+ do_execsql_test func4-5.22 {
+ SELECT tointeger(toreal(9007199254740992));
+ } {9007199254740992}
+- if {$highPrecision(2)} {
++ if {$highPrecision(3)} {
+ do_execsql_test func4-5.23 {
+ SELECT tointeger(toreal(9007199254740992 + 1));
+ } {{}}
++ } else {
++ do_execsql_test func4-5.23 {
++ SELECT tointeger(toreal(9007199254740992 + 1));
++ } {9007199254740992}
+ }
+ do_execsql_test func4-5.24 {
+ SELECT tointeger(toreal(9007199254740992 + 2));
+ } {9007199254740994}
+ if {$highPrecision(1)} {
+
+
diff --git a/dev-db/sqlite/sqlite-3.45.1-r1.ebuild b/dev-db/sqlite/sqlite-3.45.1-r1.ebuild
deleted file mode 100644
index 038ad093c2be..000000000000
--- a/dev-db/sqlite/sqlite-3.45.1-r1.ebuild
+++ /dev/null
@@ -1,439 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit autotools flag-o-matic multilib-minimal toolchain-funcs
-
-DESCRIPTION="SQL database engine"
-HOMEPAGE="https://sqlite.org/"
-
-# On version updates, make sure to read the forum (https://sqlite.org/forum/forum)
-# for hints regarding test failures, backports, etc.
-if [[ ${PV} == 9999 ]]; then
- S="${WORKDIR}"/${PN}
- PROPERTIES="live"
-else
- printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ")
- DOC_PV="${SRC_PV}"
- #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
-
- SRC_URI="
- https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip
- doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
- "
- S="${WORKDIR}/${PN}-src-${SRC_PV}"
-
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-fi
-
-LICENSE="public-domain"
-SLOT="3"
-IUSE="debug doc icu +readline secure-delete static-libs tcl test tools"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- sys-libs/zlib:=[${MULTILIB_USEDEP}]
- icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
- readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] )
- tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] )
- tools? ( dev-lang/tcl:= )
-"
-DEPEND="
- ${RDEPEND}
- test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] )
-"
-BDEPEND=">=dev-lang/tcl-8.6:0"
-if [[ ${PV} == 9999 ]]; then
- BDEPEND+=" dev-vcs/fossil"
-else
- BDEPEND+=" app-arch/unzip"
-fi
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
- "${FILESDIR}"/${P}-lto.patch
-)
-
-_fossil_fetch() {
- local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
- local repo_id="${1}"
- local repo_uri="${2}"
-
- local -x FOSSIL_HOME="${HOME}"
-
- mkdir -p "${T}/fossil/${repo_id}" || die
- pushd "${T}/fossil/${repo_id}" > /dev/null || die
-
- if [[ -n "${EVCS_OFFLINE}" ]]; then
- if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
- die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
- fi
- else
- if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
- einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil"
- fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die
- echo
- else
- cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die
- einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}"
- fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die
- echo
- fi
-
- (
- addwrite "${distdir}"
- mkdir -p "${distdir}/fossil-src/${repo_id}" || die
- cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die
- )
- fi
-
- popd > /dev/null || die
-}
-
-_fossil_checkout() {
- local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}"
- local repo_id="${1}"
- local branch_or_commit="${2}"
- local target_directory="${3}"
-
- local -x FOSSIL_HOME="${HOME}"
-
- if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then
- die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\""
- fi
-
- if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then
- mkdir -p "${T}/fossil/${repo_id}" || die
- cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die
- fi
-
- mkdir "${target_directory}" || die
- pushd "${target_directory}" > /dev/null || die
-
- einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}"
- fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die
- echo
-
- popd > /dev/null || die
-}
-
-fossil_fetch() {
- local repo_id="${1}"
- local repo_uri="${2}"
- local target_directory="${3}"
-
- local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}"
-
- _fossil_fetch "${repo_id}" "${repo_uri}"
- _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}"
-}
-
-src_unpack() {
- if [[ ${PV} == 9999 ]]; then
- fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}"
- if use doc; then
- fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc"
- fi
- else
- default
- fi
-}
-
-src_prepare() {
- default
-
- eautoreconf
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}"
- local options=()
-
- options+=(
- --enable-load-extension
- --enable-threadsafe
- )
-
- # Support detection of misuse of SQLite API.
- # https://sqlite.org/compile.html#enable_api_armor
- append-cppflags -DSQLITE_ENABLE_API_ARMOR
-
- # Support bytecode and tables_used virtual tables.
- # https://sqlite.org/compile.html#enable_bytecode_vtab
- # https://sqlite.org/bytecodevtab.html
- append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB
-
- # Support column metadata functions.
- # https://sqlite.org/compile.html#enable_column_metadata
- # https://sqlite.org/c3ref/column_database_name.html
- append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA
-
- # Support sqlite_dbpage virtual table.
- # https://sqlite.org/compile.html#enable_dbpage_vtab
- # https://sqlite.org/dbpage.html
- append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB
-
- # Support dbstat virtual table.
- # https://sqlite.org/compile.html#enable_dbstat_vtab
- # https://sqlite.org/dbstat.html
- append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB
-
- # Support sqlite3_serialize() and sqlite3_deserialize() functions.
- # https://sqlite.org/compile.html#enable_deserialize
- # https://sqlite.org/c3ref/serialize.html
- # https://sqlite.org/c3ref/deserialize.html
- append-cppflags -DSQLITE_ENABLE_DESERIALIZE
-
- # Support comments in output of EXPLAIN.
- # https://sqlite.org/compile.html#enable_explain_comments
- append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS
-
- # Support Full-Text Search versions 3, 4 and 5.
- # https://sqlite.org/compile.html#enable_fts3
- # https://sqlite.org/compile.html#enable_fts3_parenthesis
- # https://sqlite.org/compile.html#enable_fts4
- # https://sqlite.org/compile.html#enable_fts5
- # https://sqlite.org/fts3.html
- # https://sqlite.org/fts5.html
- append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS4
- options+=( --enable-fts5 )
-
- # Support hidden columns.
- append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS
-
- # Support memsys5 memory allocator.
- # https://sqlite.org/compile.html#enable_memsys5
- # https://sqlite.org/malloc.html#memsys5
- append-cppflags -DSQLITE_ENABLE_MEMSYS5
-
- # Support sqlite3_normalized_sql() function.
- # https://sqlite.org/c3ref/expanded_sql.html
- append-cppflags -DSQLITE_ENABLE_NORMALIZE
-
- # Support sqlite_offset() function.
- # https://sqlite.org/compile.html#enable_offset_sql_func
- # https://sqlite.org/lang_corefunc.html#sqlite_offset
- append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC
-
- # Support pre-update hook functions.
- # https://sqlite.org/compile.html#enable_preupdate_hook
- # https://sqlite.org/c3ref/preupdate_count.html
- append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK
-
- # Support Resumable Bulk Update extension.
- # https://sqlite.org/compile.html#enable_rbu
- # https://sqlite.org/rbu.html
- append-cppflags -DSQLITE_ENABLE_RBU
-
- # Support R*Trees.
- # https://sqlite.org/compile.html#enable_rtree
- # https://sqlite.org/compile.html#enable_geopoly
- # https://sqlite.org/rtree.html
- # https://sqlite.org/geopoly.html
- append-cppflags -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_GEOPOLY
-
- # Support Session extension.
- # https://sqlite.org/compile.html#enable_session
- # https://sqlite.org/sessionintro.html
- append-cppflags -DSQLITE_ENABLE_SESSION
-
- # Support scan status functions.
- # https://sqlite.org/compile.html#enable_stmt_scanstatus
- # https://sqlite.org/c3ref/stmt_scanstatus.html
- # https://sqlite.org/c3ref/stmt_scanstatus_reset.html
- append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS
-
- # Support sqlite_stmt virtual table.
- # https://sqlite.org/compile.html#enable_stmtvtab
- # https://sqlite.org/stmt.html
- append-cppflags -DSQLITE_ENABLE_STMTVTAB
-
- # Support unknown() function.
- # https://sqlite.org/compile.html#enable_unknown_sql_function
- append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
-
- # Support unlock notification.
- # https://sqlite.org/compile.html#enable_unlock_notify
- # https://sqlite.org/c3ref/unlock_notify.html
- # https://sqlite.org/unlock_notify.html
- append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY
-
- # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements.
- # https://sqlite.org/compile.html#enable_update_delete_limit
- # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses
- # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses
- append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
-
- # Support soundex() function.
- # https://sqlite.org/compile.html#soundex
- # https://sqlite.org/lang_corefunc.html#soundex
- append-cppflags -DSQLITE_SOUNDEX
-
- # Support URI filenames.
- # https://sqlite.org/compile.html#use_uri
- # https://sqlite.org/uri.html
- append-cppflags -DSQLITE_USE_URI
-
- options+=( $(use_enable debug) )
-
- if use icu; then
- # Support ICU extension.
- # https://sqlite.org/compile.html#enable_icu
- append-cppflags -DSQLITE_ENABLE_ICU
- sed -e "s/^TLIBS = @LIBS@/& -licui18n -licuuc/" -i Makefile.in || die "sed failed"
- fi
-
- options+=(
- --disable-editline
- $(use_enable readline)
- )
-
- if use readline; then
- options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" )
- fi
-
- if use secure-delete; then
- # Enable secure_delete pragma by default.
- # https://sqlite.org/compile.html#secure_delete
- # https://sqlite.org/pragma.html#pragma_secure_delete
- append-cppflags -DSQLITE_SECURE_DELETE
- fi
-
- options+=( $(use_enable static-libs static) )
-
- # tcl, test, tools USE flags.
- if use tcl || use test || { use tools && multilib_is_native_abi; }; then
- options+=(
- --enable-tcl
- --with-tcl="${ESYSROOT}/usr/$(get_libdir)"
- )
- else
- options+=( --disable-tcl )
- fi
-
- if [[ "${ABI}" == "x86" ]]; then
- if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then
- append-cflags -mfpmath=sse
- else
- append-cflags -ffloat-store
- fi
-
- # Skip known-broken test for now
- # https://sqlite.org/forum/forumpost/d97caf168f
- # https://sqlite.org/forum/forumpost/50f136d91d
- # Quoting Fedora's spec:
- # "The atof test is failing on the i686 architecture, when binary configured with
- # --enable-rtree option. Failing part is text->real conversion and
- # text->real->text conversion in lower significant values after decimal point in a number.
- # func4 tests fail for i686 on float<->int conversions."
- if use test ; then
- rm test/atof1.test test/func4.test || die
- fi
- fi
-
- econf "${options[@]}"
-}
-
-multilib_src_compile() {
- emake HAVE_TCL="$(usev tcl 1)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}"
-
- if use tools && multilib_is_native_abi; then
- emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh
- fi
-
- if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then
- emake tclsqlite3.c
-
- local build_directory="$(pwd)"
- build_directory="${build_directory##*/}"
-
- mkdir "${WORKDIR}/${PN}-doc-build" || die
- pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die
-
- emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc
- rmdir doc/matrix{/*,} || die
-
- popd > /dev/null || die
- fi
-}
-
-multilib_src_test() {
- if [[ "${EUID}" -eq 0 ]]; then
- ewarn "Skipping tests due to root permissions"
- return
- fi
-
- local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}"
-
- # e_uri.test tries to open files in /.
- # bug #839798
- local SANDBOX_PREDICT=${SANDBOX_PREDICT}
- addpredict "/test.db"
- addpredict "/ÿ.db"
-
- emake -Onone HAVE_TCL="$(usex tcl 1 "")" $(usex debug 'fulltest' 'test')
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install
-
- if use tools && multilib_is_native_abi; then
- install_tool() {
- if [[ -f ".libs/${1}" ]]; then
- newbin ".libs/${1}" "${2}"
- else
- newbin "${1}" "${2}"
- fi
- }
-
- install_tool changeset sqlite3-changeset
- install_tool dbdump sqlite3-db-dump
- install_tool dbhash sqlite3-db-hash
- install_tool dbtotxt sqlite3-db-to-txt
- install_tool index_usage sqlite3-index-usage
- install_tool rbu sqlite3-rbu
- install_tool scrub sqlite3-scrub
- install_tool showdb sqlite3-show-db
- install_tool showjournal sqlite3-show-journal
- install_tool showshm sqlite3-show-shm
- install_tool showstat4 sqlite3-show-stat4
- install_tool showwal sqlite3-show-wal
- install_tool sqldiff sqlite3-diff
- install_tool sqlite3_analyzer sqlite3-analyzer
- install_tool sqlite3_checker sqlite3-checker
- install_tool sqlite3_expert sqlite3-expert
- install_tool sqltclsh sqlite3-tclsh
-
- unset -f install_tool
- fi
-}
-
-multilib_src_install_all() {
- find "${ED}" -name "*.la" -delete || die
-
- doman sqlite3.1
-
- if use doc; then
- if [[ ${PV} == 9999 ]]; then
- pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die
- else
- pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die
- fi
-
- find "(" -name "*.db" -o -name "*.txt" ")" -delete || die
- if [[ ${PV} != 9999 ]]; then
- rm search search.d/admin || die
- rmdir search.d || die
- find -name "*~" -delete || die
- fi
-
- (
- docinto html
- dodoc -r *
- )
-
- popd > /dev/null || die
- fi
-}
diff --git a/dev-db/sqlite/sqlite-3.44.2-r1.ebuild b/dev-db/sqlite/sqlite-3.45.3.ebuild
index 51e851f2fb3f..3349ca4de37c 100644
--- a/dev-db/sqlite/sqlite-3.44.2-r1.ebuild
+++ b/dev-db/sqlite/sqlite-3.45.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,8 +19,8 @@ else
#printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
SRC_URI="
- https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip
- doc? ( https://sqlite.org/2023/${PN}-doc-${DOC_PV}.zip )
+ https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip
+ doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
"
S="${WORKDIR}/${PN}-src-${SRC_PV}"
@@ -51,7 +51,8 @@ else
fi
PATCHES=(
- "${FILESDIR}"/${PN}-3.44.2-tracker-regression.patch
+ "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
+ "${FILESDIR}"/${PN}-3.45.2-tests-x86.patch
)
_fossil_fetch() {
@@ -318,13 +319,6 @@ multilib_src_configure() {
else
append-cflags -ffloat-store
fi
-
- # Skip known-broken test for now
- # https://sqlite.org/forum/forumpost/d97caf168f
- # https://sqlite.org/forum/forumpost/50f136d91d
- if use test ; then
- rm test/atof1.test || die
- fi
fi
econf "${options[@]}"
diff --git a/dev-db/sqlite/sqlite-3.44.2-r2.ebuild b/dev-db/sqlite/sqlite-3.46.0.ebuild
index 8f3314304ad2..b18d3e50644b 100644
--- a/dev-db/sqlite/sqlite-3.44.2-r2.ebuild
+++ b/dev-db/sqlite/sqlite-3.46.0.ebuild
@@ -19,8 +19,8 @@ else
#printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ")
SRC_URI="
- https://sqlite.org/2023/${PN}-src-${SRC_PV}.zip
- doc? ( https://sqlite.org/2023/${PN}-doc-${DOC_PV}.zip )
+ https://sqlite.org/2024/${PN}-src-${SRC_PV}.zip
+ doc? ( https://sqlite.org/2024/${PN}-doc-${DOC_PV}.zip )
"
S="${WORKDIR}/${PN}-src-${SRC_PV}"
@@ -51,8 +51,7 @@ else
fi
PATCHES=(
- "${FILESDIR}"/${PN}-3.44.2-tracker-regression.patch
- "${FILESDIR}"/${PN}-3.44.2-fts-regression.patch
+ "${FILESDIR}"/${PN}-3.45.1-ppc64-ptr.patch
)
_fossil_fetch() {
@@ -319,13 +318,6 @@ multilib_src_configure() {
else
append-cflags -ffloat-store
fi
-
- # Skip known-broken test for now
- # https://sqlite.org/forum/forumpost/d97caf168f
- # https://sqlite.org/forum/forumpost/50f136d91d
- if use test ; then
- rm test/atof1.test || die
- fi
fi
econf "${options[@]}"
diff --git a/dev-db/sqlite/sqlite-9999.ebuild b/dev-db/sqlite/sqlite-9999.ebuild
index 40b16d903620..7570a655878b 100644
--- a/dev-db/sqlite/sqlite-9999.ebuild
+++ b/dev-db/sqlite/sqlite-9999.ebuild
@@ -314,18 +314,6 @@ multilib_src_configure() {
else
append-cflags -ffloat-store
fi
-
- # Skip known-broken test for now
- # https://sqlite.org/forum/forumpost/d97caf168f
- # https://sqlite.org/forum/forumpost/50f136d91d
- # Quoting Fedora's spec:
- # "The atof test is failing on the i686 architecture, when binary configured with
- # --enable-rtree option. Failing part is text->real conversion and
- # text->real->text conversion in lower significant values after decimal point in a number.
- # func4 tests fail for i686 on float<->int conversions."
- if use test ; then
- rm test/atof1.test test/func4.test || die
- fi
fi
econf "${options[@]}"
diff --git a/dev-db/sqlitebrowser/files/sqlitebrowser-3.12.2-str-conflict-fix.patch b/dev-db/sqlitebrowser/files/sqlitebrowser-3.12.2-str-conflict-fix.patch
new file mode 100644
index 000000000000..07284ca8ba0c
--- /dev/null
+++ b/dev-db/sqlitebrowser/files/sqlitebrowser-3.12.2-str-conflict-fix.patch
@@ -0,0 +1,13 @@
+--- a/src/version.h
++++ b/src/version.h
+@@ -4,8 +4,8 @@
+ #define MINOR_VERSION 12
+ #define PATCH_VERSION 2
+
+-#define str(s) #s
+-#define xstr(s) str(s)
++#define stringize(s) #s
++#define xstr(s) stringize(s)
+ #define APP_VERSION xstr(MAJOR_VERSION) "." xstr(MINOR_VERSION) "." xstr(PATCH_VERSION)
+
+ // If it is defined by the compiler, then it is a nightly build, and in the YYYYMMDD format.
diff --git a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r1.ebuild b/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r2.ebuild
index 4b96bc2b8fbb..0b6665b1dd80 100644
--- a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r1.ebuild
+++ b/dev-db/sqlitebrowser/sqlitebrowser-3.12.2-r2.ebuild
@@ -32,7 +32,7 @@ DEPEND="
>=dev-qt/qtprintsupport-5.5:5
>=dev-qt/qtwidgets-5.5:5
>=dev-qt/qtxml-5.5:5
- >=x11-libs/qscintilla-2.8.10:=
+ >=x11-libs/qscintilla-2.8.10:=[qt5(+)]
sqlcipher? ( dev-db/sqlcipher )
"
@@ -46,6 +46,10 @@ RDEPEND="
>=dev-qt/qtsvg-5.5:5
"
+PATCHES=(
+ "${FILESDIR}/${P}-str-conflict-fix.patch"
+)
+
src_prepare() {
cmake_src_prepare
diff --git a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild b/dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild
deleted file mode 100644
index 6f50a5bd986f..000000000000
--- a/dev-db/sqlitebrowser/sqlitebrowser-3.12.2.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake xdg
-
-DESCRIPTION="A light GUI editor for SQLite databases"
-HOMEPAGE="https://sqlitebrowser.org/"
-
-if [[ "${PV}" = *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
-else
- SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 x86"
-fi
-
-LICENSE="GPL-3+ MPL-2.0"
-SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-DEPEND="
- app-editors/qhexedit2
- dev-db/sqlite:3
- dev-libs/qcustomplot
- >=dev-qt/qtconcurrent-5.5:5
- >=dev-qt/qtcore-5.5:5
- >=dev-qt/qtgui-5.5:5
- >=dev-qt/qtnetwork-5.5:5[ssl]
- >=dev-qt/qtprintsupport-5.5:5
- >=dev-qt/qtwidgets-5.5:5
- >=dev-qt/qtxml-5.5:5
- >=x11-libs/qscintilla-2.8.10:=
-"
-
-BDEPEND="
- >=dev-qt/linguist-tools-5.5:5
- test? ( >=dev-qt/qttest-5.5:5 )
-"
-
-RDEPEND="
- ${DEPEND}
- >=dev-qt/qtsvg-5.5:5
-"
-
-src_prepare() {
- cmake_src_prepare
-
- if ! use test; then
- sed -i CMakeLists.txt \
- -e "/find_package/ s/ Test//" \
- -e "/set/ s/ Qt5::Test//" \
- || die "Cannot remove Qt Test from CMake dependencies"
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DENABLE_TESTING=$(usex test)
- -DFORCE_INTERNAL_QCUSTOMPLOT=OFF
- -DFORCE_INTERNAL_QHEXEDIT=OFF
- )
-
- cmake_src_configure
-}
diff --git a/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild b/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild
index cea98af250c9..47ce7cb6cacc 100644
--- a/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild
+++ b/dev-db/sqlitebrowser/sqlitebrowser-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -13,7 +13,7 @@ if [[ "${PV}" = *9999* ]]; then
EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="amd64 x86"
fi
LICENSE="GPL-3+ MPL-2.0"
@@ -32,7 +32,7 @@ DEPEND="
>=dev-qt/qtprintsupport-5.5:5
>=dev-qt/qtwidgets-5.5:5
>=dev-qt/qtxml-5.5:5
- >=x11-libs/qscintilla-2.8.10:=
+ >=x11-libs/qscintilla-2.8.10:=[qt5(+)]
sqlcipher? ( dev-db/sqlcipher )
"
diff --git a/dev-db/sqliteman/metadata.xml b/dev-db/sqliteman/metadata.xml
index 4c234b878d14..17c382ef902c 100644
--- a/dev-db/sqliteman/metadata.xml
+++ b/dev-db/sqliteman/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>qt@gentoo.org</email>
- <name>Gentoo Qt Project</name>
- </maintainer>
+ <!-- maintainer-needed -->
<upstream>
<remote-id type="sourceforge">sqliteman</remote-id>
</upstream>
diff --git a/dev-db/sqliteman/sqliteman-1.2.2-r5.ebuild b/dev-db/sqliteman/sqliteman-1.2.2-r6.ebuild
index 655184f548cf..77737c5e6e79 100644
--- a/dev-db/sqliteman/sqliteman-1.2.2-r5.ebuild
+++ b/dev-db/sqliteman/sqliteman-1.2.2-r6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ inherit cmake flag-o-matic xdg
DESCRIPTION="Powerful GUI manager for the Sqlite3 database"
HOMEPAGE="https://sourceforge.net/projects/sqliteman/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
@@ -19,7 +19,7 @@ RDEPEND="
dev-qt/qtgui:5
dev-qt/qtsql:5[sqlite]
dev-qt/qtwidgets:5
- >=x11-libs/qscintilla-2.10.3:="
+ >=x11-libs/qscintilla-2.10.3:=[qt5(+)]"
DEPEND="${RDEPEND}"
PATCHES=(
diff --git a/dev-db/sqlmap/Manifest b/dev-db/sqlmap/Manifest
index bc5f568e1e7b..99a8a73ad737 100644
--- a/dev-db/sqlmap/Manifest
+++ b/dev-db/sqlmap/Manifest
@@ -1,2 +1,3 @@
-DIST sqlmap-1.7.9.gh.tar.gz 7214293 BLAKE2B 45ec0a5e0bf2d2f53a9232ca80f592a2a62b195e3dcd6913fdd343afcc097345cd160d7c39571a7abfe25f3772bbfdb1b4e915e6c0b3f599f86ad2eb201f1ab0 SHA512 0a2aa310b9e1d51cb296be87df5d7c87bdf9daa3a61151ff3a2bca9d58bd2c369c7fa8dfad134d23a00cc034a8c8cd9ff2a326e8883ecad43457604762b42242
-DIST sqlmap-1.8.gh.tar.gz 7216213 BLAKE2B 0a9f43880badec75d5915950a98b1aac12a465b00216e0d01ed3ce0cb23882639d656430932b32d067ab7df693e0bbb67c35e076ac016e48a7ef2d940d0208eb SHA512 80e1555ae0f581c5cc76f41eb8a26e346f675069149010d7267abc3cc59f04ae9d35a72e417c6e28ff6d9c389d04e65dde1240079620a70d733e1873c0ed7450
+DIST sqlmap-1.8.2.gh.tar.gz 7216681 BLAKE2B 9e74c1c2a916f5aefebb8a249e3d7201fdc234f84585f37f82b052117c30c47e06d91b789f9c1de3053e52ee9297941bbd8a3ecc2ebdc2298bebcd5aaba6b30a SHA512 ec49243b9d34bc100ca197022e9397dd84e05459ca9cffe15303fef113a477080ed7bfacc51ed638a2fe0a475ab4b1ca1e930d4a124617dd44219080cf6d999b
+DIST sqlmap-1.8.5.gh.tar.gz 7245377 BLAKE2B 449a6eb42bfef68fa3a0d3ed56f67dbb1b1dbcaccd5170d7bd3b3cd4e06d992b0255564574de2920ce15db39e547ba9388aee3c9be05da8b507a8ca751493743 SHA512 ac11fdf7a3d3d3771bb56fb64def231a48efa2dc8e6122de4ad89c2c0ea4177059b44b0d83503d7c114f59fbb4b43e876f195e72c6afd3de32b09bed0a97f1ec
+DIST sqlmap-1.8.6.gh.tar.gz 7245375 BLAKE2B 7223e87ddb682c05e9d76cbb4407790c62146e005335ad45aec65a7445f56cd0e5ebc25a853bc199c44f2e7c98823040afca0b60da7ad5a30b7ffe0791704265 SHA512 d709b2885b19d4b69dab1f76bacdb2d07fe1f29cf24f221a7004387a296d399f934c6f3281ead45ed0e4901fd2924eda9c4202898e6a1aa69c6c5212ab0e6f30
diff --git a/dev-db/sqlmap/sqlmap-1.8.ebuild b/dev-db/sqlmap/sqlmap-1.8.2.ebuild
index caaad5bf9d92..caaad5bf9d92 100644
--- a/dev-db/sqlmap/sqlmap-1.8.ebuild
+++ b/dev-db/sqlmap/sqlmap-1.8.2.ebuild
diff --git a/dev-db/sqlmap/sqlmap-1.7.9.ebuild b/dev-db/sqlmap/sqlmap-1.8.5.ebuild
index cee7e3a24228..caaad5bf9d92 100644
--- a/dev-db/sqlmap/sqlmap-1.7.9.ebuild
+++ b/dev-db/sqlmap/sqlmap-1.8.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-db/sqlmap/sqlmap-1.8.6.ebuild b/dev-db/sqlmap/sqlmap-1.8.6.ebuild
new file mode 100644
index 000000000000..e3d99c9eb231
--- /dev/null
+++ b/dev-db/sqlmap/sqlmap-1.8.6.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="sqlite"
+
+inherit bash-completion-r1 python-single-r1 wrapper
+
+DESCRIPTION="An automatic SQL injection and database takeover tool"
+HOMEPAGE="https://sqlmap.org/"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/sqlmapproject/sqlmap"
+else
+ SRC_URI="https://github.com/sqlmapproject/sqlmap/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+# sqlmap (GPL-2+)
+# ansitrm (BSD)
+# beautifulsoup (BSD)
+# bottle (MIT)
+# chardet (LGPL-2.1+)
+# clientform (BSD)
+# colorama (BSD)
+# fcrypt (BSD-2)
+# identitywaf (MIT)
+# keepalive (LGPL-2.1+)
+# magic (MIT)
+# multipartpost (LGPL-2.1+)
+# ordereddict (MIT)
+# prettyprint (BSD-2)
+# pydes (public-domain)
+# six (MIT)
+# socks (BSD)
+# termcolor (BSD)
+# wininetpton (public-domain)
+LICENSE="BSD BSD-2 GPL-2+ LGPL-2.1+ MIT public-domain"
+SLOT="0"
+
+RDEPEND="${PYTHON_DEPS}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DOCS=( doc/ README.md )
+
+src_install () {
+ einstalldocs
+
+ insinto /usr/share/${PN}/
+ doins -r *
+ python_optimize "${ED}"/usr/share/${PN}
+
+ make_wrapper ${PN} \
+ "${EPYTHON} ${EPREFIX}/usr/share/${PN}/sqlmap.py"
+
+ newbashcomp "${FILESDIR}"/sqlmap.bash-completion sqlmap
+}
diff --git a/dev-db/timescaledb/Manifest b/dev-db/timescaledb/Manifest
index 17a938cd4464..b01d17c0fd1d 100644
--- a/dev-db/timescaledb/Manifest
+++ b/dev-db/timescaledb/Manifest
@@ -1,2 +1,3 @@
-DIST timescaledb-2.14.0.tar.gz 7316149 BLAKE2B d646e20d56ced87f3b95a7a58ed30bcbeec571b1042b64c2fef4f8521248db2142f54cb45d2afbbeb902e451823615fde1bb0259b421350928c146634db9c4d5 SHA512 75a66a51de313fa1beb4a576181888dbe742ffa0325b5813b5b12749c9fc97705eaa030186e424a360ee20745226768a679632182c079117586c5e4a5c108236
DIST timescaledb-2.14.2.tar.gz 7319288 BLAKE2B aa6d56939a4647f9276743cabece77c33760e7f9d451b90aaa03c9391fcfad94afcd315b65c0c589c7188073884bf7ab65f9c796e35f634b8704f334ffa4ac34 SHA512 5a7ab4df5d89b83d423be5d6770098ab0303b22e29166afd3ab91ac2199571df20e33ec9f40bfa90ddf44829571fe696f311d81d27b46d569f2d75e75970e4f9
+DIST timescaledb-2.15.2.tar.gz 7440309 BLAKE2B eedec0a989ed216704d14b840ed2113e335dd5594a74f4c20e3aa369dade97f0566d777484758bb7e270720155b2b20a029e6922fb3a141a1346f7d68df2777c SHA512 956f828a282638945037a5c7a8eaf39a1698de5e40ab89b8a60af5a4e5585fdf17eeeafc34e90f03df4a13bbe95466245babb09845a2020f65c77183fccce78e
+DIST timescaledb-2.15.3.tar.gz 7441097 BLAKE2B 35d6edb31be79045ab8b8b409e4fcd28acac261f96be946dfa079bc544890391a6fe1f4695b0c88c8d56aca674563b4f347bb1f5519923b38aeb992e4a527f1c SHA512 c259bea088a03286a392812b23eda05ba7e5c714f9b52cd25b39ea9a280c5147e43d13a71027c43a5029df03e021a0022feb1ae311baae577ec3c56f1d7dfcae
diff --git a/dev-db/timescaledb/timescaledb-2.14.2.ebuild b/dev-db/timescaledb/timescaledb-2.14.2.ebuild
index ec3d2f7794de..e19ac7ef1ca5 100644
--- a/dev-db/timescaledb/timescaledb-2.14.2.ebuild
+++ b/dev-db/timescaledb/timescaledb-2.14.2.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( 13 14 15 16 )
POSTGRES_USEDEP="ssl"
diff --git a/dev-db/timescaledb/timescaledb-2.14.0.ebuild b/dev-db/timescaledb/timescaledb-2.15.2.ebuild
index ec3d2f7794de..e19ac7ef1ca5 100644
--- a/dev-db/timescaledb/timescaledb-2.14.0.ebuild
+++ b/dev-db/timescaledb/timescaledb-2.15.2.ebuild
@@ -1,7 +1,7 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
POSTGRES_COMPAT=( 13 14 15 16 )
POSTGRES_USEDEP="ssl"
diff --git a/dev-db/timescaledb/timescaledb-2.15.3.ebuild b/dev-db/timescaledb/timescaledb-2.15.3.ebuild
new file mode 100644
index 000000000000..e19ac7ef1ca5
--- /dev/null
+++ b/dev-db/timescaledb/timescaledb-2.15.3.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+POSTGRES_COMPAT=( 13 14 15 16 )
+POSTGRES_USEDEP="ssl"
+
+inherit postgres-multi cmake
+
+DESCRIPTION="Open-source time-series SQL database"
+HOMEPAGE="https://www.timescale.com/"
+SRC_URI="https://github.com/timescale/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+IUSE="proprietary-extensions"
+LICENSE="POSTGRESQL Apache-2.0 proprietary-extensions? ( timescale )"
+
+KEYWORDS="~amd64"
+
+SLOT=0
+
+RESTRICT="test"
+
+DEPEND="${POSTGRES_DEP}"
+RDEPEND="${DEPEND}"
+
+CMAKE_IN_SOURCE_BUILD=yes
+CMAKE_BUILD_TYPE="RelWithDebInfo"
+BUILD_DIR=${WORKDIR}/${P}
+
+src_prepare() {
+ postgres-multi_src_prepare
+ postgres-multi_foreach cmake_src_prepare
+}
+
+timescale_configure() {
+ local CMAKE_USE_DIR=$BUILD_DIR
+ local mycmakeargs=( "-DPG_CONFIG=/usr/bin/pg_config${MULTIBUILD_VARIANT}" "-DREGRESS_CHECKS=OFF" )
+
+ # licensing is tied to features, this useflag disables the non-apache2 licensed bits
+ if ! use proprietary-extensions ; then
+ mycmakeargs+=("-DAPACHE_ONLY=ON")
+ fi
+ cmake_src_configure
+}
+
+src_configure() {
+ postgres-multi_foreach timescale_configure
+}
+
+timescale_src_compile() {
+ local CMAKE_USE_DIR=$BUILD_DIR
+ cmake_src_compile
+}
+
+src_compile() {
+ postgres-multi_foreach timescale_src_compile
+}
+
+timescale_src_install() {
+ local CMAKE_USE_DIR=$BUILD_DIR
+ cmake_src_install
+}
+
+src_install() {
+ postgres-multi_foreach timescale_src_install
+}
diff --git a/dev-db/tinycdb/Manifest b/dev-db/tinycdb/Manifest
index 302ac45b9888..bac11328a7d4 100644
--- a/dev-db/tinycdb/Manifest
+++ b/dev-db/tinycdb/Manifest
@@ -1,2 +1 @@
-DIST tinycdb-0.78.tar.gz 36754 BLAKE2B 41f4256840645acd28296c5473087c7cf4c026f068310375b3c305430c030b1c946f53fd3e09967d77b592ba84e7e56518fdb18e54d1e0f5e7dd552a1664a0ec SHA512 8930086b8e7fddcd4dbd3354c5f5ee05171df68fde1cc222b6c402430042b6e761efbad7e5fa8de18e1d36390f1526cc3e605c5086fe1c363ba1df6c03201553
DIST tinycdb-0.81.tar.gz 31901 BLAKE2B 6b5b1167bd7e58a02b9a3a1ff2d58adb0e522ef65a13384051d9a037358ed7586f7d567e543099adec6322f9c60d38525fed586488510215bf72d12a60c67684 SHA512 56d0422700835d7b0460c32c41e6d5f30b8b833cefea775eb7f2b5592d744942c1109eac1501421b02f196d15e551111bb2accc71f2fd32ef4b8d658c635340e
diff --git a/dev-db/tinycdb/tinycdb-0.78.ebuild b/dev-db/tinycdb/tinycdb-0.78.ebuild
deleted file mode 100644
index 501f95371b5a..000000000000
--- a/dev-db/tinycdb/tinycdb-0.78.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit toolchain-funcs
-
-DESCRIPTION="A very fast and simple package for creating and reading constant data bases"
-HOMEPAGE="https://www.corpit.ru/mjt/tinycdb.html"
-SRC_URI="https://www.corpit.ru/mjt/${PN}/${P}.tar.gz"
-
-LICENSE="public-domain"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~hppa ~ia64 ~mips ppc ~riscv x86"
-IUSE="static-libs"
-RESTRICT="test"
-
-RDEPEND="!dev-db/cdb"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-gentoo.patch
- "${FILESDIR}"/${PN}-uclibc.patch
-)
-
-src_prepare() {
- default
-
- sed -i "/^libdir/s:/lib:/$(get_libdir):" Makefile
-}
-
-src_compile() {
- local targets="shared"
- use static-libs && targets+=" staticlib piclib"
-
- emake \
- CC="$(tc-getCC)" \
- CFLAGS="${CFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
- ${targets}
-}
-
-src_install() {
- local targets="install install-sharedlib"
- use static-libs && targets+=" install-piclib"
-
- emake \
- prefix="${EPREFIX}"/usr \
- mandir="${EPREFIX}"/usr/share/man \
- DESTDIR="${D}" \
- ${targets}
- einstalldocs
-}
diff --git a/dev-db/tinycdb/tinycdb-0.81.ebuild b/dev-db/tinycdb/tinycdb-0.81.ebuild
index fc9fe8b1d16b..3a96152e3268 100644
--- a/dev-db/tinycdb/tinycdb-0.81.ebuild
+++ b/dev-db/tinycdb/tinycdb-0.81.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://www.corpit.ru/mjt/${PN}/${P}.tar.gz"
LICENSE="public-domain"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~mips ~ppc ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~hppa ~ia64 ~mips ppc ~riscv x86"
IUSE="static-libs"
RESTRICT="test"
diff --git a/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild b/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild
index ce7497550023..76d13402b5b4 100644
--- a/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild
+++ b/dev-db/wxsqlite3/wxsqlite3-3.2.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -8,7 +8,7 @@ inherit wxwidgets
DESCRIPTION="C++ wrapper around the public domain SQLite 3.x database"
HOMEPAGE="http://wxcode.sourceforge.net/components/wxsqlite3/"
-SRC_URI="mirror://sourceforge/wxcode/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/wxcode/${P}.tar.gz"
LICENSE="wxWinLL-3"
SLOT="0"