From owner-freebsd-ports-bugs@FreeBSD.ORG Thu May 28 15:40:10 2009 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 846E810657A1 for ; Thu, 28 May 2009 15:40:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id EB8E48FC1A for ; Thu, 28 May 2009 15:40:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n4SFe2UN074620 for ; Thu, 28 May 2009 15:40:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n4SFe27j074619; Thu, 28 May 2009 15:40:02 GMT (envelope-from gnats) Resent-Date: Thu, 28 May 2009 15:40:02 GMT Resent-Message-Id: <200905281540.n4SFe27j074619@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Thomas-Martin Seck Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4AA641065673 for ; Thu, 28 May 2009 15:35:15 +0000 (UTC) (envelope-from tmseck@netcologne.de) Received: from smtp3.netcologne.de (smtp3.netcologne.de [194.8.194.66]) by mx1.freebsd.org (Postfix) with ESMTP id 6D3D28FC0A for ; Thu, 28 May 2009 15:35:14 +0000 (UTC) (envelope-from tmseck@netcologne.de) Received: from laurel.tmseck.homedns.org (xdsl-84-44-229-68.netcologne.de [84.44.229.68]) by smtp3.netcologne.de (Postfix) with SMTP id 8F19A67AB0 for ; Thu, 28 May 2009 17:35:12 +0200 (CEST) Received: (qmail 860 invoked from network); 28 May 2009 15:35:12 -0000 Received: from unknown (HELO hardy.tmseck.homedns.org) (192.168.1.2) by 0 with SMTP; 28 May 2009 15:35:12 -0000 Received: from hardy.tmseck.homedns.org (localhost [127.0.0.1]) by hardy.tmseck.homedns.org (8.14.3/8.14.3) with ESMTP id n4SFZBN2069767; Thu, 28 May 2009 17:35:11 +0200 (CEST) (envelope-from tmseck@netcologne.de) Received: (from thomas@localhost) by hardy.tmseck.homedns.org (8.14.3/8.14.3/Submit) id n4SFZBLr069766; Thu, 28 May 2009 17:35:11 +0200 (CEST) (envelope-from tmseck@netcologne.de) Message-Id: <200905281535.n4SFZBLr069766@hardy.tmseck.homedns.org> Date: Thu, 28 May 2009 17:35:11 +0200 (CEST) From: Thomas-Martin Seck To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/135027: [Maintainer] www/gatling: update to 0.10 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Thomas-Martin Seck List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 May 2009 15:40:11 -0000 >Number: 135027 >Category: ports >Synopsis: [Maintainer] www/gatling: update to 0.10 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Thu May 28 15:40:02 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Thomas-Martin Seck >Release: FreeBSD 7.1-STABLE i386 >Organization: a private site in Germany >Environment: FreeBSD ports collection as of May 28, 2009. >Description: - update to 0.10 - introduce an rc.d and a gatling_wrapper script - add a test for strndup(3) and provide 7.2's strndup(3) implementation in case strndup is missing from the base system to make the dl utility build on all supported FreeBSD versions - retire the GATLING_ICONV option - introduce a new GATLING_SMB option (default on) - since tlsgatling and zlib do no longer cause build breakage (on supported FreeBSD versions anyway), change the default of GATLING_TLS and GATLING_ZLIB to "on" - honor WITH_DEBUG Added files: files/extra-patch-disable_smb files/gatling.in files/gatling_wrapper files/patch-bench.c files/patch-dl.c files/patch-http.c files/patch-matchiprange.c files/patch-rellink.c files/patch-strndup.c Removed files: files/patch-gatling.c >How-To-Repeat: >Fix: Apply this patch: Index: Makefile =================================================================== --- Makefile (.../www/gatling) (revision 1587) +++ Makefile (.../local/gatling) (revision 1587) @@ -6,7 +6,7 @@ # PORTNAME= gatling -PORTVERSION= 0.9 +PORTVERSION= 0.10 CATEGORIES= www benchmarks ftp ipv6 MASTER_SITES= http://dl.fefe.de/ @@ -18,6 +18,7 @@ USE_BZIP2= yes USE_GMAKE= yes USE_OPENSSL= yes +USE_RC_SUBR= gatling CFLAGS+= -I${LOCALBASE}/include/libowfat -I${OPENSSLINC} LDFLAGS+= -L${LOCALBASE}/lib -L${OPENSSLLIB} @@ -28,16 +29,18 @@ bin= dl sbin= gatling MAN8= gatling.8 -PORTDOCS= CHANGES README README.cgi README.ftp README.htaccess \ +PORTDOCS= CHANGES README README.antidos README.cgi README.ftp \ + README.htaccess \ README.http README.performance README.prefetch README.proxy \ README.redirect -PORTEXAMPLES= run-gatling cgi acc hcat referrer +PORTEXAMPLES= run-gatling cgi acc getlinks hcat hitprofile matchiprange \ + referrer OPTIONS= GATLING_BENCHMARKS "Install some benchmark programs" on \ - GATLING_ICONV "Use charset conversion" off \ - GATLING_TLS "Install tlsgatling" off \ - GATLING_ZLIB "Compress outgoing data" off \ - GATLING_OPTIMIZED_CFLAGS "Use optimized CFLAGS" on + GATLING_SMB "Add (read only) SMB support" on \ + GATLING_TLS "Build and install tlsgatling" on \ + GATLING_ZLIB "Compress outgoing data" on \ + GATLING_OPTIMIZED_CFLAGS "Add additional optimizations" on .include @@ -47,41 +50,53 @@ bin+= bindbench forkbench forksbench httpbench ioerr manymapbench \ mktestdata mmapbench pthreadbench examples+= prep run-bench +MAN1+= bench.1 MAKE_ENV+= BENCHMARKS=1 .endif -.if defined(WITH_GATLING_OPTIMIZED_CFLAGS) +.if defined(WITH_GATLING_OPTIMIZED_CFLAGS) && !defined(WITH_DEBUG) CFLAGS+= -O2 -fomit-frame-pointer .endif -.if defined(WITH_GATLING_ICONV) +.if defined(WITH_GATLING_SMB) USE_ICONV= yes CFLAGS+= -I${LOCALBASE}/include MAKE_ENV+= ICONV=1 +.else +EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-disable_smb .endif .if defined(WITH_GATLING_TLS) MAKE_ENV+= TLSGATLING=1 sbin+= tlsgatling -portdocs+= README.tls +PORTDOCS+= README.tls .endif .if defined(WITH_GATLING_ZLIB) MAKE_ENV+= ZLIB=1 .endif -PLIST_FILES= ${bin:S,^,bin/,} ${sbin:S,^,sbin/,} +.if defined(WITH_DEBUG) +MAKE_ENV+= DEBUG=1 +STRIP= +.endif +PLIST_FILES= ${bin:S,^,bin/,} ${sbin:S,^,sbin/,} sbin/gatling_wrapper + pre-install: @cd ${WRKSRC} && ${CP} gatling.1 gatling.8 do-install: cd ${WRKSRC} && ${INSTALL_PROGRAM} ${bin} ${PREFIX}/bin cd ${WRKSRC} && ${INSTALL_PROGRAM} ${sbin} ${PREFIX}/sbin + ${INSTALL_SCRIPT} ${FILESDIR}/gatling_wrapper ${PREFIX}/sbin .if !defined(NOPORTEXAMPLES) ${MKDIR} ${EXAMPLESDIR} cd ${WRKSRC} && ${INSTALL_SCRIPT} ${PORTEXAMPLES} ${EXAMPLESDIR} .endif +.if !empty(MAN1) + cd ${WRKSRC} && ${INSTALL_MAN} ${MAN1} ${MAN1PREFIX}/man/man1 +.endif cd ${WRKSRC} && ${INSTALL_MAN} ${MAN8} ${MAN8PREFIX}/man/man8 .if !defined(NOPORTDOCS) ${MKDIR} ${DOCSDIR} Index: distinfo =================================================================== --- distinfo (.../www/gatling) (revision 1587) +++ distinfo (.../local/gatling) (revision 1587) @@ -1,3 +1,3 @@ -MD5 (gatling-0.9.tar.bz2) = bae9a695b7ced3ba0a4b359369273a66 -SHA256 (gatling-0.9.tar.bz2) = 6fa7c1278fd7d05422e073e4062cd931e10d2593fe73728fdcf0e2541db01bbe -SIZE (gatling-0.9.tar.bz2) = 73831 +MD5 (gatling-0.10.tar.bz2) = 04e8434156d91657c77a8a038c5b27cf +SHA256 (gatling-0.10.tar.bz2) = 1981ee8706a423e06e507c25202e83785595feabe68c148350818bc50380d416 +SIZE (gatling-0.10.tar.bz2) = 98422 Index: files/patch-gatling.c =================================================================== --- files/patch-gatling.c (.../www/gatling) (revision 1587) +++ files/patch-gatling.c (.../local/gatling) (revision 1587) @@ -1,10 +0,0 @@ ---- gatling.c.orig Mon Aug 27 16:08:00 2007 -+++ gatling.c Mon Aug 27 16:08:06 2007 -@@ -101,7 +101,6 @@ - #include - #include - #include --#include - #include "havealloca.h" - #include "havesetresuid.h" - Index: files/patch-matchiprange.c =================================================================== --- files/patch-matchiprange.c (.../www/gatling) (revision 0) +++ files/patch-matchiprange.c (.../local/gatling) (revision 1587) @@ -0,0 +1,10 @@ +--- matchiprange.c.orig 2009-04-10 18:17:38.000000000 +0200 ++++ matchiprange.c 2009-04-10 18:17:58.000000000 +0200 +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + + char _buf[8192]; + Index: files/extra-patch-disable_smb =================================================================== --- files/extra-patch-disable_smb (.../www/gatling) (revision 0) +++ files/extra-patch-disable_smb (.../local/gatling) (revision 1587) @@ -0,0 +1,11 @@ +--- gatling_features.h.orig 2009-04-13 16:18:09.000000000 +0200 ++++ gatling_features.h 2009-04-13 16:19:18.000000000 +0200 +@@ -6,7 +6,7 @@ + // #define SUPPORT_BITTORRENT + + #define SUPPORT_SERVERSTATUS +-#define SUPPORT_SMB ++#undef SUPPORT_SMB + #define SUPPORT_FTP + #define SUPPORT_PROXY + /* #define DEBUG to enable more verbose debug messages for tracking fd Index: files/patch-GNUmakefile =================================================================== --- files/patch-GNUmakefile (.../www/gatling) (revision 1587) +++ files/patch-GNUmakefile (.../local/gatling) (revision 1587) @@ -1,7 +1,7 @@ ---- GNUmakefile.orig Wed Jan 31 18:05:38 2007 -+++ GNUmakefile Mon Aug 27 16:49:36 2007 -@@ -1,21 +1,26 @@ - #DEBUG=1 +--- GNUmakefile.orig 2009-04-09 19:00:23.000000000 +0200 ++++ GNUmakefile 2009-04-10 17:46:56.000000000 +0200 +@@ -1,24 +1,23 @@ +-#DEBUG=1 -ZLIB=1 -prefix=/opt/diet +prefix=${PREFIX} @@ -10,34 +10,33 @@ man1dir=$(MANDIR)/man1 -TARGETS=gatling httpbench bindbench dl ioerr bench tlsgatling \ --pthreadbench cgi getlinks rellink acc hcat +-pthreadbench cgi -TARGETS2=mktestdata mmapbench manymapbench forkbench forksbench -+TARGETS=cgi dl gatling getlinks rellink acc hcat referrer ++TARGETS=gatling dl \ ++cgi +TARGETS2= +ifdef BENCHMARKS -+TARGETS+=httpbench bindbench ioerr pthreadbench ++TARGETS+=httpbench bindbench ioerr bench pthreadbench +TARGETS2+=mktestdata mmapbench manymapbench forkbench forksbench +endif +ifdef TLSGATLING +TARGETS+=tlsgatling +endif + ALLTARGETS=$(TARGETS) acc hcat referrer hitprofile matchiprange getlinks \ + rellink $(TARGETS2) --all: $(TARGETS) $(TARGETS2) -+all: checklibs $(TARGETS) $(TARGETS2) + all: $(ALLTARGETS) -CROSS= -+#CROSS= - #CROSS=i686-mingw32- +-#CROSS=i686-mingw32- -CC=$(CROSS)gcc -CFLAGS=-pipe -Wall -LDFLAGS= -+#CC=$(CROSS)gcc -+#CFLAGS=-pipe -Wall -+#LDFLAGS= - +- path = $(subst :, ,$(PATH)) diet_path = $(foreach dir,$(path),$(wildcard $(dir)/diet)) -@@ -32,15 +37,11 @@ + ifeq ($(strip $(diet_path)),) +@@ -34,15 +33,11 @@ # to build without diet libc support, use $ make DIET= # see http://www.fefe.de/dietlibc/ for details about the diet libc @@ -55,7 +54,7 @@ endif LDLIBS=-lowfat -@@ -66,7 +67,7 @@ +@@ -68,7 +63,7 @@ CC:=$(DIET) $(CC) pthreadbench: pthreadbench.o @@ -64,16 +63,20 @@ forksbench: forkbench.o $(CC) -static -o $@ forkbench.o $(LDFLAGS) $(LDLIBS) -@@ -74,7 +75,7 @@ - gatling.o: version.h havesetresuid.h +@@ -86,9 +81,11 @@ + gatling: gatling.o $(OBJS) md5lib + $(CC) $(LDFLAGS) $@.o $(OBJS) -o $@ $(LDLIBS) `cat md5lib` - tlsgatling: gatling.c ssl.o mime.o -- -$(CC) -o $@ gatling.c ssl.o mime.o $(CFLAGS) -DSUPPORT_HTTPS $(LDFLAGS) -lssl -lcrypto $(LDLIBS) -+ $(CC) -o $@ gatling.c ssl.o mime.o $(CFLAGS) -DSUPPORT_HTTPS $(LDFLAGS) -lssl -lcrypto $(LDLIBS) - - gatling: gatling.o mime.o - $(CC) $(LDFLAGS) $@.o mime.o -o $@ $(LDLIBS) -@@ -107,9 +108,13 @@ ++dl: dl.c havestrndup havestrndup.h ++ $(CC) $(CFLAGS) dl.c `cat havestrndup` $(LDFLAGS) -lowfat -o $@ ++ + httpbench: httpbench.o + bindbench: bindbench.o +-dl: dl.o + ioerr: ioerr.o + bench: bench.o + getlinks: getlinks.o +@@ -121,9 +118,13 @@ rm -f trysocket libiconv: tryiconv.c @@ -81,7 +84,7 @@ - if $(CC) $(CFLAGS) -o tryiconv tryiconv.c -liconv >/dev/null 2>&1; then echo "-liconv"; \ - fi; fi > libiconv +ifdef ICONV -+ if $(CC) $(CFLAGS) -L$(LOCALBASE)/lib -o tryiconv tryiconv.c -liconv >/dev/null 2>&1; then echo "-L$(LOCALBASE)/lib -liconv"; else \ ++ if $(CC) $(CFLAGS) $(LDFLAGS) -o tryiconv tryiconv.c -liconv >/dev/null 2>&1; then echo "-L$(LDFLAGS) -liconv"; else \ + echo ""; \ + fi > libiconv +else @@ -90,25 +93,14 @@ rm -f tryiconv libcrypt: trycrypt.c -@@ -130,9 +135,11 @@ - ar q $@ dummy.o - -ranlib $@ +@@ -144,6 +145,10 @@ + if $(CC) $(CFLAGS) -o tryresuid $^ >/dev/null 2>&1; then echo "#define LIBC_HAS_SETRESUID"; fi > $@ + -rm -f tryresuid -+checklibs: libsocket libiconv libcrypt ++havestrndup havestrndup.h: trystrndup.c ++ if $(CC) $(CFLAGS) -o trystrndup $^ >/dev/null 2>&1; then echo "">havestrndup; echo "#define LIBC_HAS_STRNDUP">havestrndup.h; else echo "strndup.c">havestrndup; echo "">havestrndup.h; fi ++ rm -f trystrndup + - LDLIBS+=`cat libsocket libiconv libcrypt` + dummy.c: + touch $@ --$(TARGETS): libsocketkludge.a libsocket libiconv libcrypt -+$(TARGETS): libsocketkludge.a - - install: gatling dl getlinks - install -d $(DESTDIR)$(BINDIR) $(man1dir) -@@ -144,7 +151,7 @@ - rm -f $(DESTDIR)$(BINDIR)/gatling $(DESTDIR)$(BINDIR)/tlsgatling $(DESTDIR)$(man1dir)/gatling.1 $(DESTDIR)$(man1dir)/bench.1 - - clean: -- rm -f $(TARGETS) *.o version.h core *.core libsocket libsocketkludge.a dummy.c libiconv libcrypt havesetresuid.h -+ rm -f $(TARGETS) $(TARGETS2) *.o version.h core *.core libsocket libsocketkludge.a dummy.c libiconv libcrypt havesetresuid.h - - VERSION=gatling-$(shell head -n 1 CHANGES|sed 's/://') - CURNAME=$(notdir $(shell pwd)) Index: files/gatling_wrapper =================================================================== --- files/gatling_wrapper (.../www/gatling) (revision 0) +++ files/gatling_wrapper (.../local/gatling) (revision 1587) @@ -0,0 +1,91 @@ +#!/bin/sh -T +# +#- +# Copyright 2009 Thomas-Martin Seck. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted providing that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# +# gatling_wrapper {gatling|tlsgatling} [options] +# +# A simple wrapper script for gatling (or any other program that does not +# daemonize itself and logs to stdout). +# +# This wrapper tries to emulate part of the functionality usually supplied +# by software like daemontools or runit. +# It can be used by a FreeBSD port rc.d script to start a program +# that does not daemonize itself and logs to stdout/stderr. It redirects stdout +# and stderr to logger(1) via a fifo. +# +# Note: We need a shell that can offer us asynchronous trap handling in order +# to be able to abort the infinite loop from outside. FreeBSD's /bin/sh offers +# the "-T" switch for this purpose. +# +# TODO: send fd 2 output to never-never land to get rid of "Terminated" when we +# kill this script but provide a way for errx() to communicate with the outside +# world via stderr. + +errx() { + echo "${me}: $@" >&2 + exit 1 +} + +cleanup() { + rm -rf ${tmpdir} + rm -f ${pidfile} +} + +PATH=/bin:/sbin:/usr/bin:/usr/sbin + +me=${0##*/} +logger=/usr/bin/logger +daemon_log_facility=daemon.notice +self_log_facility=daemon.notice +pidfile=/var/run/${me}.pid +daemon_name=gatling +daemon_program="$1" +shift + +test -x "${daemon_program}" || errx "cannot execute ${daemon_program}!" +test -x ${logger} || errx "cannot execute ${logger}!" +test -f ${pidfile} && errx "${pidfile} is already present -- is another instance of ${me} running?" +echo $$ >${pidfile} || errx "cannot write to ${pidfile}!" +tmpdir=`mktemp -d /tmp/${me}.XXXXXXXXXX` || errx "cannot generate tmpdir!" + +logfifo=${tmpdir}/fifo +mkfifo -m 0600 ${logfifo} || errx "cannot generate fifo!" + +while true; do + trap 'break' 1 2 3 6 9 15 + ${logger} -i -p ${daemon_log_facility} -t ${daemon_name} <${logfifo} & + log_pid=$! + "${daemon_program}" $@ >${logfifo} 2>&1 & + daemon_pid=$! + wait ${daemon_pid} + ${logger} -i -p ${self_log_facility} -t ${me} "${daemon_program} died -- restarting..." + sleep 2 +done + +kill -TERM ${daemon_pid} 2>/dev/null +wait +cleanup Index: files/gatling.in =================================================================== --- files/gatling.in (.../www/gatling) (revision 0) +++ files/gatling.in (.../local/gatling) (revision 1587) @@ -0,0 +1,67 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: gatling +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# Set "gatling_enable=yes" in either /etc/rc.conf, /etc/rc.conf.local or +# /etc/rc.conf.d/gatling to enable gatling. +# +# Set gatling_root if you want to serve files from other locations than +# the default (%%PREFIX%%/www/data). +# +# Set gatling_ftp_enable=yes to make gatling serve files via FTP, too. +# +# Set gatling_ssl_enable=yes to serve files via HTTPS/SSL (needs tlsgatling). +# +# Additionally, you can set gatling_effective_user and gatling_flags; please +# see gatling(8) for further information about possible gatling_flags. + +check_user() { + /usr/sbin/pw usershow -n ${gatling_effective_user} -q >/dev/null +} + +. %%RC_SUBR%% + +name=gatling +rcvar=`set_rcvar` + +load_rc_config ${name} + +gatling_enable=${gatling_enable-"NO"} +gatling_root=${gatling_root:-%%PREFIX%%/www/data} +# needed to bind privileged ports at startup: +gatling_user=root +gatling_effective_user=${gatling_effective_user:-www} +gatling_flags="-u ${gatling_effective_user} -c ${gatling_root} ${gatling_flags}" +case "${gatling_ftp_enable}" in + [Yy][Ee][Ss]) + gatling_flags="-f ${gatling_flags}" + ;; + *) + gatling_flags="-F ${gatling_flags}" + ;; +esac + +case "${gatling_ssl_enable}" in + [Yy][Ee][Ss]) + which_gatling="%%PREFIX%%/sbin/tlsgatling" + ;; + *) + which_gatling="%%PREFIX%%/sbin/gatling" + ;; +esac + +gatling_flags="${which_gatling} ${gatling_flags} &" +command="%%PREFIX%%/sbin/gatling_wrapper" +command_interpreter="/bin/sh -T" +pidfile=/var/run/gatling_wrapper.pid +required_dirs="${gatling_root}" +required_files="${which_gatling}" + +start_precmd=check_user +run_rc_command "$1" + Index: files/patch-bench.c =================================================================== --- files/patch-bench.c (.../www/gatling) (revision 0) +++ files/patch-bench.c (.../local/gatling) (revision 1587) @@ -0,0 +1,10 @@ +--- bench.c.orig 2009-04-10 18:15:06.000000000 +0200 ++++ bench.c 2009-04-10 18:15:19.000000000 +0200 +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + void usage() { + die(0,"usage: bench [-n requests] [-c concurrency] [-t timeout] [-k] [-K count]\n" Index: files/patch-dl.c =================================================================== --- files/patch-dl.c (.../www/gatling) (revision 0) +++ files/patch-dl.c (.../local/gatling) (revision 1587) @@ -0,0 +1,13 @@ +--- dl.c.orig 2009-04-10 17:51:59.000000000 +0200 ++++ dl.c 2009-04-10 17:56:31.000000000 +0200 +@@ -37,6 +37,10 @@ + #include + #include + #include ++#include "havestrndup.h" ++#ifndef LIBC_HAS_STRNDUP ++char* strndup(const char*, size_t); ++#endif + + int dostats; + Index: files/patch-http.c =================================================================== --- files/patch-http.c (.../www/gatling) (revision 0) +++ files/patch-http.c (.../local/gatling) (revision 1587) @@ -0,0 +1,9 @@ +--- http.c.orig 2009-04-10 16:01:37.000000000 +0200 ++++ http.c 2009-04-10 16:01:57.000000000 +0200 +@@ -1,4 +1,6 @@ ++/* this define breaks the build on FreeBSD: + #define _XOPEN_SOURCE 500 ++*/ + + #include "gatling.h" + Index: files/patch-strndup.c =================================================================== --- files/patch-strndup.c (.../www/gatling) (revision 0) +++ files/patch-strndup.c (.../local/gatling) (revision 1587) @@ -0,0 +1,65 @@ +--- /dev/null 2009-04-10 17:44:00.000000000 +0200 ++++ trystrndup.c 2009-04-10 17:01:00.000000000 +0200 +@@ -0,0 +1,6 @@ ++#include ++int main() { ++char* s; ++s=strndup("foo",3); ++return 0; ++} +--- /dev/null 2009-04-10 16:55:00.000000000 +0200 ++++ strndup.c 2009-01-08 10:50:20.000000000 +0100 +@@ -0,0 +1,53 @@ ++/* $NetBSD: strndup.c,v 1.3 2007/01/14 23:41:24 cbiere Exp $ */ ++ ++/* ++ * Copyright (c) 1988, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#include ++__FBSDID("$FreeBSD: src/lib/libc/string/strndup.c,v 1.1.2.1 2009/01/08 09:50:20 kib Exp $"); ++ ++#include ++#include ++#include ++ ++char * ++strndup(const char *str, size_t n) ++{ ++ size_t len; ++ char *copy; ++ ++ for (len = 0; len < n && str[len]; len++) ++ continue; ++ ++ if ((copy = malloc(len + 1)) == NULL) ++ return (NULL); ++ memcpy(copy, str, len); ++ copy[len] = '\0'; ++ return (copy); ++} Index: files/patch-rellink.c =================================================================== --- files/patch-rellink.c (.../www/gatling) (revision 0) +++ files/patch-rellink.c (.../local/gatling) (revision 1587) @@ -0,0 +1,10 @@ +--- rellink.c.orig 2009-04-10 18:15:33.000000000 +0200 ++++ rellink.c 2009-04-10 18:15:46.000000000 +0200 +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + + static int canonicalize(stralloc* url,const char* baseurl) { + /* for the comments, assume baseurl is "http://www.fefe.de/x/y.html" */ >Release-Note: >Audit-Trail: >Unformatted: