diff --git a/databases/Makefile b/databases/Makefile index 52bf7ba758e6..50083c93131a 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -1,1168 +1,1169 @@ COMMENT = Databases and related software SUBDIR += R-cran-DBI SUBDIR += R-cran-RMariaDB SUBDIR += R-cran-RMySQL SUBDIR += R-cran-RPostgreSQL SUBDIR += R-cran-RPostgres SUBDIR += R-cran-RSQLite SUBDIR += R-cran-cachem SUBDIR += R-cran-dbplyr SUBDIR += R-cran-dtplyr SUBDIR += R-cran-fastmap SUBDIR += R-cran-nanoparquet SUBDIR += R-cran-pool SUBDIR += R-cran-sqldf SUBDIR += WWWdb SUBDIR += adminer SUBDIR += adodb5 SUBDIR += akonadi SUBDIR += apache-commons-dbutils SUBDIR += arrow SUBDIR += arrow-glib SUBDIR += autobackupmysql SUBDIR += automysqlbackup SUBDIR += bbdb SUBDIR += beansdb SUBDIR += buzhug SUBDIR += c3p0 SUBDIR += cargo-pgrx SUBDIR += cassandra-cpp-driver SUBDIR += cassandra3 SUBDIR += cassandra4 + SUBDIR += cassandra5 SUBDIR += casstcl SUBDIR += cayley SUBDIR += cdb SUBDIR += cego SUBDIR += cegobridge SUBDIR += clickhouse SUBDIR += clickhouse-cpp SUBDIR += closql SUBDIR += couchdb3 SUBDIR += courier-authlib-mysql SUBDIR += courier-authlib-pgsql SUBDIR += courier-authlib-sqlite SUBDIR += courier-authlib-userdb SUBDIR += courier-authlib-usergdbm SUBDIR += cppdb SUBDIR += credis SUBDIR += cutelyst-asql SUBDIR += dalmp SUBDIR += datafusion-cli SUBDIR += db SUBDIR += db18 SUBDIR += db5 SUBDIR += dbeaver SUBDIR += dbf SUBDIR += dbh SUBDIR += dbixx SUBDIR += dbow SUBDIR += dbtool SUBDIR += dbview SUBDIR += diesel SUBDIR += dlmdb SUBDIR += duckdb SUBDIR += ejdb SUBDIR += emacsql SUBDIR += evolution-data-server SUBDIR += fastdb SUBDIR += firebird30-client SUBDIR += firebird30-server SUBDIR += firebird40-client SUBDIR += firebird40-server SUBDIR += fmptools SUBDIR += fortytwo-bdb SUBDIR += frece SUBDIR += freetds SUBDIR += freetds-devel SUBDIR += frontbase-jdbc SUBDIR += futuresql SUBDIR += galera26 SUBDIR += gdbm SUBDIR += geoserver-mysql-plugin SUBDIR += gigabase SUBDIR += gmdb2 SUBDIR += go-carbon SUBDIR += go-pgweb SUBDIR += gobang SUBDIR += gom SUBDIR += goose SUBDIR += gqlplus SUBDIR += grass8 SUBDIR += greptimedb SUBDIR += hashtypes SUBDIR += heidisql SUBDIR += hiredis SUBDIR += hsqldb SUBDIR += immudb SUBDIR += imposm3 SUBDIR += influxdb SUBDIR += influxdb2-cli SUBDIR += innotop SUBDIR += iowow SUBDIR += ip4r SUBDIR += ipa_sdb SUBDIR += iplike SUBDIR += jdb SUBDIR += jetbrains-datagrip SUBDIR += jlog SUBDIR += jrobin SUBDIR += jrrd SUBDIR += kbibtex SUBDIR += kdb SUBDIR += kexi SUBDIR += keydb SUBDIR += kuzu SUBDIR += kyotocabinet SUBDIR += kyototycoon SUBDIR += ldb25 SUBDIR += ldb28 SUBDIR += ldb29 SUBDIR += leo_center SUBDIR += leofs SUBDIR += leveldb SUBDIR += libcouchbase SUBDIR += libdbi SUBDIR += libdbi-drivers SUBDIR += libdrizzle SUBDIR += libdrizzle-redux SUBDIR += libgda5 SUBDIR += libgda5-jdbc SUBDIR += libgda5-ldap SUBDIR += libgda5-mysql SUBDIR += libgda5-postgresql SUBDIR += libgda5-ui SUBDIR += libgda6 SUBDIR += libhsclient SUBDIR += libiodbc SUBDIR += libmemcache SUBDIR += libmemcached SUBDIR += libmongocrypt SUBDIR += libmswstr SUBDIR += libnvpair SUBDIR += libodbc++ SUBDIR += libpbl SUBDIR += libpg_query SUBDIR += libsdb SUBDIR += libvalkey SUBDIR += libzdb SUBDIR += linux-c7-sqlite3 SUBDIR += linux-c7-unixODBC SUBDIR += linux-oracle-instantclient-basic SUBDIR += linux-oracle-instantclient-sdk SUBDIR += linux-rl9-libtracker-sparql SUBDIR += liquibase SUBDIR += litestream SUBDIR += lmdb SUBDIR += lua-lsqlite3 SUBDIR += lua-pgsql SUBDIR += lua-resty-redis SUBDIR += lua-xapian SUBDIR += luadbi SUBDIR += luasql-firebird SUBDIR += luasql-mysql SUBDIR += luasql-odbc SUBDIR += luasql-postgres SUBDIR += luasql-sqlite3 SUBDIR += mantis SUBDIR += mariadb-connector-c SUBDIR += mariadb-connector-odbc SUBDIR += mariadb-java-client SUBDIR += mariadb1011-client SUBDIR += mariadb1011-server SUBDIR += mariadb106-client SUBDIR += mariadb106-server SUBDIR += mariadb114-client SUBDIR += mariadb114-server SUBDIR += mariadb118-client SUBDIR += mariadb118-server SUBDIR += mdbtools SUBDIR += mdbx SUBDIR += mdcached SUBDIR += memcached SUBDIR += metabase SUBDIR += mongodb-tools SUBDIR += mongodb70 SUBDIR += mongodb80 SUBDIR += mongosh SUBDIR += mroonga SUBDIR += mtop SUBDIR += mydumper SUBDIR += mysql++ SUBDIR += mysql-connector-c++ SUBDIR += mysql-connector-j SUBDIR += mysql-connector-java51 SUBDIR += mysql-connector-odbc SUBDIR += mysql2pgsql SUBDIR += mysql80-client SUBDIR += mysql80-server SUBDIR += mysql84-client SUBDIR += mysql84-server SUBDIR += mysql96-client SUBDIR += mysql96-server SUBDIR += mysqlbackup SUBDIR += mysqldump-secure SUBDIR += mysqlreport SUBDIR += mysqlsla SUBDIR += mysqltcl SUBDIR += mysqltuner SUBDIR += mytop SUBDIR += nagios-check_mongodb SUBDIR += nagios-check_postgres_replication SUBDIR += nagios-check_redis SUBDIR += namazu2 SUBDIR += nanodbc SUBDIR += neo4j SUBDIR += ocaml-dbm SUBDIR += ocaml-mysql SUBDIR += ocaml-sqlite3 SUBDIR += octosql SUBDIR += odbc-cpp-wrapper SUBDIR += ods2sql SUBDIR += opendbviewer SUBDIR += opendbx SUBDIR += openvoxdb-terminus8 SUBDIR += openvoxdb8 SUBDIR += ora2pg SUBDIR += oracle8-client SUBDIR += p5-Amazon-SimpleDB SUBDIR += p5-Amon2-DBI SUBDIR += p5-AnyEvent-BDB SUBDIR += p5-AnyEvent-CouchDB SUBDIR += p5-AnyEvent-DBD-Pg SUBDIR += p5-AnyEvent-Memcached SUBDIR += p5-AnyEvent-Redis SUBDIR += p5-App-Sqitch SUBDIR += p5-AsciiDB-TagFile SUBDIR += p5-BDB SUBDIR += p5-BSON SUBDIR += p5-BSON-XS SUBDIR += p5-BerkeleyDB SUBDIR += p5-Bucardo SUBDIR += p5-CDB_File SUBDIR += p5-CDB_File-Generator SUBDIR += p5-CGI-Session-Driver-memcached SUBDIR += p5-CHI-Driver-Memcached SUBDIR += p5-CHI-Driver-Redis SUBDIR += p5-CHI-Driver-TokyoTyrant SUBDIR += p5-Cache-BDB SUBDIR += p5-Cache-Memcached SUBDIR += p5-Cache-Memcached-Fast SUBDIR += p5-Cache-Memcached-Managed SUBDIR += p5-Cache-Memcached-XS SUBDIR += p5-Cache-Memcached-libmemcached SUBDIR += p5-Class-DBI SUBDIR += p5-Class-DBI-AbstractSearch SUBDIR += p5-Class-DBI-AsForm SUBDIR += p5-Class-DBI-AutoLoader SUBDIR += p5-Class-DBI-BaseDSN SUBDIR += p5-Class-DBI-DATA-Schema SUBDIR += p5-Class-DBI-DDL SUBDIR += p5-Class-DBI-FromCGI SUBDIR += p5-Class-DBI-LazyInflate SUBDIR += p5-Class-DBI-Loader SUBDIR += p5-Class-DBI-Loader-Relationship SUBDIR += p5-Class-DBI-Oracle SUBDIR += p5-Class-DBI-Pager SUBDIR += p5-Class-DBI-Pg SUBDIR += p5-Class-DBI-Plugin SUBDIR += p5-Class-DBI-Plugin-AbstractCount SUBDIR += p5-Class-DBI-Plugin-DeepAbstractSearch SUBDIR += p5-Class-DBI-Plugin-Iterator SUBDIR += p5-Class-DBI-Plugin-Pager SUBDIR += p5-Class-DBI-Plugin-RetrieveAll SUBDIR += p5-Class-DBI-Plugin-Senna SUBDIR += p5-Class-DBI-Plugin-Type SUBDIR += p5-Class-DBI-Replication SUBDIR += p5-Class-DBI-SAK SUBDIR += p5-Class-DBI-SQLite SUBDIR += p5-Class-DBI-Sweet SUBDIR += p5-Class-DBI-ToSax SUBDIR += p5-Class-DBI-Untaint SUBDIR += p5-Class-DBI-mysql SUBDIR += p5-Class-Inflate SUBDIR += p5-CouchDB-View SUBDIR += p5-DBD-AnyData SUBDIR += p5-DBD-CSV SUBDIR += p5-DBD-Excel SUBDIR += p5-DBD-Google SUBDIR += p5-DBD-InterBase SUBDIR += p5-DBD-LDAP SUBDIR += p5-DBD-MariaDB SUBDIR += p5-DBD-Mock SUBDIR += p5-DBD-Multi SUBDIR += p5-DBD-ODBC SUBDIR += p5-DBD-Oracle SUBDIR += p5-DBD-Pg SUBDIR += p5-DBD-PgLite SUBDIR += p5-DBD-PgPP SUBDIR += p5-DBD-SQLite SUBDIR += p5-DBD-SQLite2 SUBDIR += p5-DBD-Sybase SUBDIR += p5-DBD-XBase SUBDIR += p5-DBD-cego SUBDIR += p5-DBD-mysql SUBDIR += p5-DBD-mysql4 SUBDIR += p5-DBI SUBDIR += p5-DBI-Shell SUBDIR += p5-DBICx-Deploy SUBDIR += p5-DBICx-MapMaker SUBDIR += p5-DBICx-Sugar SUBDIR += p5-DBICx-TestDatabase SUBDIR += p5-DBICx-TxnInsert SUBDIR += p5-DBIWrapper SUBDIR += p5-DBIx-Abstract SUBDIR += p5-DBIx-Admin-CreateTable SUBDIR += p5-DBIx-Admin-DSNManager SUBDIR += p5-DBIx-Admin-TableInfo SUBDIR += p5-DBIx-AnyDBD SUBDIR += p5-DBIx-Browse SUBDIR += p5-DBIx-Class SUBDIR += p5-DBIx-Class-AsFdat SUBDIR += p5-DBIx-Class-AuditLog SUBDIR += p5-DBIx-Class-BitField SUBDIR += p5-DBIx-Class-Candy SUBDIR += p5-DBIx-Class-Cursor-Cached SUBDIR += p5-DBIx-Class-CustomPrefetch SUBDIR += p5-DBIx-Class-DateTime-Epoch SUBDIR += p5-DBIx-Class-DeploymentHandler SUBDIR += p5-DBIx-Class-DigestColumns SUBDIR += p5-DBIx-Class-DynamicDefault SUBDIR += p5-DBIx-Class-DynamicSubclass SUBDIR += p5-DBIx-Class-EncodeColumns SUBDIR += p5-DBIx-Class-EncodedColumn SUBDIR += p5-DBIx-Class-Fixtures SUBDIR += p5-DBIx-Class-FrozenColumns SUBDIR += p5-DBIx-Class-Helpers SUBDIR += p5-DBIx-Class-InflateColumn-Authen-Passphrase SUBDIR += p5-DBIx-Class-InflateColumn-FS SUBDIR += p5-DBIx-Class-InflateColumn-IP SUBDIR += p5-DBIx-Class-InflateColumn-Serializer SUBDIR += p5-DBIx-Class-IntrospectableM2M SUBDIR += p5-DBIx-Class-Loader SUBDIR += p5-DBIx-Class-Migration SUBDIR += p5-DBIx-Class-MooseColumns SUBDIR += p5-DBIx-Class-PassphraseColumn SUBDIR += p5-DBIx-Class-QueryLog SUBDIR += p5-DBIx-Class-QueryProfiler SUBDIR += p5-DBIx-Class-ResultSet-HashRef SUBDIR += p5-DBIx-Class-ResultSet-RecursiveUpdate SUBDIR += p5-DBIx-Class-Schema-Config SUBDIR += p5-DBIx-Class-Schema-Loader SUBDIR += p5-DBIx-Class-Schema-PopulateMore SUBDIR += p5-DBIx-Class-Storage-TxnEndHook SUBDIR += p5-DBIx-Class-TimeStamp SUBDIR += p5-DBIx-Class-Tree SUBDIR += p5-DBIx-Class-Tree-NestedSet SUBDIR += p5-DBIx-Class-UUIDColumns SUBDIR += p5-DBIx-Class-VirtualColumns SUBDIR += p5-DBIx-Class-WebForm SUBDIR += p5-DBIx-Connector SUBDIR += p5-DBIx-ContextualFetch SUBDIR += p5-DBIx-Custom SUBDIR += p5-DBIx-DBHResolver SUBDIR += p5-DBIx-DBSchema SUBDIR += p5-DBIx-DataSource SUBDIR += p5-DBIx-DisconnectAll SUBDIR += p5-DBIx-Dump SUBDIR += p5-DBIx-HA SUBDIR += p5-DBIx-Handler SUBDIR += p5-DBIx-Inspector SUBDIR += p5-DBIx-Introspector SUBDIR += p5-DBIx-Lite SUBDIR += p5-DBIx-Log4perl SUBDIR += p5-DBIx-MySQLSequence SUBDIR += p5-DBIx-NoSQL SUBDIR += p5-DBIx-Password SUBDIR += p5-DBIx-Perlish SUBDIR += p5-DBIx-QueryLog SUBDIR += p5-DBIx-QuickDB SUBDIR += p5-DBIx-Recordset SUBDIR += p5-DBIx-RetryOverDisconnects SUBDIR += p5-DBIx-SQLEngine SUBDIR += p5-DBIx-SQLite-Simple SUBDIR += p5-DBIx-Safe SUBDIR += p5-DBIx-SearchBuilder SUBDIR += p5-DBIx-Sequence SUBDIR += p5-DBIx-Simple SUBDIR += p5-DBIx-Skinny SUBDIR += p5-DBIx-Skinny-InflateColumn-DateTime SUBDIR += p5-DBIx-Skinny-Mixin-DBHResolver SUBDIR += p5-DBIx-Skinny-Pager SUBDIR += p5-DBIx-Skinny-Schema-Loader SUBDIR += p5-DBIx-Sunny SUBDIR += p5-DBIx-TableHash SUBDIR += p5-DBIx-Tracer SUBDIR += p5-DBIx-TransactionManager SUBDIR += p5-DBIx-Tree SUBDIR += p5-DBIx-VersionedDDL SUBDIR += p5-DBIx-Wrapper SUBDIR += p5-DBIx-XHTML_Table SUBDIR += p5-DBIx-XML_RDB SUBDIR += p5-DBM-Deep SUBDIR += p5-DR-Tarantool SUBDIR += p5-DWH_File SUBDIR += p5-Dancer-Plugin-DBIC SUBDIR += p5-Dancer-Plugin-Database SUBDIR += p5-Dancer-Plugin-Database-Core SUBDIR += p5-Dancer-Plugin-Redis SUBDIR += p5-Dancer-Session-Memcached SUBDIR += p5-Dancer2-Plugin-DBIC SUBDIR += p5-Dancer2-Plugin-Database SUBDIR += p5-Dancer2-Session-DBIC SUBDIR += p5-Data-Page SUBDIR += p5-Data-Pageset SUBDIR += p5-Exception-Class-DBI SUBDIR += p5-File-Locate SUBDIR += p5-GDBM SUBDIR += p5-Genezzo SUBDIR += p5-GitDDL SUBDIR += p5-GitDDL-Migrator SUBDIR += p5-GraphViz-DBI SUBDIR += p5-HTML-FormHandler-Model-DBIC SUBDIR += p5-Ima-DBI SUBDIR += p5-Interchange6-Schema SUBDIR += p5-Iterator-DBI SUBDIR += p5-Jifty-DBI SUBDIR += p5-KyotoCabinet SUBDIR += p5-LMDB_File SUBDIR += p5-MLDBM SUBDIR += p5-MLDBM-Sync SUBDIR += p5-MR-Tarantool SUBDIR += p5-Mango SUBDIR += p5-Memcached-libmemcached SUBDIR += p5-Metadata SUBDIR += p5-Mojo-Pg SUBDIR += p5-MongoDB SUBDIR += p5-Mongoose SUBDIR += p5-MySQL-Diff SUBDIR += p5-Net-Async-CassandraCQL SUBDIR += p5-ORLite SUBDIR += p5-ORLite-Migrate SUBDIR += p5-Oryx SUBDIR += p5-POE-Component-DBIAgent SUBDIR += p5-POE-Component-EasyDBI SUBDIR += p5-POE-Component-LaDBI SUBDIR += p5-POE-Component-RRDTool SUBDIR += p5-Pg SUBDIR += p5-PostgreSQL-PLPerl-Call SUBDIR += p5-PostgreSQL-PLPerl-Trace SUBDIR += p5-Prophet SUBDIR += p5-Protocol-CassandraCQL SUBDIR += p5-RRD-Simple SUBDIR += p5-Redis SUBDIR += p5-Redis-Fast SUBDIR += p5-Redis-JobQueue SUBDIR += p5-Redis-RateLimit SUBDIR += p5-Redis-hiredis SUBDIR += p5-RedisDB SUBDIR += p5-RedisDB-Parser SUBDIR += p5-Relations SUBDIR += p5-Relations-Query SUBDIR += p5-ResourcePool-Resource-DBI SUBDIR += p5-Rose-DB SUBDIR += p5-Rose-DB-Object SUBDIR += p5-Rose-DBx-Object-MoreHelpers SUBDIR += p5-Rose-DBx-Object-Renderer SUBDIR += p5-SQL-Abstract SUBDIR += p5-SQL-Abstract-Classic SUBDIR += p5-SQL-Abstract-Limit SUBDIR += p5-SQL-Abstract-More SUBDIR += p5-SQL-Abstract-Pg SUBDIR += p5-SQL-Abstract-Plugin-InsertMulti SUBDIR += p5-SQL-Interp SUBDIR += p5-SQL-Maker SUBDIR += p5-SQL-NamedPlaceholder SUBDIR += p5-SQL-ReservedWords SUBDIR += p5-SQL-SplitStatement SUBDIR += p5-SQL-Statement SUBDIR += p5-SQL-Translator SUBDIR += p5-SQLite-Work SUBDIR += p5-Scope-Container-DBI SUBDIR += p5-Search-InvertedIndex SUBDIR += p5-Search-Namazu SUBDIR += p5-Search-Xapian SUBDIR += p5-Store-CouchDB SUBDIR += p5-T2 SUBDIR += p5-Tangram SUBDIR += p5-Template-DBI SUBDIR += p5-Teng SUBDIR += p5-Test-Cukes SUBDIR += p5-Test-Database SUBDIR += p5-Test-DatabaseRow SUBDIR += p5-Test-Fixture-DBI SUBDIR += p5-Test-mysqld SUBDIR += p5-Test-postgresql SUBDIR += p5-Text-Query-SQL SUBDIR += p5-Text-xSV SUBDIR += p5-Tie-DBI SUBDIR += p5-Tie-LevelDB SUBDIR += p5-Time-Piece-MySQL SUBDIR += p5-TokyoCabinet SUBDIR += p5-Xapian SUBDIR += p5-mysql-genocide SUBDIR += p5-tokyotyrant SUBDIR += pear-DB SUBDIR += pear-DBA SUBDIR += pear-DBA_Relational SUBDIR += pear-DB_DataObject SUBDIR += pear-DB_DataObject_FormBuilder SUBDIR += pear-DB_Pager SUBDIR += pear-DB_QueryTool SUBDIR += pear-DB_Sqlite_Tools SUBDIR += pear-DB_Table SUBDIR += pear-DB_ldap SUBDIR += pear-DB_ldap2 SUBDIR += pear-Horde_Db SUBDIR += pear-Horde_HashTable SUBDIR += pear-Horde_Imsp SUBDIR += pear-Horde_Memcache SUBDIR += pear-Horde_Mongo SUBDIR += pear-MDB SUBDIR += pear-MDB2 SUBDIR += pear-MDB2_Driver_mysqli SUBDIR += pear-MDB2_Driver_pgsql SUBDIR += pear-MDB2_Schema SUBDIR += pear-MDB_QueryTool SUBDIR += pear-Structures_DataGrid_DataSource_Array SUBDIR += pear-Structures_DataGrid_DataSource_CSV SUBDIR += pear-Structures_DataGrid_DataSource_DB SUBDIR += pear-Structures_DataGrid_DataSource_PDO SUBDIR += pear-XML_Query2XML SUBDIR += pecl-couchbase SUBDIR += pecl-leveldb SUBDIR += pecl-memcache SUBDIR += pecl-memcached SUBDIR += pecl-mongodb SUBDIR += pecl-redis SUBDIR += pecl-rrd SUBDIR += percona-orchestrator SUBDIR += percona-toolkit SUBDIR += pg-gvm SUBDIR += pg-safeupdate SUBDIR += pg.el SUBDIR += pgFormatter SUBDIR += pg_activity SUBDIR += pg_auto_failover SUBDIR += pg_auto_failover-devel SUBDIR += pg_citus SUBDIR += pg_cron SUBDIR += pg_dirtyread SUBDIR += pg_ed25519 SUBDIR += pg_filedump SUBDIR += pg_hashids SUBDIR += pg_incremental SUBDIR += pg_net SUBDIR += pg_partman SUBDIR += pg_qualstats SUBDIR += pg_repack SUBDIR += pg_search SUBDIR += pg_similarity SUBDIR += pg_stat_kcache SUBDIR += pg_store_plans SUBDIR += pg_textsearch SUBDIR += pg_tileserv SUBDIR += pgaccess SUBDIR += pgactive SUBDIR += pgadmin3 SUBDIR += pgagroal SUBDIR += pgbackrest SUBDIR += pgbadger SUBDIR += pgbarman SUBDIR += pgbouncer SUBDIR += pgdbf SUBDIR += pgjwt SUBDIR += pgloader3 SUBDIR += pglogical SUBDIR += pgmetrics SUBDIR += pgmodeler SUBDIR += pgpool-II-43 SUBDIR += pgpool-II-44 SUBDIR += pgpool-II-45 SUBDIR += pgpool-II-46 SUBDIR += pgpool-II-47 SUBDIR += pgreplay SUBDIR += pgroonga SUBDIR += pgrouting SUBDIR += pgsanity SUBDIR += pgschema SUBDIR += pgsql-http SUBDIR += pgtcl SUBDIR += pgtop SUBDIR += pguri SUBDIR += pgvector SUBDIR += php-tarantool SUBDIR += php-xapian SUBDIR += php82-dba SUBDIR += php82-mysqli SUBDIR += php82-odbc SUBDIR += php82-pdo SUBDIR += php82-pdo_dblib SUBDIR += php82-pdo_firebird SUBDIR += php82-pdo_mysql SUBDIR += php82-pdo_odbc SUBDIR += php82-pdo_pgsql SUBDIR += php82-pdo_sqlite SUBDIR += php82-pgsql SUBDIR += php82-sqlite3 SUBDIR += php83-dba SUBDIR += php83-mysqli SUBDIR += php83-odbc SUBDIR += php83-pdo SUBDIR += php83-pdo_dblib SUBDIR += php83-pdo_firebird SUBDIR += php83-pdo_mysql SUBDIR += php83-pdo_odbc SUBDIR += php83-pdo_pgsql SUBDIR += php83-pdo_sqlite SUBDIR += php83-pgsql SUBDIR += php83-sqlite3 SUBDIR += php84-dba SUBDIR += php84-mysqli SUBDIR += php84-odbc SUBDIR += php84-pdo SUBDIR += php84-pdo_dblib SUBDIR += php84-pdo_firebird SUBDIR += php84-pdo_mysql SUBDIR += php84-pdo_odbc SUBDIR += php84-pdo_pgsql SUBDIR += php84-pdo_sqlite SUBDIR += php84-pgsql SUBDIR += php84-sqlite3 SUBDIR += php85-dba SUBDIR += php85-mysqli SUBDIR += php85-odbc SUBDIR += php85-pdo SUBDIR += php85-pdo_dblib SUBDIR += php85-pdo_firebird SUBDIR += php85-pdo_mysql SUBDIR += php85-pdo_odbc SUBDIR += php85-pdo_pgsql SUBDIR += php85-pdo_sqlite SUBDIR += php85-pgsql SUBDIR += php85-sqlite3 SUBDIR += phpliteadmin SUBDIR += phpminiadmin SUBDIR += phpmyadmin SUBDIR += phpmyadmin5 SUBDIR += phppgadmin SUBDIR += pldebugger SUBDIR += plpgsql_check SUBDIR += pointcloud SUBDIR += postgis-jdbc SUBDIR += postgis33 SUBDIR += postgis34 SUBDIR += postgis35 SUBDIR += postgis36 SUBDIR += postgresql-idn SUBDIR += postgresql-jdbc SUBDIR += postgresql-libpgeasy SUBDIR += postgresql-libpqxx SUBDIR += postgresql-mysql_fdw SUBDIR += postgresql-odbc SUBDIR += postgresql-ogr_fdw SUBDIR += postgresql-orafce SUBDIR += postgresql-pgaudit SUBDIR += postgresql-plproxy SUBDIR += postgresql-plv8js SUBDIR += postgresql-prefix SUBDIR += postgresql-promscale SUBDIR += postgresql-relay SUBDIR += postgresql-repmgr SUBDIR += postgresql-rum SUBDIR += postgresql-semver SUBDIR += postgresql-tds_fdw SUBDIR += postgresql-wal2json SUBDIR += postgresql-zhparser SUBDIR += postgresql14-client SUBDIR += postgresql14-contrib SUBDIR += postgresql14-docs SUBDIR += postgresql14-pgtcl SUBDIR += postgresql14-plperl SUBDIR += postgresql14-plpython SUBDIR += postgresql14-pltcl SUBDIR += postgresql14-server SUBDIR += postgresql15-client SUBDIR += postgresql15-contrib SUBDIR += postgresql15-docs SUBDIR += postgresql15-pgtcl SUBDIR += postgresql15-plperl SUBDIR += postgresql15-plpython SUBDIR += postgresql15-pltcl SUBDIR += postgresql15-server SUBDIR += postgresql16-client SUBDIR += postgresql16-contrib SUBDIR += postgresql16-docs SUBDIR += postgresql16-pgtcl SUBDIR += postgresql16-plperl SUBDIR += postgresql16-plpython SUBDIR += postgresql16-pltcl SUBDIR += postgresql16-server SUBDIR += postgresql17-client SUBDIR += postgresql17-contrib SUBDIR += postgresql17-docs SUBDIR += postgresql17-pgtcl SUBDIR += postgresql17-plperl SUBDIR += postgresql17-plpython SUBDIR += postgresql17-pltcl SUBDIR += postgresql17-server SUBDIR += postgresql18-client SUBDIR += postgresql18-contrib SUBDIR += postgresql18-docs SUBDIR += postgresql18-pgtcl SUBDIR += postgresql18-plperl SUBDIR += postgresql18-plpython SUBDIR += postgresql18-pltcl SUBDIR += postgresql18-server SUBDIR += powa-archivist SUBDIR += powa-web SUBDIR += powerarchitect SUBDIR += prisma-engines SUBDIR += proftpd-mod_sql_mysql SUBDIR += proftpd-mod_sql_odbc SUBDIR += proftpd-mod_sql_postgres SUBDIR += proftpd-mod_sql_sqlite SUBDIR += proftpd-mod_sql_tds SUBDIR += prometheus-postgres-exporter SUBDIR += prometheus-postgresql-adapter SUBDIR += proxysql SUBDIR += pspg SUBDIR += puppetdb-terminus8 SUBDIR += puppetdb8 SUBDIR += puredb SUBDIR += pxlib SUBDIR += pxtools SUBDIR += py-Elixir SUBDIR += py-PyGreSQL SUBDIR += py-Pyrseas SUBDIR += py-aesqlapius SUBDIR += py-agate-sql SUBDIR += py-aiodataloader SUBDIR += py-aiomcache SUBDIR += py-aiomysql SUBDIR += py-aiopg SUBDIR += py-aioredis SUBDIR += py-aiosql SUBDIR += py-aiosqlite SUBDIR += py-alembic SUBDIR += py-anysqlite SUBDIR += py-apache-arrow SUBDIR += py-apsw SUBDIR += py-asyncmy SUBDIR += py-asyncpg SUBDIR += py-berkeleydb SUBDIR += py-cassandra-driver SUBDIR += py-couchdb SUBDIR += py-cymysql SUBDIR += py-databases SUBDIR += py-databricks-sql-connector SUBDIR += py-datafusion SUBDIR += py-dbf SUBDIR += py-dbt-core SUBDIR += py-dbt-duckdb SUBDIR += py-dbt-semantic-interfaces SUBDIR += py-dbt-snowflake SUBDIR += py-dbutils SUBDIR += py-duckdb SUBDIR += py-duckdb_engine SUBDIR += py-fakeredis SUBDIR += py-fastparquet SUBDIR += py-fdb SUBDIR += py-firebirdsql SUBDIR += py-flask-pymongo SUBDIR += py-flask-sqlalchemy SUBDIR += py-flask-sqlalchemy30 SUBDIR += py-gdbm SUBDIR += py-geoalchemy2 SUBDIR += py-harlequin SUBDIR += py-harlequin-mysql SUBDIR += py-harlequin-postgres SUBDIR += py-hiredis SUBDIR += py-influxdb SUBDIR += py-kyotocabinet SUBDIR += py-leveldb SUBDIR += py-litecli SUBDIR += py-lmdb SUBDIR += py-mariadb SUBDIR += py-marshmallow-sqlalchemy SUBDIR += py-minidb SUBDIR += py-mongoengine SUBDIR += py-motor SUBDIR += py-mycli SUBDIR += py-mysql-connector-python SUBDIR += py-mysqlclient SUBDIR += py-ormar SUBDIR += py-oxyde SUBDIR += py-oxyde-core SUBDIR += py-partd SUBDIR += py-peewee SUBDIR += py-peewee_migrate SUBDIR += py-pg8000 SUBDIR += py-pgcli SUBDIR += py-pgdbconn SUBDIR += py-pglast SUBDIR += py-pglite SUBDIR += py-pgmigrate SUBDIR += py-pgspecial SUBDIR += py-pickledb SUBDIR += py-pickleshare SUBDIR += py-pony SUBDIR += py-postgresql SUBDIR += py-powa-collector SUBDIR += py-prisma SUBDIR += py-psycogreen SUBDIR += py-psycopg SUBDIR += py-psycopg-c SUBDIR += py-psycopg-pool SUBDIR += py-psycopg2 SUBDIR += py-psycopg2cffi SUBDIR += py-pum SUBDIR += py-pyarrow SUBDIR += py-pylibmc SUBDIR += py-pymemcache SUBDIR += py-pymongo SUBDIR += py-pymssql SUBDIR += py-pymysql SUBDIR += py-pyodbc SUBDIR += py-pypuppetdb SUBDIR += py-python-arango SUBDIR += py-python-binary-memcached SUBDIR += py-python-memcached SUBDIR += py-python-sql SUBDIR += py-python-swiftclient SUBDIR += py-qdrant-client SUBDIR += py-queries SUBDIR += py-rb SUBDIR += py-redis SUBDIR += py-redis2 SUBDIR += py-redis5 SUBDIR += py-redis6 SUBDIR += py-redisvl SUBDIR += py-redshift-connector SUBDIR += py-rrdtool SUBDIR += py-schemachange SUBDIR += py-sispy SUBDIR += py-snowddl SUBDIR += py-snowflake-connector-python SUBDIR += py-south SUBDIR += py-sqlalchemy-json SUBDIR += py-sqlalchemy-migrate SUBDIR += py-sqlalchemy-utils SUBDIR += py-sqlalchemy10 SUBDIR += py-sqlalchemy14 SUBDIR += py-sqlalchemy20 SUBDIR += py-sqlcipher3 SUBDIR += py-sqlframe SUBDIR += py-sqlglot SUBDIR += py-sqlglot-mypy SUBDIR += py-sqlglotc SUBDIR += py-sqlite-anyio SUBDIR += py-sqlite-fts4 SUBDIR += py-sqlite-migrate SUBDIR += py-sqlite-utils SUBDIR += py-sqlite3 SUBDIR += py-sqlmodel SUBDIR += py-sqlobject SUBDIR += py-sqloxide SUBDIR += py-sqlparse SUBDIR += py-sqlrelay SUBDIR += py-squall-sql SUBDIR += py-tableschema SUBDIR += py-tarantool SUBDIR += py-tiledb SUBDIR += py-txredisapi SUBDIR += py-unqlite SUBDIR += py-valkey SUBDIR += py-varstack SUBDIR += py-whisper SUBDIR += py-xapian SUBDIR += py-xrootd SUBDIR += py-zodbpickle SUBDIR += pythoncego SUBDIR += qdbm SUBDIR += qdbm-plus SUBDIR += qdrant SUBDIR += qof SUBDIR += qt5-sql SUBDIR += qt5-sqldrivers-mysql SUBDIR += qt5-sqldrivers-odbc SUBDIR += qt5-sqldrivers-pgsql SUBDIR += qt5-sqldrivers-sqlite2 SUBDIR += qt5-sqldrivers-sqlite3 SUBDIR += qt5-sqldrivers-tds SUBDIR += qt6-base_sqldriver SUBDIR += quake SUBDIR += rainfrog SUBDIR += recutils SUBDIR += redis SUBDIR += redis-devel SUBDIR += redis62 SUBDIR += redis72 SUBDIR += redis74 SUBDIR += redis80 SUBDIR += redis82 SUBDIR += redis84 SUBDIR += redis_exporter SUBDIR += redisjson SUBDIR += retcl SUBDIR += rocksdb SUBDIR += rocksdb-jni SUBDIR += rocksdb9 SUBDIR += rqlite SUBDIR += rrdman SUBDIR += rrdmerge SUBDIR += rrdtool SUBDIR += ruby-bdb SUBDIR += ruby-qdbm SUBDIR += ruby-tokyocabinet SUBDIR += ruby-xapian SUBDIR += rubygem-active_model_serializers SUBDIR += rubygem-active_record_query_trace SUBDIR += rubygem-activemodel-gitlab SUBDIR += rubygem-activemodel-serializers-xml SUBDIR += rubygem-activemodel4 SUBDIR += rubygem-activemodel5 SUBDIR += rubygem-activemodel50 SUBDIR += rubygem-activemodel52 SUBDIR += rubygem-activemodel60 SUBDIR += rubygem-activemodel61 SUBDIR += rubygem-activemodel70 SUBDIR += rubygem-activemodel71 SUBDIR += rubygem-activemodel72 SUBDIR += rubygem-activemodel80 SUBDIR += rubygem-activemodel81 SUBDIR += rubygem-activerecord-explain-analyze SUBDIR += rubygem-activerecord-gitlab SUBDIR += rubygem-activerecord-import SUBDIR += rubygem-activerecord-jdbc-adapter SUBDIR += rubygem-activerecord-jdbcmysql-adapter SUBDIR += rubygem-activerecord-session_store SUBDIR += rubygem-activerecord-trilogy-adapter SUBDIR += rubygem-activerecord4 SUBDIR += rubygem-activerecord5 SUBDIR += rubygem-activerecord50 SUBDIR += rubygem-activerecord52 SUBDIR += rubygem-activerecord60 SUBDIR += rubygem-activerecord61 SUBDIR += rubygem-activerecord70 SUBDIR += rubygem-activerecord71 SUBDIR += rubygem-activerecord72 SUBDIR += rubygem-activerecord80 SUBDIR += rubygem-activerecord81 SUBDIR += rubygem-after_commit_queue SUBDIR += rubygem-amalgalite SUBDIR += rubygem-arel SUBDIR += rubygem-arel-helpers SUBDIR += rubygem-arel6 SUBDIR += rubygem-arel7 SUBDIR += rubygem-arel8 SUBDIR += rubygem-attr_json SUBDIR += rubygem-awesome_nested_set SUBDIR += rubygem-bdb1 SUBDIR += rubygem-bigrecord SUBDIR += rubygem-brpoplpush-redis_script SUBDIR += rubygem-click_house-client SUBDIR += rubygem-couchrest SUBDIR += rubygem-dalli SUBDIR += rubygem-data_objects SUBDIR += rubygem-datamapper SUBDIR += rubygem-dbd-mysql SUBDIR += rubygem-dbd-pg SUBDIR += rubygem-dbd-sqlite3 SUBDIR += rubygem-dbf SUBDIR += rubygem-dbf4 SUBDIR += rubygem-dbi SUBDIR += rubygem-dbm SUBDIR += rubygem-dm-aggregates SUBDIR += rubygem-dm-chunked_query SUBDIR += rubygem-dm-constraints SUBDIR += rubygem-dm-core SUBDIR += rubygem-dm-do-adapter SUBDIR += rubygem-dm-migrations SUBDIR += rubygem-dm-mysql-adapter SUBDIR += rubygem-dm-observer SUBDIR += rubygem-dm-pager SUBDIR += rubygem-dm-paperclip SUBDIR += rubygem-dm-postgres-adapter SUBDIR += rubygem-dm-serializer SUBDIR += rubygem-dm-timestamps SUBDIR += rubygem-dm-transactions SUBDIR += rubygem-dm-types SUBDIR += rubygem-dm-validations SUBDIR += rubygem-do_mysql SUBDIR += rubygem-do_postgres SUBDIR += rubygem-do_sqlite3 SUBDIR += rubygem-em-redis-unified SUBDIR += rubygem-fabrication SUBDIR += rubygem-familia SUBDIR += rubygem-flipper-active_record SUBDIR += rubygem-flipper-active_record-rails-gitlab SUBDIR += rubygem-gdbm SUBDIR += rubygem-globalid SUBDIR += rubygem-globalid-rails-gitlab SUBDIR += rubygem-globalid-rails5 SUBDIR += rubygem-globalid-rails50 SUBDIR += rubygem-globalid-rails52 SUBDIR += rubygem-globalid-rails60 SUBDIR += rubygem-globalid-rails61 SUBDIR += rubygem-globalid-rails70 SUBDIR += rubygem-globalid-rails71 SUBDIR += rubygem-globalid-rails72 SUBDIR += rubygem-globalid-rails80 SUBDIR += rubygem-globalid-rails81 SUBDIR += rubygem-google-cloud-datastore SUBDIR += rubygem-google-cloud-datastore-v1 SUBDIR += rubygem-google-cloud-firestore SUBDIR += rubygem-google-cloud-firestore-v1 SUBDIR += rubygem-her SUBDIR += rubygem-hiredis SUBDIR += rubygem-influxdb SUBDIR += rubygem-jdbc-mysql SUBDIR += rubygem-leo_manager_client SUBDIR += rubygem-lmdb SUBDIR += rubygem-marginalia SUBDIR += rubygem-mario-redis-lock SUBDIR += rubygem-memcache SUBDIR += rubygem-memcache-client SUBDIR += rubygem-microscope SUBDIR += rubygem-mysql SUBDIR += rubygem-mysql2 SUBDIR += rubygem-neighbor SUBDIR += rubygem-openid-redis-store SUBDIR += rubygem-paranoia SUBDIR += rubygem-pg SUBDIR += rubygem-pg-gitlab SUBDIR += rubygem-pg_array_parser SUBDIR += rubygem-pg_query SUBDIR += rubygem-pghero SUBDIR += rubygem-pghero-rails5 SUBDIR += rubygem-pghero-rails50 SUBDIR += rubygem-pl-puppetdb-ruby SUBDIR += rubygem-postgres_ext SUBDIR += rubygem-puppetdb_cli SUBDIR += rubygem-rbase SUBDIR += rubygem-red-arrow SUBDIR += rubygem-red-arrow-dataset SUBDIR += rubygem-red-arrow-flight SUBDIR += rubygem-red-arrow-flight-sql SUBDIR += rubygem-red-gandiva SUBDIR += rubygem-red-parquet SUBDIR += rubygem-redis SUBDIR += rubygem-redis-actionpack SUBDIR += rubygem-redis-actionpack-rails-gitlab SUBDIR += rubygem-redis-actionpack-rails5 SUBDIR += rubygem-redis-actionpack-rails50 SUBDIR += rubygem-redis-actionpack-rails52 SUBDIR += rubygem-redis-actionpack-rails60 SUBDIR += rubygem-redis-actionpack-rails61 SUBDIR += rubygem-redis-actionpack-rails70 SUBDIR += rubygem-redis-client SUBDIR += rubygem-redis-cluster-client SUBDIR += rubygem-redis-clustering SUBDIR += rubygem-redis-clustering-gitlab SUBDIR += rubygem-redis-gitlab SUBDIR += rubygem-redis-namespace SUBDIR += rubygem-redis-namespace-gitlab SUBDIR += rubygem-redis-namespace110 SUBDIR += rubygem-ruby-mysql SUBDIR += rubygem-sdbm SUBDIR += rubygem-seed-fu SUBDIR += rubygem-seed-fu-gitlab SUBDIR += rubygem-solid_cable SUBDIR += rubygem-solid_cable-rails72 SUBDIR += rubygem-solid_cable-rails80 SUBDIR += rubygem-solid_cache SUBDIR += rubygem-solid_cache-rails72 SUBDIR += rubygem-solid_cache-rails80 SUBDIR += rubygem-solid_queue SUBDIR += rubygem-solid_queue-rails72 SUBDIR += rubygem-solid_queue-rails80 SUBDIR += rubygem-sqlite3 SUBDIR += rubygem-sqlite3-ruby SUBDIR += rubygem-sqlite31 SUBDIR += rubygem-state_machines-activemodel SUBDIR += rubygem-state_machines-activemodel-gitlab SUBDIR += rubygem-state_machines-activerecord SUBDIR += rubygem-state_machines-activerecord-gitlab SUBDIR += rubygem-state_machines-activerecord08 SUBDIR += rubygem-tarantool SUBDIR += rubygem-trilogy SUBDIR += sabiql SUBDIR += sequeler SUBDIR += sfcgal SUBDIR += sharedance SUBDIR += slony1v2 SUBDIR += soci SUBDIR += spatialite SUBDIR += spatialite-tools SUBDIR += spatialite_gui SUBDIR += speedtables SUBDIR += sq SUBDIR += sql-workbench SUBDIR += sqlcached SUBDIR += sqlcipher SUBDIR += sqlclient SUBDIR += sqldeveloper SUBDIR += sqlite-ext-miscfuncs SUBDIR += sqlite-ext-pcre SUBDIR += sqlite-ext-regexp SUBDIR += sqlite-ext-spellfix SUBDIR += sqlite2 SUBDIR += sqlite3 SUBDIR += sqlitebrowser SUBDIR += sqliteconvert SUBDIR += sqlitecpp SUBDIR += sqlitemanager SUBDIR += sqliteodbc SUBDIR += sqlitestudio SUBDIR += sqlrelay SUBDIR += sqlx-cli SUBDIR += sqsh SUBDIR += squirrel-sql SUBDIR += surrealdb SUBDIR += symphytum SUBDIR += tarantool SUBDIR += tarantool-c SUBDIR += tcl-Mysql SUBDIR += tcl-lmdb SUBDIR += tcl-sqlite3 SUBDIR += tdb SUBDIR += tdb1 SUBDIR += tdb1410 SUBDIR += tdb1413 SUBDIR += tdbc SUBDIR += tile38 SUBDIR += tiledb SUBDIR += timescaledb SUBDIR += timescaledb-backup SUBDIR += timescaledb-parallel-copy SUBDIR += timescaledb-tune SUBDIR += tinycdb SUBDIR += tkrzw SUBDIR += tkrzw-python SUBDIR += tokyocabinet SUBDIR += tokyotyrant SUBDIR += tredis SUBDIR += trilogy SUBDIR += tuning-primer SUBDIR += twemproxy SUBDIR += unixODBC SUBDIR += usql SUBDIR += valkey SUBDIR += valkey8 SUBDIR += vchord SUBDIR += vfront SUBDIR += virtualpg SUBDIR += weaviate SUBDIR += webdis SUBDIR += wfb2sql SUBDIR += xapian-bindings SUBDIR += xapian-core SUBDIR += xapian-core14 SUBDIR += xls2txt SUBDIR += xrootd SUBDIR += xtrabackup80 SUBDIR += xtrabackup84 SUBDIR += zodb .include diff --git a/databases/cassandra5/Makefile b/databases/cassandra5/Makefile new file mode 100644 index 000000000000..7af4c9afebd7 --- /dev/null +++ b/databases/cassandra5/Makefile @@ -0,0 +1,199 @@ +PORTNAME= cassandra +DISTVERSION= 5.0.8 +CATEGORIES= databases java +MASTER_SITES= https://archive.apache.org/dist/${PORTNAME}/${DISTVERSION}/:apache \ + https://repo1.maven.org/maven2/com/github/luben/zstd-jni/1.5.6-7/:maven +PKGNAMESUFFIX= 5 +DISTNAME= apache-${PORTNAME}-${DISTVERSION}-src +DISTFILES= ${DISTNAME}.tar.gz:apache \ + ${ZSTD_DISTFILE} \ + ${MAVEN_CACHE_FILE}:prefetch +DIST_SUBDIR= ${PORTNAME} +EXTRACT_ONLY= ${DISTNAME}.tar.gz \ + ${MAVEN_CACHE_FILE} + +MAINTAINER= language.devel@gmail.com +COMMENT= Highly scalable distributed database +WWW= https://cassandra.apache.org/ + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE.txt + +FETCH_DEPENDS= ${JAVA}:${JAVA_PORT} \ + ant:devel/apache-ant +RUN_DEPENDS= snappyjava>=0:archivers/snappy-java \ + netty>0:java/netty + +USES= cpe java:ant python shebangfix +USE_RC_SUBR= cassandra +SHEBANG_FILES= bin/cqlsh.py pylib/setup.py +TEST_TARGET= test +CPE_VENDOR= apache + +CONFLICTS= cassandra[34] + +JAVA_VERSION= 11 17 +JAVA_VENDOR= openjdk + +FETCH_ENV+= JAVA_HOME=${JAVA_HOME} +SUB_LIST= JAVA_HOME=${JAVA_HOME} + +USERS= cassandra +GROUPS= cassandra + +DATADIR= ${JAVASHAREDIR}/${PORTNAME} +BUILD_DIST_DIR= ${WRKSRC}/build/dist +REPO_DIR= ${WRKDIR}/repository + +CONFIG_FILES= cassandra-env.sh \ + cassandra-jaas.config \ + cassandra-rackdc.properties \ + cassandra.yaml \ + cassandra_latest.yaml \ + commitlog_archiving.properties \ + hotspot_compiler \ + jvm11-clients.options \ + jvm11-server.options \ + jvm17-clients.options \ + jvm17-server.options \ + jvm-clients.options \ + jvm-server.options \ + logback-tools.xml \ + logback.xml + +SCRIPT_FILES= cassandra \ + nodetool \ + sstableloader \ + sstablescrub \ + sstableupgrade \ + sstableutil \ + sstableverify + +ZSTDJNI_VERSION= ${MASTER_SITES:M*\:maven:H:T} +PLIST_SUB= DISTVERSION=${DISTVERSION} ZSTDJNI_VERSION=${ZSTDJNI_VERSION} + +OPTIONS_DEFINE= SIGAR DOCS +OPTIONS_SUB= yes + +SIGAR_DESC= Use SIGAR to collect system information +SIGAR_RUN_DEPENDS= java-sigar>=1.6.4:java/sigar + +DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} + +PORTDOCS= * + +MAVEN_CACHE_FILE= apache-${PORTNAME}-${DISTVERSION}-repo.tar.xz + +post-patch: + @${REINPLACE_CMD} -e 's|for interpreter in |for interpreter in ${PYTHON_CMD} |' ${WRKSRC}/bin/cqlsh + +post-patch-DOCS-on: + @${REINPLACE_CMD} -e 's|python3|${PYTHON_CMD}|' ${WRKSRC}/doc/Makefile + +do-build: + @${DO_NADA} # Do nothing: Prevent USE_ANT from running a default build target. + +do-build-DOCS-on: + cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} CASSANDRA_LOG_DIR=${WRKDIR}/gen-doc-log ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocal.repository=${REPO_DIR} ${USEJDK11} -Dpycmd=${PYTHON_CMD} -Dpyver=${PYTHON_VER} freebsd-stage-doc + +do-build-DOCS-off: + cd ${WRKSRC} && ${MAKE_ENV} ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocal.repository=${REPO_DIR} ${USEJDK11} freebsd-stage + +post-build: +.for f in ${SCRIPT_FILES} + @${REINPLACE_CMD} -e 's|/usr/share/cassandra|${DATADIR}/bin|' ${BUILD_DIST_DIR}/bin/${f} +.endfor + @${REINPLACE_CMD} -e 's|`dirname "$$0"`/..|${DATADIR}|' ${BUILD_DIST_DIR}/bin/cassandra.in.sh + @${REINPLACE_CMD} -e 's|$$CASSANDRA_HOME/lib/sigar-bin|${JAVAJARDIR}|' ${BUILD_DIST_DIR}/bin/cassandra.in.sh + @${REINPLACE_CMD} -e 's|$$CASSANDRA_HOME/lib/sigar-bin|${JAVAJARDIR}|' ${BUILD_DIST_DIR}/conf/cassandra-env.sh + @${REINPLACE_CMD} -e 's|$$CASSANDRA_HOME/conf|${ETCDIR}|' ${BUILD_DIST_DIR}/bin/cassandra.in.sh +.for f in ${CONFIG_FILES} + @${MV} ${BUILD_DIST_DIR}/conf/${f} ${BUILD_DIST_DIR}/conf/${f}.sample +.endfor + @${MV} ${BUILD_DIST_DIR}/conf/cassandra-topology.properties.example ${BUILD_DIST_DIR}/conf/cassandra-topology.properties.sample + @${RM} ${BUILD_DIST_DIR}/lib/licenses/sigar* + @${RMDIR} ${BUILD_DIST_DIR}/lib/sigar-bin + @${RM} ${BUILD_DIST_DIR}/lib/zstd-jni* + @${RM} ${BUILD_DIST_DIR}/lib/licenses/zstd-jni* + +do-install: + ${MKDIR} ${STAGEDIR}${DATADIR} +.for f in CHANGES LICENSE NEWS NOTICE + cd ${BUILD_DIST_DIR} && ${INSTALL_DATA} ${f}.txt ${STAGEDIR}${DATADIR}/ +.endfor +.for d in lib pylib tools + cd ${BUILD_DIST_DIR} && ${COPYTREE_SHARE} ${d} ${STAGEDIR}${DATADIR}/ "! -path '*/bin/*'" +.endfor + ${MKDIR} ${STAGEDIR}${ETCDIR} + cd ${BUILD_DIST_DIR}/conf && ${COPYTREE_SHARE} . ${STAGEDIR}${ETCDIR}/ + cd ${BUILD_DIST_DIR} && ${COPYTREE_BIN} bin ${STAGEDIR}${DATADIR} + cd ${BUILD_DIST_DIR} && ${INSTALL_DATA} bin/cassandra.in.sh ${STAGEDIR}${DATADIR}/bin/ + cd ${BUILD_DIST_DIR} && ${COPYTREE_BIN} tools/bin ${STAGEDIR}${DATADIR}/ + cd ${BUILD_DIST_DIR} && ${INSTALL_DATA} tools/bin/cassandra.in.sh ${STAGEDIR}${DATADIR}/tools/bin/ + cd ${BUILD_DIST_DIR} && ${INSTALL_DATA} tools/lib/fqltool.jar ${STAGEDIR}${DATADIR}/tools/lib/ + cd ${BUILD_DIST_DIR} && ${INSTALL_DATA} tools/lib/stress.jar ${STAGEDIR}${DATADIR}/tools/lib/ +.for f in ${SCRIPT_FILES} + ${RLN} ${STAGEDIR}${DATADIR}/bin/${f} ${STAGEDIR}${PREFIX}/bin/${f} +.endfor + ${RLN} ${STAGEDIR}${DATADIR}/bin/cqlsh ${STAGEDIR}${PREFIX}/bin/cqlsh + ${LN} -s ${JAVAJARDIR}/snappy-java.jar ${STAGEDIR}${DATADIR}/lib/snappy-java.jar + +do-test: + @cd ${WRKSRC} && ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocal.repository=${REPO_DIR} ${USEJDK11} -Dstagedlib=${STAGEDIR}${DATADIR}/lib test + +.include + +pre-fetch: +.if !exists(${DISTDIR}/${DIST_SUBDIR}/${MAVEN_CACHE_FILE}) + ${MKDIR} ${DISTDIR}/${DIST_SUBDIR} + ${MKDIR} ${WRKSRC}/.build + ${MKDIR} ${WRKSRC}/src/java + ${CP} -r ${FILESDIR}/maven/test ${WRKSRC}/ + ${CP} ${FILESDIR}/maven/build.* ${WRKSRC}/ + ${CP} -r ${FILESDIR}/maven/.build ${WRKSRC}/ + cd ${WRKSRC} && ${FETCH_ENV} ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocal.repository=${REPO_DIR} ${USEJDK11} resolver-dist-lib + cd ${REPO_DIR} && ${FIND} . -type f -name "*.repositories" -a -exec ${SED} -i '' -e '2s,.*,Mon Aug 08 20:40:04 CEST 2022,' {} + + cd ${WRKDIR} && ${MTREE_CMD} -cbnSp repository | ${MTREE_CMD} -C | ${SED} \ + -e 's:time=[0-9.]*:time=0.000000000:' \ + -e 's:\([gu]id\)=[0-9]*:\1=0:g' \ + -e 's:flags=.*:flags=none:' \ + -e 's:^\.:./repository:' \ + > maven-offline-cache.mtree + cd ${WRKDIR} && ${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/${MAVEN_CACHE_FILE} \ + @maven-offline-cache.mtree + ${SHA256} ${WRKDIR}/maven-offline-cache.mtree ${DISTDIR}/${DIST_SUBDIR}/${MAVEN_CACHE_FILE} +.endif + +.if ${JAVA_PORT_VERSION} == 11 +USEJDK11= -Duse.jdk11=true -Drat.skip=true +.endif + +.if ${ARCH} == amd64 +PLIST_SUB+= AMD64ONLY="" +.else +PLIST_SUB+= AMD64ONLY="@comment " +.endif + +.if ${ARCH} == amd64 +ZSTD_DISTFILE= zstd-jni-${MASTER_SITES:M*\:maven:H:T}-freebsd_${ARCH}.jar:maven +.else +ZSTD_DISTFILE= +.endif + +post-install: + ${LN} -s ${JAVAJARDIR}/netty.jar ${STAGEDIR}${DATADIR}/lib/netty.jar +.if ${ARCH} == amd64 + ${CP} ${DISTDIR}/${DIST_SUBDIR}/zstd-jni-${ZSTDJNI_VERSION}-freebsd_${ARCH}.jar ${STAGEDIR}${DATADIR}/lib/ +.endif + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} +.for d in doc javadoc + cd ${BUILD_DIST_DIR} && ${COPYTREE_SHARE} ${d} ${STAGEDIR}${DOCSDIR}/ +.endfor + +post-install-SIGAR-on: + ${LN} -s ${JAVAJARDIR}/sigar.jar ${STAGEDIR}${DATADIR}/lib/sigar.jar + +.include diff --git a/databases/cassandra5/distinfo b/databases/cassandra5/distinfo new file mode 100644 index 000000000000..8635b76112b8 --- /dev/null +++ b/databases/cassandra5/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1776391960 +SHA256 (cassandra/apache-cassandra-5.0.8-src.tar.gz) = d378d59b5f539dd69c4d3c284bb7e8c767dc255090b11acf3f4722e0833af24c +SIZE (cassandra/apache-cassandra-5.0.8-src.tar.gz) = 24857092 +SHA256 (cassandra/zstd-jni-1.5.6-7-freebsd_amd64.jar) = b50239f5e525d62ebc50398ed42a1473c83c3128f34c76755c3b59912123b9ef +SIZE (cassandra/zstd-jni-1.5.6-7-freebsd_amd64.jar) = 492759 +SHA256 (cassandra/apache-cassandra-5.0.8-repo.tar.xz) = 0a784de55b5fe2f3728b2b3bb564e8fffb833dd33e94c5f53e3f91c7480a36dc +SIZE (cassandra/apache-cassandra-5.0.8-repo.tar.xz) = 114267432 diff --git a/databases/cassandra5/files/cassandra.in b/databases/cassandra5/files/cassandra.in new file mode 100644 index 000000000000..9615fbe572f6 --- /dev/null +++ b/databases/cassandra5/files/cassandra.in @@ -0,0 +1,39 @@ +#!/bin/sh + +# PROVIDE: cassandra +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Be sure to configure full settings in %%ETCDIR%% prior to enabling daemon. +# +# Add the following lines to /etc/rc.conf or /etc/.conf.local to +# enable the Cassandra daemon: +# cassandra_enable: Set to "YES" to enable the daemon. +# cassandra_user: The user under which to run the daemon. +# Defaults to "cassandra". + +. /etc/rc.subr + +name=cassandra +rcvar=cassandra_enable +desc="Cassandra daemon" + +load_rc_config $name + +: ${cassandra_enable:=NO} +: ${cassandra_user:=cassandra} + +pidfile=/var/run/cassandra/cassandra.pid + +command=/usr/sbin/daemon +command_args="-frP ${pidfile} %%PREFIX%%/bin/cassandra -f" +start_precmd="${name}_prestart" + +cassandra_prestart() +{ + export JAVA_HOME=%%JAVA_HOME%% + install -d -o ${cassandra_user} /var/run/cassandra + install -d -o ${cassandra_user} /var/log/cassandra +} + +run_rc_command "$1" diff --git a/databases/cassandra5/files/maven/.build/build-bench.xml b/databases/cassandra5/files/maven/.build/build-bench.xml new file mode 100644 index 000000000000..b10fc644250e --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-bench.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/build-checkstyle.xml b/databases/cassandra5/files/maven/.build/build-checkstyle.xml new file mode 100644 index 000000000000..af5867e4aa9a --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-checkstyle.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/build-cqlsh.xml b/databases/cassandra5/files/maven/.build/build-cqlsh.xml new file mode 100644 index 000000000000..45e0e46a494d --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-cqlsh.xml @@ -0,0 +1,24 @@ + + + + + version = "${base.version}"${line.separator} + + diff --git a/databases/cassandra5/files/maven/.build/build-git.xml b/databases/cassandra5/files/maven/.build/build-git.xml new file mode 100644 index 000000000000..50db9be2bfe1 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-git.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + git.sha=${git.sha} + + + + + + + + + + Repository state is dirty + ${git.diffstat} + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/build-owasp.xml b/databases/cassandra5/files/maven/.build/build-owasp.xml new file mode 100644 index 000000000000..7ab160ffb986 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-owasp.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Please set the nvd.api.key property to your NVD API key. It is recommended to put that property into your + ~/.ant/build.properties file. You can get your API key from https://nvd.nist.gov/developers/request-an-api-key + + + + Since the NVD database is pretty large, you should consider storing it in some persistent location to reuse + it between builds. You can do that by setting the nvd.data.dir property to a directory of your choice, + such as ~/.cache/ant/owasp/database for Linux or ~/Library/Caches/Ant/owasp/database for MacOS. + Putting that property into your ~/.ant/build.properties file is recommended. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/build-rat.xml b/databases/cassandra5/files/maven/.build/build-rat.xml new file mode 100644 index 000000000000..7219e0cf8aa6 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-rat.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/build-resolver.xml b/databases/cassandra5/files/maven/.build/build-resolver.xml new file mode 100644 index 000000000000..09263d42aa6e --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-resolver.xml @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Downloading Resolver ANT Tasks... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/build-sonar.xml b/databases/cassandra5/files/maven/.build/build-sonar.xml new file mode 100644 index 000000000000..250191064c43 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/build-sonar.xml @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Downloading Sonar-Scanner CLI... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/cassandra-build-deps-template.xml b/databases/cassandra5/files/maven/.build/cassandra-build-deps-template.xml new file mode 100644 index 000000000000..cc1a25a8c1fc --- /dev/null +++ b/databases/cassandra5/files/maven/.build/cassandra-build-deps-template.xml @@ -0,0 +1,159 @@ + + + + 4.0.0 + + cassandra-parent + org.apache.cassandra + @version@ + @final.name@-parent.pom + + org.apache.cassandra + cassandra-build-deps + @version@ + + + org.assertj + assertj-core + + + junit + junit + + + commons-io + commons-io + + + org.mockito + mockito-core + + + org.mockito + mockito-inline + + + org.ow2.asm + asm + + + org.ow2.asm + asm-tree + + + org.ow2.asm + asm-commons + + + org.ow2.asm + asm-util + + + com.google.jimfs + jimfs + + + com.puppycrawl.tools + checkstyle + + + org.quicktheories + quicktheories + + + org.reflections + reflections + + + com.google.code.java-allocation-instrumenter + java-allocation-instrumenter + + + org.apache.cassandra + dtest-api + + + org.openjdk.jmh + jmh-core + + + org.openjdk.jmh + jmh-generator-annprocess + + + net.ju-n.compile-command-annotations + compile-command-annotations + + + org.apache.ant + ant-junit + + + org.apache.cassandra + harry-core + + + org.junit + junit-bom + pom + + + org.awaitility + awaitility + + + org.hamcrest + hamcrest + + + org.jacoco + org.jacoco.agent + + + org.jacoco + org.jacoco.ant + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + + + com.github.tomakehurst + wiremock-jre8 + + + de.jflex + jflex + + + com.carrotsearch.randomizedtesting + randomizedtesting-runner + + + org.bouncycastle + bcpkix-jdk18on + + + org.bouncycastle + bcprov-jdk18on + + + org.bouncycastle + bcutil-jdk18on + + + diff --git a/databases/cassandra5/files/maven/.build/cassandra-deps-template.xml b/databases/cassandra5/files/maven/.build/cassandra-deps-template.xml new file mode 100644 index 000000000000..cfbc5eddaea1 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/cassandra-deps-template.xml @@ -0,0 +1,380 @@ + + + + 4.0.0 + + org.apache.cassandra + cassandra-parent + @version@ + @final.name@-parent.pom + + cassandra-all + @version@ + Apache Cassandra + The Apache Cassandra Project develops a highly scalable second-generation distributed database, bringing together Dynamo's fully distributed design and Bigtable's ColumnFamily-based data model. + https://cassandra.apache.org + 2009 + + + The Apache Software License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + + + + scm:https://gitbox.apache.org/repos/asf/cassandra.git + scm:https://gitbox.apache.org/repos/asf/cassandra.git + https://gitbox.apache.org/repos/asf?p=cassandra.git + + + + org.xerial.snappy + snappy-java + + + at.yawk.lz4 + lz4-java + + + com.google.guava + guava + + + commons-cli + commons-cli + + + org.apache.commons + commons-lang3 + + + org.apache.commons + commons-math3 + + + org.antlr + antlr + + + org.antlr + ST4 + + + org.antlr + antlr-runtime + + + org.slf4j + slf4j-api + + + org.slf4j + log4j-over-slf4j + + + org.slf4j + jcl-over-slf4j + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + com.boundary + high-scale-lib + + + org.yaml + snakeyaml + + + org.mindrot + jbcrypt + + + io.airlift + airline + + + io.dropwizard.metrics + metrics-core + + + io.dropwizard.metrics + metrics-jvm + + + io.dropwizard.metrics + metrics-logback + + + com.clearspring.analytics + stream + + + ch.qos.logback + logback-core + + + ch.qos.logback + logback-classic + + + org.apache.cassandra + cassandra-driver-core + shaded + + + net.java.dev.jna + jna + + + com.github.jbellis + jamm + + + io.netty + netty-all + + + io.netty + netty-transport-native-epoll + + + io.netty + netty-transport-native-epoll + linux-x86_64 + + + io.netty + netty-transport-native-epoll + linux-aarch_64 + + + io.netty + netty-tcnative-boringssl-static + + + + + net.openhft + chronicle-queue + + + net.openhft + chronicle-core + + + net.openhft + chronicle-bytes + + + net.openhft + chronicle-wire + + + net.openhft + chronicle-threads + + + + net.openhft + posix + + + + net.java.dev.jna + jna-platform + + + + com.github.jnr + jnr-ffi + + + + com.github.jnr + jffi + + + + com.github.jnr + jffi + native + + + + com.github.jnr + jnr-constants + + + + net.openhft + affinity + + + + + org.fusesource + sigar + + + org.eclipse.jdt + ecj + + + org.caffinitas.ohc + ohc-core + + + org.caffinitas.ohc + ohc-core-j8 + + + com.github.ben-manes.caffeine + caffeine + + + org.jctools + jctools-core + + + org.ow2.asm + asm + + + com.carrotsearch + hppc + + + org.gridkit.jvmtool + sjk-cli + 0.14 + + + org.gridkit.jvmtool + sjk-core + + + org.gridkit.jvmtool + sjk-stacktrace + + + org.gridkit.jvmtool + mxdump + + + org.gridkit.lab + jvm-attach-api + + + com.beust + jcommander + + + org.gridkit.jvmtool + sjk-json + + + com.github.luben + zstd-jni + + + org.psjava + psjava + + + javax.inject + javax.inject + + + com.google.j2objc + j2objc-annotations + + + org.hdrhistogram + HdrHistogram + + + com.googlecode.concurrent-trees + concurrent-trees + + + com.google.code.findbugs + jsr305 + + + net.ju-n.compile-command-annotations + compile-command-annotations + + + org.jboss.byteman + byteman-install + + + org.jboss.byteman + byteman + + + org.jboss.byteman + byteman-submit + + + org.jboss.byteman + byteman-bmunit + + + com.github.seancfoley + ipaddress + + + ch.obermuhlner + big-math + + + org.agrona + agrona + + + org.apache.lucene + lucene-core + + + org.apache.lucene + lucene-analysis-common + + + io.github.jbellis + jvector + + + com.vdurmont + semver4j + + + diff --git a/databases/cassandra5/files/maven/.build/checkstyle.xml b/databases/cassandra5/files/maven/.build/checkstyle.xml new file mode 100644 index 000000000000..2ec5ecab1610 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/checkstyle.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/checkstyle_suppressions.xml b/databases/cassandra5/files/maven/.build/checkstyle_suppressions.xml new file mode 100644 index 000000000000..ed4d1443f7fc --- /dev/null +++ b/databases/cassandra5/files/maven/.build/checkstyle_suppressions.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/checkstyle_test.xml b/databases/cassandra5/files/maven/.build/checkstyle_test.xml new file mode 100644 index 000000000000..7d13836ad575 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/checkstyle_test.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/.build/generate-snyk-file b/databases/cassandra5/files/maven/.build/generate-snyk-file new file mode 100644 index 000000000000..095778c35b40 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/generate-snyk-file @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +Regenerates the toplevel .snyk file from the dependency-check-suppressions.xml found in this directory. +""" + +import re +import os + + +script_dir = os.path.dirname(os.path.abspath(__file__)) +with open(os.path.join(script_dir, "owasp/dependency-check-suppressions.xml"), "r", encoding="utf-8") as f: + xml_lines = [line.strip() for line in f.readlines()] + +snyk_data = {"ignore": {}} + +# Parse XML (keeping track of comments) +last_comment = None +i = 0 +while i < len(xml_lines): + # Detect XML comments (these contain the suppression reason) + if xml_lines[i].startswith(""): + last_comment = xml_lines[i][4:-3].strip() + + # Collect CVE suppressions + if "" in xml_lines[i]: + cve_ids = [] + packages = '' + i += 1 + while i < len(xml_lines): + if xml_lines[i].startswith(""): + last_comment = xml_lines[i][4:-3].strip() + if "" in xml_lines[i] and "" in xml_lines[i]: + cve_ids.append(xml_lines[i].strip().replace("", "").replace("", "").strip()) + if "" in xml_lines[i]: + packages = re.sub(r'|', '', xml_lines[i]).strip() + if "" in xml_lines[i]: + break + i += 1 + reason = f"{last_comment} -- {packages}" if last_comment else "Suppressed due to internal review, see project's .build/dependency-check-suppressions.xml" + + # Add suppressions + for cve_id in cve_ids: + snyk_data["ignore"][cve_id] = [{"reason": reason}] + + last_comment = None + else: + i += 1 + +with open(os.path.join(script_dir, "../.snyk"), "w") as snyk_file: + snyk_file.write("# Snyk (https://snyk.io) policy file, provides ignores for known false positives.\n") + snyk_file.write("# This file is autogenerated from .build/dependency-check-suppressions.xml\n") + snyk_file.write("version: v1.25.0\n") + snyk_file.write(f"ignore:\n") + for cve_id, ignores in sorted(snyk_data["ignore"].items()): + snyk_file.write(f" {cve_id}:\n") + for ignore in ignores: + snyk_file.write(f" - reason: {ignore['reason']}\n") + diff --git a/databases/cassandra5/files/maven/.build/owasp/dependency-check-suppressions.xml b/databases/cassandra5/files/maven/.build/owasp/dependency-check-suppressions.xml new file mode 100644 index 000000000000..7cdb5a811c69 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/owasp/dependency-check-suppressions.xml @@ -0,0 +1,42 @@ + + + + + + + ^pkg:maven/io\.netty/netty\-.*@.*$ + CVE-2025-24970 + CVE-2025-25193 + CVE-2024-29025 + CVE-2023-44487 + CVE-2024-47535 + CVE-2025-55163 + CVE-2025-58056 + CVE-2025-58057 + + + + + ^pkg:maven/io\.netty/netty\-.*@.*$ + CVE-2025-67735 + + diff --git a/databases/cassandra5/files/maven/.build/parent-pom-template.xml b/databases/cassandra5/files/maven/.build/parent-pom-template.xml new file mode 100644 index 000000000000..782b1957ec40 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/parent-pom-template.xml @@ -0,0 +1,1267 @@ + + + + 4.0.0 + + apache + org.apache + 22 + + org.apache.cassandra + cassandra-parent + @version@ + pom + Apache Cassandra + The Apache Cassandra Project develops a highly scalable second-generation distributed database, bringing together Dynamo's fully distributed design and Bigtable's ColumnFamily-based data model. + https://cassandra.apache.org + 2009 + + + The Apache Software License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + + + + 1.12.13 + 4.0.20 + 0.5.1 + + + @asm.version@ + @jamm.version@ + @allocation-instrumenter.version@ + @ecj.version@ + @jacoco.version@ + @jflex.version@ + + + + adelapena + Andres de la Peña + + + alakshman + Avinash Lakshman + + + aleksey + Aleksey Yeschenko + + + amorton + Aaron Morton + + + aweisberg + Ariel Weisberg + + + bdeggleston + Blake Eggleston + + + benedict + Benedict Elliott Smith + + + benjamin + Benjamin Lerer + + + blambov + Branimir Lambov + + + brandonwilliams + Brandon Williams + + + carl + Carl Yeksigian + + + dbrosius + David Brosiusd + + + dikang + Dikang Gu + + + eevans + Eric Evans + + + edimitrova + Ekaterina Dimitrova + + + gdusbabek + Gary Dusbabek + + + goffinet + Chris Goffinet + + + ifesdjeen + Alex Petrov + + + jaakko + Laine Jaakko Olavi + + + jake + T Jake Luciani + + + jasonbrown + Jason Brown + + + jbellis + Jonathan Ellis + + + jfarrell + Jake Farrell + + + jjirsa + Jeff Jirsa + + + jkni + Joel Knighton + + + jmckenzie + Josh McKenzie + + + johan + Johan Oskarsson + + + junrao + Jun Rao + + + jzhuang + Jay Zhuang + + + kohlisankalp + Sankalp Kohli + + + marcuse + Marcus Eriksson + + + mck + Michael Semb Wever + + + mishail + Mikhail Stepura + + + mshuler + Michael Shuler + + + paulo + Paulo Motta + + + pmalik + Prashant Malik + + + rstupp + Robert Stupp + + + scode + Peter Schuller + + + beobal + Sam Tunnicliffe + + + slebresne + Sylvain Lebresne + + + stefania + Stefania Alborghetti + + + tylerhobbs + Tyler Hobbs + + + vijay + Vijay Parthasarathy + + + xedin + Pavel Yaskevich + + + yukim + Yuki Morishita + + + zznate + Nate McCall + + + smiklosovic + Stefan Miklosovic + + + + scm:https://gitbox.apache.org/repos/asf/cassandra.git + scm:https://gitbox.apache.org/repos/asf/cassandra.git + https://gitbox.apache.org/repos/asf?p=cassandra.git + + + + + x86_64 + + + + !aarch64 + + + + + software.amazon.cryptools + AmazonCorrettoCryptoProvider + linux-x86_64 + 2.2.0 + provided + + + + + aarch_64 + + + aarch64 + + + + + software.amazon.cryptools + AmazonCorrettoCryptoProvider + linux-aarch_64 + 2.2.0 + provided + + + + + + + + + + org.xerial.snappy + snappy-java + 1.1.10.4 + + + at.yawk.lz4 + lz4-java + 1.10.1 + + + com.github.luben + zstd-jni + 1.5.7-2 + + + com.google.guava + guava + 32.0.1-jre + + + jsr305 + com.google.code.findbugs + + + animal-sniffer-annotations + org.codehaus.mojo + + + listenablefuture + com.google.guava + + + checker-qual + org.checkerframework + + + error_prone_annotations + com.google.errorprone + + + + + com.google.jimfs + jimfs + 1.1 + + + com.google.guava + guava + + + + + org.hdrhistogram + HdrHistogram + 2.1.12 + + + commons-cli + commons-cli + 1.5.0 + + + commons-io + commons-io + 2.11.0 + + + org.apache.commons + commons-lang3 + 3.18.0 + + + org.apache.commons + commons-math3 + 3.2 + + + org.antlr + antlr + 3.5.2 + provided + + + stringtemplate + org.antlr + + + + + org.antlr + ST4 + 4.0.8 + + + org.antlr + antlr-runtime + 3.5.2 + + + stringtemplate + org.antlr + + + + + org.slf4j + slf4j-api + 2.0.17 + + + org.slf4j + log4j-over-slf4j + 2.0.17 + + + org.slf4j + jcl-over-slf4j + 2.0.17 + + + ch.qos.logback + logback-core + 1.5.18 + + + ch.qos.logback + logback-classic + 1.5.18 + + + com.fasterxml.jackson.core + jackson-core + 2.19.2 + + + com.fasterxml.jackson.core + jackson-databind + 2.19.2 + + + com.fasterxml.jackson.core + jackson-annotations + 2.19.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.19.2 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + 2.19.2 + test + + + + snakeyaml + org.yaml + + + + + com.boundary + high-scale-lib + 1.0.6 + + + com.github.jbellis + jamm + ${jamm.version} + + + org.yaml + snakeyaml + 2.1 + + + junit + junit + 4.12 + test + + + hamcrest-core + org.hamcrest + + + + + org.mockito + mockito-core + 4.7.0 + test + + + org.mockito + mockito-inline + 4.7.0 + test + + + org.quicktheories + quicktheories + 0.26 + test + + + com.google.code.java-allocation-instrumenter + java-allocation-instrumenter + ${allocation-instrumenter.version} + test + + + guava + com.google.guava + + + + + org.apache.cassandra + harry-core + 0.0.1 + test + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.core + jackson-annotations + + + + + org.reflections + reflections + 0.10.2 + test + + + org.apache.cassandra + dtest-api + 0.0.18 + test + + + com.github.tomakehurst + wiremock-jre8 + 2.35.0 + test + + + com.fasterxml.jackson.core + jackson-annotations + + + + + com.puppycrawl.tools + checkstyle + 10.12.1 + test + + + net.java.dev.jna + jna + 5.13.0 + + + + + net.java.dev.jna + jna-platform + 5.13.0 + + + + com.github.jnr + jnr-ffi + 2.2.13 + + + org.ow2.asm + asm-analysis + + + org.ow2.asm + asm-commons + + + org.ow2.asm + asm-tree + + + org.ow2.asm + asm-util + + + + + + com.github.jnr + jffi + 1.3.11 + + + + com.github.jnr + jffi + native + 1.3.11 + + + + com.github.jnr + jnr-constants + 0.10.4 + + + + org.jacoco + org.jacoco.agent + ${jacoco.version} + test + + + org.jacoco + org.jacoco.ant + ${jacoco.version} + test + + + asm + org.ow2.asm + + + + + + org.jboss.byteman + byteman-install + ${byteman.version} + provided + + + org.jboss.byteman + byteman + ${byteman.version} + provided + + + org.jboss.byteman + byteman-submit + ${byteman.version} + provided + + + org.jboss.byteman + byteman-bmunit + ${byteman.version} + provided + + + net.bytebuddy + byte-buddy + ${bytebuddy.version} + test + + + net.bytebuddy + byte-buddy-agent + ${bytebuddy.version} + test + + + org.openjdk.jmh + jmh-core + 1.37 + test + + + org.openjdk.jmh + jmh-generator-annprocess + 1.37 + test + + + org.apache.ant + ant-junit + 1.10.12 + test + + + org.apache.cassandra + cassandra-all + 4.1-alpha2-SNAPSHOT + + + io.dropwizard.metrics + metrics-core + 4.2.28 + + + org.slf4j + slf4j-api + + + + + io.dropwizard.metrics + metrics-jvm + 4.2.19 + + + org.slf4j + slf4j-api + + + + + io.dropwizard.metrics + metrics-logback + 4.2.19 + + + ch.qos.logback + logback-core + + + ch.qos.logback + logback-classic + + + + + org.mindrot + jbcrypt + 0.4 + + + io.airlift + airline + 0.8 + + + jsr305 + com.google.code.findbugs + + + + + io.netty + netty-all + 4.1.130.Final + + + io.netty + netty-codec-dns + + + io.netty + netty-codec-haproxy + + + io.netty + netty-codec-http2 + + + io.netty + netty-codec-http + + + io.netty + netty-codec-memcache + + + io.netty + netty-codec-mqtt + + + io.netty + netty-codec-redis + + + io.netty + netty-codec-smtp + + + io.netty + netty-codec-socks + + + io.netty + netty-codec-stomp + + + io.netty + netty-codec-xml + + + io.netty + netty-transport-udt + + + io.netty + netty-transport-sctp + + + io.netty + netty-transport-rxtx + + + io.netty + netty-resolver-dns + + + io.netty + netty-resolver-dns-classes-macos + + + + + io.netty + netty-tcnative-boringssl-static + 2.0.70.Final + + + org.bouncycastle + bcpkix-jdk18on + 1.78 + test + + + org.bouncycastle + bcprov-jdk18on + 1.78 + test + + + org.bouncycastle + bcutil-jdk18on + 1.78 + test + + + io.netty + netty-transport-native-epoll + 4.1.130.Final + + + io.netty + netty-transport-native-epoll + 4.1.130.Final + linux-x86_64 + + + io.netty + netty-transport-native-epoll + 4.1.130.Final + linux-aarch_64 + + + + + net.openhft + chronicle-queue + 5.23.37 + + + tools + com.sun + + + + net.openhft + affinity + + + + + net.openhft + chronicle-core + 2.23.36 + + + chronicle-analytics + net.openhft + + + annotations + org.jetbrains + + + + + net.openhft + chronicle-bytes + 2.23.33 + + + annotations + org.jetbrains + + + + + net.openhft + chronicle-wire + 2.23.39 + + + compiler + net.openhft + + + + net.openhft + affinity + + + + + net.openhft + chronicle-threads + 2.23.25 + + + + net.openhft + affinity + + + + + + net.openhft + affinity + 3.23.3 + + + + net.openhft + posix + 2.24ea4 + + + + + com.google.code.findbugs + jsr305 + 2.0.2 + + + com.clearspring.analytics + stream + 2.5.2 + + + fastutil + it.unimi.dsi + + + + + org.apache.cassandra + cassandra-driver-core + 3.12.1 + shaded + + + netty-buffer + io.netty + + + netty-codec + io.netty + + + netty-handler + io.netty + + + netty-transport + io.netty + + + slf4j-api + org.slf4j + + + jnr-ffi + com.github.jnr + + + jnr-posix + com.github.jnr + + + + + org.eclipse.jdt + ecj + ${ecj.version} + + + org.caffinitas.ohc + ohc-core + ${ohc.version} + + + slf4j-api + org.slf4j + + + net.java.dev.jna + jna + + + + + org.caffinitas.ohc + ohc-core-j8 + ${ohc.version} + + + net.ju-n.compile-command-annotations + compile-command-annotations + 1.2.0 + provided + + + org.fusesource + sigar + 1.6.4 + + + log4j + log4j + + + + + com.carrotsearch + hppc + 0.8.1 + + + de.jflex + jflex + ${jflex.version} + + + ant + org.apache.ant + + + + + com.googlecode.concurrent-trees + concurrent-trees + 2.4.0 + + + com.github.ben-manes.caffeine + caffeine + 3.1.8 + + + org.checkerframework + checker-qual + + + com.google.errorprone + error_prone_annotations + + + + + org.jctools + jctools-core + 3.1.0 + + + + org.ow2.asm + asm + ${asm.version} + + + org.ow2.asm + asm-analysis + ${asm.version} + test + + + org.ow2.asm + asm-tree + ${asm.version} + test + + + org.ow2.asm + asm-commons + ${asm.version} + test + + + org.ow2.asm + asm-util + ${asm.version} + test + + + + org.gridkit.jvmtool + sjk-cli + 0.14 + + + org.gridkit.jvmtool + sjk-core + 0.14 + + + sjk-hflame + org.gridkit.jvmtool + + + sjk-hflame + org.perfkit.sjk.parsers + + + sjk-jfr-standalone + org.perfkit.sjk.parsers + + + sjk-nps + org.perfkit.sjk.parsers + + + sjk-jfr5 + org.perfkit.sjk.parsers + + + sjk-jfr6 + org.perfkit.sjk.parsers + + + + + org.gridkit.jvmtool + sjk-stacktrace + 0.14 + + + org.gridkit.jvmtool + mxdump + 0.14 + + + org.gridkit.lab + jvm-attach-api + 1.5 + + + org.gridkit.jvmtool + sjk-json + 0.14 + + + com.beust + jcommander + 1.30 + + + org.psjava + psjava + 0.1.19 + + + javax.inject + javax.inject + 1 + + + com.google.j2objc + j2objc-annotations + 1.3 + + + + org.junit + junit-bom + 5.9.1 + pom + test + + + org.assertj + assertj-core + 3.24.2 + test + + + org.awaitility + awaitility + 4.0.3 + test + + + hamcrest + org.hamcrest + + + + + org.hamcrest + hamcrest + 2.2 + test + + + com.github.seancfoley + ipaddress + 5.3.3 + + + org.agrona + agrona + 1.17.1 + + + org.apache.lucene + lucene-core + 9.7.0 + + + org.apache.lucene + lucene-analysis-common + 9.7.0 + + + io.github.jbellis + jvector + 1.0.2 + + + com.carrotsearch.randomizedtesting + randomizedtesting-runner + 2.1.2 + test + + + junit + junit + + + + + ch.obermuhlner + big-math + 2.3.0 + + + com.vdurmont + semver4j + 3.1.0 + + + + diff --git a/databases/cassandra5/files/maven/.build/sonar/sonar-quality-gate.json b/databases/cassandra5/files/maven/.build/sonar/sonar-quality-gate.json new file mode 100644 index 000000000000..e028bc841e88 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/sonar/sonar-quality-gate.json @@ -0,0 +1,22 @@ +{ + "name": "cassandra", + "conditions": [ + { + "id": "AYuvOs-pRzmON3lNOtmB", + "metric": "blocker_violations", + "op": "GT", + "error": "0" + } + ], + "isBuiltIn": false, + "actions": { + "rename": true, + "setAsDefault": true, + "copy": true, + "associateProjects": true, + "delete": true, + "manageConditions": true, + "delegate": true + }, + "caycStatus": "compliant" +} diff --git a/databases/cassandra5/files/maven/.build/sonar/sonar-quality-profile.xml b/databases/cassandra5/files/maven/.build/sonar/sonar-quality-profile.xml new file mode 100644 index 000000000000..95d04fda7d25 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/sonar/sonar-quality-profile.xml @@ -0,0 +1,30 @@ + + + + cassandra + java + + + java + S2095 + BUG + BLOCKER + + + + diff --git a/databases/cassandra5/files/maven/.build/sonar/sonar-report.sh b/databases/cassandra5/files/maven/.build/sonar/sonar-report.sh new file mode 100644 index 000000000000..b73785f2f679 --- /dev/null +++ b/databases/cassandra5/files/maven/.build/sonar/sonar-report.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +set -e + +REPORT_FILE="${1:-sonar-report.json}" +SEVERITIES="${2:-BLOCKER,CRITICAL,MAJOR}" +SCOPE=${3:-MAIN} + +if [ -z "$SONAR_HOST_URL" ]; then + SONAR_HOST_URL="http://127.0.0.1:9000" +fi + +if [ -z "$SONAR_PROJECT_KEY" ]; then + echo "SONAR_PROJECT_KEY is not set" + exit 1 +fi + +rm -f "$REPORT_FILE" + +# Maximum page size is 500, maximum number of returned issues is 10000 +for i in $(seq 1 20); do + if [ -n "$SONAR_CASSANDRA_TOKEN" ]; then + curl -sS --header "Authorization: Bearer ${SONAR_CASSANDRA_TOKEN}" "$SONAR_HOST_URL/api/issues/search?s=SEVERITY&asc=false&scopes=${SCOPE}&severities=${SEVERITIES}&components=${SONAR_PROJECT_KEY}&ps=500&p=$i" -o "${REPORT_FILE}.page" + else + curl -sS "$SONAR_HOST_URL/api/issues/search?s=SEVERITY&asc=false&scopes=${SCOPE}&severities=${SEVERITIES}&components=${SONAR_PROJECT_KEY}&ps=500&p=$i" -o "${REPORT_FILE}.page" + fi + if [ ! -s "${REPORT_FILE}.page" ]; then + echo "Failed to fetch SonarQube report" + rm -f "${REPORT_FILE}.page" + rm -f "${REPORT_FILE}.page.array" + rm -f "${REPORT_FILE}.array" + exit 1 + fi + cnt="$(jq '.issues | length' "${REPORT_FILE}.page")" + if [ "${cnt}" == "0" ] || [ "${cnt}" == "" ]; then + break + fi + jq -r '.issues' "${REPORT_FILE}.page" > "${REPORT_FILE}.page.array" + + if [ -f "${REPORT_FILE}" ]; then + jq -r -s '.[0] + .[1]' "${REPORT_FILE}" "${REPORT_FILE}.page.array" > "${REPORT_FILE}.array" + mv -f "${REPORT_FILE}.array" "${REPORT_FILE}" + else + mv -f "${REPORT_FILE}.page.array" "${REPORT_FILE}" + fi +done + +rm -f "${REPORT_FILE}.page" +rm -f "${REPORT_FILE}.page.array" diff --git a/databases/cassandra5/files/maven/.build/sonar/sonar-setup-local.sh b/databases/cassandra5/files/maven/.build/sonar/sonar-setup-local.sh new file mode 100644 index 000000000000..d1966b57ae7d --- /dev/null +++ b/databases/cassandra5/files/maven/.build/sonar/sonar-setup-local.sh @@ -0,0 +1,74 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +#!/bin/sh + +set -e + +if [ -z "$SONAR_HOST_URL" ]; then + SONAR_HOST_URL="http://127.0.0.1:9000" +fi + +if [ -z "$SONAR_PROJECT_KEY" ]; then + echo "SONAR_PROJECT_KEY is not set" + exit 1 +fi + +creds="${1:-'admin:password'}" + +quality_profile_name="cassandra" +quality_profile_config="${2:-.build/sonar/sonar-quality-profile.xml}" + +quality_gate_name="cassandra" +quality_gate_config="${3:-.build/sonar/sonar-quality-gate.json}" + + +curl_cmd() { + curl -sS -u "$creds" "$@" +} + +# Create project +curl_cmd -X POST "${SONAR_HOST_URL}/api/projects/create?name=${SONAR_PROJECT_KEY}&mainBranch=trunk&newCodeDefinitionType=PREVIOUS_VERSION&project=${SONAR_PROJECT_KEY}&visibility=public" 1>&2 + +# Setup quality profile +curl_cmd -X POST "${SONAR_HOST_URL}/api/qualityprofiles/restore" --form "backup=@${quality_profile_config}" 1>&2 +curl_cmd -X POST "${SONAR_HOST_URL}/api/qualityprofiles/add_project?language=java&project=${SONAR_PROJECT_KEY}&qualityProfile=${quality_profile_name}" 1>&2 + +# Setup quality gate +curl_cmd -X POST "${SONAR_HOST_URL}/api/qualitygates/destroy?name=${quality_gate_name}" 1>&2 2>/dev/null || true +curl_cmd -X POST "${SONAR_HOST_URL}/api/qualitygates/create?name=${quality_gate_name}" 1>&2 +for cond_id in $(curl_cmd -X GET "${SONAR_HOST_URL}/api/qualitygates/show?name=${quality_gate_name}" | jq -r '.conditions[].id') +do + curl_cmd -X POST "${SONAR_HOST_URL}/api/qualitygates/delete_condition?id=${cond_id}" 1>&2 +done + +for cond in $(jq -r '.conditions[] | "metric=\(.metric)&op=\(.op)&error=\(.error)"' "${quality_gate_config}") +do + curl_cmd -X POST "${SONAR_HOST_URL}/api/qualitygates/create_condition?gateName=${quality_gate_name}&${cond}" 1>&2 +done + +curl_cmd -X POST "${SONAR_HOST_URL}/api/qualitygates/select?gateName=${quality_gate_name}&projectKey=${SONAR_PROJECT_KEY}" 1>&2 + +# Setup access token + +# Drop the existing access token so that we can create it once again - we need to recreate a token because it is +# impossible to read the existing token +curl_cmd -X POST "${SONAR_HOST_URL}/api/user_tokens/revoke?name=cassandra&projectKey=${SONAR_PROJECT_KEY}" 1>&2 2>/dev/null || true + +# Create the access token for the project analysis +curl_cmd -X POST "${SONAR_HOST_URL}/api/user_tokens/generate?name=cassandra&type=PROJECT_ANALYSIS_TOKEN&projectKey=${SONAR_PROJECT_KEY}" | jq -r '.token' diff --git a/databases/cassandra5/files/maven/build.properties.default b/databases/cassandra5/files/maven/build.properties.default new file mode 100644 index 000000000000..36676f5712d8 --- /dev/null +++ b/databases/cassandra5/files/maven/build.properties.default @@ -0,0 +1,23 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# Maven2 Repository Locations (you can override these in "build.properties" to point to a local proxy, e.g. Nexus) +# +artifact.remoteRepository.central: https://repo1.maven.org/maven2 +artifact.remoteRepository.apache: https://repo.maven.apache.org/maven2 +artifact.remoteRepository.apacheSnapshot: https://repository.apache.org/content/repositories/snapshots diff --git a/databases/cassandra5/files/maven/build.xml b/databases/cassandra5/files/maven/build.xml new file mode 100644 index 000000000000..8fadad77a594 --- /dev/null +++ b/databases/cassandra5/files/maven/build.xml @@ -0,0 +1,2094 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -Djdk.attach.allowAttachSelf=true + -XX:+UseConcMarkSweepGC + -XX:+CMSParallelRemarkEnabled + -XX:SurvivorRatio=8 + -XX:MaxTenuringThreshold=1 + -XX:CMSInitiatingOccupancyFraction=75 + -XX:+UseCMSInitiatingOccupancyOnly + -XX:CMSWaitDuration=10000 + -XX:+CMSParallelInitialMarkEnabled + -XX:+CMSEdenChunksRecordAlways + + + --add-exports java.base/jdk.internal.misc=ALL-UNNAMED + --add-exports java.base/jdk.internal.ref=ALL-UNNAMED + --add-exports java.base/sun.nio.ch=ALL-UNNAMED + --add-exports java.management.rmi/com.sun.jmx.remote.internal.rmi=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.registry=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.server=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED + --add-exports java.sql/java.sql=ALL-UNNAMED + + --add-opens java.base/java.lang.module=ALL-UNNAMED + --add-opens java.base/java.net=ALL-UNNAMED + --add-opens java.base/jdk.internal.loader=ALL-UNNAMED + --add-opens java.base/jdk.internal.ref=ALL-UNNAMED + --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED + --add-opens java.base/jdk.internal.math=ALL-UNNAMED + --add-opens java.base/jdk.internal.module=ALL-UNNAMED + --add-opens java.base/jdk.internal.util.jar=ALL-UNNAMED + --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED + + + + + + + + -Djdk.attach.allowAttachSelf=true + -XX:+UseG1GC + -XX:+ParallelRefProcEnabled + -XX:MaxTenuringThreshold=1 + -XX:G1HeapRegionSize=16m + + --add-exports java.base/jdk.internal.misc=ALL-UNNAMED + --add-exports java.management.rmi/com.sun.jmx.remote.internal.rmi=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.registry=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.server=ALL-UNNAMED + --add-exports java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED + --add-exports java.sql/java.sql=ALL-UNNAMED + --add-exports java.base/java.lang.ref=ALL-UNNAMED + --add-exports jdk.unsupported/sun.misc=ALL-UNNAMED + --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED + --add-exports jdk.attach/sun.tools.attach=ALL-UNNAMED + + --add-opens java.base/java.lang.module=ALL-UNNAMED + --add-opens java.base/jdk.internal.loader=ALL-UNNAMED + --add-opens java.base/jdk.internal.ref=ALL-UNNAMED + --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED + --add-opens java.base/jdk.internal.math=ALL-UNNAMED + --add-opens java.base/jdk.internal.module=ALL-UNNAMED + --add-opens java.base/jdk.internal.util.jar=ALL-UNNAMED + --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED + --add-opens java.base/sun.nio.ch=ALL-UNNAMED + --add-opens java.base/java.io=ALL-UNNAMED + --add-opens java.base/java.lang.reflect=ALL-UNNAMED + --add-opens jdk.compiler/com.sun.tools.javac=ALL-UNNAMED + --add-opens java.base/java.lang=ALL-UNNAMED + --add-opens java.base/java.util=ALL-UNNAMED + --add-opens java.base/java.nio=ALL-UNNAMED + + --add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED + + + + + + + + + -XX:-CMSClassUnloadingEnabled + -Dio.netty.tryReflectionSetAccessible=true + + + + -Dio.netty.tryReflectionSetAccessible=true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Building Grammar ${build.src.antlr}/Cql.g ... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + asm- + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + Apache Cassandra ${eclipse.project.name} + + + + + + + +]]> + + + IDE configuration in .idea/ updated for use with JDK${ant.java.version}. + + In IntelliJ verify that the SDK is ${ant.java.version}, and its path is valid. + This can be verified in 'Project Structure/Project Setting/Project' and 'Project Structure/Platform Setting/SDKs'. + + + + + + + + ${eclipse.project.name} + + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.jdt.core.javanature + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${eclipse-libs-list} + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/EchoEclipseProjectLibs.java b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/EchoEclipseProjectLibs.java new file mode 100644 index 000000000000..c0cfb410979d --- /dev/null +++ b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/EchoEclipseProjectLibs.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.cassandra.anttasks; + +import org.apache.cassandra.io.util.File; + +import org.apache.commons.io.FilenameUtils; + +import org.apache.tools.ant.Project; +import org.apache.tools.ant.Task; +import org.apache.tools.ant.taskdefs.Echo; + +public class EchoEclipseProjectLibs extends Task +{ + public void execute() + { + Project project = getProject(); + StringBuilder msg = buildMsg(); + + Echo echo = (Echo) project.createTask("echo"); + echo.setMessage(msg.toString()); + echo.setFile(new File(".classpath").toJavaIOFile()); + echo.setAppend(true); + echo.perform(); + } + + public StringBuilder buildMsg() + { + Project project = getProject(); + String[] jars = project.getProperty("eclipse-project-libs") + .split(project.getProperty("path.separator")); + + StringBuilder msg = new StringBuilder(); + for (int i=0; i< jars.length; i++) + { + String srcJar = FilenameUtils.getBaseName(jars[i]) + "-sources.jar"; + String srcDir = FilenameUtils.concat(project.getProperty("build.test.dir"), "sources"); + File srcFile = new File(FilenameUtils.concat(srcDir, srcJar)); + + msg.append("\" \n"); + } + + msg.append(""); + + return msg; + } +} diff --git a/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/JdkProperties.java b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/JdkProperties.java new file mode 100644 index 000000000000..2e5d202a20d9 --- /dev/null +++ b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/JdkProperties.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.cassandra.anttasks; + +import org.apache.tools.ant.Project; +import org.apache.tools.ant.Task; + +public class JdkProperties extends Task +{ + + public void execute() + { + Project project = getProject(); + project.setNewProperty("java.version." + project.getProperty("ant.java.version").replace("1.", ""), "true"); + project.setNewProperty("use-jdk" + project.getProperty("ant.java.version").replace("1.", ""), "true"); + } +} diff --git a/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/SetSystemProperty.java b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/SetSystemProperty.java new file mode 100644 index 000000000000..5063fc7f1c1f --- /dev/null +++ b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/SetSystemProperty.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.cassandra.anttasks; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.PropertyHelper; +import org.apache.tools.ant.Task; + +public class SetSystemProperty extends Task +{ + private String name; + private String value; + + public void setName(String name) + { + this.name = name; + } + + public void setValue(String value) + { + this.value = value; + } + + @Override + public void execute() throws BuildException + { + if (name == null || name.isEmpty()) + { + throw new BuildException("propertyName attribute is missing or empty."); + } + + if (value == null || value.isEmpty()) + { + throw new BuildException("propertyValue attribute is missing or empty."); + } + + PropertyHelper propertyHelper = PropertyHelper.getPropertyHelper(getProject()); + String evaluatedValue = propertyHelper.replaceProperties(value); + + if (evaluatedValue == null) + System.getProperties().remove(name); + else + // checkstyle: suppress below 'blockSystemPropertyUsage' + System.setProperty(name, evaluatedValue); + } +} diff --git a/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/TestHelper.java b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/TestHelper.java new file mode 100644 index 000000000000..be2949ae2737 --- /dev/null +++ b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/TestHelper.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.cassandra.anttasks; + +import org.apache.tools.ant.Project; +import org.apache.tools.ant.Task; +import org.apache.tools.ant.taskdefs.MacroInstance; +import org.apache.tools.ant.taskdefs.Sequential; + +public class TestHelper extends Task +{ + private String property; + + public void setProperty(String property) + { + this.property = property; + } + + public void execute() + { + Project project = getProject(); + + String sep = project.getProperty("path.separator"); + String[] allTestClasses = project.getProperty("all-test-classes").split(sep); + + Sequential seqTask = (Sequential) project.createTask("sequential"); + for (int i=0; i< allTestClasses.length; i++) + { + if (allTestClasses[i] == null) + continue; + + MacroInstance task = (MacroInstance) project.createTask(property); + task.setDynamicAttribute("test.file.list", ' ' + allTestClasses[i]); + seqTask.addTask(task); + } + + seqTask.perform(); + } +} diff --git a/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/TestNameCheckTask.java b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/TestNameCheckTask.java new file mode 100644 index 000000000000..b1c17ad2c30f --- /dev/null +++ b/databases/cassandra5/files/maven/test/anttasks/org/apache/cassandra/anttasks/TestNameCheckTask.java @@ -0,0 +1,195 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.anttasks; + +import java.io.File; +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.file.Paths; +import java.util.ArrayDeque; +import java.util.Arrays; +import java.util.Deque; +import java.util.HashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.function.Predicate; +import java.util.regex.Pattern; +import java.util.stream.Stream; + +import org.apache.commons.lang3.function.Consumers; +import org.junit.Test; + +import org.reflections.Reflections; +import org.reflections.scanners.Scanners; +import org.reflections.util.ConfigurationBuilder; + +import static java.util.stream.Collectors.toList; + +public class TestNameCheckTask +{ + private String scanClassPath = "build/test/classes"; + private String packageName = "org.apache.cassandra"; + private String annotationName = Test.class.getName(); + private boolean expand = true; + private boolean normalize = true; + private boolean verbose = false; + private String regex = ".*Test$"; + + public TestNameCheckTask() + { + } + + public void setScanClassPath(String scanClassPath) + { + this.scanClassPath = scanClassPath; + } + + public void setPackageName(String packageName) + { + this.packageName = packageName; + } + + public void setAnnotationName(String annotationName) + { + this.annotationName = annotationName; + } + + public void setExpand(boolean expand) + { + this.expand = expand; + } + + public void setNormalize(boolean normalize) + { + this.normalize = normalize; + } + + public void setVerbose(boolean verbose) + { + this.verbose = verbose; + } + + public void setRegex(String regex) + { + this.regex = regex; + } + + public void execute() + { + List scanClassPathUrls = Arrays.stream(scanClassPath.split(File.pathSeparator)).map(Paths::get).map(path -> { + try + { + return path.toUri().toURL(); + } + catch (MalformedURLException e) + { + throw new RuntimeException(e); + } + }).collect(toList()); + + Reflections reflections = new Reflections(new ConfigurationBuilder() + .forPackage(packageName) + .setScanners(Scanners.MethodsAnnotated, Scanners.SubTypes) + .setUrls(scanClassPathUrls) + .setExpandSuperTypes(true) + .setParallel(true)); + + Class annotationClass; + try + { + annotationClass = (Class) Class.forName(annotationName); + } + catch (ClassNotFoundException e) + { + throw new RuntimeException(e); + } + Set methodsAnnotatedWith = reflections.getMethodsAnnotatedWith(annotationClass); + Stream> stream = methodsAnnotatedWith.stream().map(Method::getDeclaringClass).distinct(); + + if (expand) + stream = stream.flatMap(c -> expand(c, reflections)); + if (normalize) + stream = stream.map(this::normalize); + + Predicate patternPredicate = Predicate.not(Pattern.compile(regex).asMatchPredicate()); + List classes = stream.map(Class::getCanonicalName) + .distinct() + .sorted() + .peek(verbose ? System.out::println : Consumers.nop()) + .filter(patternPredicate) + .collect(toList()); + + if (!classes.isEmpty()) + throw new RuntimeException(String.format("Detected classes that have a bad naming convention. All classes from the following locations %s which have methods annotated with %s should have names that match %s: \n%s", scanClassPath, annotationName, regex, String.join("\n", classes))); + } + + /** + * Get top outer class if it is an inner class + */ + private Class normalize(Class klass) + { + while (klass.getEnclosingClass() != null) + klass = klass.getEnclosingClass(); + + return klass; + } + + /** + * Expand a class to all its subtypes. We need this because it possible that there is a top level class with + * annotated test methods and there are subclasses which modifies some configuration but do not introduce + * any additional test methods. In such case, those subclasses would not be included in the result of + * {@link Reflections#getMethodsAnnotatedWith(Class)}. + */ + private Stream> expand(Class klass, Reflections reflections) + { + Set> concreteTypes = new HashSet<>(); + Deque> typeStack = new ArrayDeque<>(); + typeStack.push(klass); + + while (!typeStack.isEmpty()) + { + Class type = typeStack.pop(); + + if (!Modifier.isAbstract(type.getModifiers())) + concreteTypes.add(type); + + reflections.getSubTypesOf(type).forEach(typeStack::push); + } + + return concreteTypes.stream(); + } + + public static void main(String[] args) + { + TestNameCheckTask check = new TestNameCheckTask(); + // checkstyle: suppress below 'blockSystemPropertyUsage' + Optional.ofNullable(System.getProperty("scanClassPath")).ifPresent(check::setScanClassPath); + Optional.ofNullable(System.getProperty("packageName")).ifPresent(check::setPackageName); + Optional.ofNullable(System.getProperty("annotationName")).ifPresent(check::setAnnotationName); + Optional.ofNullable(System.getProperty("regex")).ifPresent(check::setRegex); + Optional.ofNullable(System.getProperty("expand")).map(Boolean::parseBoolean).ifPresent(check::setExpand); + Optional.ofNullable(System.getProperty("normalize")).map(Boolean::parseBoolean).ifPresent(check::setNormalize); + Optional.ofNullable(System.getProperty("verbose")).map(Boolean::parseBoolean).ifPresent(check::setVerbose); + check.execute(); + } + +} diff --git a/databases/cassandra5/files/patch-build.xml b/databases/cassandra5/files/patch-build.xml new file mode 100644 index 000000000000..f39d391a2e52 --- /dev/null +++ b/databases/cassandra5/files/patch-build.xml @@ -0,0 +1,153 @@ +--- build.xml.orig 2024-10-12 12:40:43 UTC ++++ build.xml +@@ -31,6 +31,7 @@ --> + + + ++ + + + +@@ -104,7 +105,7 @@ --> + + + +- ++ + + +@@ -358,6 +359,24 @@ --> + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -476,6 +495,8 @@ --> + + + ++ ++ + + + +@@ -908,6 +929,90 @@ --> + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +@@ -1198,7 +1303,7 @@ --> + + + +- ++ + + + diff --git a/databases/cassandra5/files/patch-conf_cassandra-env.sh b/databases/cassandra5/files/patch-conf_cassandra-env.sh new file mode 100644 index 000000000000..729beb6c99c6 --- /dev/null +++ b/databases/cassandra5/files/patch-conf_cassandra-env.sh @@ -0,0 +1,11 @@ +--- conf/cassandra-env.sh.orig 2020-01-30 17:34:31 UTC ++++ conf/cassandra-env.sh +@@ -88,7 +88,7 @@ calculate_heap_sizes() + + # Sets the path where logback and GC logs are written. + if [ "x$CASSANDRA_LOG_DIR" = "x" ] ; then +- CASSANDRA_LOG_DIR="$CASSANDRA_HOME/logs" ++ CASSANDRA_LOG_DIR="/var/log/cassandra" + fi + + #GC log path has to be defined here because it needs to access CASSANDRA_HOME diff --git a/databases/cassandra5/files/patch-conf_cassandra.yaml b/databases/cassandra5/files/patch-conf_cassandra.yaml new file mode 100644 index 000000000000..6d1aedd29b85 --- /dev/null +++ b/databases/cassandra5/files/patch-conf_cassandra.yaml @@ -0,0 +1,71 @@ +--- conf/cassandra.yaml.orig 2024-10-12 12:40:43 UTC ++++ conf/cassandra.yaml +@@ -94,7 +94,7 @@ max_hints_delivery_threads: 2 + + # Directory where Cassandra should store hints. + # If not set, the default directory is $CASSANDRA_HOME/data/hints. +-# hints_directory: /var/lib/cassandra/hints ++hints_directory: /var/db/cassandra/hints + + # How often hints should be flushed from the internal buffers to disk. + # Will *not* trigger fsync. +@@ -366,8 +366,8 @@ partitioner: org.apache.cassandra.dht.Murmur3Partition + # directories are specified, Cassandra will spread data evenly across + # them by partitioning the token ranges. + # If not set, the default directory is $CASSANDRA_HOME/data/data. +-# data_file_directories: +-# - /var/lib/cassandra/data ++data_file_directories: ++ - /var/db/cassandra/data + + # Directory were Cassandra should store the data of the local system keyspaces. + # By default Cassandra will store the data of the local system keyspaces in the first of the data directories specified +@@ -379,7 +379,7 @@ partitioner: org.apache.cassandra.dht.Murmur3Partition + # commit log. when running on magnetic HDD, this should be a + # separate spindle than the data directories. + # If not set, the default directory is $CASSANDRA_HOME/data/commitlog. +-# commitlog_directory: /var/lib/cassandra/commitlog ++commitlog_directory: /var/db/cassandra/commitlog + + # Enable / disable CDC functionality on a per-node basis. This modifies the logic used + # for write path allocation rejection (standard: never reject. cdc: reject Mutation +@@ -402,7 +402,7 @@ cdc_enabled: false + # segment contains mutations for a CDC-enabled table. This should be placed on a + # separate spindle than the data directories. If not set, the default directory is + # $CASSANDRA_HOME/data/cdc_raw. +-# cdc_raw_directory: /var/lib/cassandra/cdc_raw ++cdc_raw_directory: /var/db/cassandra/cdc_raw + + # Policy for accessing disk: + # +@@ -518,20 +518,12 @@ key_cache_save_period: 4h + + # Row cache implementation class name. Available implementations: + # +-# org.apache.cassandra.cache.OHCProvider +-# Fully off-heap row cache implementation (default). +-# + # org.apache.cassandra.cache.SerializingCacheProvider + # This is the row cache implementation available + # in previous releases of Cassandra. +-# row_cache_class_name: org.apache.cassandra.cache.OHCProvider ++# row_cache_class_name: org.apache.cassandra.cache.SerializingCacheProvider + + # Maximum size of the row cache in memory. +-# Please note that OHC cache implementation requires some additional off-heap memory to manage +-# the map structures and some in-flight memory during operations before/after cache entries can be +-# accounted against the cache capacity. This overhead is usually small compared to the whole capacity. +-# Do not specify more memory that the system can afford in the worst usual situation and leave some +-# headroom for OS block level cache. Do never allow your system to swap. + # + # Default value is 0, to disable row caching. + # Min unit: MiB +@@ -582,7 +574,7 @@ counter_cache_save_period: 7200s + + # saved caches + # If not set, the default directory is $CASSANDRA_HOME/data/saved_caches. +-# saved_caches_directory: /var/lib/cassandra/saved_caches ++saved_caches_directory: /var/db/cassandra/saved_caches + + # Number of seconds the server will wait for each cache (row, key, etc ...) to load while starting + # the Cassandra process. Setting this to zero is equivalent to disabling all cache loading on startup diff --git a/databases/cassandra5/files/patch-doc_Makefile b/databases/cassandra5/files/patch-doc_Makefile new file mode 100644 index 000000000000..0d0627dc1673 --- /dev/null +++ b/databases/cassandra5/files/patch-doc_Makefile @@ -0,0 +1,7 @@ +--- doc/Makefile.orig 2026-04-20 10:22:10 UTC ++++ doc/Makefile +@@ -27,4 +27,3 @@ gen-asciidoc: + @mkdir -p modules/cassandra/examples/TEXT/NODETOOL + python3 $(GENERATE_NODETOOL_DOCS) + python3 $(MAKE_CASSANDRA_YAML) +- $(PROCESS_NATIVE_PROC_SPECS) diff --git a/databases/cassandra5/files/patch-src_java_org_apache_cassandra_config_Config.java b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_config_Config.java new file mode 100644 index 000000000000..71c35bb65a8a --- /dev/null +++ b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_config_Config.java @@ -0,0 +1,11 @@ +--- src/java/org/apache/cassandra/config/Config.java.orig 2024-10-12 12:40:43 UTC ++++ src/java/org/apache/cassandra/config/Config.java +@@ -460,7 +460,7 @@ public class Config + @Replaces(oldName = "key_cache_save_period", converter = Converters.SECONDS_CUSTOM_DURATION) + public volatile DurationSpec.IntSecondsBound key_cache_save_period = new DurationSpec.IntSecondsBound("4h"); + +- public String row_cache_class_name = "org.apache.cassandra.cache.OHCProvider"; ++ public String row_cache_class_name = "org.apache.cassandra.cache.SerializingCacheProvider"; + @Replaces(oldName = "row_cache_size_in_mb", converter = Converters.MEBIBYTES_DATA_STORAGE_LONG, deprecated = true) + public DataStorageSpec.LongMebibytesBound row_cache_size = new DataStorageSpec.LongMebibytesBound("0MiB"); + @Replaces(oldName = "row_cache_save_period", converter = Converters.SECONDS_CUSTOM_DURATION) diff --git a/databases/cassandra5/files/patch-src_java_org_apache_cassandra_db_commitlog_MemoryMappedSegment.java b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_db_commitlog_MemoryMappedSegment.java new file mode 100644 index 000000000000..08461e956ba9 --- /dev/null +++ b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_db_commitlog_MemoryMappedSegment.java @@ -0,0 +1,11 @@ +--- src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java.orig 2024-10-12 12:40:42 UTC ++++ src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java +@@ -96,7 +96,7 @@ public class MemoryMappedSegment extends CommitLogSegm + { + throw new FSWriteError(e, getPath()); + } +- NativeLibrary.trySkipCache(fd, startMarker, nextMarker, logFile.absolutePath()); ++// NativeLibrary.trySkipCache(fd, startMarker, nextMarker, logFile.absolutePath()); + } + + @Override diff --git a/databases/cassandra5/files/patch-src_java_org_apache_cassandra_service_NativeTransportService.java b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_service_NativeTransportService.java new file mode 100644 index 000000000000..8c2a81f4408a --- /dev/null +++ b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_service_NativeTransportService.java @@ -0,0 +1,18 @@ +--- src/java/org/apache/cassandra/service/NativeTransportService.java.orig 2024-10-12 12:40:43 UTC ++++ src/java/org/apache/cassandra/service/NativeTransportService.java +@@ -167,12 +167,15 @@ public class NativeTransportService + */ + public static boolean useEpoll() + { ++ /* + final boolean enableEpoll = NATIVE_EPOLL_ENABLED.getBoolean(); + + if (enableEpoll && !Epoll.isAvailable() && NativeLibrary.osType == NativeLibrary.OSType.LINUX) + logger.warn("epoll not available", Epoll.unavailabilityCause()); + + return enableEpoll && Epoll.isAvailable(); ++ */ ++ return false; // Epoll is only available for Linux. Prevent warning given that we otherwise pass ourselves off as Linux. + } + + /** diff --git a/databases/cassandra5/files/patch-src_java_org_apache_cassandra_service_StartupChecks.java b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_service_StartupChecks.java new file mode 100644 index 000000000000..a20c614bff04 --- /dev/null +++ b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_service_StartupChecks.java @@ -0,0 +1,17 @@ +--- src/java/org/apache/cassandra/service/StartupChecks.java.orig 2024-10-12 12:40:43 UTC ++++ src/java/org/apache/cassandra/service/StartupChecks.java +@@ -426,7 +426,13 @@ public class StartupChecks + { + if (options.isDisabled(getStartupCheckType())) + return; +- SigarLibrary.instance.warnIfRunningInDegradedMode(); ++ try { ++ @SuppressWarnings("unused") ++ Class loadMe = org.hyperic.sigar.SigarException.class; ++ SigarLibrary.instance.warnIfRunningInDegradedMode(); ++ } catch (NoClassDefFoundError e) { ++ logger.info("Could not initialize SIGAR library: SIGAR option not selected during install or jar no longer available."); ++ } + } + }; + diff --git a/databases/cassandra5/files/patch-src_java_org_apache_cassandra_utils_FastByteOperations.java b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_utils_FastByteOperations.java new file mode 100644 index 000000000000..4d81ae54022c --- /dev/null +++ b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_utils_FastByteOperations.java @@ -0,0 +1,108 @@ +--- src/java/org/apache/cassandra/utils/FastByteOperations.java.orig 2024-10-12 12:40:42 UTC ++++ src/java/org/apache/cassandra/utils/FastByteOperations.java +@@ -210,6 +210,20 @@ public class FastByteOperations + + static final boolean BIG_ENDIAN = ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN); + ++ private static byte unsafeGetByte(Object o, long offset) ++ { ++ return o == null ++ ? theUnsafe.getByte(offset) ++ : theUnsafe.getByte(o, offset); ++ } ++ ++ private static long unsafeGetLong(Object o, long offset) ++ { ++ return o == null ++ ? theUnsafe.getLong(offset) ++ : theUnsafe.getLong(o, offset); ++ } ++ + public int compare(byte[] buffer1, int offset1, int length1, byte[] buffer2, int offset2, int length2) + { + return compareTo(buffer1, BYTE_ARRAY_BASE_OFFSET + offset1, length1, +@@ -233,7 +247,7 @@ public class FastByteOperations + else + { + obj1 = null; +- offset1 = theUnsafe.getLong(buffer1, DIRECT_BUFFER_ADDRESS_OFFSET) + position1; ++ offset1 = unsafeGetLong(buffer1, DIRECT_BUFFER_ADDRESS_OFFSET) + position1; + } + + return compareTo(obj1, offset1, length1, buffer2, BYTE_ARRAY_BASE_OFFSET + offset2, length2); +@@ -254,7 +268,7 @@ public class FastByteOperations + if (src.hasArray()) + System.arraycopy(src.array(), src.arrayOffset() + srcPosition, trg, trgPosition, length); + else +- copy(null, srcPosition + theUnsafe.getLong(src, DIRECT_BUFFER_ADDRESS_OFFSET), trg, trgPosition, length); ++ copy(null, srcPosition + unsafeGetLong(src, DIRECT_BUFFER_ADDRESS_OFFSET), trg, trgPosition, length); + } + + public void copy(byte[] src, int srcPosition, ByteBuffer trg, int trgPosition, int length) +@@ -277,7 +291,7 @@ public class FastByteOperations + else + { + src = null; +- srcOffset = theUnsafe.getLong(srcBuf, DIRECT_BUFFER_ADDRESS_OFFSET); ++ srcOffset = unsafeGetLong(srcBuf, DIRECT_BUFFER_ADDRESS_OFFSET); + } + copy(src, srcOffset + srcPosition, trgBuf, trgPosition, length); + } +@@ -287,7 +301,7 @@ public class FastByteOperations + if (trgBuf.hasArray()) + copy(src, srcOffset, trgBuf.array(), trgBuf.arrayOffset() + trgPosition, length); + else +- copy(src, srcOffset, null, trgPosition + theUnsafe.getLong(trgBuf, DIRECT_BUFFER_ADDRESS_OFFSET), length); ++ copy(src, srcOffset, null, trgPosition + unsafeGetLong(trgBuf, DIRECT_BUFFER_ADDRESS_OFFSET), length); + } + + public static void copy(Object src, long srcOffset, byte[] trg, int trgPosition, int length) +@@ -295,7 +309,7 @@ public class FastByteOperations + if (length <= MIN_COPY_THRESHOLD) + { + for (int i = 0 ; i < length ; i++) +- trg[trgPosition + i] = theUnsafe.getByte(src, srcOffset + i); ++ trg[trgPosition + i] = unsafeGetByte(src, srcOffset + i); + } + else + { +@@ -334,7 +348,7 @@ public class FastByteOperations + else + { + obj1 = null; +- offset1 = theUnsafe.getLong(buffer1, DIRECT_BUFFER_ADDRESS_OFFSET); ++ offset1 = unsafeGetLong(buffer1, DIRECT_BUFFER_ADDRESS_OFFSET); + } + offset1 += buffer1.position(); + length1 = buffer1.remaining(); +@@ -357,7 +371,7 @@ public class FastByteOperations + else + { + obj2 = null; +- offset2 = theUnsafe.getLong(buffer, DIRECT_BUFFER_ADDRESS_OFFSET); ++ offset2 = unsafeGetLong(buffer, DIRECT_BUFFER_ADDRESS_OFFSET); + } + int length2 = limit - position; + offset2 += position; +@@ -390,8 +404,8 @@ public class FastByteOperations + int wordComparisons = minLength & ~7; + for (int i = 0; i < wordComparisons ; i += Longs.BYTES) + { +- long lw = theUnsafe.getLong(buffer1, memoryOffset1 + i); +- long rw = theUnsafe.getLong(buffer2, memoryOffset2 + i); ++ long lw = unsafeGetLong(buffer1, memoryOffset1 + i); ++ long rw = unsafeGetLong(buffer2, memoryOffset2 + i); + + if (lw != rw) + { +@@ -404,8 +418,8 @@ public class FastByteOperations + + for (int i = wordComparisons ; i < minLength ; i++) + { +- int b1 = theUnsafe.getByte(buffer1, memoryOffset1 + i) & 0xFF; +- int b2 = theUnsafe.getByte(buffer2, memoryOffset2 + i) & 0xFF; ++ int b1 = unsafeGetByte(buffer1, memoryOffset1 + i) & 0xFF; ++ int b2 = unsafeGetByte(buffer2, memoryOffset2 + i) & 0xFF; + if (b1 != b2) + return b1 - b2; + } diff --git a/databases/cassandra5/files/patch-src_java_org_apache_cassandra_utils_NativeLibrary.java b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_utils_NativeLibrary.java new file mode 100644 index 000000000000..991989ee7013 --- /dev/null +++ b/databases/cassandra5/files/patch-src_java_org_apache_cassandra_utils_NativeLibrary.java @@ -0,0 +1,14 @@ +--- src/java/org/apache/cassandra/utils/NativeLibrary.java.orig 2023-05-25 14:13:37 UTC ++++ src/java/org/apache/cassandra/utils/NativeLibrary.java +@@ -140,7 +140,10 @@ public final class NativeLibrary + else if (osName.contains("mac")) + return MAC; + +- logger.warn("the current operating system, {}, is unsupported by Cassandra", osName); ++ if (osName.contains("bsd")) ++ logger.warn("the current operating system, {}, is fantastic, though not officially supported by Cassandra", osName); ++ else ++ logger.warn("the current operating system, {}, is unsupported by Cassandra", osName); + if (osName.contains("aix")) + return AIX; + else diff --git a/databases/cassandra5/files/patch-test_conf_cassandra-murmur.yaml b/databases/cassandra5/files/patch-test_conf_cassandra-murmur.yaml new file mode 100644 index 000000000000..142b61aed93d --- /dev/null +++ b/databases/cassandra5/files/patch-test_conf_cassandra-murmur.yaml @@ -0,0 +1,10 @@ +--- test/conf/cassandra-murmur.yaml.orig 2024-10-12 12:40:42 UTC ++++ test/conf/cassandra-murmur.yaml +@@ -36,7 +36,6 @@ compaction_throughput: 0MiB/s + incremental_backups: true + concurrent_compactors: 4 + compaction_throughput: 0MiB/s +-row_cache_class_name: org.apache.cassandra.cache.OHCProvider + row_cache_size: 16MiB + user_defined_functions_enabled: true + scripted_user_defined_functions_enabled: false diff --git a/databases/cassandra5/files/patch-test_conf_cassandra-seeds.yaml b/databases/cassandra5/files/patch-test_conf_cassandra-seeds.yaml new file mode 100644 index 000000000000..cc7fd1107fc7 --- /dev/null +++ b/databases/cassandra5/files/patch-test_conf_cassandra-seeds.yaml @@ -0,0 +1,10 @@ +--- test/conf/cassandra-seeds.yaml.orig 2024-10-12 12:40:42 UTC ++++ test/conf/cassandra-seeds.yaml +@@ -37,7 +37,6 @@ compaction_throughput: 0MiB/s + incremental_backups: true + concurrent_compactors: 4 + compaction_throughput: 0MiB/s +-row_cache_class_name: org.apache.cassandra.cache.OHCProvider + row_cache_size: 16MiB + user_defined_functions_enabled: true + scripted_user_defined_functions_enabled: false diff --git a/databases/cassandra5/files/patch-test_conf_cassandra.yaml b/databases/cassandra5/files/patch-test_conf_cassandra.yaml new file mode 100644 index 000000000000..5112a17579ea --- /dev/null +++ b/databases/cassandra5/files/patch-test_conf_cassandra.yaml @@ -0,0 +1,10 @@ +--- test/conf/cassandra.yaml.orig 2024-10-12 12:40:42 UTC ++++ test/conf/cassandra.yaml +@@ -41,7 +41,6 @@ compaction_throughput: 0MiB/s + incremental_backups: true + concurrent_compactors: 4 + compaction_throughput: 0MiB/s +-row_cache_class_name: org.apache.cassandra.cache.OHCProvider + row_cache_size: 16MiB + user_defined_functions_enabled: true + scripted_user_defined_functions_enabled: false diff --git a/databases/cassandra5/files/patch-test_conf_unit-test-conf_test-native-port.yaml b/databases/cassandra5/files/patch-test_conf_unit-test-conf_test-native-port.yaml new file mode 100644 index 000000000000..725f03bd16bc --- /dev/null +++ b/databases/cassandra5/files/patch-test_conf_unit-test-conf_test-native-port.yaml @@ -0,0 +1,10 @@ +--- test/conf/unit-test-conf/test-native-port.yaml.orig 2023-05-25 14:13:37 UTC ++++ test/conf/unit-test-conf/test-native-port.yaml +@@ -40,7 +40,6 @@ server_encryption_options: + incremental_backups: true + concurrent_compactors: 4 + compaction_throughput: 0MiB/s +-row_cache_class_name: org.apache.cassandra.cache.OHCProvider + row_cache_size: 16MiB + user_defined_functions_enabled: true + scripted_user_defined_functions_enabled: true diff --git a/databases/cassandra5/pkg-descr b/databases/cassandra5/pkg-descr new file mode 100644 index 000000000000..c14d3a30ca12 --- /dev/null +++ b/databases/cassandra5/pkg-descr @@ -0,0 +1,12 @@ +Apache Cassandra is a free and open-source distributed database. +It is a Java-based, highly scalable, eventually consistent, wide +column store. Cassandra database clusters are masterless with no +single point of failure. Replication can be configured across +multiple data centers. + +Originally influenced by Dynamo and BigTable, Cassandra was initially +developed at and open sourced by Facebook before becoming a top-level +Apache project. + +The CQL query language offers SQL-like data access and management. +Drivers are available for a number of languages. diff --git a/databases/cassandra5/pkg-message b/databases/cassandra5/pkg-message new file mode 100644 index 000000000000..0fedd292d717 --- /dev/null +++ b/databases/cassandra5/pkg-message @@ -0,0 +1,9 @@ +[ +{ type: install + message: <