textproc/opensearch13: New port: Full-text search engine for Java (1.3.x branch)

OpenSearch is a fork of Elasticsearch which aims to be a Distributed,
RESTful, Search Engine built on top of Apache Lucene.
This commit is contained in:
Jose Alonso Cardenas Marquez 2022-12-06 19:25:36 -05:00
parent 6cbd9bad51
commit b698323219
8 changed files with 298 additions and 0 deletions

View File

@ -503,6 +503,7 @@
SUBDIR += openfts
SUBDIR += openjade
SUBDIR += opensearch
SUBDIR += opensearch13
SUBDIR += opensearch-dashboards
SUBDIR += opensp
SUBDIR += openvanilla-framework

View File

@ -0,0 +1,112 @@
PORTNAME= opensearch
DISTVERSION= 1.3.6
DISTVERSIONSUFFIX= -linux-x64
CATEGORIES= textproc java devel
MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/
PKGNAMESUFFIX= 13
MAINTAINER= opensearch@FreeBSD.org
COMMENT?= Full-text search engine for Java
WWW= https://opensearch.org
LICENSE= APACHE20
BUILD_DEPENDS= jna>0:devel/jna
RUN_DEPENDS= bash>0:shells/bash \
jna>0:devel/jna
CONFLICTS= opensearch
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 \
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>
CONFIG_FILES= opensearch.yml jvm.options log4j2.properties
PLUGINS_CONFIG_FILES?= \
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_master.conf \
opensearch-performance-analyzer/rca_master.conf \
opensearch-performance-analyzer/supervisord.conf \
opensearch-reports-scheduler/reports-scheduler.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/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-performance-analyzer \
${STAGEDIR}${ETCDIR}/opensearch-reports-scheduler
.for f in ${PLUGINS_CONFIG_FILES}
${INSTALL} ${WRKSRC}/config/${f} ${STAGEDIR}${ETCDIR}/${f}.sample
${ECHO} "@sample ${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 ${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>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1670283394
SHA256 (opensearch-1.3.6-linux-x64.tar.gz) = 0784cc05ec03dc9cac17dca923272ae08ebc9a43fbbbb61397024f1c90cdb024
SIZE (opensearch-1.3.6-linux-x64.tar.gz) = 421906066

View File

@ -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"

View File

@ -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

View File

@ -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 -----------------------------------
#

View File

@ -0,0 +1,27 @@
[
{ type: install
message: <<EOM
Opensearch 1.3.x 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
}
]

View File

@ -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.