summaryrefslogtreecommitdiff
path: root/net-misc/iperf
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-20 14:54:46 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-20 14:54:46 -0500
commit1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0 (patch)
tree18e2e784f9fb0dbc3546537acc42ad51b366d90e /net-misc/iperf
parent9f6a581d94412ab1cf4b35c33101f6be0ddc7777 (diff)
downloadbaldeagleos-repo-1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0.tar.gz
baldeagleos-repo-1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0.tar.xz
baldeagleos-repo-1a4479b4e0368c8d5ff241ebad17b2541a7e3ba0.zip
Adding metadata
Diffstat (limited to 'net-misc/iperf')
-rw-r--r--net-misc/iperf/Manifest2
-rw-r--r--net-misc/iperf/files/iperf-3.19.1-openssl-3.5.3.patch247
-rw-r--r--net-misc/iperf/iperf-2.2.1.ebuild44
-rw-r--r--net-misc/iperf/iperf-2.9999.ebuild44
-rw-r--r--net-misc/iperf/iperf-3.19.1-r1.ebuild54
-rw-r--r--net-misc/iperf/iperf-3.19.1.ebuild53
-rw-r--r--net-misc/iperf/iperf-3.20.ebuild41
-rw-r--r--net-misc/iperf/iperf-3.21.ebuild10
-rw-r--r--net-misc/iperf/metadata.xml4
9 files changed, 476 insertions, 23 deletions
diff --git a/net-misc/iperf/Manifest b/net-misc/iperf/Manifest
index 799c8db70b62..93c80e719aca 100644
--- a/net-misc/iperf/Manifest
+++ b/net-misc/iperf/Manifest
@@ -1,2 +1,4 @@
+DIST iperf-2.2.1.tar.gz 509514 BLAKE2B 9075df9513e98beeaed5c2f6799f62f72fbfd8fc63696674018b7435dae87d5edeca3fb0541775c37c188bd61bd8394c3125a8a8c07e0c4ba1c2efa86a602404 SHA512 07a08afe647e87939e05c9cd55601ca1227c91f44ef32fdf305a0e15e524d1de29d38e9a3f66253d7308585224e54db395d7dec654d31eea746f45c6947ebc2a
+DIST iperf-3.19.1.tar.gz 698445 BLAKE2B fae065d3e8131c072bd70666c87067c85b2ea56fcee70197bea1d5b82266b1d2f4dbb9318b566fdd4add08776dadb1feebe9915108531d3af9e13a777e2b60e7 SHA512 7239eddf55197c45aa751d05b6518a0782ec4f2ce4d9b4246b74c41dc21077102f3f5cc3359129c32c6842d482f4a9557a92ab84d96e0a9c7063052c9cbed4f6
DIST iperf-3.20.tar.gz 702527 BLAKE2B 2a6d77498028375177275452d0bbce7af12fb477b70ed275cc2dc092a02a96f3b9389e584e9e89628042bcadadcafba121b3bd84598a7781e8e6c4bd49d7e843 SHA512 2a52d27388e2585327f92b9cd33335345706371533f1e8da9aa5fb66d11cca70d8690f12c24bf31d7fa231e41225faa2f93b7b31fd869cbd2f34ab5401e3f5ff
DIST iperf-3.21.tar.gz 711039 BLAKE2B 7ac39edca583485ef4943850df79ccfd834439a042caa4cc4c2c8a436a4057f8846738c43dcdc92e32a318a4d0f354cc2449677b2cf94286b05556762a118081 SHA512 6418c5521ab4e7ab9a18ecf07b3c0b9460d0015314bf6fdea9b3a748b1deb8c47a6ed1e5fd86cc0a99e0f6877e943f44488387f1fc2c3c17e091014fb9ad003c
diff --git a/net-misc/iperf/files/iperf-3.19.1-openssl-3.5.3.patch b/net-misc/iperf/files/iperf-3.19.1-openssl-3.5.3.patch
new file mode 100644
index 000000000000..5c6bd671d781
--- /dev/null
+++ b/net-misc/iperf/files/iperf-3.19.1-openssl-3.5.3.patch
@@ -0,0 +1,247 @@
+https://bugs.gentoo.org/963583
+https://github.com/esnet/iperf/issues/1951
+https://github.com/esnet/iperf/pull/1956
+
+From aab262afe1770b55bb865fd4dad2d5e737c758a6 Mon Sep 17 00:00:00 2001
+From: Michael Lowman <michael.d.lowman@gmail.com>
+Date: Wed, 8 Oct 2025 22:40:07 +0200
+Subject: [PATCH 1/5] Set output buffer size prior to encrypt operation
+
+When calling EVP_PKEY_encrypt with a non-null output buffer,
+the output buffer length must be provided. Attempts to write
+beyond this length will fail.
+---
+ src/iperf_auth.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/iperf_auth.c b/src/iperf_auth.c
+index eda015099..774e1b701 100644
+--- a/src/iperf_auth.c
++++ b/src/iperf_auth.c
+@@ -252,6 +252,7 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch
+ #endif
+ rsa_buffer = OPENSSL_malloc(keysize * 2);
+ *encryptedtext = (unsigned char*)OPENSSL_malloc(keysize);
++ encryptedtext_len = keysize;
+
+ BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)strlen(plaintext));
+ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, keysize * 2);
+
+From 00840604c85c598f7aaeffd21db0c62472d8ab34 Mon Sep 17 00:00:00 2001
+From: Michael Lowman <michael.d.lowman@gmail.com>
+Date: Wed, 8 Oct 2025 22:29:12 +0200
+Subject: [PATCH 2/5] Rename keysize to output_buffer_len
+
+This more accurately represents the meaning; it is the minimum
+buffer allocation necessary for an encrypt or decrypt operation
+to succeed. This is the same size for both ciphertext and
+cleartext, as padding is applied.
+---
+ src/iperf_auth.c | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/src/iperf_auth.c b/src/iperf_auth.c
+index 774e1b701..ea516904f 100644
+--- a/src/iperf_auth.c
++++ b/src/iperf_auth.c
+@@ -236,26 +236,26 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch
+ #endif
+ unsigned char *rsa_buffer = NULL;
+ size_t encryptedtext_len = 0;
+- int rsa_buffer_len, keysize;
++ int rsa_buffer_len, output_buffer_len;
+
+ #if OPENSSL_VERSION_MAJOR >= 3
+ int rc;
+ ctx = EVP_PKEY_CTX_new_from_pkey(NULL, public_key, "");
+ /* See evp_pkey_rsa(7) and provider-keymgmt(7) */
+- rc = EVP_PKEY_get_int_param(public_key, OSSL_PKEY_PARAM_MAX_SIZE, &keysize); /* XXX not really keysize */
++ rc = EVP_PKEY_get_int_param(public_key, OSSL_PKEY_PARAM_MAX_SIZE, &output_buffer_len);
+ if (!rc) {
+ goto errreturn;
+ }
+ #else
+ rsa = EVP_PKEY_get1_RSA(public_key);
+- keysize = RSA_size(rsa);
++ output_buffer_len = RSA_size(rsa);
+ #endif
+- rsa_buffer = OPENSSL_malloc(keysize * 2);
+- *encryptedtext = (unsigned char*)OPENSSL_malloc(keysize);
+- encryptedtext_len = keysize;
++ rsa_buffer = OPENSSL_malloc(output_buffer_len * 2);
++ *encryptedtext = (unsigned char*)OPENSSL_malloc(output_buffer_len);
++ encryptedtext_len = output_buffer_len;
+
+ BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)strlen(plaintext));
+- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, keysize * 2);
++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2);
+
+ int padding = RSA_PKCS1_OAEP_PADDING;
+ if (use_pkcs1_padding){
+@@ -295,26 +295,26 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt
+ #endif
+ unsigned char *rsa_buffer = NULL;
+ size_t plaintext_len = 0;
+- int rsa_buffer_len, keysize;
++ int rsa_buffer_len, output_buffer_len;
+
+ #if OPENSSL_VERSION_MAJOR >= 3
+ int rc;
+ ctx = EVP_PKEY_CTX_new_from_pkey(NULL, private_key, "");
+ /* See evp_pkey_rsa(7) and provider-keymgmt(7) */
+- rc = EVP_PKEY_get_int_param(private_key, OSSL_PKEY_PARAM_MAX_SIZE, &keysize); /* XXX not really keysize */
++ rc = EVP_PKEY_get_int_param(private_key, OSSL_PKEY_PARAM_MAX_SIZE, &output_buffer_len);
+ if (!rc) {
+ goto errreturn;
+ }
+ #else
+ rsa = EVP_PKEY_get1_RSA(private_key);
+- keysize = RSA_size(rsa);
++ output_buffer_len = RSA_size(rsa);
+ #endif
+- rsa_buffer = OPENSSL_malloc(keysize * 2);
++ rsa_buffer = OPENSSL_malloc(output_buffer_len * 2);
+ // Note: +1 for NULL
+- *plaintext = (unsigned char*)OPENSSL_malloc(keysize + 1);
++ *plaintext = (unsigned char*)OPENSSL_malloc(output_buffer_len + 1);
+
+ BIO *bioBuff = BIO_new_mem_buf((void*)encryptedtext, encryptedtext_len);
+- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, keysize * 2);
++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2);
+
+ int padding = RSA_PKCS1_OAEP_PADDING;
+ if (use_pkcs1_padding){
+@@ -322,7 +322,7 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt
+ }
+ #if OPENSSL_VERSION_MAJOR >= 3
+
+- plaintext_len = keysize;
++ plaintext_len = output_buffer_len;
+ EVP_PKEY_decrypt_init(ctx);
+
+ ret = EVP_PKEY_CTX_set_rsa_padding(ctx, padding);
+
+From f30aaa3be199313c079d585f7eaf20a0745186b9 Mon Sep 17 00:00:00 2001
+From: Michael Lowman <michael.d.lowman@gmail.com>
+Date: Wed, 8 Oct 2025 16:46:20 +0200
+Subject: [PATCH 3/5] Avoid out-of-bounds access when base64 decoding short
+ strings
+
+Check the length before reading memory.
+---
+ src/iperf_auth.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/iperf_auth.c b/src/iperf_auth.c
+index ea516904f..eddc5a85f 100644
+--- a/src/iperf_auth.c
++++ b/src/iperf_auth.c
+@@ -130,9 +130,9 @@ int Base64Encode(const unsigned char* buffer, const size_t length, char** b64tex
+
+ size_t calcDecodeLength(const char* b64input) { //Calculates the length of a decoded string
+ size_t len = strlen(b64input), padding = 0;
+- if (b64input[len-1] == '=' && b64input[len-2] == '=') //last two chars are =
++ if (len >= 2 && b64input[len-1] == '=' && b64input[len-2] == '=') //last two chars are =
+ padding = 2;
+- else if (b64input[len-1] == '=') //last char is =
++ else if (len >= 1 && b64input[len-1] == '=') //last char is =
+ padding = 1;
+
+ return (len*3)/4 - padding;
+
+From 1cca42a1e77df8fba83ef6340388cad34625087c Mon Sep 17 00:00:00 2001
+From: Michael Lowman <michael.d.lowman@gmail.com>
+Date: Wed, 8 Oct 2025 17:57:37 +0200
+Subject: [PATCH 4/5] Don't over-allocate followed by partial reads
+
+We know how much we expect to read; the input buffer
+has a defined size. Allocate the exact buffer expected
+instead of a larger one with a read expected to return
+only partial data. This makes it simpler to follow the
+logic and to avoid off-by-one errors.
+---
+ src/iperf_auth.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/src/iperf_auth.c b/src/iperf_auth.c
+index eddc5a85f..d582c615a 100644
+--- a/src/iperf_auth.c
++++ b/src/iperf_auth.c
+@@ -235,7 +235,7 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch
+ RSA *rsa = NULL;
+ #endif
+ unsigned char *rsa_buffer = NULL;
+- size_t encryptedtext_len = 0;
++ size_t encryptedtext_len = 0, plaintext_len = 0;
+ int rsa_buffer_len, output_buffer_len;
+
+ #if OPENSSL_VERSION_MAJOR >= 3
+@@ -250,12 +250,13 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch
+ rsa = EVP_PKEY_get1_RSA(public_key);
+ output_buffer_len = RSA_size(rsa);
+ #endif
+- rsa_buffer = OPENSSL_malloc(output_buffer_len * 2);
++ plaintext_len = strlen(plaintext);
++ rsa_buffer = OPENSSL_malloc(output_buffer_len);
+ *encryptedtext = (unsigned char*)OPENSSL_malloc(output_buffer_len);
+ encryptedtext_len = output_buffer_len;
+
+- BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)strlen(plaintext));
+- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2);
++ BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)plaintext_len);
++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, plaintext_len);
+
+ int padding = RSA_PKCS1_OAEP_PADDING;
+ if (use_pkcs1_padding){
+@@ -309,12 +310,12 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt
+ rsa = EVP_PKEY_get1_RSA(private_key);
+ output_buffer_len = RSA_size(rsa);
+ #endif
+- rsa_buffer = OPENSSL_malloc(output_buffer_len * 2);
++ rsa_buffer = OPENSSL_malloc(output_buffer_len);
+ // Note: +1 for NULL
+ *plaintext = (unsigned char*)OPENSSL_malloc(output_buffer_len + 1);
+
+ BIO *bioBuff = BIO_new_mem_buf((void*)encryptedtext, encryptedtext_len);
+- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2);
++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, encryptedtext_len);
+
+ int padding = RSA_PKCS1_OAEP_PADDING;
+ if (use_pkcs1_padding){
+
+From 92f288ff6230dbe186e95688c910268f6942e214 Mon Sep 17 00:00:00 2001
+From: Michael Lowman <michael.d.lowman@gmail.com>
+Date: Wed, 8 Oct 2025 17:58:52 +0200
+Subject: [PATCH 5/5] Add warnings on silent truncation
+
+Input should not be this long, but makes the expectations
+of the code clearer.
+---
+ src/iperf_auth.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/iperf_auth.c b/src/iperf_auth.c
+index d582c615a..4c38fa938 100644
+--- a/src/iperf_auth.c
++++ b/src/iperf_auth.c
+@@ -251,6 +251,9 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch
+ output_buffer_len = RSA_size(rsa);
+ #endif
+ plaintext_len = strlen(plaintext);
++ if (plaintext_len > output_buffer_len) {
++ fprintf(stderr, "Plaintext of size %zd truncated to %d; data is lost.\n", plaintext_len, output_buffer_len);
++ }
+ rsa_buffer = OPENSSL_malloc(output_buffer_len);
+ *encryptedtext = (unsigned char*)OPENSSL_malloc(output_buffer_len);
+ encryptedtext_len = output_buffer_len;
+@@ -310,6 +313,9 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt
+ rsa = EVP_PKEY_get1_RSA(private_key);
+ output_buffer_len = RSA_size(rsa);
+ #endif
++ if (encryptedtext_len > output_buffer_len) {
++ fprintf(stderr, "Encrypted text of size %d truncated to %d; likely invalid input.\n", encryptedtext_len, output_buffer_len);
++ }
+ rsa_buffer = OPENSSL_malloc(output_buffer_len);
+ // Note: +1 for NULL
+ *plaintext = (unsigned char*)OPENSSL_malloc(output_buffer_len + 1);
+
diff --git a/net-misc/iperf/iperf-2.2.1.ebuild b/net-misc/iperf/iperf-2.2.1.ebuild
new file mode 100644
index 000000000000..0b067a699f6a
--- /dev/null
+++ b/net-misc/iperf/iperf-2.2.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Tool to measure IP bandwidth using UDP or TCP"
+HOMEPAGE="https://sourceforge.net/projects/iperf2/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://git.code.sf.net/p/iperf2/code"
+ inherit git-r3
+else
+ SRC_URI="https://downloads.sourceforge.net/iperf2/${P}.tar.gz"
+
+ KEYWORDS="amd64 arm ~hppa ppc ppc64 ~riscv ~sparc x86"
+fi
+
+LICENSE="HPND"
+SLOT="2"
+IUSE="debug"
+# Fails w/ connection refused to just-spawned daemon
+RESTRICT="test"
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable debug debuginfo)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake AR="$(tc-getAR)"
+}
+
+src_install() {
+ default
+
+ dodoc doc/*
+ newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-misc/iperf/iperf-2.9999.ebuild b/net-misc/iperf/iperf-2.9999.ebuild
new file mode 100644
index 000000000000..ca7f03ba3e51
--- /dev/null
+++ b/net-misc/iperf/iperf-2.9999.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Tool to measure IP bandwidth using UDP or TCP"
+HOMEPAGE="https://sourceforge.net/projects/iperf2/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://git.code.sf.net/p/iperf2/code"
+ inherit git-r3
+else
+ SRC_URI="https://downloads.sourceforge.net/iperf2/${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+LICENSE="HPND"
+SLOT="2"
+IUSE="debug"
+# Fails w/ connection refused to just-spawned daemon
+RESTRICT="test"
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable debug debuginfo)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake AR="$(tc-getAR)"
+}
+
+src_install() {
+ default
+
+ dodoc doc/*
+ newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-misc/iperf/iperf-3.19.1-r1.ebuild b/net-misc/iperf/iperf-3.19.1-r1.ebuild
new file mode 100644
index 000000000000..541141e14e15
--- /dev/null
+++ b/net-misc/iperf/iperf-3.19.1-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+DESCRIPTION="TCP, UDP, and SCTP network bandwidth measurement tool"
+HOMEPAGE="https://software.es.net/iperf/ https://github.com/esnet/iperf"
+SRC_URI="https://github.com/esnet/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="3"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="sctp"
+
+DEPEND="
+ >=dev-libs/cJSON-1.7.15
+ dev-libs/openssl:=
+ sctp? ( net-misc/lksctp-tools )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( README.md RELNOTES.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.10.1-drop-forced-debugging-symbols.patch
+ "${FILESDIR}"/${PN}-3.18-unbundle-cJSON.patch
+ "${FILESDIR}"/${PN}-3.19.1-openssl-3.5.3.patch
+)
+
+src_prepare() {
+ default
+
+ # Drop bundled cjson
+ rm src/cjson.{c,h} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with sctp)
+}
+
+src_install() {
+ default
+
+ newconfd "${FILESDIR}"/iperf.confd iperf3
+ newinitd "${FILESDIR}"/iperf3.initd iperf3
+ systemd_dounit contrib/iperf3.service
+
+ find "${ED}" -name '*.la' -type f -delete || die
+}
diff --git a/net-misc/iperf/iperf-3.19.1.ebuild b/net-misc/iperf/iperf-3.19.1.ebuild
new file mode 100644
index 000000000000..8afde2f6d15b
--- /dev/null
+++ b/net-misc/iperf/iperf-3.19.1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+DESCRIPTION="TCP, UDP, and SCTP network bandwidth measurement tool"
+HOMEPAGE="https://software.es.net/iperf/ https://github.com/esnet/iperf"
+SRC_URI="https://github.com/esnet/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="3"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="sctp"
+
+DEPEND="
+ >=dev-libs/cJSON-1.7.15
+ dev-libs/openssl:=
+ sctp? ( net-misc/lksctp-tools )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( README.md RELNOTES.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.10.1-drop-forced-debugging-symbols.patch
+ "${FILESDIR}"/${PN}-3.18-unbundle-cJSON.patch
+)
+
+src_prepare() {
+ default
+
+ # Drop bundled cjson
+ rm src/cjson.{c,h} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with sctp)
+}
+
+src_install() {
+ default
+
+ newconfd "${FILESDIR}"/iperf.confd iperf3
+ newinitd "${FILESDIR}"/iperf3.initd iperf3
+ systemd_dounit contrib/iperf3.service
+
+ find "${ED}" -name '*.la' -type f -delete || die
+}
diff --git a/net-misc/iperf/iperf-3.20.ebuild b/net-misc/iperf/iperf-3.20.ebuild
index 7fdc0512c115..adeacb3af1a8 100644
--- a/net-misc/iperf/iperf-3.20.ebuild
+++ b/net-misc/iperf/iperf-3.20.ebuild
@@ -1,32 +1,45 @@
-# Copyright 2021-2025 Liguros Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+
EAPI=8
-inherit systemd
+inherit autotools systemd
-DESCRIPTION="A TCP, UDP, and SCTP network bandwidth measurement tool"
-HOMEPAGE="https://software.es.net/iperf/"
-SRC_URI="https://downloads.es.net/pub/${PN}/${P}.tar.gz"
-S="${WORKDIR}/${P/_/}"
+DESCRIPTION="TCP, UDP, and SCTP network bandwidth measurement tool"
+HOMEPAGE="https://software.es.net/iperf/ https://github.com/esnet/iperf"
+SRC_URI="https://github.com/esnet/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="3"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
-IUSE=" sctp static-libs"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="sctp"
DEPEND="
- dev-libs/openssl:0=
-
+ >=dev-libs/cJSON-1.7.15
+ dev-libs/openssl:=
sctp? ( net-misc/lksctp-tools )
"
RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
DOCS=( README.md RELNOTES.md )
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.10.1-drop-forced-debugging-symbols.patch
+ "${FILESDIR}"/${PN}-3.18-unbundle-cJSON.patch
+)
+
+src_prepare() {
+ default
+
+ # Drop bundled cjson
+ rm src/cjson.{c,h} || die
+
+ eautoreconf
+}
+
src_configure() {
- econf \
- $(use_enable static-libs static) \
- $(use_with sctp)
+ econf $(use_with sctp)
}
src_install() {
@@ -36,5 +49,5 @@ src_install() {
newinitd "${FILESDIR}"/iperf3.initd iperf3
systemd_dounit contrib/iperf3.service
- find "${ED}" -name '*.la' -delete || die
+ find "${ED}" -name '*.la' -type f -delete || die
}
diff --git a/net-misc/iperf/iperf-3.21.ebuild b/net-misc/iperf/iperf-3.21.ebuild
index 9db2cfeb1030..cfe43128d158 100644
--- a/net-misc/iperf/iperf-3.21.ebuild
+++ b/net-misc/iperf/iperf-3.21.ebuild
@@ -1,5 +1,6 @@
-# Copyright 2021-2026 Liguros Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+
EAPI=8
inherit autotools systemd
@@ -10,17 +11,16 @@ SRC_URI="https://github.com/esnet/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.t
LICENSE="BSD"
SLOT="3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
-IUSE=" sctp"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-macos"
+IUSE="sctp"
RDEPEND="
>=dev-libs/cJSON-1.7.15
dev-libs/openssl:=
-
sctp? ( net-misc/lksctp-tools )
"
DEPEND="
- ${DEPEND}
+ ${RDEPEND}
virtual/os-headers
"
BDEPEND="virtual/pkgconfig"
diff --git a/net-misc/iperf/metadata.xml b/net-misc/iperf/metadata.xml
index 98e6d9d6a068..173a48e4ffcc 100644
--- a/net-misc/iperf/metadata.xml
+++ b/net-misc/iperf/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>dev@liguros.net</email>
- <name>Development</name>
- </maintainer>
<maintainer type="person">
<email>sam@gentoo.org</email>
<name>Sam James</name>