blob: ffbda0ffe64b62724600cdb3c9ef08bcbf2a3dd0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
PORTNAME= elasticsearch
PORTVERSION= 8.5.2
CATEGORIES= textproc java devel
MASTER_SITES= https://artifacts.elastic.co/downloads/${PORTNAME}/
PKGNAMESUFFIX= 8
DISTNAME= ${PORTNAME}-${PORTVERSION}-darwin-x86_64
MAINTAINER= elastic@FreeBSD.org
COMMENT= Distributed, RESTful search and analytics engine
WWW= https://www.elastic.co/
LICENSE= APACHE20
BUILD_DEPENDS= jna>0:devel/jna
RUN_DEPENDS= bash:shells/bash \
jna>0:devel/jna
USES= cpe shebangfix
USE_JAVA= yes
JAVA_VERSION= 17+
USE_RC_SUBR= ${PORTNAME}
SHEBANG_FILES= bin/elasticsearch bin/elasticsearch-certgen \
bin/elasticsearch-certutil bin/elasticsearch-cli \
bin/elasticsearch-create-enrollment-token \
bin/elasticsearch-croneval bin/elasticsearch-env \
bin/elasticsearch-env-from-file bin/elasticsearch-geoip \
bin/elasticsearch-keystore bin/elasticsearch-node \
bin/elasticsearch-plugin bin/elasticsearch-reconfigure-node \
bin/elasticsearch-reset-password \
bin/elasticsearch-saml-metadata \
bin/elasticsearch-service-tokens \
bin/elasticsearch-setup-passwords bin/elasticsearch-shard \
bin/elasticsearch-sql-cli bin/elasticsearch-syskeygen \
bin/elasticsearch-users
CONFLICTS= elasticsearch6 elasticsearch7
NO_ARCH= yes
NO_BUILD= yes
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
OPTIONS_DEFINE= DOCS
.include <bsd.port.options.mk>
CONFIG_FILES= elasticsearch.yml jvm.options log4j2.properties \
role_mapping.yml roles.yml
BINS= elasticsearch elasticsearch-certgen elasticsearch-certutil \
elasticsearch-cli elasticsearch-create-enrollment-token \
elasticsearch-croneval elasticsearch-env \
elasticsearch-env-from-file elasticsearch-geoip \
elasticsearch-keystore elasticsearch-node elasticsearch-plugin \
elasticsearch-reconfigure-node elasticsearch-reset-password \
elasticsearch-saml-metadata elasticsearch-service-tokens \
elasticsearch-setup-passwords elasticsearch-shard \
elasticsearch-sql-cli elasticsearch-sql-cli-${PORTVERSION}.jar \
elasticsearch-syskeygen elasticsearch-users
PORTDOCS= LICENSE.txt NOTICE.txt README.asciidoc
SIGAR_ARCH= ${ARCH:S|i386|x86|}
SEARCHUSER?= elasticsearch
SEARCHGROUP?= ${SEARCHUSER}
USERS= ${SEARCHUSER}
GROUPS= ${SEARCHGROUP}
PORTSCOUT= limit:^8
SUB_FILES= pkg-message
SUB_LIST= ETCDIR=${ETCDIR} \
JAVA_HOME=${JAVA_HOME} \
BINDIR=${PREFIX}/bin
post-patch:
${RM} ${WRKSRC}/lib/jna-*.jar
# ML plugin not supported on FreeBSD
${RM} -rf ${WRKSRC}/modules/x-pack/x-pack-ml
${RM} -rf ${WRKSRC}/jdk.app
${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/bin/elasticsearch-env
do-install:
${INSTALL} -d -m 0750 ${STAGEDIR}${PREFIX}/etc/elasticsearch
.for f in ${CONFIG_FILES}
${INSTALL} ${WRKSRC}/config/${f} ${STAGEDIR}${ETCDIR}/${f}.sample
.endfor
${MKDIR} ${STAGEDIR}${PREFIX}/lib/elasticsearch/bin
.for f in ${BINS}
${INSTALL_SCRIPT} ${WRKSRC}/bin/${f} ${STAGEDIR}${PREFIX}/lib/elasticsearch/bin
${RLN} ${STAGEDIR}${PREFIX}/lib/elasticsearch/bin/${f} ${STAGEDIR}${PREFIX}/bin/${f}
${ECHO_CMD} "bin/${f}" >> ${TMPPLIST}
.endfor
${MKDIR} ${STAGEDIR}${PREFIX}/lib/elasticsearch/lib
(cd ${WRKSRC}/lib && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/elasticsearch/lib/ "-name *\.jar")
${MKDIR} ${STAGEDIR}${PREFIX}/lib/elasticsearch/modules
(cd ${WRKSRC}/modules && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/elasticsearch/modules/)
${MKDIR} ${STAGEDIR}${PREFIX}/lib/elasticsearch/plugins
${MKDIR} ${STAGEDIR}${PREFIX}/libexec/elasticsearch
${INSTALL} -lrs ${STAGEDIR}${ETCDIR} ${STAGEDIR}${PREFIX}/lib/elasticsearch/config
${LN} -s ${JAVASHAREDIR}/classes/jna.jar ${STAGEDIR}${PREFIX}/lib/elasticsearch/lib/jna-0.0.0.jar
${TOUCH} ${STAGEDIR}${ETCDIR}/users.sample ${STAGEDIR}${ETCDIR}/users_roles.sample
do-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
.for f in ${PORTDOCS}
${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}
.endfor
post-install:
${ECHO} "@sample ${ETCDIR}/elasticsearch.yml.sample" >> ${TMPPLIST}
${ECHO} "@sample ${ETCDIR}/jvm.options.sample" >> ${TMPPLIST}
${ECHO} "@sample ${ETCDIR}/log4j2.properties.sample" >> ${TMPPLIST}
${ECHO} "@sample ${ETCDIR}/role_mapping.yml.sample" >> ${TMPPLIST}
${ECHO} "@sample ${ETCDIR}/roles.yml.sample" >> ${TMPPLIST}
${FIND} -s ${STAGEDIR}${PREFIX}/lib/elasticsearch -not -type d | ${SORT} | \
${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
${ECHO} "@dir lib/elasticsearch/plugins" >> ${TMPPLIST}
${ECHO} "@dir libexec/elasticsearch" >> ${TMPPLIST}
${ECHO} "@dir(${SEARCHUSER},${SEARCHGROUP},0755) ${ETCDIR}" >> ${TMPPLIST}
${ECHO} "@owner ${SEARCHUSER}" >> ${TMPPLIST}
${ECHO} "@group ${SEARCHGROUP}" >> ${TMPPLIST}
${ECHO} "@mode 0640" >> ${TMPPLIST}
${ECHO} "@sample ${ETCDIR}/users.sample" >> ${TMPPLIST}
${ECHO} "@sample ${ETCDIR}/users_roles.sample" >> ${TMPPLIST}
${ECHO} "@mode" >> ${TMPPLIST}
${ECHO} "@owner" >> ${TMPPLIST}
${ECHO} "@group" >> ${TMPPLIST}
.include <bsd.port.mk>
|