1PORTNAME=	cassandra
2DISTVERSION=	3.11.14
3PORTREVISION=	2
4CATEGORIES=	databases java
5MASTER_SITES=	FREEBSD_LOCAL/nc:repo
6PKGNAMESUFFIX=	3
7DISTFILES=	apache-${PORTNAME}-${DISTVERSION}-repo.tar.gz:repo
8
9MAINTAINER=	ports@MidnightBSD.org
10COMMENT=	Highly scalable distributed database
11WWW=		https://cassandra.apache.org/
12
13LICENSE=	Apache-2.0
14LICENSE_FILE=	${WRKSRC}/LICENSE.txt
15
16RUN_DEPENDS=	snappyjava>=0:archivers/snappy-java
17
18USES=		cpe java:ant,run python
19JAVA_VERSION=	8
20JAVA_VENDOR=	openjdk
21CPE_VENDOR=	apache
22
23USE_RC_SUBR=	cassandra
24
25USE_GITHUB=	yes
26GH_ACCOUNT=	polo-language
27GH_TAGNAME=	c29ba30
28
29NO_TEST=	yes
30
31CONFLICTS=	cassandra4
32
33DATADIR=	${JAVASHAREDIR}/${PORTNAME}
34
35REINPLACE_ARGS=	-i ''
36SUB_LIST=	JAVA_HOME=${JAVA_HOME}
37
38USERS=		cassandra
39GROUPS=		cassandra
40
41PLIST_SUB=	PORTVERSION=${PORTVERSION}
42PORTDOCS=		*
43
44OPTIONS_DEFINE=		SIGAR DOCS
45#OPTIONS_DEFAULT=	SIGAR
46OPTIONS_SUB=		yes
47
48SIGAR_DESC=		Use SIGAR to collect system information
49DOCS_BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR} \
50			${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR}
51#SIGAR_RUN_DEPENDS=	java-sigar>=1.6.4:java/sigar
52
53CONFIG_FILES=	cassandra-env.sh \
54		cassandra-jaas.config \
55		cassandra-rackdc.properties \
56		cassandra-topology.properties \
57		cassandra.yaml \
58		commitlog_archiving.properties \
59		hotspot_compiler \
60		jvm.options \
61		logback-tools.xml \
62		logback.xml
63
64DIST_DIR=	${WRKSRC}/build/dist
65REPO_DIR=	${WRKDIR}/repository
66
67SCRIPT_FILES=	cassandra \
68		cqlsh \
69		nodetool \
70		sstableloader \
71		sstablescrub \
72		sstableupgrade \
73		sstableutil \
74		sstableverify
75ANT_OPTS_LOCAL=	${ANT_OPTS} -Xmx512m
76
77post-patch:
78	@${CHMOD} ug+x ${WRKSRC}/pylib/cassandra-cqlsh-tests.sh
79	@${REINPLACE_CMD} -e 's|$${user.home}/.m2/repository/|$${localm2}/|g' ${WRKSRC}/.build/build-resolver.xml
80
81do-build:
82	@${DO_NADA} # Do nothing: Prevent USE_ANT from running a default build target.
83
84do-build-DOCS-on:
85	@cd ${WRKSRC} && ${MAKE_ENV} ANT_OPTS="${ANT_OPTS} -Xmx512m" ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocal.repository=${REPO_DIR} -Dpycmd=${PYTHON_CMD} freebsd-stage-doc
86
87do-build-DOCS-off:
88	@cd ${WRKSRC} && ${MAKE_ENV} ANT_OPTS="${ANT_OPTS} -Xmx512m" ${ANT} -Dmaven.repo.local=${REPO_DIR} -Dlocal.repository=${REPO_DIR} freebsd-stage
89
90post-build:
91.for f in ${SCRIPT_FILES}
92	@${REINPLACE_CMD} -e 's|/usr/share/cassandra|${DATADIR}/bin|' ${DIST_DIR}/bin/${f}
93.endfor
94	@${REINPLACE_CMD} -e 's|`dirname "$$0"`/..|${DATADIR}|' ${DIST_DIR}/bin/cassandra.in.sh
95	@${REINPLACE_CMD} -e 's|$$CASSANDRA_HOME/lib/sigar-bin|${JAVAJARDIR}|' ${DIST_DIR}/bin/cassandra.in.sh
96	@${REINPLACE_CMD} -e 's|$$CASSANDRA_HOME/lib/sigar-bin|${JAVAJARDIR}|' ${DIST_DIR}/conf/cassandra-env.sh
97	@${REINPLACE_CMD} -e 's|$$CASSANDRA_HOME/conf|${ETCDIR}|' ${DIST_DIR}/bin/cassandra.in.sh
98.for f in ${CONFIG_FILES}
99	@${MV} ${DIST_DIR}/conf/${f} ${DIST_DIR}/conf/${f}.sample
100.endfor
101	-${RM} ${DIST_DIR}/lib/licenses/sigar*
102	-${RMDIR} ${DIST_DIR}/lib/sigar-bin
103
104do-install:
105	${MKDIR} ${DATADIR}
106.for f in CHANGES LICENSE NEWS NOTICE
107	cd ${DIST_DIR} && ${INSTALL_DATA} ${f}.txt ${DATADIR}/
108.endfor
109.for d in interface lib pylib tools
110	cd ${DIST_DIR} && ${COPYTREE_SHARE} ${d} ${DATADIR}/ "! -path '*/bin/*'"
111.endfor
112	${MKDIR} ${ETCDIR}
113	cd ${DIST_DIR}/conf && ${COPYTREE_SHARE} . ${ETCDIR}/
114	cd ${DIST_DIR} && ${COPYTREE_BIN} bin ${DATADIR}
115	cd ${DIST_DIR} && ${INSTALL_DATA} bin/cassandra.in.sh ${DATADIR}/bin/
116	cd ${DIST_DIR} && ${COPYTREE_BIN} tools/bin ${DATADIR}/
117	cd ${DIST_DIR} && ${INSTALL_DATA} tools/bin/cassandra.in.sh ${DATADIR}/tools/bin/
118.for f in ${SCRIPT_FILES}
119	${RLN} ${DATADIR}/bin/${f} ${PREFIX}/bin/${f}
120.endfor
121	${LN} -s ${JAVAJARDIR}/snappy-java.jar ${DATADIR}/lib/snappy-java.jar
122
123post-install-DOCS-on:
124	${MKDIR} ${FAKE_DESTDIR}${DOCSDIR}
125.for d in doc javadoc
126	cd ${DIST_DIR} && ${COPYTREE_SHARE} ${d} ${FAKE_DESTDIR}${DOCSDIR}/
127.endfor
128
129post-install-SIGAR-on:
130	${LN} -s ${JAVAJARDIR}/sigar.jar ${FAKE_DESTDIR}${DATADIR}/lib/sigar.jar
131
132.include <bsd.port.mk>
133