Manual tweak textproc/code-minimap
[dports.git] / textproc / kibana8 / Makefile
1 PORTNAME=       kibana
2 DISTVERSION=    8.8.2
3 DISTVERSIONSUFFIX=      -darwin-x86_64
4 PORTREVISION=   1
5 CATEGORIES=     textproc www
6 MASTER_SITES=   https://artifacts.elastic.co/downloads/kibana/ \
7                 http://artifacts.elastic.co/downloads/kibana/
8 PKGNAMESUFFIX=  8
9 DISTFILES=      ${DISTNAME}${EXTRACT_SUFX}
10
11 MAINTAINER=     elastic@FreeBSD.org
12 COMMENT=        Browser based analytics and search interface to ElasticSearch
13 WWW=            https://www.elastic.co/products/kibana
14
15 LICENSE=        APACHE20
16
17 DEPRECATED=     Depends on EOL NodeJS 16
18 EXPIRATION_DATE=        2023-10-30
19
20 BUILD_DEPENDS=  npm-node16>=9.7.2:www/npm-node16
21 LIB_DEPENDS=    libre2.so:devel/re2 \
22                 libuv.so:devel/libuv
23 RUN_DEPENDS=    ${LOCALBASE}/bin/node:www/node16
24
25 USES=           compiler:c++17-lang cpe nodejs:16,build,run python:build
26 CPE_VENDOR=     elastic
27
28 USE_GITHUB=     nodefault
29 GH_TUPLE=       nodejs:nan:v${_NODE_NAN_VER}:node_nan \
30                 uhop:node-re2:${_NODE_RE2_VER}:node_re2
31
32 USE_CXXSTD=     c++17
33 USE_RC_SUBR=    ${PORTNAME}
34
35 CONFLICTS=      kibana7
36
37 WWWDIR=         ${PREFIX}/www/${PORTNAME}${PKGNAMESUFFIX}
38
39 PORTSCOUT=      limit:^8
40
41 SUB_FILES=      pkg-deinstall pkg-message
42 SUB_LIST+=      BINDIR=${PREFIX}/bin \
43                 PKGNAMESUFFIX=${PKGNAMESUFFIX} \
44                 PORTNAME=${PORTNAME}
45
46 WRKSRC=         ${WRKDIR}/${PORTNAME}-${DISTVERSION}
47
48 BINS=           kibana-encryption-keys kibana-keystore kibana-plugin \
49                 kibana-setup kibana-verification-code
50
51 #######################################################################
52 # Set node-nan version here
53 _NODE_NAN_VER=  2.17.0
54 # Set node-re version here
55 _NODE_RE2_VER=  1.19.1
56 #######################################################################
57
58 _NODECMD=       ${LOCALBASE}/bin/node --version
59 _DEVDIR:=       ${WRKDIR}/.devdir
60
61 _RE2DIR=        ${WRKDIR}/node-re2-${_NODE_RE2_VER}
62
63 # Extra patch files must be updated whenever node-re2 changes
64 _RE2PATCHES=    ${PATCHDIR}/extra-node-re2-binding-gyp.patch
65
66 # Directory to prune
67 _DIR2DEL=       node_modules packages src/plugins x-pack/packages
68
69 post-patch:
70 .for _dirdel in ${_DIR2DEL}
71         ${FIND} -s ${WRKSRC}/${_dirdel} -type d -empty -delete
72 .endfor
73         cd ${_RE2DIR} && ${PATCH} -p0 < ${_RE2PATCHES}
74         ${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" \
75         -e "s|%%DEVDIR%%|${_DEVDIR}|g" ${_RE2DIR}/binding.gyp
76
77 pre-configure:
78         ( \
79         _NODEVER=$$(${_NODECMD} | ${SED} -n 's|^v\(.*\)|\1|p') && \
80         ${MKDIR} ${_DEVDIR}/$${_NODEVER}/include && \
81         ${RLN} ${LOCALBASE}/include/node ${_DEVDIR}/$${_NODEVER}/include/node && \
82         ${ECHO} "9" > ${_DEVDIR}/$${_NODEVER}/installVersion \
83         )
84
85 do-configure:
86         ${MKDIR} ${_DEVDIR}/nan
87         (cd ${WRKDIR}/nan-${_NODE_NAN_VER} && ${COPYTREE_SHARE} . \
88                 ${_DEVDIR}/nan \
89                 "! ( -name \.* -or -path *\/test\/* -or -name test )")
90         (cd ${_RE2DIR} && \
91                 ${SETENV} HOME=${WRKDIR} \
92                 ${LOCALBASE}/lib/node_modules/npm/node_modules/.bin/node-gyp configure \
93                 --python=${PYTHON_CMD} \
94                 --nodedir=${LOCALBASE} \
95                 --devdir=${_DEVDIR})
96
97 do-build:
98         (cd ${_RE2DIR} && \
99                 ${SETENV} HOME=${WRKDIR} \
100                 ${LOCALBASE}/lib/node_modules/npm/node_modules/.bin/node-gyp build \
101                 --devdir=${_DEVDIR})
102
103 do-install:
104         ${MKDIR} ${STAGEDIR}${WWWDIR} ${STAGEDIR}${ETCDIR}
105         ${INSTALL_DATA} ${WRKSRC}/config/kibana.yml ${STAGEDIR}${ETCDIR}/kibana.yml.sample
106         (cd ${WRKSRC} && \
107                 ${RM} -r config node optimize && \
108                 ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR} && \
109                 ${COPYTREE_BIN} bin ${STAGEDIR}${WWWDIR})
110         ${INSTALL} -lrs ${STAGEDIR}${ETCDIR} ${STAGEDIR}${WWWDIR}/config
111         ${MKDIR} ${STAGEDIR}${WWWDIR}/node/bin
112         ${LN} -s ${LOCALBASE}/bin/node ${STAGEDIR}${WWWDIR}/node/bin/node
113         ${RM} ${STAGEDIR}${WWWDIR}/node_modules/re2/build/Release/re2.node
114         ${INSTALL_LIB} ${_RE2DIR}/build/Release/re2.node \
115                 ${STAGEDIR}${WWWDIR}/node_modules/re2/build/Release/re2.node
116 .for f in ${BINS}
117         ${INSTALL} -l rs ${STAGEDIR}${WWWDIR}/bin/${f} ${STAGEDIR}${PREFIX}/bin/${f}
118         ${ECHO} "bin/${f}" >> ${TMPPLIST}
119 .endfor
120
121 post-install:
122         ${ECHO} "@sample ${ETCDIR}/kibana.yml.sample" >> ${TMPPLIST}
123         ${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \
124                 ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
125         ${ECHO} "@dir(www,www) ${WWWDIR}/data" >> ${TMPPLIST}
126         ${ECHO} "@dir ${WWWDIR}/plugins" >> ${TMPPLIST}
127         ${ECHO} "@dir ${WWWDIR}/logs" >> ${TMPPLIST}
128
129 .include <bsd.port.mk>