Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Mar 2026 01:51:41 +0000
From:      Vladimir Druzenko <vvd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: b2f10036590c - main - textproc/kibana92: Repocopy from textproc/kibana91
Message-ID:  <69b610ad.38e1d.4e45380b@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b2f10036590ca990dc2f22ccda004d465b30423e

commit b2f10036590ca990dc2f22ccda004d465b30423e
Author:     Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2026-03-15 01:16:46 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-03-15 01:48:15 +0000

    textproc/kibana92: Repocopy from textproc/kibana91
    
    PR:             290979
    Approved by:    elastic (maintainer, implicit - inactive for more than 6 months)
---
 textproc/kibana92/Makefile                         | 159 +++++++++++++++++++++
 textproc/kibana92/distinfo                         |   7 +
 .../files/extra-node-re2-binding-gyp.patch         | 131 +++++++++++++++++
 textproc/kibana92/files/kibana.in                  |  83 +++++++++++
 textproc/kibana92/files/patch-config_kibana.yml    |  15 ++
 textproc/kibana92/files/patch-config_node.options  |  11 ++
 ..._kbn_setup-node-env_node__version__validator.js |  16 +++
 textproc/kibana92/files/pkg-deinstall.in           |  20 +++
 textproc/kibana92/files/pkg-message.in             |   8 ++
 textproc/kibana92/pkg-descr                        |   6 +
 10 files changed, 456 insertions(+)

diff --git a/textproc/kibana92/Makefile b/textproc/kibana92/Makefile
new file mode 100644
index 000000000000..e3faed354a42
--- /dev/null
+++ b/textproc/kibana92/Makefile
@@ -0,0 +1,159 @@
+PORTNAME=	kibana
+DISTVERSION=	9.1.10
+DISTVERSIONSUFFIX=	-linux-x86_64
+CATEGORIES=	textproc www
+MASTER_SITES=	https://artifacts.elastic.co/downloads/kibana/ \
+		LOCAL/vvd/elastic
+PKGNAMESUFFIX=	91
+DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER=	elastic@FreeBSD.org
+COMMENT=	Browser-based analytics and search interface to Elasticsearch (${DISTVERSION:R}.x version)
+WWW=		https://www.elastic.co/products/kibana
+
+LICENSE=	APACHE20
+
+BUILD_DEPENDS=	npm-node${NODEJS_VERSION}>=11.10.0:www/npm-node${NODEJS_VERSION}
+LIB_DEPENDS=	libre2.so:devel/re2 \
+		libuv.so:devel/libuv
+
+USES=		compiler:c++17-lang cpe nodejs:24,build,run python:build
+CPE_VENDOR=	elastic
+USE_CXXSTD=	c++17
+USE_GITHUB=	nodefault
+GH_TUPLE=	nodejs:nan:v${_NODE_NAN_VER}:node_nan \
+		uhop:node-re2:${_NODE_RE2_VER}:node_re2
+USE_RC_SUBR=	${PORTNAME}
+
+CONFLICTS=	${PORTNAME}8 ${PORTNAME}92 ${PORTNAME}93
+
+WWWDIR=		${PREFIX}/www/${PORTNAME}${PKGNAMESUFFIX}
+
+PORTSCOUT=	limit:^9\.1\.
+
+SUB_FILES=	pkg-deinstall pkg-message
+SUB_LIST=	BINDIR=${PREFIX}/bin \
+		PKGNAMESUFFIX=${PKGNAMESUFFIX} \
+		PORTNAME=${PORTNAME} \
+		KIBANAUSER=${KIBANAUSER} \
+		KIBANAGROUP=${KIBANAGROUP}
+
+WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTVERSION}
+
+KIBANAUSER?=	www
+KIBANAGROUP?=	${KIBANAUSER}
+.if ${KIBANAUSER} == www
+USERS=		${KIBANAUSER}
+.endif
+.if ${KIBANAGROUP} == www
+GROUPS=		${KIBANAGROUP}
+.endif
+
+BINS=	kibana-encryption-keys kibana-health-gateway kibana-keystore \
+	kibana-plugin kibana-setup kibana-verification-code
+
+#######################################################################
+# Set node-nan version here
+_NODE_NAN_VER=	2.25.0
+# Set node-re version here
+_NODE_RE2_VER=	1.23.3
+#######################################################################
+
+_NODECMD=	${LOCALBASE}/bin/node --version
+_DEVDIR:=	${WRKDIR}/.devdir
+
+_RE2DIR=	${WRKDIR}/node-re2-${_NODE_RE2_VER}
+
+# Extra patch files must be updated whenever node-re2 changes
+_RE2PATCHES=	${PATCHDIR}/extra-node-re2-binding-gyp.patch
+
+# Directories to prune
+_DIR2DEL=	node_modules
+
+post-patch:
+.for _dirdel in ${_DIR2DEL}
+	${FIND} -s ${WRKSRC}/${_dirdel} -type d -empty -delete
+.endfor
+	${REINPLACE_CMD} -e "s|%%WWWDIR%%|${WWWDIR}|g" \
+		${WRKSRC}/config/kibana.yml
+	cd ${_RE2DIR} && ${PATCH} -p0 < ${_RE2PATCHES}
+	${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" \
+		-e "s|%%DEVDIR%%|${_DEVDIR}|g" ${_RE2DIR}/binding.gyp
+
+pre-configure:
+	( \
+	_NODEVER=$$(${_NODECMD} | ${SED} -n 's|^v\(.*\)|\1|p') && \
+	${MKDIR} ${_DEVDIR}/$${_NODEVER}/include && \
+	${RLN} ${LOCALBASE}/include/node ${_DEVDIR}/$${_NODEVER}/include/node && \
+	${ECHO} "10" > ${_DEVDIR}/$${_NODEVER}/installVersion \
+	)
+
+do-configure:
+	${MKDIR} ${_DEVDIR}/nan
+	(cd ${WRKDIR}/nan-${_NODE_NAN_VER} && ${COPYTREE_SHARE} . \
+		${_DEVDIR}/nan \
+		"! ( -name \.* -or -path *\/test\/* -or -name test )")
+	(cd ${_RE2DIR} && \
+		${SETENV} HOME=${WRKDIR} \
+		${LOCALBASE}/lib/node_modules/npm/node_modules/.bin/node-gyp configure \
+		--python=${PYTHON_CMD} \
+		--nodedir=${LOCALBASE} \
+		--devdir=${_DEVDIR})
+
+do-build:
+	(cd ${_RE2DIR} && \
+		${SETENV} HOME=${WRKDIR} \
+		${LOCALBASE}/lib/node_modules/npm/node_modules/.bin/node-gyp build \
+		--devdir=${_DEVDIR})
+
+do-install:
+	${MKDIR} ${STAGEDIR}${WWWDIR} ${STAGEDIR}${ETCDIR}
+	${INSTALL_DATA} ${WRKSRC}/config/kibana.yml ${STAGEDIR}${ETCDIR}/kibana.yml.sample
+	${INSTALL_DATA} ${WRKSRC}/config/node.options ${STAGEDIR}${ETCDIR}/node.options.sample
+	(cd ${WRKSRC} && \
+		${RM} -r config node optimize && \
+		${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR} && \
+		${COPYTREE_BIN} bin ${STAGEDIR}${WWWDIR})
+	${INSTALL} -lrs ${STAGEDIR}${ETCDIR} ${STAGEDIR}${WWWDIR}/config
+	${MKDIR} ${STAGEDIR}${WWWDIR}/node/glibc-217/bin
+	${LN} -s ${LOCALBASE}/bin/node ${STAGEDIR}${WWWDIR}/node/glibc-217/bin/node
+	${RM} ${STAGEDIR}${WWWDIR}/node_modules/re2/build/Release/re2.node
+	${MKDIR} ${STAGEDIR}${WWWDIR}/node_modules/re2/build/Release
+	${INSTALL_LIB} ${_RE2DIR}/build/Release/re2.node \
+		${STAGEDIR}${WWWDIR}/node_modules/re2/build/Release/re2.node
+.for f in ${BINS}
+	${RLN} ${STAGEDIR}${WWWDIR}/bin/${f} ${STAGEDIR}${PREFIX}/bin/${f}
+	${ECHO} "bin/${f}" >> ${TMPPLIST}
+.endfor
+
+post-install:
+	${ECHO} "@sample ${ETCDIR}/kibana.yml.sample" >> ${TMPPLIST}
+	${ECHO} "@sample ${ETCDIR}/node.options.sample" >> ${TMPPLIST}
+	${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \
+		${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+	${ECHO} "@dir(${KIBANAUSER},${KIBANAGROUP}) ${WWWDIR}/data" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/plugins" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/logs" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/private/analytics" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/private/kbn-reporting" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/private/shared-ux/page" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/content-management" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/kbn-management/settings" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/react" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/serverless" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/shared-ux/card" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/shared-ux/file" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/shared-ux/link" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/shared-ux/page" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/packages/shared/shared-ux/prompt" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/plugins/private" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/src/platform/plugins/shared" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/x-pack/platform/packages/private" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/x-pack/platform/packages/shared" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/x-pack/platform/plugins/private" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/x-pack/solutions/chat" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/x-pack/solutions/observability/packages" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/x-pack/solutions/search" >> ${TMPPLIST}
+	${ECHO} "@dir ${WWWDIR}/x-pack/solutions/security/packages" >> ${TMPPLIST}
+
+.include <bsd.port.mk>
diff --git a/textproc/kibana92/distinfo b/textproc/kibana92/distinfo
new file mode 100644
index 000000000000..2eacac5fa546
--- /dev/null
+++ b/textproc/kibana92/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1773434343
+SHA256 (kibana-9.1.10-linux-x86_64.tar.gz) = 1d226dbfcbd01360360d93dd671f8b57fd6def47a425dc72c2e8095aa4df754f
+SIZE (kibana-9.1.10-linux-x86_64.tar.gz) = 362033041
+SHA256 (nodejs-nan-v2.25.0_GH0.tar.gz) = 26c710caffec40676e48af09680d7b6131103a9a7e56f7522cc2edfe70cda33d
+SIZE (nodejs-nan-v2.25.0_GH0.tar.gz) = 111978
+SHA256 (uhop-node-re2-1.23.3_GH0.tar.gz) = 0037a38f6f58247af93a1f7327cd4d9e0a13a55dc54722d8ab697b8c134865e2
+SIZE (uhop-node-re2-1.23.3_GH0.tar.gz) = 53397
diff --git a/textproc/kibana92/files/extra-node-re2-binding-gyp.patch b/textproc/kibana92/files/extra-node-re2-binding-gyp.patch
new file mode 100644
index 000000000000..1b3e7a978287
--- /dev/null
+++ b/textproc/kibana92/files/extra-node-re2-binding-gyp.patch
@@ -0,0 +1,131 @@
+--- binding.gyp.orig	2026-03-09 15:20:39.294950000 -0400
++++ binding.gyp	2026-03-09 15:23:16.005750000 -0400
+@@ -16,107 +16,6 @@
+         "lib/split.cc",
+         "lib/to_string.cc",
+         "lib/set.cc",
+-        "vendor/re2/re2/bitmap256.cc",
+-        "vendor/re2/re2/bitstate.cc",
+-        "vendor/re2/re2/compile.cc",
+-        "vendor/re2/re2/dfa.cc",
+-        "vendor/re2/re2/filtered_re2.cc",
+-        "vendor/re2/re2/mimics_pcre.cc",
+-        "vendor/re2/re2/nfa.cc",
+-        "vendor/re2/re2/onepass.cc",
+-        "vendor/re2/re2/parse.cc",
+-        "vendor/re2/re2/perl_groups.cc",
+-        "vendor/re2/re2/prefilter.cc",
+-        "vendor/re2/re2/prefilter_tree.cc",
+-        "vendor/re2/re2/prog.cc",
+-        "vendor/re2/re2/re2.cc",
+-        "vendor/re2/re2/regexp.cc",
+-        "vendor/re2/re2/set.cc",
+-        "vendor/re2/re2/simplify.cc",
+-        "vendor/re2/re2/tostring.cc",
+-        "vendor/re2/re2/unicode_casefold.cc",
+-        "vendor/re2/re2/unicode_groups.cc",
+-        "vendor/re2/util/pcre.cc",
+-        "vendor/re2/util/rune.cc",
+-        "vendor/re2/util/strutil.cc",
+-        "vendor/abseil-cpp/absl/base/internal/cycleclock.cc",
+-        "vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc",
+-        "vendor/abseil-cpp/absl/base/internal/raw_logging.cc",
+-        "vendor/abseil-cpp/absl/base/internal/spinlock.cc",
+-        "vendor/abseil-cpp/absl/base/internal/spinlock_wait.cc",
+-        "vendor/abseil-cpp/absl/base/internal/strerror.cc",
+-        "vendor/abseil-cpp/absl/base/internal/sysinfo.cc",
+-        "vendor/abseil-cpp/absl/base/internal/thread_identity.cc",
+-        "vendor/abseil-cpp/absl/base/internal/throw_delegate.cc",
+-        "vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc",
+-        "vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc",
+-        "vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
+-        "vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/demangle.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/address_is_readable.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc",
+-        "vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc",
+-        "vendor/abseil-cpp/absl/debugging/stacktrace.cc",
+-        "vendor/abseil-cpp/absl/debugging/symbolize.cc",
+-        "vendor/abseil-cpp/absl/flags/commandlineflag.cc",
+-        "vendor/abseil-cpp/absl/flags/internal/commandlineflag.cc",
+-        "vendor/abseil-cpp/absl/flags/internal/flag.cc",
+-        "vendor/abseil-cpp/absl/flags/internal/private_handle_accessor.cc",
+-        "vendor/abseil-cpp/absl/flags/internal/program_name.cc",
+-        "vendor/abseil-cpp/absl/flags/marshalling.cc",
+-        "vendor/abseil-cpp/absl/flags/reflection.cc",
+-        "vendor/abseil-cpp/absl/flags/usage_config.cc",
+-        "vendor/abseil-cpp/absl/hash/internal/city.cc",
+-        "vendor/abseil-cpp/absl/hash/internal/hash.cc",
+-        "vendor/abseil-cpp/absl/log/internal/globals.cc",
+-        "vendor/abseil-cpp/absl/log/internal/log_format.cc",
+-        "vendor/abseil-cpp/absl/log/internal/log_message.cc",
+-        "vendor/abseil-cpp/absl/log/internal/log_sink_set.cc",
+-        "vendor/abseil-cpp/absl/log/internal/nullguard.cc",
+-        "vendor/abseil-cpp/absl/log/internal/proto.cc",
+-        "vendor/abseil-cpp/absl/log/internal/structured_proto.cc",
+-        "vendor/abseil-cpp/absl/log/globals.cc",
+-        "vendor/abseil-cpp/absl/log/log_sink.cc",
+-        "vendor/abseil-cpp/absl/numeric/int128.cc",
+-        "vendor/abseil-cpp/absl/strings/ascii.cc",
+-        "vendor/abseil-cpp/absl/strings/charconv.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/charconv_parse.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/memutil.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/str_format/bind.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/str_format/output.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/str_format/parser.cc",
+-        "vendor/abseil-cpp/absl/strings/internal/utf8.cc",
+-        "vendor/abseil-cpp/absl/strings/match.cc",
+-        "vendor/abseil-cpp/absl/strings/numbers.cc",
+-        "vendor/abseil-cpp/absl/strings/str_cat.cc",
+-        "vendor/abseil-cpp/absl/strings/str_split.cc",
+-        "vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc",
+-        "vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc",
+-        "vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc",
+-        "vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc",
+-        "vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc",
+-        "vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc",
+-        "vendor/abseil-cpp/absl/synchronization/mutex.cc",
+-        "vendor/abseil-cpp/absl/time/clock.cc",
+-        "vendor/abseil-cpp/absl/time/duration.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc",
+-        "vendor/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc",
+-        "vendor/abseil-cpp/absl/time/time.cc",
+       ],
+       "cflags": [
+         "-std=c++2a",
+@@ -125,7 +24,7 @@
+         "-Wno-sign-compare",
+         "-Wno-unused-parameter",
+         "-Wno-missing-field-initializers",
+-        "-Wno-cast-function-type",
++        "-Wno-bad-function-cast",
+         "-O3",
+         "-g"
+       ],
+@@ -134,9 +33,8 @@
+         "NOMINMAX"
+       ],
+       "include_dirs": [
+-        "<!(node -e \"require('nan')\")",
+-        "vendor/re2",
+-        "vendor/abseil-cpp",
++        "%%PREFIX%%/include",
++        "%%DEVDIR%%/nan",
+       ],
+       "xcode_settings": {
+         "MACOSX_DEPLOYMENT_TARGET": "10.15",
diff --git a/textproc/kibana92/files/kibana.in b/textproc/kibana92/files/kibana.in
new file mode 100644
index 000000000000..f62ffa8bf9d9
--- /dev/null
+++ b/textproc/kibana92/files/kibana.in
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+# PROVIDE: kibana
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name=kibana
+rcvar=kibana_enable
+
+load_rc_config $name
+
+: ${kibana_enable:="NO"}
+: ${kibana_config:="%%ETCDIR%%/kibana.yml"}
+: ${kibana_user:="%%KIBANAUSER%%"}
+: ${kibana_group:="%%KIBANAGROUP%%"}
+: ${kibana_log:="/var/log/kibana.log"}
+: ${kibana_syslog_output_enable:="NO"}
+: ${kibana_chdir:="%%WWWDIR%%/data"}
+
+start_precmd="kibana_start_precmd"
+reload_cmd="kibana_reload_cmd"
+extra_commands="reload"
+
+if checkyesno kibana_syslog_output_enable; then
+	if [ -n "${kibana_syslog_output_tag}" ]; then
+		kibana_syslog_output_flags="-T ${kibana_syslog_output_tag}"
+	else
+		kibana_syslog_output_flags="-T ${name}"
+	fi
+	if [ -n "${kibana_syslog_output_priority}" ]; then
+		kibana_syslog_output_flags="${kibana_syslog_output_flags} -s ${kibana_syslog_output_priority}"
+	fi
+	if [ -n "${kibana_syslog_output_facility}" ]; then
+		kibana_syslog_output_flags="${kibana_syslog_output_flags} -l ${kibana_syslog_output_facility}"
+	fi
+fi
+
+NODE="%%LOCALBASE%%/bin/node"
+
+required_files="${kibana_config}"
+_piddir="/var/run/${name}"
+pidfile="${_piddir}/${name}.pid"
+procname="${NODE}"
+
+command="/usr/sbin/daemon"
+command_args="-f ${kibana_syslog_output_flags} -p ${pidfile} -t ${name} \
+	/usr/bin/env BABEL_DISABLE_CACHE=1 NODE_ENV=production ${kibana_env} \
+	${NODE} --no-warnings --max-http-header-size=65536 \
+	%%WWWDIR%%/src/cli/kibana/dist.js serve \
+	--config ${kibana_config} --log-file ${kibana_log} \
+	--xpack.reporting.enabled=false ${kibana_args}"
+
+kibana_start_precmd()
+{
+	if [ ! -e "${_piddir}" ]; then
+		install -d -m 0750 -o ${kibana_user} -g ${kibana_group} ${_piddir}
+	fi
+	if [ ! -f ${kibana_log} ]; then
+		install -o ${kibana_user} -g ${kibana_group} -m 640 /dev/null ${kibana_log}
+	fi
+	if [ ! -d %%WWWDIR%%/optimize ]; then
+		install -d -o ${kibana_user} -g ${kibana_group} %%WWWDIR%%/optimize
+	else
+		# We may have installed a plugin as root which will cause files in here
+		# to be owned by root:wheel. Fix with a chown.
+		chown -R ${kibana_user}:${kibana_group} %%WWWDIR%%/optimize
+	fi
+}
+
+kibana_reload_cmd()
+{
+	if [ -z "$rc_pid" ]; then
+		_run_rc_notrunning
+		return 1
+	else
+		pkill -HUP -P ${rc_pid}
+	fi
+}
+
+run_rc_command "$1"
diff --git a/textproc/kibana92/files/patch-config_kibana.yml b/textproc/kibana92/files/patch-config_kibana.yml
new file mode 100644
index 000000000000..89e58747ea16
--- /dev/null
+++ b/textproc/kibana92/files/patch-config_kibana.yml
@@ -0,0 +1,15 @@
+--- config/kibana.yml.orig	2026-01-08 12:19:39 UTC
++++ config/kibana.yml
+@@ -139,10 +139,10 @@
+ 
+ # =================== System: Other ===================
+ # The path where Kibana stores persistent data not saved in Elasticsearch. Defaults to data
+-#path.data: data
++path.data: %%WWWDIR%%/data
+ 
+ # Specifies the path where Kibana creates the process ID file.
+-#pid.file: /run/kibana/kibana.pid
++pid.file: /var/run/kibana/kibana.pid
+ 
+ # Set the interval in milliseconds to sample system and process performance
+ # metrics. Minimum is 100ms. Defaults to 5000ms.
diff --git a/textproc/kibana92/files/patch-config_node.options b/textproc/kibana92/files/patch-config_node.options
new file mode 100644
index 000000000000..8cd817985de6
--- /dev/null
+++ b/textproc/kibana92/files/patch-config_node.options
@@ -0,0 +1,11 @@
+--- config/node.options.orig	2026-01-08 12:19:39 UTC
++++ config/node.options
+@@ -6,7 +6,7 @@
+ #--max-old-space-size=4096
+ 
+ ## do not terminate process on unhandled promise rejection
+- --unhandled-rejections=warn
++--unhandled-rejections=warn
+ 
+ ## restore < Node 16 default DNS lookup behavior
+ --dns-result-order=ipv4first
diff --git a/textproc/kibana92/files/patch-node__modules__kbn_setup-node-env_node__version__validator.js b/textproc/kibana92/files/patch-node__modules__kbn_setup-node-env_node__version__validator.js
new file mode 100644
index 000000000000..5b55a73d7d20
--- /dev/null
+++ b/textproc/kibana92/files/patch-node__modules__kbn_setup-node-env_node__version__validator.js
@@ -0,0 +1,16 @@
+--- node_modules/@kbn/setup-node-env/node_version_validator.js.orig	2026-01-08 12:19:41 UTC
++++ node_modules/@kbn/setup-node-env/node_version_validator.js
+@@ -21,11 +21,11 @@ var requiredVersion = rawRequiredVersion ? 'v' + rawRe
+ var currentVersion = process && process.version || null;
+ var rawRequiredVersion = pkg && pkg.engines && pkg.engines.node || null;
+ var requiredVersion = rawRequiredVersion ? 'v' + rawRequiredVersion : rawRequiredVersion;
+-var isVersionValid = !!currentVersion && !!requiredVersion && currentVersion === requiredVersion;
++var isVersionValid = !!currentVersion && !!requiredVersion && currentVersion >= requiredVersion;
+ 
+ // Validates current the NodeJS version compatibility when Kibana starts.
+ if (!isVersionValid) {
+-  var errorMessage = 'Kibana does not support the current Node.js version ' + currentVersion + '. Please use Node.js ' + requiredVersion + '.';
++  var errorMessage = 'Kibana does not support the current Node.js version ' + currentVersion + '. Please use Node.js >= ' + requiredVersion + '.';
+ 
+   // Actions to apply when validation fails: error report + exit.
+   console.error(errorMessage);
diff --git a/textproc/kibana92/files/pkg-deinstall.in b/textproc/kibana92/files/pkg-deinstall.in
new file mode 100644
index 000000000000..e921ed650bfd
--- /dev/null
+++ b/textproc/kibana92/files/pkg-deinstall.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+case "$2" in
+POST-DEINSTALL)
+	if [ -d %%WWWDIR%%/optimize ]; then
+		/usr/bin/find %%WWWDIR%%/optimize/ -delete
+	fi
+
+	cat <<EOMSG
+
+If %%PORTNAME%%%%PKGNAMESUFFIX%% is being deleted permanently, and you do not wish to keep any
+data that was in the cluster, then you may wish to delete the
+%%WWWDIR%% directory. This can be done with the command:
+
+	# rm -rf %%WWWDIR%%
+
+Please ignore this if %%PORTNAME%%%%PKGNAMESUFFIX%% is being upgraded.
+EOMSG
+    ;;
+esac
diff --git a/textproc/kibana92/files/pkg-message.in b/textproc/kibana92/files/pkg-message.in
new file mode 100644
index 000000000000..3c0f248d8900
--- /dev/null
+++ b/textproc/kibana92/files/pkg-message.in
@@ -0,0 +1,8 @@
+[
+{ type: install
+  message: <<EOM
+NOTICE: This port installs Kibana-specific utilities
+as symbolic links into %%BINDIR%%.
+EOM
+}
+]
diff --git a/textproc/kibana92/pkg-descr b/textproc/kibana92/pkg-descr
new file mode 100644
index 000000000000..7e4994744079
--- /dev/null
+++ b/textproc/kibana92/pkg-descr
@@ -0,0 +1,6 @@
+Kibana is an open source (Apache Licensed) browser-based analytics and search
+dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana
+strives to be easy to get started with, while also being flexible and powerful,
+just like Elasticsearch.
+
+Kibana 9.1.x is compatible with Elasticsearch 9.1.x


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69b610ad.38e1d.4e45380b>