diff --git a/.gitignore b/.gitignore index 708706b..7617e55 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ uperf-1.0.3-beta.tar.gz /uperf-1.0.5.tar.gz /v1.0.6.tar.gz /1.0.7.tar.gz +/v1.0.8.tar.gz diff --git a/0001-Remove-obsolete-SSL-engine-support.patch b/0001-Remove-obsolete-SSL-engine-support.patch new file mode 100644 index 0000000..c10e2e8 --- /dev/null +++ b/0001-Remove-obsolete-SSL-engine-support.patch @@ -0,0 +1,90 @@ +From c271800aeb027f3f8c0b1f2463a06e3f5a948f20 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Terje=20R=C3=B8sten?= +Date: Thu, 6 Aug 2026 19:46:04 +0200 +Subject: [PATCH] Remove obsolete SSL engine support + +--- + src/ssl.c | 31 +++++-------------------------- + 1 file changed, 5 insertions(+), 26 deletions(-) + +diff --git a/src/ssl.c b/src/ssl.c +index f5bee81..77fc923 100644 +--- a/src/ssl.c ++++ b/src/ssl.c +@@ -24,6 +24,7 @@ + #include "../config.h" + #endif /* HAVE_CONFIG_H */ + ++#include + #include + #include + #include /* basic socket definitions */ +@@ -36,7 +37,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include "logging.h" +@@ -67,7 +68,7 @@ static protocol_t *protocol_ssl_new(); + static SSL_CTX *initialize_ctx(char *keyfile, char *password, + const char *method); + static int pwd_cb(char *buf, int num, int rwflag, void *userdata); +-static int load_engine(const char *engine_id); ++static int load_engine(const char *engine_id __attribute__((unused))); + static SSL_CTX *ctx; + + +@@ -137,12 +138,6 @@ file_present(char *file) + return (0); + } + +-static void +-ssl_cleanup(void) +-{ +- ENGINE_cleanup(); +-} +- + /* Called only once during beginning of the program */ + int + ssl_init(void *arg) +@@ -173,12 +168,6 @@ ssl_init(void *arg) + } + CRYPTO_set_id_callback((unsigned long (*)())id_function); + CRYPTO_set_locking_callback((void (*)())locking_function); +- +- /* +- * We also register an atexit function to cleanup the ENGINE +- * datastructures +- */ +- atexit(ssl_cleanup); + return (0); + } + +@@ -434,19 +423,9 @@ pwd_cb(char *buf, int num, int rwflag, void *userdata) + } + + static int +-load_engine(const char *engine_id) ++load_engine(const char *engine_id __attribute__((unused))) + { +- ENGINE *e; +- +- if (!engine_id) +- return (-1); +- ENGINE_load_builtin_engines(); +- e = ENGINE_by_id(engine_id); +- if (!e) { +- return (-1); +- } +- ENGINE_register_complete(e); +- return (0); ++ return (-1); + } + + static protocol_t * +-- +2.55.0 + diff --git a/sources b/sources index c2563e7..02e0c3f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (1.0.7.tar.gz) = 27ee5e5852e8cb702c84958e4f00a8ab0df004681944e6a267e04fbb1e9448d011537ffdfcbb9d68b2a42eb59571ebed9579b9fcfa7947c6fc2a26bf80b34d59 +SHA512 (v1.0.8.tar.gz) = 7a6c2b6518f6e4e7281fcd527e6c9cd98f095dcbc6824803733341168fed572d3f632d0123b69e4042aed7926d499c93167828d06dfec4598f2f4d3c23c111ab diff --git a/uperf-1.0.6-09fbbdb93.patch b/uperf-1.0.6-09fbbdb93.patch deleted file mode 100644 index 62f7747..0000000 --- a/uperf-1.0.6-09fbbdb93.patch +++ /dev/null @@ -1,105 +0,0 @@ -$ git diff v1.0.6..09fbbdb93 src > ../uperf-1.0.6-09fbbdb93.patch - -diff --git a/src/parse.c b/src/parse.c -index aedab06..bdedd0c 100644 ---- a/src/parse.c -+++ b/src/parse.c -@@ -774,6 +774,7 @@ build_worklist(struct symbol *list) - int txnid = 0; - int fid = 0; - int in_group = 0; -+ int in_txn = 0; - - w.ngrp = 0; - bzero(&w, sizeof (workorder_t)); -@@ -799,6 +800,12 @@ build_worklist(struct symbol *list) - in_group = 0; - break; - case TOKEN_TXN_START: -+ if (!in_group) { -+ snprintf(err, sizeof (err), -+ "No current group"); -+ add_error(err); -+ return (NULL); -+ } - curr_grp->ntxn++; - if (curr_txn == 0) { - curr_grp->tlist = calloc(1, sizeof (txn_t)); -@@ -813,10 +820,18 @@ build_worklist(struct symbol *list) - curr_txn->iter = 1; - curr_flowop = 0; - fid = 0; -+ in_txn = 1; - break; - case TOKEN_TXN_END: -+ in_txn = 0; - break; - case TOKEN_FLOWOP_START: -+ if (!in_txn) { -+ snprintf(err, sizeof (err), -+ "No current transaction"); -+ add_error(err); -+ return (NULL); -+ } - curr_txn->nflowop++; - if (curr_flowop == NULL) { - curr_txn->flist = calloc(1, sizeof (flowop_t)); -@@ -839,6 +854,12 @@ build_worklist(struct symbol *list) - } - break; - case TOKEN_ITERATIONS: -+ if (!in_txn) { -+ snprintf(err, sizeof (err), -+ "No current transaction"); -+ add_error(err); -+ return (NULL); -+ } - curr_txn->iter = string2int(list->symbol); - break; - case TOKEN_TYPE: -@@ -858,14 +879,32 @@ build_worklist(struct symbol *list) - flowop_parse_options(list->symbol, curr_flowop); - break; - case TOKEN_RATE: -+ if (!in_txn) { -+ snprintf(err, sizeof (err), -+ "No current transaction"); -+ add_error(err); -+ return (NULL); -+ } - strlcpy(curr_txn->rate_str, list->symbol, NAMELEN); - curr_txn->rate_count = string2int(list->symbol); - break; - case TOKEN_DURATION: -+ if (!in_txn) { -+ snprintf(err, sizeof (err), -+ "No current transaction"); -+ add_error(err); -+ return (NULL); -+ } - curr_txn->duration = string2nsec(list->symbol); - curr_txn->iter = 1; - break; - case TOKEN_NTHREADS: -+ if (!in_group) { -+ snprintf(err, sizeof (err), -+ "No current group"); -+ add_error(err); -+ return (NULL); -+ } - curr_grp->nthreads = string2int(list->symbol); - curr_grp->strand_flag |= STRAND_TYPE_THREAD; - break; -@@ -876,6 +915,12 @@ build_worklist(struct symbol *list) - add_error(err); - return (NULL); - #else -+ if (!in_group) { -+ snprintf(err, sizeof (err), -+ "No current group"); -+ add_error(err); -+ return (NULL); -+ } - curr_grp->nthreads = string2int(list->symbol); - curr_grp->strand_flag |= STRAND_TYPE_PROCESS; - break; diff --git a/uperf-1.0.6-ssl-crash.patch b/uperf-1.0.6-ssl-crash.patch deleted file mode 100644 index 034983f..0000000 --- a/uperf-1.0.6-ssl-crash.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/src/ssl.c b/src/ssl.c -index 1352434..6507f26 100644 ---- a/src/ssl.c -+++ b/src/ssl.c -@@ -25,6 +25,8 @@ - #endif /* HAVE_CONFIG_H */ - - #include -+#include -+#include - #include - #include /* basic socket definitions */ - #include -@@ -152,11 +154,11 @@ ssl_init(void *arg) - int i; - - if (IS_MASTER(options)) { -- if (file_present("server.pem") == 0) -- ctx = initialize_ctx("server.pem", PASS, NULL); -+ if (file_present("/usr/share/uperf/server.pem") == 0) -+ ctx = initialize_ctx("/usr/share/uperf/server.pem", PASS, NULL); - } else { -- if (file_present("client.pem") == 0) -- ctx = initialize_ctx("client.pem", PASS, NULL); -+ if (file_present("/usr/share/uperf/client.pem") == 0) -+ ctx = initialize_ctx("/usr/share/uperf/client.pem", PASS, NULL); - } - if (ctx == NULL) - return (1); -@@ -394,7 +396,7 @@ initialize_ctx(char *keyfile, char *password, const char *method) - #else - SSL_METHOD *meth; - #endif -- SSL_CTX *ctx; -+ SSL_CTX *ctx = NULL; - - SSL_library_init(); - diff --git a/uperf.spec b/uperf.spec index 95adecf..0f497a4 100644 --- a/uperf.spec +++ b/uperf.spec @@ -1,36 +1,44 @@ -Summary: Network performance tool with modelling and replay support -Name: uperf -Version: 1.0.7 -Release: 1%{?dist} -License: GPLv3 -URL: http://www.uperf.org/ -Source0: https://github.com/uperf/uperf/archive/%{version}.tar.gz -Patch1: uperf-1.0.6-ssl-crash.patch -BuildRequires: gcc -BuildRequires: lksctp-tools-devel -BuildRequires: openssl-devel +Summary: Network performance tool with modelling and replay support +Name: uperf +Version: 1.0.8 +Release: 11%{?dist} +# Automatically converted from old format: GPLv3 - review is highly recommended. +License: GPL-3.0-only +URL: http://www.uperf.org/ +Source0: https://github.com/uperf/uperf/archive/v%{version}.tar.gz +Patch: 0001-Remove-obsolete-SSL-engine-support.patch +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gcc +BuildRequires: lksctp-tools-devel +BuildRequires: make +BuildRequires: openssl-devel +%if 0%{?fedora} > 40 && 0%{?fedora} < 45 +BuildRequires: openssl-devel-engine +%endif %description Network performance tool that supports modelling and replay of various networking patterns. %prep -%setup -q -n %{name}-%{version} -%patch1 -p1 -find src -type f -print0 | xargs --null chmod 0644 -find workloads -type f -print0 | xargs --null chmod 0644 -chmod 0644 AUTHORS ChangeLog COPYING README +%autosetup -N +%if 0%{?fedora} > 44 +%autopatch -p1 +%endif +chmod 0644 workloads/{tcp-change-cc.xml,sctp-over-udp.xml,tcp-freebsd-change-stack.xml} %build +autoreconf --install %configure \ --enable-cpc \ --enable-netstat \ --enable-udp \ --enable-sctp \ --enable-ssl -make %{?_smp_mflags} +%make_build %install -make install DESTDIR=%{buildroot} +%make_install # Move stuff to own subdir install -d -m 0755 %{buildroot}%{_datadir}/%{name} @@ -40,11 +48,71 @@ rm -rf %{buildroot}%{_datadir}/*.xml %{buildroot}%{_datadir}/doc %files %license COPYING -%doc AUTHORS ChangeLog README +%doc AUTHORS ChangeLog README.md %{_bindir}/uperf %{_datadir}/uperf %changelog +* Thu Aug 06 2026 Terje Røsten - 1.0.8-11 +- Newer OpenSSL has removed engine support + +* Fri Jul 17 2026 Fedora Release Engineering - 1.0.8-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jun 13 2026 Yaakov Selkowitz - 1.0.8-9 +- Rebuilt for openssl 4.0 + +* Sat Jan 17 2026 Fedora Release Engineering - 1.0.8-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jul 25 2025 Fedora Release Engineering - 1.0.8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 1.0.8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Jul 29 2024 Miroslav Suchý - 1.0.8-5 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 1.0.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Jul 07 2024 Terje Rosten - 1.0.8-3 +- Fix build deps after openssl changes + +* Sat Jan 27 2024 Fedora Release Engineering - 1.0.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Sep 10 2023 Terje Rosten - 1.0.8-1 +- 1.0.8 + +* Sat Jul 22 2023 Fedora Release Engineering - 1.0.7-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 1.0.7-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Nov 25 2022 Florian Weimer - 1.0.7-8 +- Fix sendfilev configure glitch with C99 compilers + +* Sat Jul 23 2022 Fedora Release Engineering - 1.0.7-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 1.0.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Sep 14 2021 Sahana Prasad - 1.0.7-5 +- Rebuilt with OpenSSL 3.0.0 + +* Fri Jul 23 2021 Fedora Release Engineering - 1.0.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 1.0.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 1.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Fri Apr 17 2020 Terje Rosten - 1.0.7-1 - 1.0.7