1PORTNAME= opensearch 2DISTVERSION= 2.19.4 3PORTREVISION= 0 4DISTVERSIONSUFFIX= -linux-${OPENSEARCH_ARCH} 5CATEGORIES= textproc java devel 6MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/ 7PKGNAMESUFFIX= 219 8 9MAINTAINER= ports@MidnightBSD.org 10COMMENT?= Full-text search engine for Java 11WWW= https://opensearch.org 12 13LICENSE= Apache-2.0 14 15ONLY_FOR_ARCHS= aarch64 amd64 16 17BUILD_DEPENDS= jna>0:devel/jna 18RUN_DEPENDS= bash>0:shells/bash \ 19 jna>0:devel/jna 20 21CONFLICTS= opensearch opensearch13 opensearch210 opensearch213 opensearch216 22 23USES= cpe java shebangfix 24JAVA_VERSION= 17+ 25USE_RC_SUBR= ${PORTNAME} 26 27SHEBANG_FILES= bin/opensearch bin/opensearch-cli \ 28 bin/opensearch-env bin/opensearch-env-from-file \ 29 bin/opensearch-keystore bin/opensearch-node \ 30 bin/opensearch-plugin bin/opensearch-shard \ 31 plugins/opensearch-security/tools/audit_config_migrater.sh \ 32 plugins/opensearch-security/tools/hash.sh \ 33 plugins/opensearch-security/tools/install_demo_configuration.sh \ 34 plugins/opensearch-security/tools/securityadmin.sh 35 36NO_BUILD= yes 37WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} 38 39OPTIONS_DEFINE= PLUGINS 40OPTIONS_DEFAULT=PLUGINS 41 42.include <bsd.mport.options.mk> 43 44.if ${ARCH} == "aarch64" 45OPENSEARCH_ARCH= arm64 46.else 47OPENSEARCH_ARCH= x64 48.endif 49 50CONFIG_FILES= opensearch.yml jvm.options log4j2.properties 51 52PLUGINS_CONFIG_FILES?= \ 53 opensearch-notifications-core/notifications-core.yml \ 54 opensearch-notifications/notifications.yml \ 55 opensearch-observability/observability.yml \ 56 opensearch-performance-analyzer/agent-stats-metadata \ 57 opensearch-performance-analyzer/log4j2.xml \ 58 opensearch-performance-analyzer/opensearch_security.policy \ 59 opensearch-performance-analyzer/performance-analyzer.properties \ 60 opensearch-performance-analyzer/plugin-stats-metadata \ 61 opensearch-performance-analyzer/rca.conf \ 62 opensearch-performance-analyzer/rca_idle_cluster_manager.conf \ 63 opensearch-performance-analyzer/rca_cluster_manager.conf \ 64 opensearch-performance-analyzer/supervisord.conf \ 65 opensearch-reports-scheduler/reports-scheduler.yml \ 66 opensearch-security/action_groups.yml \ 67 opensearch-security/allowlist.yml \ 68 opensearch-security/audit.yml \ 69 opensearch-security/config.yml \ 70 opensearch-security/internal_users.yml \ 71 opensearch-security/nodes_dn.yml \ 72 opensearch-security/roles.yml \ 73 opensearch-security/roles_mapping.yml \ 74 opensearch-security/tenants.yml \ 75 opensearch-security/whitelist.yml 76 77# Upstream provide some *.example files. These are also copied as sample filse 78# but we do not register them as @sample to avoid installing filse that needs 79# to be tuned a site specific way. 80PLUGINS_SAMPLE_CONFIG_FILES= \ 81 opensearch-security/opensearch.yml 82 83BINS= opensearch opensearch-cli opensearch-env \ 84 opensearch-env-from-file opensearch-keystore \ 85 opensearch-node opensearch-plugin \ 86 opensearch-shard 87 88SEARCHUSER?= opensearch 89SEARCHGROUP?= ${SEARCHUSER} 90USERS= ${SEARCHUSER} 91GROUPS= ${SEARCHGROUP} 92 93SUB_FILES= pkg-message 94SUB_LIST= ETCDIR=${ETCDIR} \ 95 JAVA_HOME=${JAVA_HOME} 96 97post-patch: 98 ${RM} ${WRKSRC}/lib/jna-*.jar 99 100do-install: 101 ${MKDIR} ${PREFIX}/etc/opensearch 102.for f in ${CONFIG_FILES} 103 ${INSTALL} ${WRKSRC}/config/${f} ${ETCDIR}/${f}.sample 104.endfor 105 ${MKDIR} ${PREFIX}/lib/opensearch/bin 106.for f in ${BINS} 107 ${INSTALL_SCRIPT} ${WRKSRC}/bin/${f} ${PREFIX}/lib/opensearch/bin 108.endfor 109 ${MKDIR} ${PREFIX}/lib/opensearch/extensions 110 ${MKDIR} ${PREFIX}/lib/opensearch/lib 111 (cd ${WRKSRC}/ && ${COPYTREE_SHARE} "lib modules" ${PREFIX}/lib/opensearch/) 112 ${MKDIR} ${PREFIX}/libexec/opensearch 113 ${INSTALL} -lrs ${ETCDIR} ${PREFIX}/lib/opensearch/config 114 ${LN} -s ${JAVASHAREDIR}/classes/jna.jar ${PREFIX}/lib/opensearch/lib/jna.jar 115 116do-install-PLUGINS-on: 117 ${MKDIR} ${FAKE_DESTDIR}${ETCDIR}/opensearch-notifications-core \ 118 ${FAKE_DESTDIR}${ETCDIR}/opensearch-notifications \ 119 ${FAKE_DESTDIR}${ETCDIR}/opensearch-observability \ 120 ${FAKE_DESTDIR}${ETCDIR}/opensearch-reports-scheduler \ 121 ${FAKE_DESTDIR}${ETCDIR}/opensearch-security \ 122 ${FAKE_DESTDIR}${ETCDIR}/opensearch-performance-analyzer 123 124 125.for f in ${PLUGINS_CONFIG_FILES} 126 ${INSTALL} ${WRKSRC}/config/${f} ${FAKE_DESTDIR}${ETCDIR}/${f}.sample 127 ${ECHO} "@sample ${ETCDIR}/${f}.sample" >> ${TMPPLIST} 128.endfor 129.for f in ${PLUGINS_SAMPLE_CONFIG_FILES} 130 ${INSTALL} ${WRKSRC}/config/${f}.example ${FAKE_DESTDIR}${ETCDIR}/${f}.sample 131 ${ECHO} "${ETCDIR}/${f}.sample" >> ${TMPPLIST} 132.endfor 133 (cd ${WRKSRC}/ && ${COPYTREE_SHARE} "plugins" ${FAKE_DESTDIR}${PREFIX}/lib/opensearch/) 134 (cd ${WRKSRC}/plugins/opensearch-security/tools && ${COPYTREE_BIN} "*.sh" ${FAKE_DESTDIR}${PREFIX}/lib/opensearch/plugins/opensearch-security/tools) 135 136post-install: 137.for f in ${CONFIG_FILES} 138 ${ECHO} "@sample ${ETCDIR_REL}/${f}.sample" >> ${TMPPLIST} 139.endfor 140 ${FIND} -s ${PREFIX}/lib/opensearch -not -type d | ${SORT} | \ 141 ${SED} -e 's#^${FAKE_DESTDIR}${TRUE_PREFIX}/##' >> ${TMPPLIST} 142 ${ECHO} "@dir lib/opensearch/extensions" >> ${TMPPLIST} 143 ${ECHO} "@dir libexec/opensearch" >> ${TMPPLIST} 144.if ${PORT_OPTIONS:MPLUGINS} 145 ${ECHO} "@dir lib/opensearch/plugins" >> ${TMPPLIST} 146 ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR_REL}/opensearch-notifications-core" >> ${TMPPLIST} 147 ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR_REL}/opensearch-notifications" >> ${TMPPLIST} 148 ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR_REL}/opensearch-observability" >> ${TMPPLIST} 149 ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR_REL}/opensearch-performance-analyzer" >> ${TMPPLIST} 150 ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR_REL}/opensearch-reports-scheduler" >> ${TMPPLIST} 151 ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR_REL}/opensearch-security" >> ${TMPPLIST} 152.endif 153 ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR_REL}/" >> ${TMPPLIST} 154 155.include <bsd.port.mk> 156