diff --git a/textproc/apache-solr/Makefile b/textproc/apache-solr/Makefile index 4193227435e8..41035b83c920 100644 --- a/textproc/apache-solr/Makefile +++ b/textproc/apache-solr/Makefile @@ -1,73 +1,74 @@ PORTNAME= apache-solr PORTVERSION= 9.7.0 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= textproc java MASTER_SITES= https://archive.apache.org/dist/solr/solr/${PORTVERSION}/ DISTNAME= solr-${PORTVERSION} MAINTAINER= mfechner@FreeBSD.org COMMENT= High performance search server built using Lucene Java WWW= https://lucene.apache.org/solr/ LICENSE= APACHE20 RUN_DEPENDS= bash:shells/bash USES= cpe tar:tgz CPE_VENDOR= apache CPE_PRODUCT= solr USE_JAVA= yes JAVA_VERSION= 11+ JAVA_RUN= yes USE_RC_SUBR= solr NO_ARCH= yes NO_BUILD= yes SUB_FILES= pkg-message USERS= solr GROUPS= ${USERS} CPE_PRODUCT= solr CPE_VENDOR= apache PLIST_SUB+= PORTVERSION="${PORTVERSION}" OPTIONS_DEFINE= JTS OPTIONS_SUB= yes JTS_DESC= Enable support for JTS Topology Suite JTS_RUN_DEPENDS= jts>0:math/jts do-install: ${FIND} ${WRKSRC} -name '*.orig' -delete cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${CPE_PRODUCT} ${INSTALL_SCRIPT} ${WRKSRC}/bin/post ${STAGEDIR}${PREFIX}/${CPE_PRODUCT}/bin ${INSTALL_SCRIPT} ${WRKSRC}/bin/postlogs ${STAGEDIR}${PREFIX}/${CPE_PRODUCT}/bin ${INSTALL_SCRIPT} ${WRKSRC}/bin/solr ${STAGEDIR}${PREFIX}/${CPE_PRODUCT}/bin ${INSTALL_DATA} ${WRKSRC}/bin/solr.in.sh ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${ECHO} '' >> ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${ECHO} 'SOLR_HOME="/var/db/solr"' >> ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${ECHO} '# LOG4J_PROPS="/var/db/solr/log4j2.xml"' >> ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${ECHO} 'SOLR_LOGS_DIR="/var/log/solr"' >> ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${ECHO} 'SOLR_PORT="8983"' >> ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${ECHO} 'SOLR_PID_DIR="/var/db/solr"' >> ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${ECHO} 'SOLR_OPTS="$$SOLR_OPTS -Djetty.host=localhost -Dlog4j2.formatMsgNoLookups=true"' >> ${STAGEDIR}${PREFIX}/etc/solr.in.sh.sample ${MKDIR} ${STAGEDIR}/var/db/solr ${MKDIR} ${STAGEDIR}/var/log/solr ${INSTALL_DATA} ${WRKSRC}/server/solr/solr.xml ${STAGEDIR}/var/db/solr/solr.xml.sample do-install-JTS-on: ${LN} -sf ${JAVALIBDIR}/jts-core.jar ${STAGEDIR}${PREFIX}/${CPE_PRODUCT}/server/solr-webapp/webapp/WEB-INF/lib/ post-install: ${FIND} -s ${STAGEDIR}${PREFIX}/${CPE_PRODUCT} -not -type d | ${SORT} | \ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} @${ECHO_CMD} "@dir(solr,solr) /var/db/solr" >> ${TMPPLIST} @${ECHO_CMD} "@dir(solr,solr) /var/log/solr" >> ${TMPPLIST} @${ECHO_CMD} "@sample etc/solr.in.sh.sample" >> ${TMPPLIST} @${ECHO_CMD} "@sample(solr,solr) /var/db/solr/solr.xml.sample" >> ${TMPPLIST} .include diff --git a/textproc/apache-solr/files/patch-bin_solr b/textproc/apache-solr/files/patch-bin_solr new file mode 100644 index 000000000000..9184b2f8ba45 --- /dev/null +++ b/textproc/apache-solr/files/patch-bin_solr @@ -0,0 +1,33 @@ +--- bin/solr.orig 2024-08-06 17:02:34 UTC ++++ bin/solr +@@ -2027,13 +2027,20 @@ function start_solr() { + fi + + # no lsof on cygwin though ++ check_command="" + if lsof -v 2>&1 | grep -q revision; then ++ check_command="lsof -t -PniTCP:$SOLR_PORT -sTCP:LISTEN" ++ elif which -s sockstat; then ++ check_command="sockstat -q46lp$SOLR_PORT" ++ fi ++ ++ if [[ "${check_command}" != "" ]]; then + echo -n "Waiting up to $SOLR_START_WAIT seconds to see Solr running on port $SOLR_PORT" + # Launch in a subshell to show the spinner + (loops=0 + while true + do +- running=$(lsof -t -PniTCP:$SOLR_PORT -sTCP:LISTEN || :) ++ running=$(${check_command} || :) + if [ -z "${running:-}" ]; then + slept=$((loops * 2)) + if [ $slept -lt $SOLR_START_WAIT ]; then +@@ -2052,7 +2059,7 @@ function start_solr() { + done) & + spinner $! + else +- echo -e "NOTE: Please install lsof as this script needs it to determine if Solr is listening on port $SOLR_PORT." ++ echo -e "NOTE: Please install lsof or sockstat as this script needs it to determine if Solr is listening on port $SOLR_PORT." + sleep 10 + SOLR_PID=$(ps auxww | grep start\.jar | awk "/\-Djetty\.port=$SOLR_PORT/"' {print $2}' | sort -r) + echo -e "\nStarted Solr server on port $SOLR_PORT (pid=$SOLR_PID). Happy searching!\n"