Index: head/www/varnish4/Makefile =================================================================== --- head/www/varnish4/Makefile (revision 392996) +++ head/www/varnish4/Makefile (revision 392997) @@ -1,55 +1,55 @@ # $FreeBSD$ PORTNAME= varnish PORTVERSION= 4.0.3 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= www MASTER_SITES= http://repo.varnish-cache.org/source/ PKGNAMESUFFIX= 4 MAINTAINER= feld@FreeBSD.org COMMENT= High-performance HTTP accelerator LICENSE= BSD2CLAUSE LIB_DEPENDS= libpcre.so:${PORTSDIR}/devel/pcre \ libedit.so.0:${PORTSDIR}/devel/libedit CONFLICTS= varnish-2.* varnish-3.* USES= autoreconf cpe gmake libtool pkgconfig python:2,build readline shebangfix SHEBANG_FILES= lib/libvcc/vmodtool.py python_OLD_CMD= /usr/bin/env python python_CMD= ${PYTHON_CMD} CPE_VENDOR= varnish-cache CFLAGS+= -I${LOCALBASE}/include GNU_CONFIGURE= yes CONFIGURE_ARGS= --localstatedir=${PREFIX} --enable-tests CONFIGURE_ENV= RST2MAN=true USE_LDCONFIG= yes INSTALL_TARGET= install-strip USE_RC_SUBR= varnishd varnishlog varnishncsa SUB_FILES= pkg-message .if defined(NO_INET6) || defined(WITHOUT_INET6) BAD_TESTS+= r00832 EXTRA_PATCHES+= ${FILESDIR}/no-inet6.patch .endif post-patch: @${REINPLACE_CMD} -e 's|\$$(libdir)/pkgconfig|\$$(prefix)/libdata/pkgconfig|' \ ${WRKSRC}/Makefile.am .if defined(BAD_TESTS) ${RM} -f ${BAD_TESTS:C|.+|${WRKSRC}/bin/varnishtest/tests/\0.vtc|} .endif regression-test check test: build ${MAKE_CMD} TESTS_PARALLELISM=1 -C ${WRKSRC} check .include .if ${ARCH} == "arm" BROKEN= Does not configure on arm .endif .include Index: head/www/varnish4/files/varnishlog.in =================================================================== --- head/www/varnish4/files/varnishlog.in (revision 392996) +++ head/www/varnish4/files/varnishlog.in (revision 392997) @@ -1,48 +1,73 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: varnishlog -# REQUIRE: DAEMON +# REQUIRE: DAEMON varnishd # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable varnishlog: # # varnishlog_enable="YES" # # Configuration variables and their default values: # # varnishlog_pidfile - full path to the PID file. # default: "/var/run/varnishlog.pid" # # varnishlog_file - full path to the log file. # default: "/var/log/varnish.log" # # varnishlog_flags - command line arguments. # default: "-D -P ${varnishlog_pidfile} -a -w ${varnishlog_file}" # # Add the following line to /etc/newsyslog.conf to rotate the log file # once a day: # # /var/log/varnish.log 640 7 * @T00 JB /var/run/varnishlog.pid # # See varnishlog(1) for a detailed overview of command-line options. # . /etc/rc.subr name=varnishlog rcvar=varnishlog_enable load_rc_config ${name} : ${varnishlog_enable:=NO} : ${varnishlog_pidfile=/var/run/${name}.pid} : ${varnishlog_file=/var/log/varnish.log} : ${varnishlog_flags="-P ${varnishlog_pidfile} -D -a -w ${varnishlog_file}"} command="%%PREFIX%%/bin/${name}" pidfile=${varnishlog_pidfile} +start_precmd=precmd + +precmd() +{ + waitcount=0 + vsm=%%PREFIX%%/varnish/$(hostname)/_.vsm + + # wait no longer than 5s for _.vsm file to arrive from varnishd + while : + do + if [ -f ${vsm} ] ; then + break + else + case "${waitcount}" in + 5) echo "${name}: Failed to start. Missing ${vsm} ?" + break + ;; + *) echo "${name}: waiting for ${vsm}" + waitcount=$((waitcount+1)) + sleep 1 + ;; + esac + fi + done +} run_rc_command "$1" Index: head/www/varnish4/files/varnishncsa.in =================================================================== --- head/www/varnish4/files/varnishncsa.in (revision 392996) +++ head/www/varnish4/files/varnishncsa.in (revision 392997) @@ -1,53 +1,78 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: varnishncsa -# REQUIRE: DAEMON +# REQUIRE: DAEMON varnishd # KEYWORD: shutdown # # Add the following line to /etc/rc.conf to enable varnishncsa: # # varnishncsa_enable="YES" # # Configuration variables and their default values: # # varnishncsa_pidfile - full path to the PID file. # default: "/var/run/varnishncsa.pid" # # varnishncsa_file - full path to the log file. # default: "/var/log/varnishncsa.log" # # varnishncsa_flags - command line arguments. -# default: "-D -P ${varnishncsa_pidfile} -a -c -w ${varnishncsa_file}${varnishncsa_logformat:+ -P \"$varnishncsa_logformat\"" +# default: "-D -P ${varnishncsa_pidfile} -a -w ${varnishncsa_file}${varnishncsa_logformat:+ -P \"$varnishncsa_logformat\"" # # varnishncsa_logformat - log file format. # default: "" (uses varnishncsa's default format) # example: "%h %l %u %t %r %s %b %{Referer}i %{User-agent}i" # # Add the following line to /etc/newsyslog.conf to rotate the log file # once a day: # # /var/log/varnishncsa.log 640 7 * @T00 JB /var/run/varnishncsa.pid # # See varnishncsa(1) for a detailed overview of command-line options. # . /etc/rc.subr name=varnishncsa rcvar=varnishncsa_enable load_rc_config ${name} : ${varnishncsa_enable:=NO} : ${varnishncsa_pidfile=/var/run/${name}.pid} : ${varnishncsa_file=/var/log/${name}.log} -: ${varnishncsa_flags="-P ${varnishncsa_pidfile} -D -a -c -w ${varnishncsa_file}${varnishncsa_logformat:+ -F \"$varnishncsa_logformat\"}"} +: ${varnishncsa_flags="-P ${varnishncsa_pidfile} -D -a -w ${varnishncsa_file}${varnishncsa_logformat:+ -F \"$varnishncsa_logformat\"}"} command="%%PREFIX%%/bin/${name}" pidfile=${varnishncsa_pidfile} +start_precmd=precmd + +precmd() +{ + waitcount=0 + vsm=%%PREFIX%%/varnish/$(hostname)/_.vsm + + # wait no longer than 5s for _.vsm file to arrive from varnishd + while : + do + if [ -f ${vsm} ] ; then + break + else + case "${waitcount}" in + 5) echo "${name}: Failed to start. Missing ${vsm} ?" + break + ;; + *) echo "${name}: waiting for ${vsm}" + waitcount=$((waitcount+1)) + sleep 1 + ;; + esac + fi + done +} run_rc_command "$1"