Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Oct 2016 14:15:39 +0000 (UTC)
From:      Mark Felder <feld@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r424707 - in head: Mk Mk/Uses www/varnish-libvmod-digest www/varnish-libvmod-maxminddb www/varnish-modules www/varnish-modules/files www/varnish-nagios www/varnish-nagios/files
Message-ID:  <201610261415.u9QEFdU9059511@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: feld
Date: Wed Oct 26 14:15:38 2016
New Revision: 424707
URL: https://svnweb.freebsd.org/changeset/ports/424707

Log:
  Introduce USES=varnish
  
  You can now set the default version of Varnish with DEFAULT_VERSIONS to
  build Varnish and its modules against your desired Varnish release
  train.
  
  The default version of Varnish throughout the ports tree will remain as
  www/varnish4 until at least 2017Q1 when it will be changed in HEAD to be
  www/varnish5. This should allow plenty of time for migration and for
  stabilization of the changes in Varnish 5.x.
  
  Submitted by:	vanilla

Added:
  head/Mk/Uses/varnish.mk   (contents, props changed)
  head/www/varnish-modules/files/patch-configure.ac   (contents, props changed)
  head/www/varnish-modules/files/patch-m4_ax__pthread.m4   (contents, props changed)
  head/www/varnish-modules/files/patch-src_vmod__softpurge.c   (contents, props changed)
  head/www/varnish-modules/files/patch-src_vmod__xkey.c   (contents, props changed)
  head/www/varnish-nagios/files/patch-check__varnish.c   (contents, props changed)
Modified:
  head/Mk/bsd.default-versions.mk
  head/www/varnish-libvmod-digest/Makefile
  head/www/varnish-libvmod-maxminddb/Makefile
  head/www/varnish-modules/Makefile
  head/www/varnish-modules/files/patch-src_Makefile.am
  head/www/varnish-nagios/Makefile

Added: head/Mk/Uses/varnish.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/Mk/Uses/varnish.mk	Wed Oct 26 14:15:38 2016	(r424707)
@@ -0,0 +1,30 @@
+# $FreeBSD$
+#
+# Provide support for Varnish
+#
+# Feature:      varnish
+# Usage:        USES=varnish
+# Valid ARGS:   4, 5, run
+#
+# MAINTAINER: ports@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_VARNISH_MK)
+_INCLUDE_USES_VARNISH_MK=    yes
+
+VARNISH_VERSION=	${VARNISH_DEFAULT}
+
+. if ${varnish_ARGS:M4}
+VARNISH_VERSION=	4
+. elif ${varnish_ARGS:M5}
+VARNISH_VERSION=	5
+. elif defined(VARNISH_DEFAULT)
+. endif
+
+RUN_DEPENDS+=	varnish${VARNISH_VERSION}>=${VARNISH_VERSION}:www/varnish${VARNISH_VERSION}
+BUILD_DEPENDS+=	varnish${VARNISH_VERSION}>=${VARNISH_VERSION}:www/varnish${VARNISH_VERSION}
+
+CFLAGS+= 	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
+CPPFLAGS+= 	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
+LIBS+=		-L${LOCALBASE}/lib
+
+.endif

Modified: head/Mk/bsd.default-versions.mk
==============================================================================
--- head/Mk/bsd.default-versions.mk	Wed Oct 26 14:07:21 2016	(r424706)
+++ head/Mk/bsd.default-versions.mk	Wed Oct 26 14:15:38 2016	(r424707)
@@ -130,6 +130,9 @@ SSL_DEFAULT?=	base
 # Possible values: 8.4, 8.5, 8.6
 TCLTK_DEFAULT?=		8.6
 
+# Possible values: 4, 5
+VARNISH_DEFAULT?=	4
+
 # Version of lang/gcc.  Do not override!
 LANG_GCC_IS=		4.8
 

Modified: head/www/varnish-libvmod-digest/Makefile
==============================================================================
--- head/www/varnish-libvmod-digest/Makefile	Wed Oct 26 14:07:21 2016	(r424706)
+++ head/www/varnish-libvmod-digest/Makefile	Wed Oct 26 14:15:38 2016	(r424707)
@@ -12,17 +12,12 @@ COMMENT=	Varnish Module (vmod) for compu
 LICENSE=	BSD2CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BUILD_DEPENDS=	varnish4>=4.1.0:www/varnish4 \
-		rst2man:textproc/py-docutils
+BUILD_DEPENDS=	rst2man:textproc/py-docutils
 LIB_DEPENDS=	libmhash.so:security/mhash
-RUN_DEPENDS=	varnish4>=4.1.0:www/varnish4
 
-USES=		autoreconf gmake libtool pkgconfig python:2,build
+USES=		autoreconf gmake libtool pkgconfig python:2,build varnish
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--disable-static
-CFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
-CPPFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
-LDFLAGS+=	-L${LOCALBASE}/lib
 INSTALL_TARGET=	install-strip
 
 USE_GITHUB=	yes

Modified: head/www/varnish-libvmod-maxminddb/Makefile
==============================================================================
--- head/www/varnish-libvmod-maxminddb/Makefile	Wed Oct 26 14:07:21 2016	(r424706)
+++ head/www/varnish-libvmod-maxminddb/Makefile	Wed Oct 26 14:15:38 2016	(r424707)
@@ -10,19 +10,13 @@ COMMENT=	Varnish Module (vmod) for acces
 
 LICENSE=	BSD2CLAUSE
 
-BUILD_DEPENDS=	varnish4>=4.1.0:www/varnish4 \
-		rst2man:textproc/py-docutils
+BUILD_DEPENDS=	rst2man:textproc/py-docutils
 
 LIB_DEPENDS=	libmaxminddb.so:net/libmaxminddb
 
-RUN_DEPENDS=	varnish4>=4.1.0:www/varnish4
-
-USES=		autoreconf gmake libtool pkgconfig python:2,build
+USES=		autoreconf gmake libtool pkgconfig python:2,build varnish
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--disable-static
-CFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
-CPPFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
-LDFLAGS+=	-L${LOCALBASE}/lib
 INSTALL_TARGET=	install-strip
 
 USE_GITHUB=	yes

Modified: head/www/varnish-modules/Makefile
==============================================================================
--- head/www/varnish-modules/Makefile	Wed Oct 26 14:07:21 2016	(r424706)
+++ head/www/varnish-modules/Makefile	Wed Oct 26 14:15:38 2016	(r424707)
@@ -4,6 +4,7 @@
 PORTNAME=	varnish-modules
 DISTVERSIONPREFIX=	varnish-modules-
 DISTVERSION=	0.9.1
+PORTREVISION=	1
 CATEGORIES=	www
 
 MAINTAINER=	feld@FreeBSD.org
@@ -11,14 +12,11 @@ COMMENT=	Collection of Varnish Cache mod
 
 LICENSE=	BSD2CLAUSE
 
-BUILD_DEPENDS=	varnish4>=4.1.0:www/varnish4 \
-		rst2man:textproc/py-docutils
+BUILD_DEPENDS=	rst2man:textproc/py-docutils
 
-USES=		autoreconf:build gmake libtool pkgconfig python:2,build
+USES=		autoreconf:build gmake libtool pkgconfig python:2,build varnish
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--disable-static
-CFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
-CPPFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/varnish
 INSTALL_TARGET=	install-strip
 
 USE_GITHUB=	yes

Added: head/www/varnish-modules/files/patch-configure.ac
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/varnish-modules/files/patch-configure.ac	Wed Oct 26 14:15:38 2016	(r424707)
@@ -0,0 +1,50 @@
+--- configure.ac.orig	2016-10-26 08:05:08 UTC
++++ configure.ac
+@@ -2,6 +2,7 @@ AC_PREREQ(2.59)
+ AC_COPYRIGHT([Copyright (c) 2016 Varnish Software Group])
+ AC_INIT([varnish-modules], [0.9.1])
+ AC_CONFIG_MACRO_DIR([m4])
++AC_CONFIG_AUX_DIR([build-aux])
+ m4_ifndef([VARNISH_VMOD_INCLUDES], AC_MSG_ERROR([Need varnish.m4 -- see README.rst]))
+ AM_CONFIG_HEADER(config.h)
+ 
+@@ -18,6 +19,13 @@ if test "x$ac_cv_prog_cc_c99" = xno; the
+ fi
+ AC_PROG_CPP
+ 
++AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])])
++
++LIBS="$PTHREAD_LIBS $LIBS"
++CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
++CC="$PTHREAD_CC"
++
++LT_INIT([disable-static])
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
+ AC_PROG_MAKE_SET
+@@ -52,6 +60,7 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl
+ ])
+ 
+ PKG_CHECK_MODULES([libvarnishapi], [varnishapi])
++PKG_CHECK_VAR([LIBVARNISHAPI_PREFIX], [varnishapi], [prefix])
+ PKG_CHECK_VAR([LIBVARNISHAPI_DATAROOTDIR], [varnishapi], [datarootdir])
+ PKG_CHECK_VAR([LIBVARNISHAPI_BINDIR], [varnishapi], [bindir])
+ PKG_CHECK_VAR([LIBVARNISHAPI_SBINDIR], [varnishapi], [sbindir])
+@@ -68,6 +77,17 @@ PKG_CHECK_VAR([VARNISH_PLUS], [varnishap
+ VARNISH_VMOD_INCLUDES
+ VARNISH_VMOD_DIR
+ VARNISH_VMODTOOL
++# inherit the prefix from Varnish.
++# acessing ac_ variable because AC_PREFIX_DEFAULT acts too early
++ac_default_prefix=$LIBVARNISHAPI_PREFIX
++
++save_CFLAGS="$CFLAGS"
++CFLAGS="$VMOD_INCLUDES"
++AC_CHECK_MEMBERS(struct objcore.exp,
++  [AC_DEFINE([HAVE_OBJCORE_EXP], [1],
++    [Define if exp is present in the objcore struct])],
++  [], [#include <cache/cache.h>])
++CFLAGS="$save_CFLAGS"
+ 
+ AC_PATH_PROG([VARNISHTEST], [varnishtest], [],
+     [$LIBVARNISHAPI_BINDIR:$LIBVARNISHAPI_SBINDIR:$PATH])

Added: head/www/varnish-modules/files/patch-m4_ax__pthread.m4
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/varnish-modules/files/patch-m4_ax__pthread.m4	Wed Oct 26 14:15:38 2016	(r424707)
@@ -0,0 +1,286 @@
+--- m4/ax_pthread.m4.orig	2016-10-26 08:33:07 UTC
++++ m4/ax_pthread.m4
+@@ -0,0 +1,283 @@
++# ===========================================================================
++#        http://www.gnu.org/software/autoconf-archive/ax_pthread.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++#   AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
++#
++# DESCRIPTION
++#
++#   This macro figures out how to build C programs using POSIX threads. It
++#   sets the PTHREAD_LIBS output variable to the threads library and linker
++#   flags, and the PTHREAD_CFLAGS output variable to any special C compiler
++#   flags that are needed. (The user can also force certain compiler
++#   flags/libs to be tested by setting these environment variables.)
++#
++#   Also sets PTHREAD_CC to any special C compiler that is needed for
++#   multi-threaded programs (defaults to the value of CC otherwise). (This
++#   is necessary on AIX to use the special cc_r compiler alias.)
++#
++#   NOTE: You are assumed to not only compile your program with these flags,
++#   but also link it with them as well. e.g. you should link with
++#   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
++#
++#   If you are only building threads programs, you may wish to use these
++#   variables in your default LIBS, CFLAGS, and CC:
++#
++#     LIBS="$PTHREAD_LIBS $LIBS"
++#     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
++#     CC="$PTHREAD_CC"
++#
++#   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
++#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
++#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
++#
++#   ACTION-IF-FOUND is a list of shell commands to run if a threads library
++#   is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
++#   is not found. If ACTION-IF-FOUND is not specified, the default action
++#   will define HAVE_PTHREAD.
++#
++#   Please let the authors know if this macro fails on any platform, or if
++#   you have any other suggestions or comments. This macro was based on work
++#   by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
++#   from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
++#   Alejandro Forero Cuervo to the autoconf macro repository. We are also
++#   grateful for the helpful feedback of numerous users.
++#
++# LICENSE
++#
++#   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
++#
++#   This program is free software: you can redistribute it and/or modify it
++#   under the terms of the GNU General Public License as published by the
++#   Free Software Foundation, either version 3 of the License, or (at your
++#   option) any later version.
++#
++#   This program is distributed in the hope that it will be useful, but
++#   WITHOUT ANY WARRANTY; without even the implied warranty of
++#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
++#   Public License for more details.
++#
++#   You should have received a copy of the GNU General Public License along
++#   with this program. If not, see <http://www.gnu.org/licenses/>.
++#
++#   As a special exception, the respective Autoconf Macro's copyright owner
++#   gives unlimited permission to copy, distribute and modify the configure
++#   scripts that are the output of Autoconf when processing the Macro. You
++#   need not follow the terms of the GNU General Public License when using
++#   or distributing such scripts, even though portions of the text of the
++#   Macro appear in them. The GNU General Public License (GPL) does govern
++#   all other use of the material that constitutes the Autoconf Macro.
++#
++#   This special exception to the GPL applies to versions of the Autoconf
++#   Macro released by the Autoconf Archive. When you make and distribute a
++#   modified version of the Autoconf Macro, you may extend this special
++#   exception to the GPL to apply to your modified version as well.
++
++#serial 7
++
++AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
++AC_DEFUN([AX_PTHREAD], [
++AC_REQUIRE([AC_CANONICAL_HOST])
++AC_LANG_SAVE
++AC_LANG_C
++ax_pthread_ok=no
++
++# We used to check for pthread.h first, but this fails if pthread.h
++# requires special compiler flags (e.g. on True64 or Sequent).
++# It gets checked for in the link test anyway.
++
++# First of all, check if the user has set any of the PTHREAD_LIBS,
++# etcetera environment variables, and if threads linking works using
++# them:
++if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
++        save_CFLAGS="$CFLAGS"
++        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
++        save_LIBS="$LIBS"
++        LIBS="$PTHREAD_LIBS $LIBS"
++        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
++        AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
++        AC_MSG_RESULT($ax_pthread_ok)
++        if test x"$ax_pthread_ok" = xno; then
++                PTHREAD_LIBS=""
++                PTHREAD_CFLAGS=""
++        fi
++        LIBS="$save_LIBS"
++        CFLAGS="$save_CFLAGS"
++fi
++
++# We must check for the threads library under a number of different
++# names; the ordering is very important because some systems
++# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
++# libraries is broken (non-POSIX).
++
++# Create a list of thread flags to try.  Items starting with a "-" are
++# C compiler flags, and other items are library names, except for "none"
++# which indicates that we try without any flags at all, and "pthread-config"
++# which is a program returning the flags for the Pth emulation library.
++
++ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
++
++# The ordering *is* (sometimes) important.  Some notes on the
++# individual items follow:
++
++# pthreads: AIX (must check this before -lpthread)
++# none: in case threads are in libc; should be tried before -Kthread and
++#       other compiler flags to prevent continual compiler warnings
++# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
++# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
++# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
++# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
++# -pthreads: Solaris/gcc
++# -mthreads: Mingw32/gcc, Lynx/gcc
++# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
++#      doesn't hurt to check since this sometimes defines pthreads too;
++#      also defines -D_REENTRANT)
++#      ... -mt is also the pthreads flag for HP/aCC
++# pthread: Linux, etcetera
++# --thread-safe: KAI C++
++# pthread-config: use pthread-config program (for GNU Pth library)
++
++case "${host_cpu}-${host_os}" in
++        *solaris*)
++
++        # On Solaris (at least, for some versions), libc contains stubbed
++        # (non-functional) versions of the pthreads routines, so link-based
++        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
++        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
++        # a function called by this macro, so we could check for that, but
++        # who knows whether they'll stub that too in a future libc.)  So,
++        # we'll just look for -pthreads and -lpthread first:
++
++        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
++        ;;
++
++	*-darwin*)
++	acx_pthread_flags="-pthread $acx_pthread_flags"
++	;;
++esac
++
++if test x"$ax_pthread_ok" = xno; then
++for flag in $ax_pthread_flags; do
++
++        case $flag in
++                none)
++                AC_MSG_CHECKING([whether pthreads work without any flags])
++                ;;
++
++                -*)
++                AC_MSG_CHECKING([whether pthreads work with $flag])
++                PTHREAD_CFLAGS="$flag"
++                ;;
++
++		pthread-config)
++		AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
++		if test x"$ax_pthread_config" = xno; then continue; fi
++		PTHREAD_CFLAGS="`pthread-config --cflags`"
++		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
++		;;
++
++                *)
++                AC_MSG_CHECKING([for the pthreads library -l$flag])
++                PTHREAD_LIBS="-l$flag"
++                ;;
++        esac
++
++        save_LIBS="$LIBS"
++        save_CFLAGS="$CFLAGS"
++        LIBS="$PTHREAD_LIBS $LIBS"
++        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
++
++        # Check for various functions.  We must include pthread.h,
++        # since some functions may be macros.  (On the Sequent, we
++        # need a special flag -Kthread to make this header compile.)
++        # We check for pthread_join because it is in -lpthread on IRIX
++        # while pthread_create is in libc.  We check for pthread_attr_init
++        # due to DEC craziness with -lpthreads.  We check for
++        # pthread_cleanup_push because it is one of the few pthread
++        # functions on Solaris that doesn't have a non-functional libc stub.
++        # We try pthread_create on general principles.
++        AC_TRY_LINK([#include <pthread.h>
++	             static void routine(void* a) {a=0;}
++	             static void* start_routine(void* a) {return a;}],
++                    [pthread_t th; pthread_attr_t attr;
++                     pthread_join(th, 0);
++                     pthread_attr_init(&attr);
++                     pthread_cleanup_push(routine, 0);
++                     pthread_create(&th,0,start_routine,0);
++                     pthread_cleanup_pop(0); ],
++                    [ax_pthread_ok=yes])
++
++        LIBS="$save_LIBS"
++        CFLAGS="$save_CFLAGS"
++
++        AC_MSG_RESULT($ax_pthread_ok)
++        if test "x$ax_pthread_ok" = xyes; then
++                break;
++        fi
++
++        PTHREAD_LIBS=""
++        PTHREAD_CFLAGS=""
++done
++fi
++
++# Various other checks:
++if test "x$ax_pthread_ok" = xyes; then
++        save_LIBS="$LIBS"
++        LIBS="$PTHREAD_LIBS $LIBS"
++        save_CFLAGS="$CFLAGS"
++        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
++
++        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
++	AC_MSG_CHECKING([for joinable pthread attribute])
++	attr_name=unknown
++	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
++	    AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
++                        [attr_name=$attr; break])
++	done
++        AC_MSG_RESULT($attr_name)
++        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
++            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
++                               [Define to necessary symbol if this constant
++                                uses a non-standard name on your system.])
++        fi
++
++        AC_MSG_CHECKING([if more special flags are required for pthreads])
++        flag=no
++        case "${host_cpu}-${host_os}" in
++            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
++            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
++        esac
++        AC_MSG_RESULT(${flag})
++        if test "x$flag" != xno; then
++            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
++        fi
++
++        LIBS="$save_LIBS"
++        CFLAGS="$save_CFLAGS"
++
++        # More AIX lossage: must compile with xlc_r or cc_r
++	if test x"$GCC" != xyes; then
++          AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
++        else
++          PTHREAD_CC=$CC
++	fi
++else
++        PTHREAD_CC="$CC"
++fi
++
++AC_SUBST(PTHREAD_LIBS)
++AC_SUBST(PTHREAD_CFLAGS)
++AC_SUBST(PTHREAD_CC)
++
++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
++if test x"$ax_pthread_ok" = xyes; then
++        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
++        :
++else
++        ax_pthread_ok=no
++        $2
++fi
++AC_LANG_RESTORE
++])dnl AX_PTHREAD

Modified: head/www/varnish-modules/files/patch-src_Makefile.am
==============================================================================
--- head/www/varnish-modules/files/patch-src_Makefile.am	Wed Oct 26 14:07:21 2016	(r424706)
+++ head/www/varnish-modules/files/patch-src_Makefile.am	Wed Oct 26 14:15:38 2016	(r424707)
@@ -1,4 +1,4 @@
---- src/Makefile.am.orig	2016-08-01 13:40:08 UTC
+--- src/Makefile.am.orig	2016-07-07 14:48:43 UTC
 +++ src/Makefile.am
 @@ -5,7 +5,6 @@ vmod_LTLIBRARIES = libvmod_cookie.la \
  	libvmod_header.la \

Added: head/www/varnish-modules/files/patch-src_vmod__softpurge.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/varnish-modules/files/patch-src_vmod__softpurge.c	Wed Oct 26 14:15:38 2016	(r424707)
@@ -0,0 +1,44 @@
+--- src/vmod_softpurge.c.orig	2016-10-26 07:31:42 UTC
++++ src/vmod_softpurge.c
+@@ -60,6 +60,7 @@ vmod_softpurge(VRT_CTX)
+ 	now = ctx->req->t_prev;
+ 	Lck_Lock(&oh->mtx);
+ 	assert(oh->refcnt > 0);
++#if defined VARNISH_PLUS || defined OC_EF_DYING
+ 	VTAILQ_FOREACH(oc, &oh->objcs, list) {
+ 		CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+ 		assert(oc->objhead == oh);
+@@ -73,16 +74,30 @@ vmod_softpurge(VRT_CTX)
+ 		spc -= sizeof *ocp;
+ 		ocp[nobj++] = oc;
+ 	}
++#else
++	VTAILQ_FOREACH(oc, &oh->objcs, hsh_list) {
++		CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
++		assert(oc->objhead == oh);
++		if (oc->flags & (OC_F_BUSY|OC_F_DYING))
++			continue;
++		if (spc < sizeof *ocp)
++			break;
++		oc->refcnt++;
++		spc -= sizeof *ocp;
++		ocp[nobj++] = oc;
++	}
++#endif
+ 	Lck_Unlock(&oh->mtx);
+ 
+ 	for (n = 0; n < nobj; n++) {
+ 		oc = ocp[n];
+ 		CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+-#ifdef VARNISH_PLUS
+-		/* Varnish Plus interface for EXP_Rearm() is different. */
++#if defined VARNISH_PLUS
+ 		EXP_Rearm(ctx->req->wrk, oc, now, 0, oc->exp.grace, oc->exp.keep);
+-#else
++#elif defined HAVE_OBJCORE_EXP
+ 		EXP_Rearm(oc, now, 0, oc->exp.grace, oc->exp.keep);
++#else
++		EXP_Rearm(oc, now, 0, oc->grace, oc->keep);
+ #endif
+ 		(void)HSH_DerefObjCore(ctx->req->wrk, &oc);
+ 

Added: head/www/varnish-modules/files/patch-src_vmod__xkey.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/varnish-modules/files/patch-src_vmod__xkey.c	Wed Oct 26 14:15:38 2016	(r424707)
@@ -0,0 +1,207 @@
+--- src/vmod_xkey.c.orig	2016-10-26 07:41:48 UTC
++++ src/vmod_xkey.c
+@@ -130,7 +130,7 @@ xkey_ptrcmp(const struct xkey_ptrkey *k1
+ }
+ 
+ static struct xkey_hashhead *
+-xkey_hashhead_new()
++xkey_hashhead_new(void)
+ {
+ 	struct xkey_hashhead *head;
+ 
+@@ -166,7 +166,7 @@ xkey_hashhead_delete(struct xkey_hashhea
+ }
+ 
+ static struct xkey_ochead *
+-xkey_ochead_new()
++xkey_ochead_new(void)
+ {
+ 	struct xkey_ochead *head;
+ 
+@@ -201,7 +201,7 @@ xkey_ochead_delete(struct xkey_ochead **
+ }
+ 
+ static struct xkey_oc *
+-xkey_oc_new()
++xkey_oc_new(void)
+ {
+ 	struct xkey_oc *oc;
+ 
+@@ -352,7 +352,7 @@ xkey_remove(struct xkey_ochead **pochead
+ }
+ 
+ static void
+-xkey_cleanup()
++xkey_cleanup(void)
+ {
+ 	struct xkey_hashkey *hashkey;
+ 	struct xkey_hashhead *hashhead;
+@@ -396,7 +396,7 @@ xkey_cleanup()
+ /**************************/
+ 
+ static void
+-xkey_cb_insert(struct worker *wrk, struct objcore *objcore, void *priv)
++xkey_cb_insert(struct worker *wrk, struct objcore *objcore)
+ {
+ 	SHA256_CTX sha_ctx;
+ 	unsigned char digest[DIGEST_LEN];
+@@ -404,8 +404,6 @@ xkey_cb_insert(struct worker *wrk, struc
+ 	const char hdr_h2[] = "X-HashTwo:";
+ 	const char *ep, *sp;
+ 
+-	(void)priv;
+-
+ 	CHECK_OBJ_NOTNULL(objcore, OBJCORE_MAGIC);
+ 
+ 	HTTP_FOREACH_PACK(wrk, objcore, sp) {
+@@ -435,13 +433,10 @@ xkey_cb_insert(struct worker *wrk, struc
+ }
+ 
+ static void
+-xkey_cb_remove(struct worker *wrk, struct objcore *objcore, void *priv)
++xkey_cb_remove(struct objcore *objcore)
+ {
+ 	struct xkey_ochead *ochead;
+ 
+-	(void)wrk;
+-	(void)priv;
+-
+ 	CHECK_OBJ_NOTNULL(objcore, OBJCORE_MAGIC);
+ 
+ 	AZ(pthread_mutex_lock(&mtx));
+@@ -451,28 +446,50 @@ xkey_cb_remove(struct worker *wrk, struc
+ 	AZ(pthread_mutex_unlock(&mtx));
+ }
+ 
++#if defined VARNISH_PLUS || !defined OEV_INSERT
+ static void __match_proto__(exp_callback_f)
+ xkey_cb(struct worker *wrk, struct objcore *objcore,
+     enum exp_event_e event, void *priv)
+ {
+ 
+-	(void)wrk;
+-	(void)objcore;
+-	(void)event;
+-	(void)priv;
++	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
++	CHECK_OBJ_NOTNULL(objcore, OBJCORE_MAGIC);
++	AZ(priv);
+ 
+ 	switch (event) {
+ 	case EXP_INSERT:
+ 	case EXP_INJECT:
+-		xkey_cb_insert(wrk, objcore, priv);
++		xkey_cb_insert(wrk, objcore);
+ 		break;
+ 	case EXP_REMOVE:
+-		xkey_cb_remove(wrk, objcore, priv);
++		xkey_cb_remove(objcore);
+ 		break;
+ 	default:
+ 		WRONG("enum exp_event_e");
+ 	}
+ }
++#else
++static void __match_proto__(obj_event_f)
++xkey_cb(struct worker *wrk, void *priv, struct objcore *oc, unsigned ev)
++{
++
++	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
++	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
++	AZ(priv);
++	AN(ev);
++
++	switch (ev) {
++	case OEV_INSERT:
++		xkey_cb_insert(wrk, oc);
++		break;
++	case OEV_EXPIRE:
++		xkey_cb_remove(oc);
++		break;
++	default:
++		WRONG("Unexpected event");
++	}
++}
++#endif
+ 
+ /**************************/
+ 
+@@ -507,24 +524,36 @@ purge(VRT_CTX, VCL_STRING key, VCL_INT d
+ 		CHECK_OBJ_NOTNULL(oc->objcore, OBJCORE_MAGIC);
+ 		if (oc->objcore->flags & OC_F_BUSY)
+ 			continue;
++#if defined HAVE_OBJCORE_EXP
++		if (do_soft && oc->objcore->exp.ttl <=
++		    (ctx->now - oc->objcore->exp.t_origin))
++			continue;
++#else
+ 		if (do_soft &&
+-		    oc->objcore->exp.ttl <= (ctx->now - oc->objcore->exp.t_origin))
++		    oc->objcore->ttl <= (ctx->now - oc->objcore->t_origin))
+ 			continue;
++#endif
+ #ifdef VARNISH_PLUS
+-		/* Varnish Plus interface for EXP_Rearm() is different. */
+ 		if (do_soft)
+ 			EXP_Rearm(ctx->req->wrk, oc->objcore, ctx->now, 0,
+ 			    oc->objcore->exp.grace, oc->objcore->exp.keep);
+ 		else
+-			EXP_Rearm(ctx->req->wrk, oc->objcore, oc->objcore->exp.t_origin, 0,
+-			    0, 0);
+-#else
++			EXP_Rearm(ctx->req->wrk, oc->objcore,
++			    oc->objcore->exp.t_origin, 0, 0, 0);
++#elif defined HAVE_OBJCORE_EXP
+ 		if (do_soft)
+ 			EXP_Rearm(oc->objcore, ctx->now, 0,
+ 			    oc->objcore->exp.grace, oc->objcore->exp.keep);
+ 		else
+-			EXP_Rearm(oc->objcore, oc->objcore->exp.t_origin, 0,
+-			    0, 0);
++			EXP_Rearm(oc->objcore, oc->objcore->exp.t_origin,
++			    0, 0, 0);
++#else
++		if (do_soft)
++			EXP_Rearm(oc->objcore, ctx->now, 0,
++			    oc->objcore->grace, oc->objcore->keep);
++		else
++			EXP_Rearm(oc->objcore, oc->objcore->t_origin,
++			    0, 0, 0);
+ #endif
+ 
+ 		i++;
+@@ -554,11 +583,15 @@ vmod_event(VRT_CTX, struct vmod_priv *pr
+ 	switch (e) {
+ 	case VCL_EVENT_LOAD:
+ 		AZ(pthread_mutex_lock(&mtx));
+-		if (n_init == 0) {
++		if (n_init == 0)
++#if defined VARNISH_PLUS || !defined OEV_INSERT
+ 			xkey_cb_handle =
+ 			    EXP_Register_Callback(xkey_cb, NULL);
+-			AN(xkey_cb_handle);
+-		}
++#else
++			xkey_cb_handle = ObjSubscribeEvents(xkey_cb, NULL,
++			    OEV_INSERT|OEV_EXPIRE);
++#endif
++		AN(xkey_cb_handle);
+ 		n_init++;
+ 		AZ(pthread_mutex_unlock(&mtx));
+ 		break;
+@@ -566,10 +599,14 @@ vmod_event(VRT_CTX, struct vmod_priv *pr
+ 		AZ(pthread_mutex_lock(&mtx));
+ 		assert(n_init > 0);
+ 		n_init--;
++		AN(xkey_cb_handle);
+ 		if (n_init == 0) {
+ 			/* Do cleanup */
+-			AN(xkey_cb_handle);
++#if defined VARNISH_PLUS || !defined OEV_INSERT
+ 			EXP_Deregister_Callback(&xkey_cb_handle);
++#else
++			ObjUnsubscribeEvents(&xkey_cb_handle);
++#endif
+ 			AZ(xkey_cb_handle);
+ 			xkey_cleanup();
+ 		}

Modified: head/www/varnish-nagios/Makefile
==============================================================================
--- head/www/varnish-nagios/Makefile	Wed Oct 26 14:07:21 2016	(r424706)
+++ head/www/varnish-nagios/Makefile	Wed Oct 26 14:15:38 2016	(r424707)
@@ -3,7 +3,7 @@
 
 PORTNAME=	varnish-nagios
 PORTVERSION=	1.1.20151214
-PORTREVISION=	0
+PORTREVISION=	1
 CATEGORIES=	www
 
 MAINTAINER=	ports@FreeBSD.org
@@ -11,13 +11,12 @@ COMMENT=	Nagios plugin to check status o
 
 LICENSE=	BSD2CLAUSE
 
-BUILD_DEPENDS=	varnish4>=0:www/varnish4
 RUN_DEPENDS=	sudo:security/sudo
 
 GNU_CONFIGURE=	yes
 CFLAGS+=	-lm
 
-USES=		autoreconf libtool pkgconfig
+USES=		autoreconf libtool pkgconfig varnish
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	varnish
@@ -25,7 +24,7 @@ GH_TAGNAME=	258c486
 
 PLIST_FILES=	libexec/nagios/check_varnish
 
-SUB_FILES=      pkg-message
+SUB_FILES=	pkg-message
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nagios

Added: head/www/varnish-nagios/files/patch-check__varnish.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/varnish-nagios/files/patch-check__varnish.c	Wed Oct 26 14:15:38 2016	(r424707)
@@ -0,0 +1,11 @@
+--- check_varnish.c.orig	2016-10-26 07:20:18 UTC
++++ check_varnish.c
+@@ -326,7 +326,7 @@ main(int argc, char **argv)
+ 	VSC_Setup(vd);
+ #endif
+ 
+-	while ((opt = getopt(argc, argv, VSC_ARGS "c:hn:p:vw:")) != -1) {
++	while ((opt = getopt(argc, argv, "f:n:N:c:hn:p:vw:")) != -1) {
+ 		switch (opt) {
+ 		case 'c':
+ 			if (parse_range(optarg, &critical) != 0)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201610261415.u9QEFdU9059511>