From dc602e22722c4d293bfe98bf56c7dd048c1cafed Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Sat, 20 Feb 2021 06:13:21 +0100 Subject: [PATCH 2/2] www/gatling: Update to 0.16 - Change WWW and MASTER_SITES to https. - Reorder variables to appease portclippy. - Fix a couple of compiler warnings. - Add a BROKEN_ITOJUN_V6 option (off by default) that works around problems binding to IPv4 addresses. Without it I get: # gatling -i 127.0.0.1 socket_bind6_reuse: Can't assign requested address I tried to report this upstream but my mail was rejected ... The problem also presents with gatling 0.15. This gatling update requires an libowfat update to 0.32 which will be submitted in another PR. --- www/gatling/Makefile | 29 ++++++++++++++++++-------- www/gatling/distinfo | 6 +++--- www/gatling/files/patch-GNUmakefile | 32 +++++++++++++++++------------ www/gatling/pkg-descr | 2 +- 4 files changed, 44 insertions(+), 25 deletions(-) diff --git a/www/gatling/Makefile b/www/gatling/Makefile index 041cb9bfa19b..a188af52d5e4 100644 --- a/www/gatling/Makefile +++ b/www/gatling/Makefile @@ -2,10 +2,9 @@ # $FreeBSD$ PORTNAME= gatling -PORTVERSION= 0.15 -PORTREVISION= 2 +PORTVERSION= 0.16 CATEGORIES= www benchmarks ftp -MASTER_SITES= http://www.fefe.de/gatling/ +MASTER_SITES= https://www.fefe.de/gatling/ MAINTAINER= coco@executive-computing.de COMMENT= High performance webserver with scalability benchmark tools @@ -15,16 +14,20 @@ LICENSE= GPLv2 BROKEN_mips= fails to compile: dirfd.c: error: expected ';', ',' or ')' before 'key' BROKEN_mips64= fails to compile: dirfd.c: error: expected ';', ',' or ')' before 'key' -BUILD_DEPENDS= libowfat>=0.31:devel/libowfat +BUILD_DEPENDS= libowfat>=0.32:devel/libowfat USES= compiler:c++11-lang gmake ssl tar:xz USE_RC_SUBR= gatling +MAKEFILE= GNUmakefile + CFLAGS+= -I${LOCALBASE}/include/libowfat -I${OPENSSLINC} -I${LOCALBASE}/include +# Make alloca() prototype visible +CFLAGS+= -D__BSD_VISIBLE +# Make crypt() prototype visible +CFLAGS+= -D__XSI_VISIBLE LDFLAGS+= -L${LOCALBASE}/lib -L${OPENSSLLIB} -MAKEFILE= GNUmakefile - bin= dl sbin= gatling GATLING8= gatling.8 @@ -36,10 +39,11 @@ PORTDOCS= CHANGES README README.antidos README.cgi README.ftp \ PORTEXAMPLES= run-gatling cgi acc getlinks hcat hitprofile matchiprange \ referrer -OPTIONS_DEFINE= BENCHMARKS SMB TLS ZLIB OPTIMIZED_CFLAGS DOCS EXAMPLES DEBUG -OPTIONS_SUB= yes +OPTIONS_DEFINE= BENCHMARKS BROKEN_ITOJUN_V6 SMB TLS ZLIB OPTIMIZED_CFLAGS DOCS EXAMPLES DEBUG OPTIONS_DEFAULT= BENCHMARKS SMB TLS ZLIB OPTIMIZED_CFLAGS +OPTIONS_SUB= yes BENCHMARKS_DESC= Install some benchmark programs +BROKEN_ITOJUN_V6_DESC= Works around problems binding to IPv4 addresses TLS_DESC= Build and install tlsgatling ZLIB_DESC= Compress outgoing data @@ -56,6 +60,11 @@ PLIST_FILES+= man/man1/bench.1.gz MAKE_ENV+= BENCHMARKS=1 .endif +.if ${PORT_OPTIONS:MBROKEN_ITOJUN_V6} +# Causes a warning about "KAME madness" but works around +# gatling failing to bind to IPv4 addresses. +CFLAGS+= -D__broken_itojun_v6__ +.endif .if ${PORT_OPTIONS:MOPTIMIZED_CFLAGS} && !defined(WITH_DEBUG) CFLAGS+= -O2 -fomit-frame-pointer .endif @@ -69,6 +78,10 @@ EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-disable_smb .endif .if ${PORT_OPTIONS:MTLS} +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1200085 && ${SSL_DEFAULT} == base +# XXX: It's conceivable that it works with LibreSSL as well ... +BROKEN= gatling requires OpenSSL 1.1.0 or later, add DEFAULT_VERSIONS+=ssl=openssl to /etc/make.conf +.endif MAKE_ENV+= TLSGATLING=1 sbin+= tlsgatling PORTDOCS+= README.tls diff --git a/www/gatling/distinfo b/www/gatling/distinfo index 35ee959b389e..061ca31df1a6 100644 --- a/www/gatling/distinfo +++ b/www/gatling/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1487014927 -SHA256 (gatling-0.15.tar.xz) = 6fa329d0ced0c80deb8dde5460e9d9e984bee94f265043d7fdec0e253dce9aa4 -SIZE (gatling-0.15.tar.xz) = 121804 +TIMESTAMP = 1613797941 +SHA256 (gatling-0.16.tar.xz) = 5f96438ee201d7f1f6c2e0849ff273b196bdc7493f29a719ce8ed08c8be6365b +SIZE (gatling-0.16.tar.xz) = 126844 diff --git a/www/gatling/files/patch-GNUmakefile b/www/gatling/files/patch-GNUmakefile index 53fb9adfbdb3..b424335916b9 100644 --- a/www/gatling/files/patch-GNUmakefile +++ b/www/gatling/files/patch-GNUmakefile @@ -1,8 +1,10 @@ ---- /tmp/GNUmakefile 2017-02-13 11:43:57.882750000 -0800 -+++ GNUmakefile 2017-02-13 11:56:19.109139000 -0800 -@@ -1,24 +1,22 @@ --#DEBUG=1 --ZLIB=1 +diff --git GNUmakefile GNUmakefile +index 6af7b35..c2002de 100644 +--- GNUmakefile ++++ GNUmakefile +@@ -1,13 +1,19 @@ + #DEBUG=1 + ZLIB=1 -prefix=/opt/diet +prefix=${PREFIX} BINDIR=${prefix}/bin @@ -10,7 +12,7 @@ man1dir=$(MANDIR)/man1 -TARGETS=gatling httpbench bindbench dl ioerr bench tlsgatling_nofail \ --pthreadbench cgi ptlsgatling_nofail +-pthreadbench cgi ptlsgatling_nofail tlsdl_nofail ptlsdl_nofail -TARGETS2=mktestdata mmapbench manymapbench forkbench forksbench +TARGETS=gatling dl cgi +TARGETS2= @@ -24,18 +26,22 @@ ALLTARGETS=$(TARGETS) acc hcat referrer hitprofile matchiprange getlinks \ rellink $(TARGETS2) - all: $(ALLTARGETS) +@@ -18,14 +24,6 @@ CROSS= --CROSS= --#CROSS=i686-mingw32- + path = $(subst :, ,$(PATH)) + gcc_path = $(foreach dir,$(path),$(wildcard $(dir)/$(CROSS)gcc)) +-ifeq ($(strip $(gcc_path)),) +-CC=$(CROSS)clang +-else -CC=$(CROSS)gcc +-endif +- -CFLAGS=-pipe -Wall -LDFLAGS= -- + #CFLAGS+=-DSTATE_DEBUG -DMOREDEBUG -DDEBUG_EVENTS -DSMDEBUG - path = $(subst :, ,$(PATH)) -@@ -36,15 +34,11 @@ +@@ -43,15 +41,11 @@ endif # to build without diet libc support, use $ make DIET= # see http://www.fefe.de/dietlibc/ for details about the diet libc @@ -53,7 +59,7 @@ endif LDLIBS=-lowfat -@@ -136,11 +130,13 @@ +@@ -159,11 +153,13 @@ libsocket: trysocket.c rm -f trysocket libiconv: tryiconv.c diff --git a/www/gatling/pkg-descr b/www/gatling/pkg-descr index 0b9fe124fe3d..443decade206 100644 --- a/www/gatling/pkg-descr +++ b/www/gatling/pkg-descr @@ -1,4 +1,4 @@ gatling is a high-performance HTTP and FTP server. Some scalability benchmark tests are included, too. -WWW: http://www.fefe.de/gatling/ +WWW: https://www.fefe.de/gatling/ -- 2.30.0