aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GIDs2
-rw-r--r--UIDs2
-rw-r--r--textproc/Makefile1
-rw-r--r--textproc/opensearch/Makefile84
-rw-r--r--textproc/opensearch/distinfo3
-rw-r--r--textproc/opensearch/files/opensearch.in115
-rw-r--r--textproc/opensearch/files/patch-bin_opensearch-env17
-rw-r--r--textproc/opensearch/files/patch-config_jvm.options23
-rw-r--r--textproc/opensearch/files/patch-config_opensearch.yml15
-rw-r--r--textproc/opensearch/files/pkg-message.in25
-rw-r--r--textproc/opensearch/pkg-descr4
11 files changed, 289 insertions, 2 deletions
diff --git a/GIDs b/GIDs
index 63dc0aaa4873..109235222730 100644
--- a/GIDs
+++ b/GIDs
@@ -795,7 +795,7 @@ cassandra:*:851:
p0f:*:852:
_geodns:*:853:
ebusd:*:854:
-# free: 855
+opensearch:*:855:
# free: 856
# free: 857
# free: 858
diff --git a/UIDs b/UIDs
index 279b89c71649..76d70a455da8 100644
--- a/UIDs
+++ b/UIDs
@@ -800,7 +800,7 @@ cassandra:*:851:851::0:0:Cassandra DB Daemon User:/var/db/cassandra:/usr/sbin/no
p0f:*:852:852::0:0:p0f unprivileged user:/var/empty:/usr/sbin/nologin
_geodns:*:853:853::0:0:GeoDNS User:/var/empty:/usr/sbin/nologin
ebusd:*:854:854::0:0:eBUS Daemon user:/nonexistent:/usr/sbin/nologin
-# free: 855
+opensearch:*:855:855::0:0:opensearch user:/nonexistent:/usr/sbin/nologin
# free: 856
# free: 857
# free: 858
diff --git a/textproc/Makefile b/textproc/Makefile
index 8ddc20713061..37faf6858aa2 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -483,6 +483,7 @@
SUBDIR += odt2txt
SUBDIR += openfts
SUBDIR += openjade
+ SUBDIR += opensearch
SUBDIR += opensp
SUBDIR += openvanilla-framework
SUBDIR += or-aspell
diff --git a/textproc/opensearch/Makefile b/textproc/opensearch/Makefile
new file mode 100644
index 000000000000..e3b39068adf0
--- /dev/null
+++ b/textproc/opensearch/Makefile
@@ -0,0 +1,84 @@
+# Created by: Sven R <freebsd@hackacad.net>
+
+PORTNAME= opensearch
+DISTVERSION= 1.0.1
+DISTVERSIONSUFFIX= -linux-x64
+CATEGORIES= textproc java devel
+MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${PORTVERSION}/
+
+MAINTAINER= opensearch@FreeBSD.org
+COMMENT= Full-text search engine for Java
+
+LICENSE= APACHE20
+
+BUILD_DEPENDS= jna>0:devel/jna
+RUN_DEPENDS= bash>0:shells/bash \
+ jna>0:devel/jna
+
+USES= cpe shebangfix
+USE_JAVA= yes
+JAVA_VERSION= 11+
+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 \
+ bin/performance-analyzer-agent-cli
+
+NO_BUILD= yes
+WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
+
+OPTIONS_DEFINE= PLUGINS
+OPTIONS_DEFAULT=PLUGINS
+
+.include <bsd.port.options.mk>
+
+CONFIG_FILES= opensearch.yml jvm.options log4j2.properties
+
+BINS= opensearch opensearch-cli opensearch-env \
+ opensearch-env-from-file opensearch-keystore \
+ opensearch-node opensearch-plugin \
+ opensearch-shard performance-analyzer-agent-cli
+
+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/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:
+ (cd ${WRKSRC}/ && ${COPYTREE_SHARE} "plugins" ${STAGEDIR}${PREFIX}/lib/opensearch/)
+
+post-install:
+.for f in ${CONFIG_FILES}
+ ${ECHO} "@sample ${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/plugins" >> ${TMPPLIST}
+ ${ECHO} "@dir libexec/opensearch" >> ${TMPPLIST}
+ ${ECHO} "@dir(opensearch,opensearch,0755) ${ETCDIR}" >> ${TMPPLIST}
+
+.include <bsd.port.mk>
diff --git a/textproc/opensearch/distinfo b/textproc/opensearch/distinfo
new file mode 100644
index 000000000000..407e55397ae9
--- /dev/null
+++ b/textproc/opensearch/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1630980635
+SHA256 (opensearch-1.0.1-linux-x64.tar.gz) = 86816266f5b6a129e301b18168ff6b96cf54e1d712f903c6985dabe51e230655
+SIZE (opensearch-1.0.1-linux-x64.tar.gz) = 431148224
diff --git a/textproc/opensearch/files/opensearch.in b/textproc/opensearch/files/opensearch.in
new file mode 100644
index 000000000000..71334ce1ee01
--- /dev/null
+++ b/textproc/opensearch/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/opensearch/files/patch-bin_opensearch-env b/textproc/opensearch/files/patch-bin_opensearch-env
new file mode 100644
index 000000000000..dfb091fdce48
--- /dev/null
+++ b/textproc/opensearch/files/patch-bin_opensearch-env
@@ -0,0 +1,17 @@
+--- bin/opensearch-env.orig 2021-07-30 13:39:40 UTC
++++ bin/opensearch-env
+@@ -40,13 +40,7 @@ if [ ! -z "$JAVA_HOME" ]; then
+ JAVA="$JAVA_HOME/bin/java"
+ JAVA_TYPE="JAVA_HOME"
+ else
+- if [ "$(uname -s)" = "Darwin" ]; then
+- # macOS has a different structure
+- JAVA="$OPENSEARCH_HOME/jdk.app/Contents/Home/bin/java"
+- else
+- JAVA="$OPENSEARCH_HOME/jdk/bin/java"
+- fi
+- JAVA_TYPE="bundled jdk"
++ JAVA="/usr/local/bin/java"
+ fi
+
+ if [ ! -x "$JAVA" ]; then
diff --git a/textproc/opensearch/files/patch-config_jvm.options b/textproc/opensearch/files/patch-config_jvm.options
new file mode 100644
index 000000000000..f6276944b6db
--- /dev/null
+++ b/textproc/opensearch/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/opensearch/files/patch-config_opensearch.yml b/textproc/opensearch/files/patch-config_opensearch.yml
new file mode 100644
index 000000000000..f5aa3ed1a80e
--- /dev/null
+++ b/textproc/opensearch/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/opensearch/files/pkg-message.in b/textproc/opensearch/files/pkg-message.in
new file mode 100644
index 000000000000..57362436aa11
--- /dev/null
+++ b/textproc/opensearch/files/pkg-message.in
@@ -0,0 +1,25 @@
+[
+{ type: install
+ message: <<EOM
+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/opensearch/pkg-descr b/textproc/opensearch/pkg-descr
new file mode 100644
index 000000000000..ae7fd228a311
--- /dev/null
+++ b/textproc/opensearch/pkg-descr
@@ -0,0 +1,4 @@
+OpenSearch is a fork of Elasticsearch which aims to be a Distributed,
+RESTful, Search Engine built on top of Apache Lucene.
+
+WWW: http://opensearch.org