From owner-svn-ports-all@freebsd.org Wed Oct 26 14:15:41 2016 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4DAB3C22B67; Wed, 26 Oct 2016 14:15:41 +0000 (UTC) (envelope-from feld@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0901517C; Wed, 26 Oct 2016 14:15:40 +0000 (UTC) (envelope-from feld@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u9QEFeUu059525; Wed, 26 Oct 2016 14:15:40 GMT (envelope-from feld@FreeBSD.org) Received: (from feld@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u9QEFdU9059511; Wed, 26 Oct 2016 14:15:39 GMT (envelope-from feld@FreeBSD.org) Message-Id: <201610261415.u9QEFdU9059511@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: feld set sender to feld@FreeBSD.org using -f From: Mark Felder Date: Wed, 26 Oct 2016 14:15:39 +0000 (UTC) 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 X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Oct 2016 14:15:41 -0000 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 ]) ++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 ++# ++# 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 . ++# ++# 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 ++ 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 ], [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)