diff options
Diffstat (limited to 'rpm/dnsperf.spec')
-rw-r--r-- | rpm/dnsperf.spec | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/rpm/dnsperf.spec b/rpm/dnsperf.spec new file mode 100644 index 0000000..e3d2825 --- /dev/null +++ b/rpm/dnsperf.spec @@ -0,0 +1,304 @@ +Name: dnsperf +Version: 2.4.2 +Release: 1%{?dist} +Summary: DNS Performance Testing Tool +Group: Productivity/Networking/DNS/Utilities + +License: Apache-2.0 +URL: https://www.dns-oarc.net/tools/dnsperf +# Source needs to be generated by dist-tools/create-source-packages, see +# https://github.com/jelu/dist-tools +Source0: https://www.dns-oarc.net/files/dnsperf/%{name}-%{version}.tar.gz?/%{name}_%{version}.orig.tar.gz + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: openssl-devel +BuildRequires: pkgconfig +BuildRequires: ldns-devel + +%description +dnsperf and resperf are free tools developed by Nominum/Akamai (2006-2018) +and DNS-OARC (since 2019) that make it simple to gather accurate latency and +throughput metrics for Domain Name Service (DNS). These tools are easy-to-use +and simulate typical Internet, so network operators can benchmark their naming +and addressing infrastructure and plan for upgrades. The latest version of +the dnsperf and resperf can be used with test files that include IPv6 +queries. + +dnsperf "self-paces" the DNS query load to simulate network conditions. + +New features in dnsperf improve the precision of latency measurements and +allow for per packet per-query latency reporting is possible. dnsperf is +now multithreaded, multiple dnsperf clients can be supported in multicore +systems (each client requires two cores). The output of dnsperf has also +been improved so it is more concise and useful. Latency data can be used to +make detailed graphs, so it is simple for network operators to take advantage +of the data. + + +%package -n resperf +Summary: DNS Resolution Performance Testing Tool +Group: Productivity/Networking/DNS/Utilities + + +%description -n resperf +dnsperf and resperf are free tools developed by Nominum/Akamai (2006-2018) +and DNS-OARC (since 2019) that make it simple to gather accurate latency and +throughput metrics for Domain Name Service (DNS). These tools are easy-to-use +and simulate typical Internet, so network operators can benchmark their naming +and addressing infrastructure and plan for upgrades. The latest version of +the dnsperf and resperf can be used with test files that include IPv6 +queries. + +resperf systematically increases the query rate and monitors the response +rate to simulate caching DNS services. + + +%prep +%setup -q -n %{name}_%{version} + + +%build +sh autogen.sh +%configure "--with-extra-cflags=-I /usr/include/bind" +make %{?_smp_mflags} + + +%check +make test + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root) +%{_bindir}/dnsperf +%{_datadir}/doc/* +%{_mandir}/man1/dnsperf.* + + +%files -n resperf +%defattr(-,root,root) +%{_bindir}/resperf +%{_bindir}/resperf-report +%{_mandir}/man1/resperf.* + + +%changelog +* Tue Feb 23 2021 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.2-1 +- Release 2.4.2 + * This release fixes a few issues with reading of the datafile which + could lead to "ran out of data" errors. + * The problem was that reading from the datafile was done before finding + a socket to send it on, or socket readyness, and that lead to progressing + the queries without really doing anything. + Another issues that's been fixed was that if the read lines perfectly + aligned with the buffer, it would be treated like EOF and caused an exit. + * Commits: + 9937287 resperf TLS + 6736956 datafile + 55faec6 ran out of data +* Tue Feb 09 2021 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.1-1 +- Release 2.4.1 + * This release fixes an issue with the socket readiness function that + could cause a buffer overflow (`-T 10 -c 2000`) due to `select()` being + limited to check 1023 sockets. `poll()` is now used which has no limit. + * There has also been a few fixes to the contrib script `queryparse` that + has to do with python v2 and v3 compatibility and better exception + handling. + * Commits: + 24e5bee poll + 7dceca7 Handle only common exceptions + 5603294 Fix error on python3 + 48fa517 TSIG +* Wed Dec 09 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.0-1 +- Release 2.4.0 + * This release removes the dependency on BIND's internal development + libraries! This make building and packaging a lot easier and less + troublesome in the future. + * This software now depends only on OpenSSL (for TSIG feature) with an + optional depend on LDNS (for dynamic updates feature). + * New option: + - Transport mode option `-m`/`-M` now recognizes `dot` alongside `tls` + for encrypted DNS + - Added `-W` for outputting warnings and errors to stdout + * Other changes / bugfixes: + - Fix potential memory leak of query descriptions when using verbose + - Only use TLS v1.2 and above for DoT/TLS + - Add a lot of tests + - Add coverage testing + * Commits: + d17743b datafile + 434bbf2 Checks, coverage, log, test IPv6 + 9fb305f Coverage + 123ebf1 DOT, TLS version, Sonarcloud + 26df0bd BIND dependency + ee660e7 Sonarcloud + c9ea0ab base64 + 4e9be82 TSIG + 4275045 EDNS, https + 7c3f51c BIND dependency + 6e1be5d ISC dependencies + e36f19d Buffer + 485cdd2 ISC mem, tests + 663dc24 Namespace clash + 2c44987 dynamic updates, edns, headers + 5d109b2 Disable HMAC + 79cae93 datafile, query desc + 663d814 net + c867de6 isc_result_t + 651ee5d opt + 7d30804 isc_result_t + 58ad313 ISC linked list + 7b4da6d Info + 8079ebc Tests + e3fb685 Tests + 2bb603a Tests + 297b23b Test + c4e244b Test + 1caac35 Makefile + e9f2aaa Coverage + 27af853 Fix typo in configure.ac + 521faa6 Badges + 8fa2ec4 LGTM + 75c89e5 COPR +* Fri May 15 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.4-1 +- Release 2.3.4 + * This release adds a workaround, thanks to patch from Petr Menšík, for + building on systems with BIND 9.16. Also improves error handling by + using thread-safe `strerror_r()` instead of `strerror()`. + * Commits: + 88c3ef4 strerror + 1917f67 openSUSE Tumbleweed + fd39641 AS_VAR_APPEND + aeeef74 bind 9.16 + 07732cd BIND, libcrypto, clang format + 08146e3 Add crypto library to checks + e4307c2 Add checks to pass with BIND 9.16 + 3f9aed3 Prepare check for bind 9.11/9.16 return types +* Wed May 06 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.3-1 +- Release 2.3.3 + * This release changes the behavior of `dnsperf` and `resperf` when it + comes to TCP and TLS connections, and updates package building using + COPR (thanks to patch from Petr Menšík (Red Hat)). + * Connection reset or close are now treated as "try again" so that the + run is finished and not aborted. As SIGPIPE might be received on usage + of closed connections it's now blocked in `dnsperf` and handled as + a fatal action in `resperf`. + * Commits: + 62885ad SIGPIPE + 106c50e connection + 3ef0899 README + 61a3b1c COPR + 35efa27 COPR + 46b37a1 COPR + 5c126ae COPR + 1c51b76 Provide full URL in spec + 2a4dd0e Allow recreation of source archive + 931d6cc Do not require root for archive creation +* Fri Aug 23 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.2-1 +- Release 2.3.2 + * This release fixes a buffer overflow when using TSIG and algorithms + with digests larger then SHA256, reported by Mukund Sivaraman. Also + fix build dependencies for `sqrt()`. + * Commits: + e54aa58 Digest + bca5d8d sqrt + d9eaa5b Package +* Wed Jul 24 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.1-1 +- Release 2.3.1 + * After a report and additional confirming results the use of `poll()` in + the network receive code for TCP and TLS has been removed. This `poll()` + initially gave better results while testing in a docker container on + it's loopback interface but when on physical networks it reduced + performance to 1/12th, so it had to go. + * Thanks to Brian Wellington (Akamai/Nominum) for the initial report and + testing, and to Jan Hák (CZ.NIC) for testing and confirming the results. + * Bugfix: + - Fix check for having more DNS messages in the receive buffer for TCP + and TLS + * Commits: + 670db9c TCP/TLS receive + b8925b2 recvbuf have more +* Wed Jul 17 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.0-1 +- Release 2.3.0 + * This release adds support for DNS over TCP and TLS which can be selected + by using the mode option for `dnsperf` and `resperf`. The default server + port used is now determined by the transport mode, udp/tcp port 53 and + tls port 853. + * Note that the mode option is different between the program because it was + already taken for `resperf`. + * `dnsperf` changes: + - Add `-m` for setting transport mode, `udp` (default), `tcp` or `tls` + - Add verbose messages about network readiness and congestion + * `resperf` changes: + - Add `-M` for setting transport mode, `udp` (default), `tcp` or `tls` + - Add `-v` for verbose mode to report about network readiness and + congestion + * Commits: + ffa49cf LGTM, SonarCloud + 4cd5441 TLS + 35624d1 TCP send, socket ready loop + fbf76aa TCP support + 5988b06 Funding +* Mon Jan 28 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.2.1-1 +- Release 2.2.1 + * The commit pulled from a fork that used `inttypes.h`, instead of ISC + internal types, missed to remove the old conversion specifier. + This was reported and fixed by Vladimír Čunát. + * Commits: + 9534ce1 remove visible "u" characters after numbers +* Mon Dec 03 2018 Jerry Lundström <lundstrom.jerry@gmail.com> 2.2.0-1 +- Release 2.2.0 + * First release by DNS-OARC with a rework of the code to use autotools, + semantic versioning 2.0 and bugfixes pulled from other's forks. + * Bugfixes: + - Fix infinite loop in argument parsing + - Fix min/max latency summing for multithreaded runs + - Fix calculation of per_thread socket counts + - Fixes to queryparse + - Mark correctly end of file + - Support python3 + - Stop looping on end of file undefinitely + - Fix compilation issues and work around missing `dns_fixedname_initname()` + - Clang `scan-build` fixes + * Other changes: + - add "configure --with-bind" option + - Handle bind library changes to HMAC (see #22) and other differences + between versions + - Workaround issue on FreeBSD (see #23) + - Use `snprintf()` and OpenBSD's `strlcat()` + - Add/update build dependencies for Debia, Ubuntu, CentOS, FreeBSD + and OpenBSD + * Commits: + ae9bc91 Clang format + b9bb085 CI, buildbot + b84e41b Autotools, README, changelog + a2e1732 License + 9dcb661 Remove $Id markers, Principal Author and Reviewed tags from the + full source tree + 0677bf0 Use dns_fixedname_initname() where possible + d8d4696 [master] add "configure --with-bind" option to dnsperf + b71a280 Add deb based distros dependencies + 439c614 Replace custom isc_boolean_t with C standard bool type + 407ae7c Replace custom isc_u?intNN_t types with C99 u?intNN_t types + c27afd4 Replace ISC_PRINT_QUADFORMAT with inttypes.h format constants + 6fdb2f7 Fix queryparse + 4909b78 README + 2782d50 README.md: Rectify link to software + e31ddf4 fix calculation of per_thread socket counts + 3bd7fb4 Fix min/max latency summing for multithreaded runs + 2207e27 Fix infinite loop in argument parsing. + 3bfe97a Include the github URL; remove the bug reports section. + 0cee04a Add note about bug reports. + 62c4b32 add .gitignore + c45f0be Initial import. + 149172b Initial commit |