diff --git a/textproc/opensearch/Makefile b/textproc/opensearch/Makefile index 5d892d18b277..1713a5a82e9f 100644 --- a/textproc/opensearch/Makefile +++ b/textproc/opensearch/Makefile @@ -1,154 +1,130 @@ PORTNAME= opensearch -DISTVERSION?= 3.1.0 -DISTVERSIONSUFFIX= -linux-x64 -PORTREVISION?= 0 +DISTVERSION= 3.2.0 +DISTVERSIONSUFFIX= -linux-${OPENSEARCH_ARCH} CATEGORIES= textproc java devel MASTER_SITES= https://artifacts.opensearch.org/releases/bundle/${PORTNAME}/${DISTVERSION}/ -PKGNAMESUFFIX?= # MAINTAINER= opensearch@FreeBSD.org -COMMENT?= Full-text search engine for Java +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 USES= cpe java shebangfix JAVA_VERSION= 21+ 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 \ +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 -CONFLICTS?= opensearch13 opensearch210 opensearch213 opensearch216 +CONFLICTS_INSTALL= opensearch13 opensearch21[0369] NO_BUILD= yes WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION} -OPTIONS_DEFINE= PLUGINS -OPTIONS_DEFAULT=PLUGINS +OPTIONS_DEFINE= PLUGINS +OPTIONS_DEFAULT= PLUGINS .include +OPENSEARCH_ARCH?= ${ARCH:S|aarch64|arm64|:S|amd64|x64|} + 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 -.if ${PKGNAMESUFFIX} == "210" || ${PKGNAMESUFFIX} == "213" || ${PKGNAMESUFFIX} == "216" -PLUGINS_CONFIG_FILES+= \ - 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-security/whitelist.yml -.endif -PLUGINS_CONFIG_FILES+= \ - 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 +PLUGINS_CONFIG_FILES?= opensearch-notifications-core/notifications-core.yml \ + opensearch-notifications/notifications.yml \ + opensearch-observability/observability.yml \ + 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 # 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 +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 + 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} "agent 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 -.if ${PKGNAMESUFFIX} == "210" || ${PKGNAMESUFFIX} == "213" || ${PKGNAMESUFFIX} == "216" - ${MKDIR} ${STAGEDIR}${ETCDIR}/opensearch-performance-analyzer -.endif .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} -.if ${PKGNAMESUFFIX} == "210" || ${PKGNAMESUFFIX} == "213" || ${PKGNAMESUFFIX} == "216" - ${ECHO} "@dir(opensearch,opensearch,0750) ${ETCDIR}/opensearch-performance-analyzer" >> ${TMPPLIST} -.endif ${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 diff --git a/textproc/opensearch/distinfo b/textproc/opensearch/distinfo index 631008869626..9ef9dd9ba6e7 100644 --- a/textproc/opensearch/distinfo +++ b/textproc/opensearch/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1752307580 -SHA256 (opensearch-3.1.0-linux-x64.tar.gz) = a5eb65b1fab3ff4e0befba8cf48174e8bc2daee6d85ffd5b5c4ccf5cbf427eb6 -SIZE (opensearch-3.1.0-linux-x64.tar.gz) = 1000330285 +TIMESTAMP = 1759259967 +SHA256 (opensearch-3.2.0-linux-x64.tar.gz) = 3f77e6a69925af8a18d6feaa651129027dccab4e4f8a20c23fee7873db992f44 +SIZE (opensearch-3.2.0-linux-x64.tar.gz) = 942883522 +SHA256 (opensearch-3.2.0-linux-arm64.tar.gz) = 0341d98624dcd6563d23682e6f71643c445bdb56f21c10ff029cb98e9beb370e +SIZE (opensearch-3.2.0-linux-arm64.tar.gz) = 694814003 diff --git a/textproc/opensearch/files/opensearch.in b/textproc/opensearch/files/opensearch.in index 71334ce1ee01..288959f2e9a9 100644 --- a/textproc/opensearch/files/opensearch.in +++ b/textproc/opensearch/files/opensearch.in @@ -1,115 +1,128 @@ #!/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. +# opensearch_flags (): Set to "" by default. +# Configure temporary startup flags +# Format: "-Enetwork.host=0.0.0.0 -Ediscovery.type=single-node" +# See: docs.opensearch.org/latest/install-and-configure/configuring-opensearch/index/ +# opensearch_env (): Set to "" by default. +# Configure environment +# Format: "OPENSEARCH_INITIAL_ADMIN_PASSWORD=Secret!Password1" # . /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%%"} +: ${opensearch_flags=""} +: ${opensearch_env=""} 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} +if [ -n "${opensearch_env}" ]; then + export ${opensearch_env} +fi + 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-config_opensearch.yml b/textproc/opensearch/files/patch-config_opensearch.yml index f5aa3ed1a80e..9783498e3ef6 100644 --- a/textproc/opensearch/files/patch-config_opensearch.yml +++ b/textproc/opensearch/files/patch-config_opensearch.yml @@ -1,15 +1,22 @@ ---- config/opensearch.yml.orig 2021-07-02 23:22:08 UTC +--- 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 ----------------------------------- # +@@ -122,3 +124,7 @@ + # + #opensearch.experimental.optimization.datetime_formatter_caching.enabled: false ++ ++# Disable unsupported AVX2, https://github.com/opensearch-project/k-NN/issues/2788 ++knn.faiss.avx2.disabled: true ++knn.faiss.avx512_spr.disabled: true