diff --git a/textproc/elasticsearch7/Makefile b/textproc/elasticsearch7/Makefile index 897904e7d900..e93069aa4bd7 100644 --- a/textproc/elasticsearch7/Makefile +++ b/textproc/elasticsearch7/Makefile @@ -1,109 +1,115 @@ PORTNAME= elasticsearch DISTVERSION= 7.17.29 +PORTREVISION= 1 CATEGORIES= textproc java devel MASTER_SITES= https://artifacts.elastic.co/downloads/${PORTNAME}/ \ LOCAL/vvd/elastic PKGNAMESUFFIX= 7 DISTNAME= ${PORTNAME}-${DISTVERSION}-darwin-x86_64 MAINTAINER= elastic@FreeBSD.org COMMENT= Full-text search engine for Java WWW= https://www.elastic.co/ LICENSE= APACHE20 DEPRECATED= 7.x reached EoL on 15 Jan 2026 - use textproc/elasticsearch8 or textproc/elasticsearch9* EXPIRATION_DATE= 2026-06-30 BUILD_DEPENDS= jna>0:devel/jna RUN_DEPENDS= bash>0:shells/bash \ jna>0:devel/jna USES= cpe java shebangfix JAVA_VERSION= 21 17 11 8 USE_RC_SUBR= ${PORTNAME} SHEBANG_FILES= bin/elasticsearch bin/elasticsearch-certgen \ bin/elasticsearch-certutil bin/elasticsearch-cli \ bin/elasticsearch-croneval bin/elasticsearch-env \ bin/elasticsearch-env-from-file bin/elasticsearch-keystore \ bin/elasticsearch-migrate bin/elasticsearch-node \ bin/elasticsearch-plugin bin/elasticsearch-saml-metadata \ bin/elasticsearch-setup-passwords bin/elasticsearch-shard \ bin/elasticsearch-sql-cli bin/elasticsearch-syskeygen \ bin/elasticsearch-users bin/x-pack-env bin/x-pack-security-env \ bin/x-pack-watcher-env CONFLICTS= ${PORTNAME}8 ${PORTNAME}9* +# ML plugin not supported on FreeBSD +EXTRACT_AFTER_ARGS= --exclude jdk.app \ + --exclude lib/jna-5.10.0.jar \ + --exclude modules/x-pack/x-pack-ml \ + --no-same-owner --no-same-permissions + NO_ARCH= yes NO_BUILD= yes PORTSCOUT= limit:^7 SUB_FILES= pkg-message -SUB_LIST= ETCDIR=${ETCDIR} \ - JAVA_HOME=${JAVA_HOME} +SUB_LIST= JAVA_HOME=${JAVA_HOME} \ + SEARCHUSER=${SEARCHUSER} \ + SEARCHGROUP=${SEARCHGROUP} WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION} SEARCHUSER?= ${PORTNAME} SEARCHGROUP?= ${SEARCHUSER} .if ${SEARCHUSER} == ${PORTNAME} USERS= ${SEARCHUSER} .endif .if ${SEARCHGROUP} == ${PORTNAME} GROUPS= ${SEARCHGROUP} .endif PORTDOCS= LICENSE.txt NOTICE.txt README.asciidoc OPTIONS_DEFINE= DOCS CONFIG_FILES= elasticsearch.yml jvm.options log4j2.properties \ role_mapping.yml roles.yml BINS= elasticsearch elasticsearch-certgen elasticsearch-certutil \ elasticsearch-cli elasticsearch-croneval elasticsearch-env \ elasticsearch-env-from-file elasticsearch-keystore \ elasticsearch-migrate elasticsearch-node elasticsearch-plugin \ elasticsearch-saml-metadata elasticsearch-setup-passwords \ elasticsearch-shard elasticsearch-sql-cli \ elasticsearch-sql-cli-${DISTVERSION}.jar \ elasticsearch-syskeygen elasticsearch-users x-pack-env \ x-pack-security-env x-pack-watcher-env post-patch: - ${RM} ${WRKSRC}/lib/jna-*.jar -# ML plugin not supported on FreeBSD - ${RM} -rf ${WRKSRC}/modules/x-pack/x-pack-ml ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/bin/elasticsearch-env do-install: ${MKDIR} ${STAGEDIR}${ETCDIR} \ ${STAGEDIR}${PREFIX}/lib/elasticsearch/bin \ ${STAGEDIR}${PREFIX}/lib/elasticsearch/plugins \ ${STAGEDIR}${PREFIX}/libexec/elasticsearch .for f in ${CONFIG_FILES} ${INSTALL} ${WRKSRC}/config/${f} ${STAGEDIR}${ETCDIR}/${f}.sample .endfor ${INSTALL_SCRIPT} ${BINS:S|^|${WRKSRC}/bin/|} ${STAGEDIR}${PREFIX}/lib/elasticsearch/bin (cd ${WRKSRC}/lib && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/elasticsearch/lib/ "-name *\.jar") (cd ${WRKSRC}/modules && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/elasticsearch/modules/) ${INSTALL} -lrs ${STAGEDIR}${ETCDIR} ${STAGEDIR}${PREFIX}/lib/elasticsearch/config - ${LN} -s ${JAVASHAREDIR}/classes/jna.jar ${STAGEDIR}${PREFIX}/lib/elasticsearch/lib/jna-0.0.0.jar + ${LN} -s ${LOCALBASE}/share/java/classes/jna.jar \ + ${STAGEDIR}${PREFIX}/lib/elasticsearch/lib/jna-0.0.0.jar do-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} post-install: ${ECHO} "@sample ${ETCDIR}/elasticsearch.yml.sample" >> ${TMPPLIST} ${ECHO} "@sample ${ETCDIR}/jvm.options.sample" >> ${TMPPLIST} ${ECHO} "@sample ${ETCDIR}/log4j2.properties.sample" >> ${TMPPLIST} ${ECHO} "@sample ${ETCDIR}/role_mapping.yml.sample" >> ${TMPPLIST} ${ECHO} "@sample ${ETCDIR}/roles.yml.sample" >> ${TMPPLIST} ${FIND} -s ${STAGEDIR}${PREFIX}/lib/elasticsearch -not -type d | ${SORT} | \ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} ${ECHO} "@dir lib/elasticsearch/plugins" >> ${TMPPLIST} ${ECHO} "@dir libexec/elasticsearch" >> ${TMPPLIST} ${ECHO} "@dir(${SEARCHUSER},${SEARCHGROUP},0755) ${ETCDIR}" >> ${TMPPLIST} .include diff --git a/textproc/elasticsearch7/files/elasticsearch.in b/textproc/elasticsearch7/files/elasticsearch.in index 002a2335bf0b..d4414f39d6d0 100644 --- a/textproc/elasticsearch7/files/elasticsearch.in +++ b/textproc/elasticsearch7/files/elasticsearch.in @@ -1,128 +1,128 @@ #!/bin/sh # PROVIDE: elasticsearch # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable elasticsearch: # # elasticsearch_enable="YES" # -# elasticsearch_user (username): Set to elasticsearch by default. +# elasticsearch_user (username): Set to %%SEARCHUSER%% by default. # Set it to required username. -# elasticsearch_group (group): Set to elasticsearch by default. +# elasticsearch_group (group): Set to %%SEARCHGROUP%% by default. # Set it to required group. -# elasticsearch_config (path): Set to %%PREFIX%%/etc/elasticsearch/elasticsearch.yml by default. +# elasticsearch_config (path): Set to %%ETCDIR%%/elasticsearch.yml by default. # Set it to the config file location. # elasticsearch_java_home (path): Set to %%JAVA_HOME%% by default. # Set it to the root of the JDK to use. # . /etc/rc.subr name=elasticsearch rcvar=elasticsearch_enable load_rc_config ${name} : ${elasticsearch_enable:=NO} -: ${elasticsearch_user=elasticsearch} -: ${elasticsearch_group=elasticsearch} -: ${elasticsearch_config=%%PREFIX%%/etc/elasticsearch} +: ${elasticsearch_user=%%SEARCHUSER%%} +: ${elasticsearch_group=%%SEARCHGROUP%%} +: ${elasticsearch_config=%%ETCDIR%%} : ${elasticsearch_login_class=root} : ${elasticsearch_java_home="%%JAVA_HOME%%"} required_files="${elasticsearch_config}/elasticsearch.yml" _pidprefix=/var/run/elasticsearch/elasticsearch pidfile=${_pidprefix}.pid procname=${elasticsearch_java_home}/bin/java extra_commands="console status" console_cmd=elasticsearch_console start_precmd=elasticsearch_precmd command=%%PREFIX%%/lib/elasticsearch/bin/elasticsearch command_args="-d --pidfile=${pidfile}" export ES_PATH_CONF=${elasticsearch_config} export ES_JAVA_HOME=${elasticsearch_java_home} elasticsearch_precmd() { /usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 755 ${pidfile%/*} /usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 755 /var/db/elasticsearch /usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 755 /var/log/elasticsearch } elasticsearch_console() { command_args="" run_rc_command "start" } if [ -n "$2" ]; then profile="$2" if [ "x${elasticsearch_profiles}" != "x" ]; then eval elasticsearch_config="\${elasticsearch_${profile}_config:-}" if [ "x${elasticsearch_config}" = "x" ]; then echo "You must define a configuration (elasticsearch_${profile}_config)" exit 1 fi export ES_PATH_CONF=${elasticsearch_config} required_files="${elasticsearch_config}/elasticsearch.yml" required_files="${elasticsearch_config}/jvm.options" eval elasticsearch_enable="\${elasticsearch_${profile}_enable:-${elasticsearch_enable}}" pidfile="${_pidprefix}.${profile}.pid" command_args="-d --pidfile=${pidfile}" echo "===> elasticsearch profile: ${profile}" else echo "$0: extra argument ignored" fi else if [ "x${elasticsearch_profiles}" != "x" -a "x$1" != "x" ]; then for profile in ${elasticsearch_profiles}; do eval _enable="\${elasticsearch_${profile}_enable}" case "x${_enable:-${elasticsearch_enable}}" in x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee]) continue ;; x[Yy][Ee][Ss]) ;; *) if test -z "$_enable"; then _var=elasticsearch_enable else _var=elasticsearch_"${profile}"_enable fi echo "Bad value" \ "'${_enable:-${elasticsearch_enable}}'" \ "for ${_var}. " \ "Profile ${profile} skipped." continue ;; esac %%PREFIX%%/etc/rc.d/elasticsearch $1 ${profile} retcode="$?" if [ "0${retcode}" -ne 0 ]; then failed="${profile} (${retcode}) ${failed:-}" else success="${profile} ${success:-}" fi done exit 0 fi fi if [ "x${elasticsearch_mem_min}" != "x" ]; then echo "The elasticsearch_mem_min variable is no longer supported please set this in ${elasticsearch_config}/jvm.options" exit 1; fi if [ "x${elasticsearch_mem_max}" != "x" ]; then echo "The elasticsearch_mem_max variable is no longer supported please set this in ${elasticsearch_config}/jvm.options" exit 1; fi if [ "x${elasticsearch_props}" != "x" ]; then echo "The elasticsearch_props variable is no longer supported please set this in ${elasticsearch_config}/jvm.options" exit 1; fi run_rc_command "$1"