1PORTNAME=	opensearch
2DISTVERSION=	1.3.10
3DISTVERSIONSUFFIX=	-linux-x64
4CATEGORIES=	textproc java devel
5MASTER_SITES=	https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/
6PKGNAMESUFFIX=	13
7
8MAINTAINER=	ports@MidnightBSD.org
9COMMENT=	Full-text search engine for Java
10WWW=		https://opensearch.org
11
12LICENSE=	Apache-2.0
13
14BUILD_DEPENDS=	jna>0:devel/jna
15RUN_DEPENDS=	bash>0:shells/bash \
16		jna>0:devel/jna
17
18CONFLICTS=	opensearch
19
20USES=		cpe java shebangfix
21JAVA_VERSION=	11+
22USE_RC_SUBR=	${PORTNAME}
23
24SHEBANG_FILES=	bin/opensearch bin/opensearch-cli \
25		bin/opensearch-env bin/opensearch-env-from-file \
26		bin/opensearch-keystore bin/opensearch-node \
27		bin/opensearch-plugin bin/opensearch-shard \
28		plugins/opensearch-security/tools/audit_config_migrater.sh \
29		plugins/opensearch-security/tools/hash.sh \
30		plugins/opensearch-security/tools/install_demo_configuration.sh \
31		plugins/opensearch-security/tools/securityadmin.sh
32
33NO_BUILD=	yes
34WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
35
36OPTIONS_DEFINE=	PLUGINS
37OPTIONS_DEFAULT=PLUGINS
38
39.include <bsd.mport.options.mk>
40
41CONFIG_FILES=	opensearch.yml jvm.options log4j2.properties
42
43PLUGINS_CONFIG_FILES?= \
44		opensearch-observability/observability.yml \
45		opensearch-performance-analyzer/agent-stats-metadata \
46		opensearch-performance-analyzer/log4j2.xml \
47		opensearch-performance-analyzer/opensearch_security.policy \
48		opensearch-performance-analyzer/performance-analyzer.properties \
49		opensearch-performance-analyzer/plugin-stats-metadata \
50		opensearch-performance-analyzer/rca.conf \
51		opensearch-performance-analyzer/rca_idle_master.conf \
52		opensearch-performance-analyzer/rca_master.conf \
53		opensearch-performance-analyzer/supervisord.conf \
54		opensearch-reports-scheduler/reports-scheduler.yml \
55
56BINS=		opensearch opensearch-cli opensearch-env \
57		opensearch-env-from-file opensearch-keystore \
58		opensearch-node opensearch-plugin \
59		opensearch-shard
60
61SEARCHUSER?=	opensearch
62SEARCHGROUP?=	${SEARCHUSER}
63USERS=		${SEARCHUSER}
64GROUPS=		${SEARCHGROUP}
65
66SUB_FILES=	pkg-message
67SUB_LIST=	ETCDIR=${ETCDIR} \
68		JAVA_HOME=${JAVA_HOME}
69
70post-patch:
71	${RM} ${WRKSRC}/lib/jna-*.jar
72
73do-install:
74	${MKDIR} ${PREFIX}/etc/opensearch
75.for f in ${CONFIG_FILES}
76	${INSTALL} ${WRKSRC}/config/${f} ${PREFIX}/${ETCDIR_REL}/${f}.sample
77.endfor
78	${MKDIR} ${PREFIX}/lib/opensearch/bin
79.for f in ${BINS}
80	${INSTALL_SCRIPT} ${WRKSRC}/bin/${f} ${PREFIX}/lib/opensearch/bin
81.endfor
82	${MKDIR} ${PREFIX}/lib/opensearch/lib
83	(cd ${WRKSRC}/ && ${COPYTREE_SHARE} "lib modules" ${PREFIX}/lib/opensearch/)
84	${MKDIR} ${PREFIX}/libexec/opensearch
85	${INSTALL} -lrs ${ETCDIR} ${PREFIX}/lib/opensearch/config
86	${LN} -s ${JAVASHAREDIR}/classes/jna.jar ${PREFIX}/lib/opensearch/lib/jna.jar
87
88do-install-PLUGINS-on:
89	${MKDIR} ${FAKE_DESTDIR}${ETCDIR}/opensearch-observability \
90		 ${FAKE_DESTDIR}${ETCDIR}/opensearch-performance-analyzer \
91		 ${FAKE_DESTDIR}${ETCDIR}/opensearch-reports-scheduler
92.for f in ${PLUGINS_CONFIG_FILES}
93	${INSTALL} ${WRKSRC}/config/${f} ${FAKE_DESTDIR}${ETCDIR}/${f}.sample
94	${ECHO} "@sample ${ETCDIR_REL}/${f}.sample" >> ${TMPPLIST}
95.endfor
96	(cd ${WRKSRC}/ && ${COPYTREE_SHARE} "plugins" ${FAKE_DESTDIR}${PREFIX}/lib/opensearch/)
97	(cd ${WRKSRC}/plugins/opensearch-security/tools && ${COPYTREE_BIN} "*.sh" ${FAKE_DESTDIR}${PREFIX}/lib/opensearch/plugins/opensearch-security/tools)
98
99post-install:
100.for f in ${CONFIG_FILES}
101	${ECHO} "@sample ${ETCDIR_REL}/${f}.sample" >> ${TMPPLIST}
102.endfor
103	${FIND} -s ${PREFIX}/lib/opensearch -not -type d | ${SORT} | \
104		${SED} -e 's#^${FAKE_DESTDIR}${TRUE_PREFIX}/##' >> ${TMPPLIST}
105	${ECHO} "@dir lib/opensearch/plugins" >> ${TMPPLIST}
106	${ECHO} "@dir libexec/opensearch" >> ${TMPPLIST}
107	${ECHO} "@dir(opensearch,opensearch,0755) ${ETCDIR}" >> ${TMPPLIST}
108
109.include <bsd.port.mk>
110