summaryrefslogtreecommitdiff
path: root/textproc
diff options
context:
space:
mode:
Diffstat (limited to 'textproc')
-rw-r--r--textproc/Makefile2
-rw-r--r--textproc/gnugrep/Makefile11
-rw-r--r--textproc/gnugrep/distinfo6
-rw-r--r--textproc/obsidian/Makefile1
-rw-r--r--textproc/opensearch-dashboards219/Makefile92
-rw-r--r--textproc/opensearch-dashboards219/distinfo5
-rw-r--r--textproc/opensearch-dashboards219/files/opensearch-dashboards.in79
-rw-r--r--textproc/opensearch-dashboards219/files/pkg-deinstall.in20
-rw-r--r--textproc/opensearch-dashboards219/pkg-descr3
-rw-r--r--textproc/opensearch219/Makefile154
-rw-r--r--textproc/opensearch219/distinfo5
-rw-r--r--textproc/opensearch219/files/opensearch.in115
-rw-r--r--textproc/opensearch219/files/patch-config_jvm.options23
-rw-r--r--textproc/opensearch219/files/patch-config_opensearch.yml15
-rw-r--r--textproc/opensearch219/files/pkg-message.in27
-rw-r--r--textproc/opensearch219/pkg-descr2
16 files changed, 550 insertions, 10 deletions
diff --git a/textproc/Makefile b/textproc/Makefile
index 83600df918eb..ea1e5af14694 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -522,10 +522,12 @@
SUBDIR += opensearch-dashboards210
SUBDIR += opensearch-dashboards213
SUBDIR += opensearch-dashboards216
+ SUBDIR += opensearch-dashboards219
SUBDIR += opensearch13
SUBDIR += opensearch210
SUBDIR += opensearch213
SUBDIR += opensearch216
+ SUBDIR += opensearch219
SUBDIR += opensp
SUBDIR += openvanilla-framework
SUBDIR += or-aspell
diff --git a/textproc/gnugrep/Makefile b/textproc/gnugrep/Makefile
index 12e11853bf45..82fa50d26440 100644
--- a/textproc/gnugrep/Makefile
+++ b/textproc/gnugrep/Makefile
@@ -1,5 +1,5 @@
PORTNAME= grep
-PORTVERSION= 3.11
+PORTVERSION= 3.12
CATEGORIES= textproc
MASTER_SITES= GNU
PKGNAMEPREFIX= gnu
@@ -10,11 +10,8 @@ WWW= https://www.gnu.org/software/grep/
LICENSE= GPLv3+
-CONFLICTS= bsd-grep
-
USES= charsetfix cpe tar:xz
GNU_CONFIGURE= yes
-GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share
CONFIGURE_ARGS= --program-prefix=g
TEST_TARGET= check
@@ -22,7 +19,7 @@ INFO= grep
CPE_VENDOR= gnu
OPTIONS_DEFINE= COMPAT ICONV LIBSIGSEGV NLS PCRE
-OPTIONS_DEFAULT= COMPAT ICONV PCRE
+OPTIONS_DEFAULT= ICONV PCRE
COMPAT_DESC= Create g-prefixless compatibility symlinks
LIBSIGSEGV_DESC= Use alternative page fault handler (GNU libsigsegv)
OPTIONS_SUB= yes
@@ -45,8 +42,8 @@ post-patch:
@${REINPLACE_CMD} 's:@grep@:${PREFIX}/bin/&:' ${WRKSRC}/src/egrep.sh
@${REINPLACE_CMD} 's|mkinstalldirs = .*|mkinstalldirs = ${MKDIR}|g' \
${WRKSRC}/po/Makefile.in.in
-# Remove useless(?) macro to avoid run-time dependency on `textproc/groff'
- @${REINPLACE_CMD} '/Map mono-width fonts to standard fonts/,+6d' \
+# Don't use extension register to avoid run-time dependency on `textproc/groff'
+ @${REINPLACE_CMD} 's,do nr mH .* groff extension register,nr mH 0,' \
${WRKSRC}/doc/grep.in.1
post-patch-NLS-off:
diff --git a/textproc/gnugrep/distinfo b/textproc/gnugrep/distinfo
index fe758ac20332..ae1b2096918c 100644
--- a/textproc/gnugrep/distinfo
+++ b/textproc/gnugrep/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1683967158
-SHA256 (grep-3.11.tar.xz) = 1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab
-SIZE (grep-3.11.tar.xz) = 1703776
+TIMESTAMP = 1744301167
+SHA256 (grep-3.12.tar.xz) = 2649b27c0e90e632eadcd757be06c6e9a4f48d941de51e7c0f83ff76408a07b9
+SIZE (grep-3.12.tar.xz) = 1918448
diff --git a/textproc/obsidian/Makefile b/textproc/obsidian/Makefile
index db4a9adce696..9275459afd13 100644
--- a/textproc/obsidian/Makefile
+++ b/textproc/obsidian/Makefile
@@ -8,6 +8,7 @@
PORTNAME= obsidian
PORTVERSION= 1.8.10
+PORTREVISION= 1
CATEGORIES= textproc
# Icon is taken from the Nix build recipe
# https://github.com/NixOS/nixpkgs/blob/de5448dab588ad41aef40f8c7c0c230981656698/pkgs/applications/misc/obsidian/default.nix#L31-L34
diff --git a/textproc/opensearch-dashboards219/Makefile b/textproc/opensearch-dashboards219/Makefile
new file mode 100644
index 000000000000..dfe6740216b9
--- /dev/null
+++ b/textproc/opensearch-dashboards219/Makefile
@@ -0,0 +1,92 @@
+PORTNAME= opensearch-dashboards
+DISTVERSION= 2.19.1
+DISTVERSIONSUFFIX= -linux-${OPENSEARCH_ARCH}
+CATEGORIES= textproc www
+MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/
+PKGNAMESUFFIX= 219
+
+MAINTAINER= opensearch@FreeBSD.org
+COMMENT= Visualization dashboards for OpenSearch
+WWW= https://opensearch.org
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE.txt
+
+ONLY_FOR_ARCHS= aarch64 amd64
+
+CONFLICTS= opensearch-dashboards opensearch-dashboards210 opensearch-dashboards213 \
+ opensearch-dashboards216
+
+BUILD_DEPENDS= npm-node18>0:www/npm-node18
+
+USES= nodejs:18,build,run python:build
+USE_RC_SUBR= ${PORTNAME}
+
+SUB_FILES= pkg-deinstall
+SUB_LIST= PORTNAME="${PORTNAME}" \
+ PKGNAMESUFFIX="${PKGNAMESUFFIX}" \
+ WWWDIR=${WWWDIR}
+
+WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
+
+NODE_VER= 18.18.0
+NO_BUILD= yes
+
+_DEVDIR= ${WRKDIR}/.devdir
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == "aarch64"
+OPENSEARCH_ARCH= arm64
+.else
+OPENSEARCH_ARCH= x64
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|14.20.1|${NODE_VER}|g' ${WRKSRC}/package.json
+ ${RM} \
+ ${WRKSRC}/bin/*.orig \
+ ${WRKSRC}/bin/*.bak \
+ ${WRKSRC}/package.json.bak
+ ${RM} -r ${WRKSRC}/plugins/reportsDashboards/.chromium
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${WWWDIR} ${STAGEDIR}${ETCDIR}
+ ${INSTALL_DATA} ${WRKSRC}/config/opensearch_dashboards.yml ${STAGEDIR}${ETCDIR}/opensearch_dashboards.yml.sample
+ (cd ${WRKSRC} && \
+ ${COPYTREE_SHARE} "data node_modules package.json plugins src" ${STAGEDIR}${WWWDIR} && \
+ ${COPYTREE_BIN} bin ${STAGEDIR}${WWWDIR})
+
+post-install:
+ ${ECHO} "@sample ${ETCDIR}/opensearch_dashboards.yml.sample" >> ${TMPPLIST}
+ ${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \
+ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+ ${ECHO} "@dir(www,www) ${WWWDIR}/data" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/legacy" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/fixed" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/test/resources/dynamic" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/examples/fixed" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/reportsDashboards/node_modules/set-interval-async/examples/dynamic" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/observabilityDashboards/server/adaptors/integrations/__test__" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/observabilityDashboards/server/adaptors/integrations/repository/__test__" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Alerts/components/AlertFlyout" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/CreateDetector/components/ConfigureAlerts/components/AlertCondition" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/AlertTriggerView" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/DetectorBasicDetailsView" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/DetectorRulesView" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/FieldMappingsView" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateAlertConditions" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateDetectorBasicDetails" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateDetectorRules" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/components/UpdateFieldMappings" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/AlertTriggersView" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/DetectorDetails" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/DetectorDetailsView" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/Detectors" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Detectors/containers/EditFieldMappings" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Rules/components/DeleteModal" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Rules/components/RuleEditor/components" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityAnalyticsDashboards/test/mocks/Rules/components/RulesTable" >> ${TMPPLIST}
+ ${ECHO} "@dir ${WWWDIR}/plugins/securityDashboards/server/multitenancy/test" >> ${TMPPLIST}
+
+.include <bsd.port.post.mk>
diff --git a/textproc/opensearch-dashboards219/distinfo b/textproc/opensearch-dashboards219/distinfo
new file mode 100644
index 000000000000..28a08b40f649
--- /dev/null
+++ b/textproc/opensearch-dashboards219/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1746944520
+SHA256 (opensearch-dashboards-2.19.1-linux-arm64.tar.gz) = b73be280109669a412de8e620dc1090c02850f3675bb89e56ff6d1031dd1847c
+SIZE (opensearch-dashboards-2.19.1-linux-arm64.tar.gz) = 348067725
+SHA256 (opensearch-dashboards-2.19.1-linux-x64.tar.gz) = 3981a0bde67bf81b7c32541dff3965b0f7d341a0af0951b73767eab6ccf56261
+SIZE (opensearch-dashboards-2.19.1-linux-x64.tar.gz) = 348191923
diff --git a/textproc/opensearch-dashboards219/files/opensearch-dashboards.in b/textproc/opensearch-dashboards219/files/opensearch-dashboards.in
new file mode 100644
index 000000000000..7043fa9301a9
--- /dev/null
+++ b/textproc/opensearch-dashboards219/files/opensearch-dashboards.in
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+# PROVIDE: opensearch_dashboards
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name=opensearch_dashboards
+rcvar=opensearch_dashboards_enable
+
+load_rc_config $name
+
+: ${opensearch_dashboards_enable:="NO"}
+: ${opensearch_dashboards_config:="%%ETCDIR%%/opensearch_dashboards.yml"}
+: ${opensearch_dashboards_user:="www"}
+: ${opensearch_dashboards_group:="www"}
+: ${opensearch_dashboards_log:="/var/log/opensearch_dashboards.log"}
+: ${opensearch_dashboards_syslog_output_enable:="NO"}
+
+start_precmd="opensearch_dashboards_start_precmd"
+reload_cmd="opensearch_dashboards_reload_cmd"
+extra_commands="reload"
+
+if checkyesno opensearch_dashboards_syslog_output_enable; then
+ if [ -n "${opensearch_dashboards_syslog_output_tag}" ]; then
+ opensearch_dashboards_syslog_output_flags="-T ${opensearch_dashboards_syslog_output_tag}"
+ else
+ opensearch_dashboards_syslog_output_flags="-T ${name}"
+ fi
+ if [ -n "${opensearch_dashboards_syslog_output_priority}" ]; then
+ opensearch_dashboards_syslog_output_flags="${opensearch_dashboards_syslog_output_flags} -s ${opensearch_dashboards_syslog_output_priority}"
+ fi
+ if [ -n "${opensearch_dashboards_syslog_output_facility}" ]; then
+ opensearch_dashboards_syslog_output_flags="${opensearch_dashboards_syslog_output_flags} -l ${opensearch_dashboards_syslog_output_facility}"
+ fi
+fi
+
+NODE="%%LOCALBASE%%/bin/node"
+
+required_files="${opensearch_dashboards_config}"
+pidfile="/var/run/${name}.pid"
+
+command="/usr/sbin/daemon"
+command_args="-f ${opensearch_dashboards_syslog_output_flags} -P ${pidfile} -t ${name} \
+ /usr/bin/env NODE_ENV=production ${opensearch_dashboards_env} \
+ ${NODE} %%WWWDIR%%/src/cli/dist serve \
+ --config ${opensearch_dashboards_config} --log-file ${opensearch_dashboards_log} \
+ ${opensearch_dashboards_args}"
+
+opensearch_dashboards_start_precmd()
+{
+ if [ ! -e "${pidfile}" ]; then
+ install -m 0600 -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} /dev/null ${pidfile}
+ fi
+ if [ ! -f ${opensearch_dashboards_log} ]; then
+ install -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} -m 640 /dev/null ${opensearch_dashboards_log}
+ fi
+ if [ ! -d %%WWWDIR%%/optimize ]; then
+ install -d -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_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 ${opensearch_dashboards_user}:${opensearch_dashboards_group} %%WWWDIR%%/optimize
+ fi
+}
+
+opensearch_dashboards_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/opensearch-dashboards219/files/pkg-deinstall.in b/textproc/opensearch-dashboards219/files/pkg-deinstall.in
new file mode 100644
index 000000000000..0699ab559805
--- /dev/null
+++ b/textproc/opensearch-dashboards219/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 by with the command:
+
+ # rm -rf %%WWWDIR%%
+
+Please ignore this if %%PORTNAME%%%%PKGNAMESUFFIX%% is being upgraded
+EOMSG
+ ;;
+esac
diff --git a/textproc/opensearch-dashboards219/pkg-descr b/textproc/opensearch-dashboards219/pkg-descr
new file mode 100644
index 000000000000..2669760829b1
--- /dev/null
+++ b/textproc/opensearch-dashboards219/pkg-descr
@@ -0,0 +1,3 @@
+OpenSearch Dashboards is the default visualization tool for data in OpenSearch.
+It also serves as a user interface for many of the OpenSearch plugins,
+including security, alerting, Index State Management, SQL, and more.
diff --git a/textproc/opensearch219/Makefile b/textproc/opensearch219/Makefile
new file mode 100644
index 000000000000..5212d5e9fb69
--- /dev/null
+++ b/textproc/opensearch219/Makefile
@@ -0,0 +1,154 @@
+PORTNAME= opensearch
+DISTVERSION= 2.19.1
+PORTREVISION= 0
+DISTVERSIONSUFFIX= -linux-${OPENSEARCH_ARCH}
+CATEGORIES= textproc java devel
+MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/
+PKGNAMESUFFIX= 219
+
+MAINTAINER= opensearch@FreeBSD.org
+COMMENT?= Full-text search engine for Java
+WWW= https://opensearch.org
+
+LICENSE= APACHE20
+
+ONLY_FOR_ARCHS= aarch64 amd64
+
+BUILD_DEPENDS= jna>0:devel/jna
+RUN_DEPENDS= bash>0:shells/bash \
+ jna>0:devel/jna
+
+CONFLICTS= opensearch opensearch13 opensearch210 opensearch213 opensearch216
+
+USES= cpe java shebangfix
+JAVA_VERSION= 17+
+USE_RC_SUBR= ${PORTNAME}
+
+SHEBANG_FILES= bin/opensearch bin/opensearch-cli \
+ bin/opensearch-env bin/opensearch-env-from-file \
+ bin/opensearch-keystore bin/opensearch-node \
+ bin/opensearch-plugin bin/opensearch-shard \
+ plugins/opensearch-security/tools/audit_config_migrater.sh \
+ plugins/opensearch-security/tools/hash.sh \
+ plugins/opensearch-security/tools/install_demo_configuration.sh \
+ plugins/opensearch-security/tools/securityadmin.sh
+
+NO_BUILD= yes
+WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
+
+OPTIONS_DEFINE= PLUGINS
+OPTIONS_DEFAULT=PLUGINS
+
+.include <bsd.port.options.mk>
+
+.if ${ARCH} == "aarch64"
+OPENSEARCH_ARCH= arm64
+.else
+OPENSEARCH_ARCH= x64
+.endif
+
+CONFIG_FILES= opensearch.yml jvm.options log4j2.properties
+
+PLUGINS_CONFIG_FILES?= \
+ opensearch-notifications-core/notifications-core.yml \
+ opensearch-notifications/notifications.yml \
+ opensearch-observability/observability.yml \
+ opensearch-performance-analyzer/agent-stats-metadata \
+ opensearch-performance-analyzer/log4j2.xml \
+ opensearch-performance-analyzer/opensearch_security.policy \
+ opensearch-performance-analyzer/performance-analyzer.properties \
+ opensearch-performance-analyzer/plugin-stats-metadata \
+ opensearch-performance-analyzer/rca.conf \
+ opensearch-performance-analyzer/rca_idle_cluster_manager.conf \
+ opensearch-performance-analyzer/rca_cluster_manager.conf \
+ opensearch-performance-analyzer/supervisord.conf \
+ opensearch-reports-scheduler/reports-scheduler.yml \
+ opensearch-security/action_groups.yml \
+ opensearch-security/allowlist.yml \
+ opensearch-security/audit.yml \
+ opensearch-security/config.yml \
+ opensearch-security/internal_users.yml \
+ opensearch-security/nodes_dn.yml \
+ opensearch-security/roles.yml \
+ opensearch-security/roles_mapping.yml \
+ opensearch-security/tenants.yml \
+ opensearch-security/whitelist.yml
+
+# Upstream provide some *.example files. These are also copied as sample filse
+# but we do not register them as @sample to avoid installing filse that needs
+# to be tuned a site specific way.
+PLUGINS_SAMPLE_CONFIG_FILES= \
+ opensearch-security/opensearch.yml
+
+BINS= opensearch opensearch-cli opensearch-env \
+ opensearch-env-from-file opensearch-keystore \
+ opensearch-node opensearch-plugin \
+ opensearch-shard
+
+SEARCHUSER?= opensearch
+SEARCHGROUP?= ${SEARCHUSER}
+USERS= ${SEARCHUSER}
+GROUPS= ${SEARCHGROUP}
+
+SUB_FILES= pkg-message
+SUB_LIST= ETCDIR=${ETCDIR} \
+ JAVA_HOME=${JAVA_HOME}
+
+post-patch:
+ ${RM} ${WRKSRC}/lib/jna-*.jar
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/opensearch
+.for f in ${CONFIG_FILES}
+ ${INSTALL} ${WRKSRC}/config/${f} ${STAGEDIR}${ETCDIR}/${f}.sample
+.endfor
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/opensearch/bin
+.for f in ${BINS}
+ ${INSTALL_SCRIPT} ${WRKSRC}/bin/${f} ${STAGEDIR}${PREFIX}/lib/opensearch/bin
+.endfor
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/opensearch/extensions
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/opensearch/lib
+ (cd ${WRKSRC}/ && ${COPYTREE_SHARE} "lib modules" ${STAGEDIR}${PREFIX}/lib/opensearch/)
+ ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/opensearch
+ ${INSTALL} -lrs ${STAGEDIR}${ETCDIR} ${STAGEDIR}${PREFIX}/lib/opensearch/config
+ ${LN} -s ${JAVASHAREDIR}/classes/jna.jar ${STAGEDIR}${PREFIX}/lib/opensearch/lib/jna.jar
+
+do-install-PLUGINS-on:
+ ${MKDIR} ${STAGEDIR}${ETCDIR}/opensearch-notifications-core \
+ ${STAGEDIR}${ETCDIR}/opensearch-notifications \
+ ${STAGEDIR}${ETCDIR}/opensearch-observability \
+ ${STAGEDIR}${ETCDIR}/opensearch-reports-scheduler \
+ ${STAGEDIR}${ETCDIR}/opensearch-security \
+ ${STAGEDIR}${ETCDIR}/opensearch-performance-analyzer
+
+.for f in ${PLUGINS_CONFIG_FILES}
+ ${INSTALL} ${WRKSRC}/config/${f} ${STAGEDIR}${ETCDIR}/${f}.sample
+ ${ECHO} "@sample(opensearch,opensearch,640) ${ETCDIR}/${f}.sample" >> ${TMPPLIST}
+.endfor
+.for f in ${PLUGINS_SAMPLE_CONFIG_FILES}
+ ${INSTALL} ${WRKSRC}/config/${f}.example ${STAGEDIR}${ETCDIR}/${f}.sample
+ ${ECHO} "@(opensearch,opensearch,640) ${ETCDIR}/${f}.sample" >> ${TMPPLIST}
+.endfor
+ (cd ${WRKSRC}/ && ${COPYTREE_SHARE} "plugins" ${STAGEDIR}${PREFIX}/lib/opensearch/)
+ (cd ${WRKSRC}/plugins/opensearch-security/tools && ${COPYTREE_BIN} "*.sh" ${STAGEDIR}${PREFIX}/lib/opensearch/plugins/opensearch-security/tools)
+
+post-install:
+.for f in ${CONFIG_FILES}
+ ${ECHO} "@sample(opensearch,opensearch,640) ${ETCDIR}/${f}.sample" >> ${TMPPLIST}
+.endfor
+ ${FIND} -s ${STAGEDIR}${PREFIX}/lib/opensearch -not -type d | ${SORT} | \
+ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+ ${ECHO} "@dir lib/opensearch/extensions" >> ${TMPPLIST}
+ ${ECHO} "@dir libexec/opensearch" >> ${TMPPLIST}
+.if ${PORT_OPTIONS:MPLUGINS}
+ ${ECHO} "@dir lib/opensearch/plugins" >> ${TMPPLIST}
+ ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/opensearch-notifications-core" >> ${TMPPLIST}
+ ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/opensearch-notifications" >> ${TMPPLIST}
+ ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/opensearch-observability" >> ${TMPPLIST}
+ ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/opensearch-performance-analyzer" >> ${TMPPLIST}
+ ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/opensearch-reports-scheduler" >> ${TMPPLIST}
+ ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/opensearch-security" >> ${TMPPLIST}
+.endif
+ ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/" >> ${TMPPLIST}
+
+.include <bsd.port.mk>
diff --git a/textproc/opensearch219/distinfo b/textproc/opensearch219/distinfo
new file mode 100644
index 000000000000..42a039f9eea0
--- /dev/null
+++ b/textproc/opensearch219/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1746943739
+SHA256 (opensearch-2.19.1-linux-arm64.tar.gz) = fc25c886a7f45c5c94699b217dcbb87528c2c25adf67797247a4e07fadc7326f
+SIZE (opensearch-2.19.1-linux-arm64.tar.gz) = 715801679
+SHA256 (opensearch-2.19.1-linux-x64.tar.gz) = b243aaa7d8dcebb87881f70f71613903c36dda077fd90ee11ea377412d6d569f
+SIZE (opensearch-2.19.1-linux-x64.tar.gz) = 964414604
diff --git a/textproc/opensearch219/files/opensearch.in b/textproc/opensearch219/files/opensearch.in
new file mode 100644
index 000000000000..71334ce1ee01
--- /dev/null
+++ b/textproc/opensearch219/files/opensearch.in
@@ -0,0 +1,115 @@
+#!/bin/sh
+
+# PROVIDE: opensearch
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf to enable opensearch:
+#
+# opensearch_enable="YES"
+#
+# opensearch_user (username): Set to opensearch by default.
+# Set it to required username.
+# opensearch_group (group): Set to opensearch by default.
+# Set it to required group.
+# opensearch_config (path): Set to %%PREFIX%%/etc/opensearch/opensearch.yml by default.
+# Set it to the config file location.
+# opensearch_java_home (path): Set to %%JAVA_HOME%% by default.
+# Set it to the root of the JDK to use.
+#
+. /etc/rc.subr
+
+name=opensearch
+rcvar=opensearch_enable
+
+load_rc_config ${name}
+
+: ${opensearch_enable:=NO}
+: ${opensearch_user=opensearch}
+: ${opensearch_group=opensearch}
+: ${opensearch_config=%%PREFIX%%/etc/opensearch}
+: ${opensearch_login_class=root}
+: ${opensearch_java_home="%%JAVA_HOME%%"}
+
+required_files="${opensearch_config}/opensearch.yml"
+_pidprefix=/var/run/opensearch/opensearch
+pidfile=${_pidprefix}.pid
+procname=${opensearch_java_home}/bin/java
+
+extra_commands="console status"
+console_cmd=opensearch_console
+start_precmd=opensearch_precmd
+command=%%PREFIX%%/lib/opensearch/bin/opensearch
+command_args="-d --pidfile=${pidfile}"
+
+export OPENSEARCH_PATH_CONF=${opensearch_config}
+export JAVA_HOME=${opensearch_java_home}
+
+opensearch_precmd()
+{
+ /usr/bin/install -d -o ${opensearch_user} -g ${opensearch_group} -m 755 ${pidfile%/*}
+ /usr/bin/install -d -o ${opensearch_user} -g ${opensearch_group} -m 755 /var/db/opensearch
+ /usr/bin/install -d -o ${opensearch_user} -g ${opensearch_group} -m 755 /var/log/opensearch
+}
+
+opensearch_console()
+{
+ command_args=""
+ run_rc_command "start"
+}
+
+if [ -n "$2" ]; then
+ profile="$2"
+ if [ "x${opensearch_profiles}" != "x" ]; then
+ eval opensearch_config="\${opensearch_${profile}_config:-}"
+ if [ "x${opensearch_config}" = "x" ]; then
+ echo "You must define a configuration (opensearch_${profile}_config)"
+ exit 1
+ fi
+ export OPENSEARCH_PATH_CONF=${opensearch_config}
+ required_files="${opensearch_config}/opensearch.yml"
+ required_files="${opensearch_config}/jvm.options"
+ eval opensearch_enable="\${opensearch_${profile}_enable:-${opensearch_enable}}"
+ pidfile="${_pidprefix}.${profile}.pid"
+ command_args="-d --pidfile=${pidfile}"
+ echo "===> opensearch profile: ${profile}"
+ else
+ echo "$0: extra argument ignored"
+ fi
+else
+ if [ "x${opensearch_profiles}" != "x" -a "x$1" != "x" ]; then
+ for profile in ${opensearch_profiles}; do
+ eval _enable="\${opensearch_${profile}_enable}"
+ case "x${_enable:-${opensearch_enable}}" in
+ x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee])
+ continue
+ ;;
+ x[Yy][Ee][Ss])
+ ;;
+ *)
+ if test -z "$_enable"; then
+ _var=opensearch_enable
+ else
+ _var=opensearch_"${profile}"_enable
+ fi
+ echo "Bad value" \
+ "'${_enable:-${opensearch_enable}}'" \
+ "for ${_var}. " \
+ "Profile ${profile} skipped."
+ continue
+ ;;
+ esac
+ %%PREFIX%%/etc/rc.d/opensearch $1 ${profile}
+ retcode="$?"
+ if [ "0${retcode}" -ne 0 ]; then
+ failed="${profile} (${retcode}) ${failed:-}"
+ else
+ success="${profile} ${success:-}"
+ fi
+ done
+ exit 0
+ fi
+fi
+
+run_rc_command "$1"
diff --git a/textproc/opensearch219/files/patch-config_jvm.options b/textproc/opensearch219/files/patch-config_jvm.options
new file mode 100644
index 000000000000..f6276944b6db
--- /dev/null
+++ b/textproc/opensearch219/files/patch-config_jvm.options
@@ -0,0 +1,23 @@
+--- config/jvm.options.orig 2021-07-30 14:01:34 UTC
++++ config/jvm.options
+@@ -61,17 +61,17 @@
+ -XX:HeapDumpPath=data
+
+ # specify an alternative path for JVM fatal error logs
+--XX:ErrorFile=logs/hs_err_pid%p.log
++-XX:ErrorFile=/hs_err_pid%p.log
+
+ ## JDK 8 GC logging
+ 8:-XX:+PrintGCDetails
+ 8:-XX:+PrintGCDateStamps
+ 8:-XX:+PrintTenuringDistribution
+ 8:-XX:+PrintGCApplicationStoppedTime
+-8:-Xloggc:logs/gc.log
++8:-Xloggc:${OPENSEARCH_TMPDIR}/gc.log
+ 8:-XX:+UseGCLogFileRotation
+ 8:-XX:NumberOfGCLogFiles=32
+ 8:-XX:GCLogFileSize=64m
+
+ # JDK 9+ GC logging
+-9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
++9-:-Xlog:gc*,gc+age=trace,safepoint:file=${OPENSEARCH_TMPDIR}/gc.log:utctime,pid,tags:filecount=32,filesize=64m
diff --git a/textproc/opensearch219/files/patch-config_opensearch.yml b/textproc/opensearch219/files/patch-config_opensearch.yml
new file mode 100644
index 000000000000..f5aa3ed1a80e
--- /dev/null
+++ b/textproc/opensearch219/files/patch-config_opensearch.yml
@@ -0,0 +1,15 @@
+--- config/opensearch.yml.orig 2021-07-02 23:22:08 UTC
++++ config/opensearch.yml
+@@ -31,10 +31,12 @@
+ # Path to directory where to store the data (separate multiple locations by comma):
+ #
+ #path.data: /path/to/data
++path.data: /var/db/opensearch
+ #
+ # Path to log files:
+ #
+ #path.logs: /path/to/logs
++path.logs: /var/log/opensearch
+ #
+ # ----------------------------------- Memory -----------------------------------
+ #
diff --git a/textproc/opensearch219/files/pkg-message.in b/textproc/opensearch219/files/pkg-message.in
new file mode 100644
index 000000000000..c08de567504c
--- /dev/null
+++ b/textproc/opensearch219/files/pkg-message.in
@@ -0,0 +1,27 @@
+[
+{ type: install
+ message: <<EOM
+Opensearch was installed
+
+Please see %%ETCDIR%% for a sample version of
+opensearch.yml.
+
+OpenSearch requires memory locking of large amounts of RAM.
+You may need to set:
+
+sysctl security.bsd.unprivileged_mlock=1
+
+When running within a jail, it's highly advisable to set:
+
+enforce_statfs = 1
+
+for the jail running opensearch instance.
+
+If OpenSearch was built with the PLUGINS option enabled (default) it will not
+start until the security plugin is properly configured. Please refer to the
+OpenSearch documentation for setting-up TLS:
+
+https://opensearch.org/docs/security-plugin/configuration/tls
+EOM
+}
+]
diff --git a/textproc/opensearch219/pkg-descr b/textproc/opensearch219/pkg-descr
new file mode 100644
index 000000000000..8d97bcb3176a
--- /dev/null
+++ b/textproc/opensearch219/pkg-descr
@@ -0,0 +1,2 @@
+OpenSearch is a fork of Elasticsearch which aims to be a Distributed,
+RESTful, Search Engine built on top of Apache Lucene.