i'm leaning towards "probably not important enough" (and i had a previous diff for 3.21 in my tree which i didn't commit so i guess there must have been a problem with it), so doing this post unlock, unless anyone wants to try and change my mind
https://github.com/esnet/iperf/blob/master/RELNOTES.md Index: Makefile =================================================================== RCS file: /cvs/ports/net/iperf3/Makefile,v diff -u -p -r1.25 Makefile --- Makefile 14 Mar 2026 10:31:26 -0000 1.25 +++ Makefile 30 Sep 2026 10:01:48 -0000 @@ -1,10 +1,10 @@ COMMENT= tool to measure maximum achievable bandwidth on IP networks -V= 3.20 +V= 3.22 DISTNAME= iperf-${V} PKGNAME= iperf3-${V} -SHARED_LIBS += iperf 6.0 # 0.0 +SHARED_LIBS += iperf 7.0 # unknown CATEGORIES= net @@ -23,6 +23,7 @@ SITES= https://downloads.es.net/pub/ipe CONFIGURE_STYLE= gnu CONFIGURE_ARGS= --with-openssl=no +FAKE_FLAGS= LDCONFIG=: DEBUG_PACKAGES= ${BUILD_PACKAGES} Index: distinfo =================================================================== RCS file: /cvs/ports/net/iperf3/distinfo,v diff -u -p -r1.15 distinfo --- distinfo 14 Mar 2026 10:31:26 -0000 1.15 +++ distinfo 30 Sep 2026 10:01:48 -0000 @@ -1,2 +1,2 @@ -SHA256 (iperf-3.20.tar.gz) = OsxXLR7MpOCyA1nHvwEy3cgNmC7+7iDIb2cmqaYJQ4g= -SIZE (iperf-3.20.tar.gz) = 698649 +SHA256 (iperf-3.22.tar.gz) = HA0PsCxSYmER1uEy24Dt+/J7uv+L2SRd8qNx3LCzWpI= +SIZE (iperf-3.22.tar.gz) = 849295 Index: patches/patch-src_iperf_api_c =================================================================== RCS file: /cvs/ports/net/iperf3/patches/patch-src_iperf_api_c,v diff -u -p -r1.15 patch-src_iperf_api_c --- patches/patch-src_iperf_api_c 14 Mar 2026 10:31:26 -0000 1.15 +++ patches/patch-src_iperf_api_c 30 Sep 2026 10:01:48 -0000 @@ -1,74 +1,9 @@ -- Pass a copy of argv[] to prevent changes by strtok(3), - otherwise rc.subr(8) pexp might not match and cause rcctl failure. - Pending https://github.com/esnet/iperf/pull/1960 (with extra NULL check) - - Default to IPv4. Index: src/iperf_api.c --- src/iperf_api.c.orig +++ src/iperf_api.c -@@ -1289,7 +1289,7 @@ iperf_parse_arguments(struct iperf_test *test, int arg - } - iperf_set_test_role(test, 's'); - break; -- case 'c': -+ case 'c': { - if (test->role == 's') { - i_errno = IESERVCLIENT; - return -1; -@@ -1297,7 +1297,12 @@ iperf_parse_arguments(struct iperf_test *test, int arg - iperf_set_test_role(test, 'c'); - iperf_set_test_server_hostname(test, optarg); - -- if (iperf_parse_hostname(test, optarg, &p, &p1)) { -+ char *arg = strdup(optarg); -+ if (arg == NULL) { -+ i_errno = -1; -+ return -1; -+ } -+ if (iperf_parse_hostname(test, arg, &p, &p1)) { - #if defined(HAVE_SO_BINDTODEVICE) - /* Get rid of the hostname we saved earlier. */ - free(iperf_get_test_server_hostname(test)); -@@ -1308,7 +1313,9 @@ iperf_parse_arguments(struct iperf_test *test, int arg - return -1; - #endif /* HAVE_SO_BINDTODEVICE */ - } -+ free(arg); - break; -+ } - case 'u': - set_protocol(test, Pudp); - client_flag = 1; -@@ -1441,10 +1448,15 @@ iperf_parse_arguments(struct iperf_test *test, int arg - client_flag = 1; - break; - -- case 'B': -+ case 'B': { - iperf_set_test_bind_address(test, optarg); - -- if (iperf_parse_hostname(test, optarg, &p, &p1)) { -+ char *arg = strdup(optarg); -+ if (arg == NULL) { -+ i_errno = -1; -+ return -1; -+ } -+ if (iperf_parse_hostname(test, arg, &p, &p1)) { - #if defined(HAVE_SO_BINDTODEVICE) - /* Get rid of the hostname we saved earlier. */ - free(iperf_get_test_bind_address(test)); -@@ -1455,7 +1467,9 @@ iperf_parse_arguments(struct iperf_test *test, int arg - return -1; - #endif /* HAVE_SO_BINDTODEVICE */ - } -+ free(arg); - break; -+ } - #if defined (HAVE_SO_BINDTODEVICE) - case OPT_BIND_DEV: - iperf_set_test_bind_dev(test, optarg); -@@ -3221,7 +3235,7 @@ iperf_defaults(struct iperf_test *testp) +@@ -3458,7 +3458,7 @@ iperf_defaults(struct iperf_test *testp) testp->stats_interval = testp->reporter_interval = 1; testp->num_streams = 1; Index: patches/patch-src_iperf_api_h =================================================================== RCS file: patches/patch-src_iperf_api_h diff -N patches/patch-src_iperf_api_h --- patches/patch-src_iperf_api_h 14 Mar 2026 10:31:26 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -Match include used in .c file to fix -./iperf_api.h:395:77: error: unknown type name 'va_list'; did you mean '__va_list'? - -Index: src/iperf_api.h ---- src/iperf_api.h.orig -+++ src/iperf_api.h -@@ -33,6 +33,7 @@ - #include <stdarg.h> - #include <stdio.h> - #include <stdint.h> -+#include <stdarg.h> - #ifdef __cplusplus - extern "C" { /* open extern "C" */ - #endif Index: patches/patch-src_iperf_util_c =================================================================== RCS file: /cvs/ports/net/iperf3/patches/patch-src_iperf_util_c,v diff -u -p -r1.2 patch-src_iperf_util_c --- patches/patch-src_iperf_util_c 26 Dec 2024 18:12:38 -0000 1.2 +++ patches/patch-src_iperf_util_c 30 Sep 2026 10:01:48 -0000 @@ -10,13 +10,13 @@ Index: src/iperf_util.c +#if defined(__OpenBSD__) + arc4random_buf(out, outsize); +#else - static FILE *frandom; + FILE *frandom; static const char rndfile[] = "/dev/urandom"; - -@@ -75,6 +78,7 @@ int readentropy(void *out, size_t outsize) - rndfile, - feof(frandom) ? "EOF" : strerror(errno)); + int is_eof = 0; +@@ -77,6 +80,7 @@ int readentropy(void *out, size_t outsize) + is_eof ? "EOF" : strerror(errno)); } + fclose(frandom); +#endif return 0; }
