New port: databases/cassandra4: Highly scalable distributed database

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.

This is an ALPHA version! It is not intended for production use.

WWW: https://cassandra.apache.org/

PR:		246081
Submitted by:	Angelo Polo <language.devel@gmail.com>
Reviewed by:	yuri
This commit is contained in:
Kurt Jaeger 2020-05-02 19:48:32 +00:00
parent 2f7e3d4f5d
commit a7404fb865
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=533701
21 changed files with 1008 additions and 0 deletions

View file

@ -32,6 +32,7 @@
SUBDIR += c3p0
SUBDIR += cassandra-cpp-driver
SUBDIR += cassandra3
SUBDIR += cassandra4
SUBDIR += casstcl
SUBDIR += cayley
SUBDIR += cdb

View file

@ -26,6 +26,8 @@ USE_JAVA= yes
USE_ANT= yes
USE_RC_SUBR= cassandra
CONFLICTS= cassandra4
JAVA_VERSION= 1.8
JAVA_VENDOR= openjdk

View file

@ -0,0 +1,160 @@
# $FreeBSD$
PORTNAME= cassandra
DISTVERSION= 4.0-alpha4
CATEGORIES= databases java
MASTER_SITES= APACHE/cassandra/${DISTVERSION}:apache \
https://repo1.maven.org/maven2/com/github/luben/zstd-jni/1.4.4-9/:maven \
LOCAL/pi:repo
PKGNAMESUFFIX= 4
DISTNAME= apache-${PORTNAME}-${DISTVERSION}-src
DISTFILES= ${DISTNAME}.tar.gz:apache \
zstd-jni-1.4.4-9-freebsd_amd64.jar:maven \
apache-${PORTNAME}-${DISTVERSION}-repo.tar.gz:repo
EXTRACT_ONLY= ${DISTNAME}.tar.gz \
apache-${PORTNAME}-${DISTVERSION}-repo.tar.gz
MAINTAINER= language.devel@gmail.com
COMMENT= Highly scalable distributed database
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= snappyjava>=0:archivers/snappy-java \
netty>0:java/netty
USES= python:3.7
USE_JAVA= yes
USE_ANT= yes
USE_RC_SUBR= cassandra
TEST_TARGET= test
CONFLICTS= cassandra3
JAVA_VERSION= 8 11
JAVA_VENDOR= openjdk
REINPLACE_ARGS= -i ''
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-topology.properties \
cassandra.yaml \
commitlog_archiving.properties \
hotspot_compiler \
logback-tools.xml \
logback.xml \
jvm8-clients.options \
jvm8-server.options \
jvm11-clients.options \
jvm11-server.options \
jvm-clients.options \
jvm-server.options
SCRIPT_FILES= cassandra \
nodetool \
sstableloader \
sstablescrub \
sstableupgrade \
sstableutil \
sstableverify
PLIST_SUB= DISTVERSION=${DISTVERSION}
OPTIONS_DEFINE= SIGAR DOCS
OPTIONS_DEFAULT= SIGAR
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:textproc/py-sphinx@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR}
PORTDOCS= *
do-build:
@${DO_NADA} # Do nothing: Prevent USE_ANT from running a default build target.
do-build-DOCS-on:
cd ${WRKSRC} && ${SETENV} CASSANDRA_LOG_DIR=${WRKDIR}/gen-doc-log ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocalm2=${REPO_DIR} ${USEJDK11} -Dpycmd=${PYTHON_CMD} -Dpyver=${PYTHON_VER} freebsd-stage-doc
do-build-DOCS-off:
cd ${WRKSRC} && ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocalm2=${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
@${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/
.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} -Dlocalm2=${REPO_DIR} ${USEJDK11} -Dstagedlib=${STAGEDIR}${DATADIR}/lib test
.include <bsd.port.pre.mk>
.if ${JAVA_PORT_VERSION} == 11
USEJDK11= -Duse.jdk11=true
.endif
.if ${ARCH} == amd64
PLIST_SUB+= AMD64ONLY=""
.else
PLIST_SUB+= AMD64ONLY="@comment "
.endif
post-install:
${LN} -s ${JAVAJARDIR}/netty.jar ${STAGEDIR}${DATADIR}/lib/netty.jar
.if ${ARCH} == amd64
${CP} ${DISTDIR}/zstd-jni-1.4.4-9-freebsd_amd64.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 <bsd.port.post.mk>

View file

@ -0,0 +1,7 @@
TIMESTAMP = 1587819246
SHA256 (apache-cassandra-4.0-alpha4-src.tar.gz) = 8f62238ac1f19fc2ab91c1f88981a46ded3b5e30ed7421266682cf81942b5856
SIZE (apache-cassandra-4.0-alpha4-src.tar.gz) = 45311406
SHA256 (zstd-jni-1.4.4-9-freebsd_amd64.jar) = 97d20ae4ad56aad81d0f11cc4da21f6036bedc26f9908e4c2cc5998aa2dfcf4d
SIZE (zstd-jni-1.4.4-9-freebsd_amd64.jar) = 521330
SHA256 (apache-cassandra-4.0-alpha4-repo.tar.gz) = 6becab355e49fcddcd8b35e61febf39105d7a42574488ea91775bbd0b34d750b
SIZE (apache-cassandra-4.0-alpha4-repo.tar.gz) = 74348796

View file

@ -0,0 +1,42 @@
#!/bin/sh
#
# $FreeBSD$
#
# 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}
command=%%PREFIX%%/bin/cassandra
command_args="-p /var/run/cassandra/cassandra.pid >/dev/null 2>/dev/null"
start_precmd="${name}_prestart"
procname=%%JAVA_HOME%%/bin/java
pidfile=/var/run/cassandra/cassandra.pid
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"

View file

@ -0,0 +1,20 @@
--- bin/cassandra.orig 2020-04-10 22:29:25 UTC
+++ bin/cassandra
@@ -31,7 +31,7 @@
# JVM_OPTS -- Additional arguments to the JVM for heap size, etc
# JVM_ON_OUT_OF_MEMORY_ERROR_OPT -- The OnOutOfMemoryError JVM option if specified
# CASSANDRA_CONF -- Directory containing Cassandra configuration files.
-# CASSANDRA_LOG_DIR -- Directory containing logs(default: $CASSANDRA_HOME/logs).
+# CASSANDRA_LOG_DIR -- Directory containing logs(default: /var/log/cassandra).
#
# As a convenience, a fragment of shell is sourced in order to set one or
# more of these variables. This so-called `include' can be placed in a
@@ -116,7 +116,7 @@ if [ -f "$CASSANDRA_CONF/cassandra-env.sh" ]; then
fi
if [ -z "$CASSANDRA_LOG_DIR" ]; then
- CASSANDRA_LOG_DIR=$CASSANDRA_HOME/logs
+ CASSANDRA_LOG_DIR=/var/log/cassandra
fi
# Special-case path variables.

View file

@ -0,0 +1,222 @@
--- build.xml.orig 2020-04-10 22:29:25 UTC
+++ build.xml
@@ -23,6 +23,7 @@
<property file="build.properties" />
<property file="build.properties.default" />
<property name="debuglevel" value="source,lines,vars"/>
+ <property name="pycmd" value="python"/>
<!-- default version and SCM information -->
<property name="base.version" value="4.0-alpha4"/>
@@ -75,14 +76,14 @@
<condition property="version" value="${base.version}">
<isset property="release"/>
</condition>
- <property name="version" value="${base.version}-SNAPSHOT"/>
+ <property name="version" value="${base.version}"/>
<property name="version.properties.dir"
value="${build.src.resources}/org/apache/cassandra/config/" />
<property name="final.name" value="${ant.project.name}-${version}"/>
<!-- details of what version of Maven ANT Tasks to fetch -->
<property name="maven-ant-tasks.version" value="2.1.3" />
- <property name="maven-ant-tasks.local" value="${user.home}/.m2/repository/org/apache/maven/maven-ant-tasks"/>
+ <property name="maven-ant-tasks.local" value="${localm2}/org/apache/maven/maven-ant-tasks"/>
<property name="maven-ant-tasks.url"
value="https://repo.maven.apache.org/maven2/org/apache/maven/maven-ant-tasks" />
<!-- details of how and which Maven repository we publish to -->
@@ -241,7 +242,7 @@
</path>
<path id="cassandra.classpath.test">
<file file="${build.dir}/${final.name}.jar"/> <!-- we need the jar for tests and benchmarks (multi-version jar) -->
- <fileset dir="${build.lib}">
+ <fileset dir="${stagedlib}">
<include name="**/*.jar" />
<exclude name="**/*-sources.jar"/>
<exclude name="**/ant-*.jar"/>
@@ -262,6 +263,7 @@
bottom="Copyright &amp;copy; 2009-2020 The Apache Software Foundation"
useexternalfile="yes" encoding="UTF-8"
maxmemory="256m">
+ <arg value="${jdk11-javac-exports}"/>
<filesets/>
</javadoc>
</sequential>
@@ -379,8 +381,7 @@
<artifact:dependencies pathId="wikitext.classpath">
<dependency groupId="com.datastax.wikitext" artifactId="wikitext-core-ant" version="1.3"/>
<dependency groupId="org.fusesource.wikitext" artifactId="textile-core" version="1.3"/>
- <remoteRepository refid="central"/>
- <remoteRepository refid="apache"/>
+ <localRepository path="${localm2}"/>
</artifact:dependencies>
<taskdef classpathref="wikitext.classpath" resource="wikitexttasks.properties" />
<wikitext-to-html markupLanguage="Textile">
@@ -393,6 +394,8 @@
<target name="gen-doc" depends="maven-ant-tasks-init" description="Generate documentation" unless="ant.gen-doc.skip">
<exec executable="make" osfamily="unix" dir="${doc.dir}">
<arg value="html"/>
+ <arg value="PYTHON_CMD=${pycmd}"/>
+ <arg value="PYTHON_VER=${pyver}"/>
</exec>
<exec executable="cmd" osfamily="dos" dir="${doc.dir}">
<arg value="/c"/>
@@ -435,10 +438,6 @@
description="Initialize Maven ANT Tasks">
<typedef uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />
- <!-- define the remote repositories we use -->
- <artifact:remoteRepository id="central" url="${artifact.remoteRepository.central}"/>
- <artifact:remoteRepository id="apache" url="${artifact.remoteRepository.apache}"/>
-
<macrodef name="install">
<attribute name="pomFile"/>
<attribute name="file"/>
@@ -842,16 +841,14 @@
filesetId="build-dependency-jars"
cacheDependencyRefs="true"
dependencyRefsBuildFile="${build.dir}/build-dependencies.xml">
- <remoteRepository refid="central"/>
- <remoteRepository refid="apache"/>
+ <localRepository path="${localm2}"/>
</artifact:dependencies>
<!-- retrieve -source.jar artifacts using the reference-pom with the artifacts that have these -->
<artifact:dependencies pomRefId="build-deps-pom-sources"
sourcesFilesetId="build-dependency-sources"
cacheDependencyRefs="true"
dependencyRefsBuildFile="${build.dir}/build-dependencies-sources.xml">
- <remoteRepository refid="central"/>
- <remoteRepository refid="apache"/>
+ <localRepository path="${localm2}"/>
</artifact:dependencies>
<copy todir="${build.dir.lib}/jars">
<fileset refid="build-dependency-jars"/>
@@ -864,7 +861,7 @@
<!-- code coverage tools -->
<artifact:dependencies pomRefId="coverage-deps-pom"
filesetId="coverage-dependency-jars">
- <remoteRepository refid="central"/>
+ <localRepository path="${localm2}"/>
</artifact:dependencies>
<copy todir="${build.dir.lib}/jars">
<fileset refid="coverage-dependency-jars"/>
@@ -893,8 +890,7 @@
sourcesFilesetId="test-dependency-sources"
cacheDependencyRefs="true"
dependencyRefsBuildFile="${build.dir}/test-dependencies.xml">
- <remoteRepository refid="apache"/>
- <remoteRepository refid="central"/>
+ <localRepository path="${localm2}"/>
</artifact:dependencies>
<copy todir="${test.lib}/jars">
<fileset refid="test-dependency-jars"/>
@@ -1217,6 +1213,86 @@
</copy>
</target>
+ <!-- FreeBSD for staging -->
+ <target name="freebsd-stage" depends="jar"
+ description="Create Cassandra directory structure for staging">
+ <mkdir dir="${dist.dir}"/>
+ <copy todir="${dist.dir}/lib">
+ <fileset dir="${build.lib}">
+ <exclude name="sigar*.jar"/>
+ <exclude name="sigar-bin/*"/>
+ <exclude name="snappy*.jar"/>
+ <exclude name="netty-all*.jar"/>
+ <exclude name="ohc*.jar"/>
+ <exclude name="licenses/snappy*.txt"/>
+ <exclude name="licenses/netty-4*.txt"/>
+ <exclude name="licenses/ohc*.txt"/>
+ </fileset>
+ <fileset dir="${build.dir}">
+ <include name="${final.name}.jar" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/bin">
+ <fileset dir="bin">
+ <exclude name="*.bat" />
+ <exclude name="*.ps1" />
+ <exclude name="*.orig" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/conf">
+ <fileset dir="conf">
+ <exclude name="*.ps1" />
+ <exclude name="*.orig" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/pylib">
+ <fileset dir="pylib">
+ <include name="**" />
+ <exclude name="**/*.pyc" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/">
+ <fileset dir="${basedir}">
+ <include name="*.txt" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/tools/bin">
+ <fileset dir="${basedir}/tools/bin">
+ <exclude name="*.bat" />
+ <exclude name="*.ps1" />
+ <exclude name="*.orig" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/tools/">
+ <fileset dir="${basedir}/tools/">
+ <include name="*.yaml"/>
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/tools/lib">
+ <fileset dir="${build.dir}/tools/lib/">
+ <include name="*.jar" />
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="freebsd-stage-doc" depends="freebsd-stage,javadoc,gen-doc"
+ description="Create Cassandra directory structure for staging, including docs">
+ <copy todir="${dist.dir}/javadoc">
+ <fileset dir="${javadoc.dir}"/>
+ </copy>
+ <copy todir="${dist.dir}/doc">
+ <fileset dir="doc">
+ <include name="cql3/CQL.html" />
+ <include name="cql3/CQL.css" />
+ <include name="SASI.md" />
+ </fileset>
+ </copy>
+ <copy todir="${dist.dir}/doc/html">
+ <fileset dir="doc" />
+ <globmapper from="build/html/*" to="*"/>
+ </copy>
+ </target>
+
<!-- creates release tarballs -->
<target name="artifacts" depends="_artifacts-init"
description="Create Cassandra release artifacts">
@@ -1923,8 +1999,8 @@
<exec executable="nproc" outputproperty="cores.count" os="Linux,SunOS,Solaris" failifexecutionfails="false">
<arg value="--all"/>
</exec>
- <!-- support for Mac OS X -->
- <exec executable="sysctl" outputproperty="cores.count" os="Mac,Mac OS X,Darwin" failifexecutionfails="false">
+ <!-- support for Mac OS X and FreeBSD -->
+ <exec executable="sysctl" outputproperty="cores.count" os="Mac,Mac OS X,Darwin,FreeBSD" failifexecutionfails="false">
<arg value="-n"/>
<arg value="hw.ncpu"/>
</exec>
@@ -1944,6 +2020,11 @@
<exec executable="sysctl" outputproperty="mem.size" os="Mac,Mac OS X,Darwin" failifexecutionfails="false">
<arg value="-n"/>
<arg value="hw.memsize"/>
+ </exec>
+ <!-- support for FreeBSD -->
+ <exec executable="sysctl" outputproperty="mem.size" os="FreeBSD" failifexecutionfails="false">
+ <arg value="-n"/>
+ <arg value="hw.physmem"/>
</exec>
<echo message="Mem size : ${mem.size}"/>
</target>

View file

@ -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

View file

@ -0,0 +1,68 @@
--- conf/cassandra.yaml.orig 2020-01-30 17:34:31 UTC
+++ conf/cassandra.yaml
@@ -76,7 +76,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.
@@ -203,13 +203,13 @@ 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
# 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
@@ -220,7 +220,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 data disk failures:
#
@@ -312,20 +312,12 @@ key_cache_save_period: 14400
# 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 availabile
# 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.
row_cache_size_in_mb: 0
@@ -372,7 +364,7 @@ counter_cache_save_period: 7200
# 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
# commitlog_sync may be either "periodic", "group", or "batch."
#

View file

@ -0,0 +1,23 @@
--- doc/Makefile.orig 2020-01-30 17:34:31 UTC
+++ doc/Makefile
@@ -3,7 +3,7 @@
# You can set these variables from the command line.
SPHINXOPTS =
-SPHINXBUILD = sphinx-build
+SPHINXBUILD = sphinx-build-${PYTHON_VER}
PAPER =
BUILDDIR = build
@@ -17,9 +17,9 @@ I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) s
YAML_DOC_INPUT=../conf/cassandra.yaml
YAML_DOC_OUTPUT=source/configuration/cassandra_config_file.rst
-MAKE_CASSANDRA_YAML = python convert_yaml_to_rst.py $(YAML_DOC_INPUT) $(YAML_DOC_OUTPUT)
+MAKE_CASSANDRA_YAML = ${PYTHON_CMD} convert_yaml_to_rst.py $(YAML_DOC_INPUT) $(YAML_DOC_OUTPUT)
-GENERATE_NODETOOL_DOCS = python gen-nodetool-docs.py
+GENERATE_NODETOOL_DOCS = ${PYTHON_CMD} gen-nodetool-docs.py
WEB_SITE_PRESENCE_FILE='source/.build_for_website'

View file

@ -0,0 +1,20 @@
--- doc/gen-nodetool-docs.py.orig 2020-04-10 22:29:25 UTC
+++ doc/gen-nodetool-docs.py
@@ -57,7 +57,7 @@ def create_rst(command):
cmdName = command.group(0).strip()
cmdFilename = outdir + "/" + cmdName + ".txt"
rstFilename = outdir + "/" + cmdName + ".rst"
- with open(cmdFilename, "w+") as cmdFile:
+ with open(cmdFilename, "w+b") as cmdFile:
proc = Popen([nodetool, "help", cmdName], stdin=PIPE, stdout=PIPE)
(out, err) = proc.communicate()
cmdFile.write(out)
@@ -76,7 +76,7 @@ with open(outdir + "/nodetool.rst", "w+") as output:
output.write(command)
# create the command usage pages
-with open(helpfilename, "rw+") as helpfile:
+with open(helpfilename, "r+") as helpfile:
for commandLine in helpfile:
command = command_re.match(commandLine)
create_rst(command)

View file

@ -0,0 +1,11 @@
--- src/java/org/apache/cassandra/config/Config.java.orig 2020-01-30 17:34:32 UTC
+++ src/java/org/apache/cassandra/config/Config.java
@@ -289,7 +289,7 @@ public class Config
public volatile int key_cache_save_period = 14400;
public volatile int key_cache_keys_to_save = Integer.MAX_VALUE;
- public String row_cache_class_name = "org.apache.cassandra.cache.OHCProvider";
+ public String row_cache_class_name = "org.apache.cassandra.cache.SerializingCacheProvider";
public long row_cache_size_in_mb = 0;
public volatile int row_cache_save_period = 0;
public volatile int row_cache_keys_to_save = Integer.MAX_VALUE;

View file

@ -0,0 +1,11 @@
--- src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java.orig 2019-10-24 16:42:10 UTC
+++ src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java
@@ -90,7 +90,7 @@ public class MemoryMappedSegment extends CommitLogSegm
{
throw new FSWriteError(e, getPath());
}
- NativeLibrary.trySkipCache(fd, startMarker, nextMarker, logFile.getAbsolutePath());
+// NativeLibrary.trySkipCache(fd, startMarker, nextMarker, logFile.getAbsolutePath());
}
@Override

View file

@ -0,0 +1,18 @@
--- src/java/org/apache/cassandra/service/NativeTransportService.java.orig 2020-04-01 19:54:51 UTC
+++ src/java/org/apache/cassandra/service/NativeTransportService.java
@@ -143,12 +143,15 @@ public class NativeTransportService
*/
public static boolean useEpoll()
{
+ /*
final boolean enableEpoll = Boolean.parseBoolean(System.getProperty("cassandra.native.epoll.enabled", "true"));
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.
}
/**

View file

@ -0,0 +1,18 @@
--- src/java/org/apache/cassandra/service/StartupChecks.java.orig 2020-01-30 17:34:32 UTC
+++ src/java/org/apache/cassandra/service/StartupChecks.java
@@ -262,7 +262,14 @@ public class StartupChecks
{
public void execute()
{
- 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.");
+ }
}
};

View file

@ -0,0 +1,108 @@
--- src/java/org/apache/cassandra/utils/FastByteOperations.java.orig 2020-03-30 16:37:37 UTC
+++ src/java/org/apache/cassandra/utils/FastByteOperations.java
@@ -191,6 +191,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,
@@ -214,7 +228,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);
@@ -230,7 +244,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(ByteBuffer srcBuf, int srcPosition, ByteBuffer trgBuf, int trgPosition, int length)
@@ -245,7 +259,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);
}
@@ -255,7 +269,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)
@@ -263,7 +277,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
{
@@ -302,7 +316,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();
@@ -325,7 +339,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;
@@ -358,8 +372,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)
{
@@ -372,8 +386,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;
}

View file

@ -0,0 +1,14 @@
--- src/java/org/apache/cassandra/utils/NativeLibrary.java.orig 2020-01-30 17:34:32 UTC
+++ src/java/org/apache/cassandra/utils/NativeLibrary.java
@@ -141,7 +141,10 @@ public final class NativeLibrary
else if (osName.contains("windows"))
return WINDOWS;
- 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

View file

@ -0,0 +1,10 @@
--- test/conf/cassandra.yaml.orig 2018-03-06 21:24:02 UTC
+++ test/conf/cassandra.yaml
@@ -40,7 +40,6 @@ server_encryption_options:
incremental_backups: true
concurrent_compactors: 4
compaction_throughput_mb_per_sec: 0
-row_cache_class_name: org.apache.cassandra.cache.OHCProvider
row_cache_size_in_mb: 16
enable_user_defined_functions: true
enable_scripted_user_defined_functions: true

View file

@ -0,0 +1,16 @@
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.
This is an ALPHA version! It is not intended for production use.
WWW: https://cassandra.apache.org/

View file

@ -0,0 +1,12 @@
[
{ type: install
message: <<EOM
Entries for this machine's hostname may need to be set in /etc/hosts
if you get a "Local host name unknown" exception on startup
(see https://issues.apache.org/jira/browse/CASSANDRA-2380):
::1 localhost localhost.your.domain your-host-name
127.0.0.1 localhost localhost.your.domain your-host-name
EOM
}
]

View file

@ -0,0 +1,214 @@
%%DATADIR%%/bin/cassandra
%%DATADIR%%/bin/cassandra.in.sh
%%DATADIR%%/bin/cqlsh
%%DATADIR%%/bin/cqlsh.py
%%DATADIR%%/bin/debug-cql
%%DATADIR%%/bin/nodetool
%%DATADIR%%/bin/sstableloader
%%DATADIR%%/bin/sstablescrub
%%DATADIR%%/bin/sstableupgrade
%%DATADIR%%/bin/sstableutil
%%DATADIR%%/bin/sstableverify
%%DATADIR%%/bin/stop-server
%%DATADIR%%/CHANGES.txt
%%DATADIR%%/lib/airline-0.8.jar
%%DATADIR%%/lib/antlr-runtime-3.5.2.jar
%%DATADIR%%/lib/apache-cassandra-%%DISTVERSION%%.jar
%%DATADIR%%/lib/asm-7.1.jar
%%DATADIR%%/lib/caffeine-2.3.5.jar
%%DATADIR%%/lib/cassandra-driver-core-3.6.0-shaded.jar
%%DATADIR%%/lib/cassandra-driver-internal-only-3.21.0.post0-05fb2c8d.zip
%%DATADIR%%/lib/chronicle-bytes-1.16.3.jar
%%DATADIR%%/lib/chronicle-core-1.16.4.jar
%%DATADIR%%/lib/chronicle-queue-4.16.3.jar
%%DATADIR%%/lib/chronicle-threads-1.16.0.jar
%%DATADIR%%/lib/chronicle-wire-1.16.1.jar
%%DATADIR%%/lib/commons-cli-1.1.jar
%%DATADIR%%/lib/commons-codec-1.9.jar
%%DATADIR%%/lib/commons-lang3-3.1.jar
%%DATADIR%%/lib/commons-math3-3.2.jar
%%DATADIR%%/lib/concurrent-trees-2.4.0.jar
%%DATADIR%%/lib/ecj-4.6.1.jar
%%DATADIR%%/lib/futures-2.1.6-py2.py3-none-any.zip
%%DATADIR%%/lib/geomet-0.1.0.zip
%%DATADIR%%/lib/guava-27.0-jre.jar
%%DATADIR%%/lib/HdrHistogram-2.1.9.jar
%%DATADIR%%/lib/high-scale-lib-1.0.6.jar
%%DATADIR%%/lib/hppc-0.8.1.jar
%%DATADIR%%/lib/j2objc-annotations-1.3.jar
%%DATADIR%%/lib/jackson-annotations-2.9.5.jar
%%DATADIR%%/lib/jackson-core-2.9.5.jar
%%DATADIR%%/lib/jackson-databind-2.9.5.jar
%%DATADIR%%/lib/jamm-0.3.2.jar
%%DATADIR%%/lib/javax.inject.jar
%%DATADIR%%/lib/jbcrypt-0.3m.jar
%%DATADIR%%/lib/jcl-over-slf4j-1.7.25.jar
%%DATADIR%%/lib/jcommander-1.30.jar
%%DATADIR%%/lib/jctools-core-1.2.1.jar
%%DATADIR%%/lib/jflex-1.6.0.jar
%%DATADIR%%/lib/jna-4.2.2.jar
%%DATADIR%%/lib/json-simple-1.1.jar
%%DATADIR%%/lib/jstackjunit-0.0.1.jar
%%DATADIR%%/lib/jvm-attach-api-1.5.jar
%%DATADIR%%/lib/licenses/airline-0.8.txt
%%DATADIR%%/lib/licenses/antlr-runtime-3.5.2.txt
%%DATADIR%%/lib/licenses/asm-6.2.txt
%%DATADIR%%/lib/licenses/caffeine-2.3.5.txt
%%DATADIR%%/lib/licenses/cassandra-driver-3.0.1.txt
%%DATADIR%%/lib/licenses/chronicle-bytes-1.16.3.txt
%%DATADIR%%/lib/licenses/chronicle-core-1.16.3-SNAPSHOT.txt
%%DATADIR%%/lib/licenses/chronicle-queue-4.16.3.txt
%%DATADIR%%/lib/licenses/chronicle-threads-1.16.0.txt
%%DATADIR%%/lib/licenses/chronicle-wire-1.16.1.txt
%%DATADIR%%/lib/licenses/commons-cli-1.1.txt
%%DATADIR%%/lib/licenses/commons-codec-1.9.txt
%%DATADIR%%/lib/licenses/commons-lang3-3.1.txt
%%DATADIR%%/lib/licenses/commons-math3-3.2.txt
%%DATADIR%%/lib/licenses/compress-lzf-0.8.4.txt
%%DATADIR%%/lib/licenses/concurrent-trees-2.4.0.txt
%%DATADIR%%/lib/licenses/ecj-4.6.1.txt
%%DATADIR%%/lib/licenses/futures-2.1.6.txt
%%DATADIR%%/lib/licenses/geom-0.1.0.txt
%%DATADIR%%/lib/licenses/guava-23.3-jre.txt
%%DATADIR%%/lib/licenses/hdrhistogram-2.1.9.txt
%%DATADIR%%/lib/licenses/high-scale-lib-1.0.6.txt
%%DATADIR%%/lib/licenses/hppc-0.5.4.txt
%%DATADIR%%/lib/licenses/j2objc-annotations-1.3.txt
%%DATADIR%%/lib/licenses/jackson-annotations-2.9.5.txt
%%DATADIR%%/lib/licenses/jackson-core-2.9.5.txt
%%DATADIR%%/lib/licenses/jackson-databind-2.9.5.txt
%%DATADIR%%/lib/licenses/jamm-0.3.2.txt
%%DATADIR%%/lib/licenses/javax.inject.txt
%%DATADIR%%/lib/licenses/jbcrypt-0.3m.txt
%%DATADIR%%/lib/licenses/jcl-over-slf4j-1.7.25.txt
%%DATADIR%%/lib/licenses/jctools-core-1.2.1.txt
%%DATADIR%%/lib/licenses/jflex-1.6.0.txt
%%DATADIR%%/lib/licenses/jna-4.2.2.txt
%%DATADIR%%/lib/licenses/joda-time-2.4.txt
%%DATADIR%%/lib/licenses/json-simple-1.1.txt
%%DATADIR%%/lib/licenses/jstackjunit-0.0.1.txt
%%DATADIR%%/lib/licenses/LICENSE-2.0.txt
%%DATADIR%%/lib/licenses/log4j-over-slf4j-1.7.25.txt
%%DATADIR%%/lib/licenses/logback-classic-1.2.3.txt
%%DATADIR%%/lib/licenses/logback-core-1.2.3.txt
%%DATADIR%%/lib/licenses/lz4-1.4.0.txt
%%DATADIR%%/lib/licenses/metrics-core-3.1.5.txt
%%DATADIR%%/lib/licenses/metrics-jvm-3.1.5.txt
%%DATADIR%%/lib/licenses/metrics-logback-3.1.5.txt
%%DATADIR%%/lib/licenses/netty-tcnative-2.0.25.txt
%%DATADIR%%/lib/licenses/psjava-0.1.19.txt
%%DATADIR%%/lib/licenses/reporter-config-base-3.0.3.txt
%%DATADIR%%/lib/licenses/reporter-config3-3.0.3.txt
%%DATADIR%%/lib/licenses/six-1.7.3.txt
%%DATADIR%%/lib/licenses/slf4j-api-1.7.25.txt
%%DATADIR%%/lib/licenses/snakeyaml-1.11.txt
%%DATADIR%%/lib/licenses/snowball-stemmer-1.3.0.581.1.txt
%%DATADIR%%/lib/licenses/ST4-4.0.8.txt
%%DATADIR%%/lib/licenses/stream-2.5.2.txt
%%DATADIR%%/lib/log4j-over-slf4j-1.7.25.jar
%%DATADIR%%/lib/logback-classic-1.2.3.jar
%%DATADIR%%/lib/logback-core-1.2.3.jar
%%DATADIR%%/lib/lz4-java-1.7.1.jar
%%DATADIR%%/lib/metrics-core-3.1.5.jar
%%DATADIR%%/lib/metrics-jvm-3.1.5.jar
%%DATADIR%%/lib/metrics-logback-3.1.5.jar
%%DATADIR%%/lib/mxdump-0.14.jar
%%DATADIR%%/lib/netty.jar
%%DATADIR%%/lib/netty-tcnative-boringssl-static-2.0.25.Final.jar
%%DATADIR%%/lib/psjava-0.1.19.jar
%%DATADIR%%/lib/reporter-config-base-3.0.3.jar
%%DATADIR%%/lib/reporter-config3-3.0.3.jar
%%DATADIR%%/lib/six-1.12.0-py2.py3-none-any.zip
%%DATADIR%%/lib/sjk-cli-0.14.jar
%%DATADIR%%/lib/sjk-core-0.14.jar
%%DATADIR%%/lib/sjk-json-0.14.jar
%%DATADIR%%/lib/sjk-stacktrace-0.14.jar
%%DATADIR%%/lib/slf4j-api-1.7.25.jar
%%DATADIR%%/lib/snakeyaml-1.11.jar
%%DATADIR%%/lib/snappy-java.jar
%%DATADIR%%/lib/snowball-stemmer-1.3.0.581.1.jar
%%DATADIR%%/lib/ST4-4.0.8.jar
%%DATADIR%%/lib/stream-2.5.2.jar
%%AMD64ONLY%%%%DATADIR%%/lib/zstd-jni-1.4.4-9-freebsd_amd64.jar
%%DATADIR%%/LICENSE.txt
%%DATADIR%%/NEWS.txt
%%DATADIR%%/NOTICE.txt
%%DATADIR%%/pylib/cassandra-cqlsh-tests.sh
%%DATADIR%%/pylib/cqlshlib/__init__.py
%%DATADIR%%/pylib/cqlshlib/copyutil.py
%%DATADIR%%/pylib/cqlshlib/cql3handling.py
%%DATADIR%%/pylib/cqlshlib/cqlhandling.py
%%DATADIR%%/pylib/cqlshlib/cqlshhandling.py
%%DATADIR%%/pylib/cqlshlib/displaying.py
%%DATADIR%%/pylib/cqlshlib/formatting.py
%%DATADIR%%/pylib/cqlshlib/helptopics.py
%%DATADIR%%/pylib/cqlshlib/pylexotron.py
%%DATADIR%%/pylib/cqlshlib/saferscanner.py
%%DATADIR%%/pylib/cqlshlib/setup.cfg
%%DATADIR%%/pylib/cqlshlib/sslhandling.py
%%DATADIR%%/pylib/cqlshlib/test/__init__.py
%%DATADIR%%/pylib/cqlshlib/test/ansi_colors.py
%%DATADIR%%/pylib/cqlshlib/test/basecase.py
%%DATADIR%%/pylib/cqlshlib/test/cassconnect.py
%%DATADIR%%/pylib/cqlshlib/test/run_cqlsh.py
%%DATADIR%%/pylib/cqlshlib/test/test_copyutil.py
%%DATADIR%%/pylib/cqlshlib/test/test_cql_parsing.py
%%DATADIR%%/pylib/cqlshlib/test/test_cqlsh_completion.py
%%DATADIR%%/pylib/cqlshlib/test/test_cqlsh_output.py
%%DATADIR%%/pylib/cqlshlib/test/test_keyspace_init.cql
%%DATADIR%%/pylib/cqlshlib/test/winpty.py
%%DATADIR%%/pylib/cqlshlib/tracing.py
%%DATADIR%%/pylib/cqlshlib/util.py
%%DATADIR%%/pylib/cqlshlib/wcwidth.py
%%DATADIR%%/pylib/Dockerfile.ubuntu.py2
%%DATADIR%%/pylib/Dockerfile.ubuntu.py3
%%DATADIR%%/pylib/README.asc
%%DATADIR%%/pylib/requirements.txt
%%DATADIR%%/pylib/setup.py
%%DATADIR%%/tools/bin/auditlogviewer
%%DATADIR%%/tools/bin/cassandra-stress
%%DATADIR%%/tools/bin/cassandra-stressd
%%DATADIR%%/tools/bin/cassandra.in.sh
%%DATADIR%%/tools/bin/compaction-stress
%%DATADIR%%/tools/bin/fqltool
%%DATADIR%%/tools/bin/sstabledump
%%DATADIR%%/tools/bin/sstableexpiredblockers
%%DATADIR%%/tools/bin/sstablelevelreset
%%DATADIR%%/tools/bin/sstablemetadata
%%DATADIR%%/tools/bin/sstableofflinerelevel
%%DATADIR%%/tools/bin/sstablerepairedset
%%DATADIR%%/tools/bin/sstablesplit
%%DATADIR%%/tools/cqlstress-counter-example.yaml
%%DATADIR%%/tools/cqlstress-example.yaml
%%DATADIR%%/tools/cqlstress-insanity-example.yaml
%%DATADIR%%/tools/cqlstress-lwt-example.yaml
%%DATADIR%%/tools/lib/fqltool.jar
%%DATADIR%%/tools/lib/stress.jar
%%ETCDIR%%/metrics-reporter-config-sample.yaml
%%ETCDIR%%/README.txt
%%ETCDIR%%/triggers/README.txt
%%SIGAR%%%%DATADIR%%/lib/sigar.jar
@sample %%ETCDIR%%/cassandra-env.sh.sample
@sample %%ETCDIR%%/cassandra-jaas.config.sample
@sample %%ETCDIR%%/cassandra-rackdc.properties.sample
@sample %%ETCDIR%%/cassandra-topology.properties.sample
@sample %%ETCDIR%%/cassandra.yaml.sample
@sample %%ETCDIR%%/commitlog_archiving.properties.sample
@sample %%ETCDIR%%/cqlshrc.sample
@sample %%ETCDIR%%/hotspot_compiler.sample
@sample %%ETCDIR%%/jvm-clients.options.sample
@sample %%ETCDIR%%/jvm-server.options.sample
@sample %%ETCDIR%%/jvm11-clients.options.sample
@sample %%ETCDIR%%/jvm11-server.options.sample
@sample %%ETCDIR%%/jvm8-clients.options.sample
@sample %%ETCDIR%%/jvm8-server.options.sample
@sample %%ETCDIR%%/logback-tools.xml.sample
@sample %%ETCDIR%%/logback.xml.sample
bin/cassandra
bin/cqlsh
bin/nodetool
bin/sstableloader
bin/sstablescrub
bin/sstableupgrade
bin/sstableutil
bin/sstableverify