From fedd3edb575dd455cc786195a7355b183d88aad80fec1674c341c5a7c4139b56 Mon Sep 17 00:00:00 2001 From: Sebastian Wagner Date: Sat, 16 Nov 2024 18:10:40 +0000 Subject: [PATCH] update to version 20241112: OBS-URL: https://build.opensuse.org/package/show/network:utilities/scamper?expand=0&rev=75 --- .gitattributes | 23 + .gitignore | 1 + scamper-cvs-20240503.tar.gz | 3 + scamper-cvs-20240813.tar.gz | 3 + scamper-cvs-20240920.tar.gz | 3 + scamper-cvs-20241112.tar.gz | 3 + scamper.changes | 1141 +++++++++++++++++++++++++++++++++++ scamper.spec | 159 +++++ 8 files changed, 1336 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 scamper-cvs-20240503.tar.gz create mode 100644 scamper-cvs-20240813.tar.gz create mode 100644 scamper-cvs-20240920.tar.gz create mode 100644 scamper-cvs-20241112.tar.gz create mode 100644 scamper.changes create mode 100644 scamper.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/scamper-cvs-20240503.tar.gz b/scamper-cvs-20240503.tar.gz new file mode 100644 index 0000000..87339d6 --- /dev/null +++ b/scamper-cvs-20240503.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6f42a7882689d321103225a0f60d079982af42cf1a66859a3ce91e63853cb09 +size 2839214 diff --git a/scamper-cvs-20240813.tar.gz b/scamper-cvs-20240813.tar.gz new file mode 100644 index 0000000..df7d002 --- /dev/null +++ b/scamper-cvs-20240813.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f45921be2c68be4533c74d4a8ca45a61fc936fe59effd771f85af3c6c0ab3dd +size 2927067 diff --git a/scamper-cvs-20240920.tar.gz b/scamper-cvs-20240920.tar.gz new file mode 100644 index 0000000..c08884b --- /dev/null +++ b/scamper-cvs-20240920.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02d242c577e31d61d3babec0a088e997f3c96bcc517f6d2ad35eb41cf1c5f616 +size 2958904 diff --git a/scamper-cvs-20241112.tar.gz b/scamper-cvs-20241112.tar.gz new file mode 100644 index 0000000..f7038fb --- /dev/null +++ b/scamper-cvs-20241112.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80fe8339b86bbfbf45c80c2a34fe55b92008588af3e541c34ce364ae27de7edc +size 2973993 diff --git a/scamper.changes b/scamper.changes new file mode 100644 index 0000000..ff08de8 --- /dev/null +++ b/scamper.changes @@ -0,0 +1,1141 @@ +------------------------------------------------------------------- +Sat Nov 16 17:58:30 UTC 2024 - Sebastian Wagner + +- update to version 20241112: + * scamper: + * check bound source address when attempting to reuse open sockets. + * bind to the specified source address with for all udp6 sockets used + with udp-sport ping method. + * finalize task signatures for ping, trace, udpprobe, and dealias + immediately before tasks begin probing to provide more ability for + parallel measurements to the same destinations. + * python module: + * correct bugs in documentation + * add to_json() to all measurement types where there's a scamper json + rendering + * libscamperfile: + * fix memory leaks on malformed warts input + * add scamper_*_tojson functions for dealias, host, ping, tbit, trace, + tracelb, and udpprobe + * move Makefile rules for libscamperfile from scamper/Makefile.am into + lib/libscamperfile/Makefile.am + * sc_speedtrap: + * add -R /path/to/socket to enable speedtrap to use a remote scamper + instance + * add -v to emit version of scamper release the utility came from + * update man page with documentation + * configure: + * add --disable-utils and --disable-libs options to configure, to control + how much of the scamper package is actually built. + * update to serial 37 of ax_python_devel.m4 and serial 8 of + ax_gcc_builtin.m4 + +------------------------------------------------------------------- +Mon Sep 23 07:17:26 UTC 2024 - Sebastian Wagner + +* update to version 20240920: + * scamper: + * add -O noring to disable use of ring buffer on Linux when + scamper is configured with --enable-scamper-ring + * udpprobe: add -S src parameter, update manual page with + previously supported but undocumented options + * sc_prefixprober: + * allow do-not-probe list to be embedded in the input set of + prefixes to probe, update manual page. + * add -v to emit version of scamper release the sc_prefixprober + utility came from + * Python module: + * add src parameter to ScamperCtrl.do_udpprobe +* update to version 20240916: + * scamper: + * with ping -F 0 and trace -s 0, choose a different TCP or UDP source + port if an otherwise available source port has been used in the past + 5 seconds to the same destination IP and port. + * ping: add udp-sport probe method + * ping: refactor udp packet matching on datalink sockets + * allow -D when outputting to a file. + * use SO_TIMESTAMP on linux packet sockets, rather than call an ioctl, + to fix buggy linux timestamps when not using ring + * rework privsep code to be signal aware, and forward signals from + scamper's privileged process to scamper's unprivileged process via + the socketpair between the processes. i.e., + scamper -D -U /path/to/scamper-unix-socket -e /path/to/scamper.pid + kill -HUP `cat /path/to/scamper.pid` + now works. TERM and INT also propagate from privileged to + unprivileged process. this allows the user that started scamper to + send signals to the privileged process, which it then forwards to + unprivileged process. the user who started scamper is otherwise not + able to send the unprivileged process signals, as that process + typically runs as user nobody. + * host: add -O nsid to signal queried server to include nsid OPT + record in response. parse any server-provided OPT records. + * udpprobe: record ifname replies were received on + * udpprobe: increase supported probe size from 1000 to 1400 bytes. + * factor out most repeated tls code patterns into utils_tls.c + * add functions to utils_tls.c to load key material from opened + file descriptors, to allow key material to be reloaded in + unprivileged process + * reload TLS key material on HUP signal + * do not negotiate use of TLS v1.1 + * refactor privsep code to make it obvious which functions belong to + which process, and develop an obvious pattern in the code. + * make route socket interface work on NetBSD again + * tracelb: fix sport validation + * other minor code cleanups + * sc_minrtt: + * thread input stage, add batch import. by default, sc_minrtt + will import N files per batch, where N is the number of processors + online. + * add -b batchc parameter that allows for batch size to be adjusted + according to what is appropriate for the system + * set exit status to zero when import is successful + * add -v to emit version of scamper release the utility came from + * refactor code in places + * libscamperfile: + * bump version to account for added interfaces for udpprobe, host + objects. + * Python module: + * add nsid option to ScamperCtrl.do_dns method + * add ScamperUdpprobeReply.ifname attribute + * add OPT glue to ScamperHost, and related features + (udpsize, edns_version, edns_do attributes) + * add context manager support to ScamperFile and ScamperCtrl, allowing + for Python with / as syntax + * sc_bdrmap: + * change -v vp-ases option to -V vp-ases + * add -v to emit version of scamper release the utility came from + * sc_attach, sc_hoiho, sc_remoted: + * add -v to emit version of scamper release the utility came from + * sc_wartsdump: + * update for new udpprobe, host features. + * tests: + * add unit_cmd_tracelb, contributed by Marcus Luckie. + * add unit_ping_lib, check scamper_ping_reply_is_from_target + * add unit_host_warts, check OPT record reading and writing. + * expand unit_dl_parse_ip tests + * documentation: + * update python module documentation to reflect changes + * update scamper, sc_attach, sc_bdrmap, sc_hoiho, sc_minrtt, + sc_pinger, sc_remoted manual pages to reflect changes + +------------------------------------------------------------------- +Mon Aug 19 07:05:31 UTC 2024 - Steve Kowalik + +- Remove upper bound on Cython, Cython 3 appears to be supported. + +------------------------------------------------------------------- +Sat Aug 17 08:16:38 UTC 2024 - Sebastian Wagner + +- update to version 20240716: + * scamper + * add -O dl-any option to scamper, which causes scamper to open a + cooked datalink interface bound to "any" on Linux. Note that + scamper's implementation of -O dl-any currently prevents + transmission of packets on the datalink socket, but this will + change in the future. + * add -O dyn-filter option to scamper, which causes scamper to + dynamically adjust the BPF filter that it configures on a datalink + socket according to TCP/UDP ports that scamper is using. this + option is only available on Linux, and BSD systems with BIOCSETFNR + (FreeBSD and MacOS). note that both -O dyn-filter and -O dl-any + cannot currently be used at the same time, but this will change in + the future. + * only raise SO_SNDBUF and SO_RCVBUF; some systems (e.g. Linux) + already have larger socket buffers than scamper's defaults. + * add -O sockrx to ping, to force ping to receive ICMP responses over + a regular socket, even when using -O dl (which still records datalink + transmit timestamps). + * speed up receiving on datalink sockets by avoiding unnecessary + memsets and removing unused fields, and adjust BSD, Linux, DLPI code + to follow similar code patterns. + * consider both directions for TCP packets on datalink sockets, + allowing datalink transmit timestamps to be recorded for non TCP-syn + packets. + * avoid processing duplicate copies of the same packet on Linux + loopback interface with datalink sockets. + * remove "observe" functionality from scamper control socket, as + signalled over a year ago. "outfile" and "source" will be removed + from the control socket in the future. + * cleanup scamper_dlhdr.[ch], use scamper_dlhdr_t to scamper_probe_t + instead of its constituent parts. + * update tbit usage statement in scamper, and manual page, with + currently supported options + * python module: + * use join to assemble command strings for all ScamperCtrl.do_*() + for orders of magnitude faster command generation + * implement __richcmp__ for all classes where __eq__, __lt__, etc, + were previously defined individually + * if string passed to ScamperAddr is invalid, raise an exception + * implement ScamperCtrl.do_tbit method, ScamperTbit classes + * sc_minrtt: + * add sc_minrtt utility, which takes the output of sc_pinger to + produce a minimized RTT input file for sc_hoiho. to build, pass + --enable-sc_minrtt as well as --with-pcre or --with-pcre2 to + configure, and have sqlite3 development headers and libraries in + build environment. + * tests: + * more ping and tbit command unit tests + * split out ARP reply parsing code into dl_parse_arp, add fuzzing cradle. +- update to version 20240725: + * scamper: + * add dynamic BPF filters for linux "any" packet interface, allowing + both -O dyn-filter and -O dl-any. + * avoid generating debugging statements that won't be emitted, saving + CPU in the usual scamper operating mode. + * process dltx timestamps when -N > 1 and tx timestamp is available + after the response has already arrived + * don't allow TCP traceroute and -N > 1 because packet matching + responses from the destination is challenging. + * use scamper_seteuid_[raise|lower] in scamper when built without + privsep, rather than use a repeated code pattern. + * configure: + * add --enable-scamper-ring to configure to make -O ring the default + * python module: + * take account of stop_hop when iterating through traceroute hops, + add ScamperTrace.stop_hop attribute. + * add ScamperTrace.addrs() convenience method, which returns unique + addresses observed in the path + * add ScamperHost.ans_ptrs() convenience method, which returns the + text from PTR records in a response + * update documentation: + https://www.caida.org/catalog/software/scamper/python/ + * sc_analysis_dump: + * drop geolocation code from utility, which was not plumbed into + configure. + * tests: + * add check-ifdef.pl to check for obvious #ifdef bugs +- update to version 20240813: + * scamper: + * properly set icmp_id on ICMP probe signature in ping when -F 0. + * reduce code duplication in scamper_fd.c by replacing fd_udp() and + fd_tcp() with fd_tcpudp(). + * process IPv6 TCP replies in dealias. + * simplify BPF logic, support unit testing of dl_filter_compile. + * fix 20240725 regression to actually call scamper_debug logic for + datalink packets. + * python module: + * raise exception if ScamperCtrl.do_*() is called on a ScamperInst + that has signalled EOF. + * add ScamperInst.is_eof() method. + * configure: + * check for tcp_timer.h in configure, use if found, to fix check + for tcp_var.h. + * sc_pinger, sc_minrtt: + * support batch probing with radargun primitive. + * update sc_pinger manual page with batch probing details. + * tests: + * silence benign clang static analysis warnings. + * add more ping command unit tests. + * add unit_dl_filter_compile to test bpf compiler. + * enhance check-ifdef.pl to find #define / #ifdef ordering issues, + make pass through code to adjust header ordering. + +------------------------------------------------------------------- +Mon May 13 06:41:00 UTC 2024 - Dominique Leuenberger + +- Fix dependency of libscamperfile-devel: require the new + libscamperfile9. The last updated bumped the so-version, which + results in a different package name. +- Drop all obsoletes of libscamperfile9: obsoleting old library + packages is explicitly not to be done according to the packaging + guidelines around shared libraries. + +------------------------------------------------------------------- +Sun May 5 14:11:00 UTC 2024 - Sebastian Wagner + +* update to version 20240503: + * scamper: + * improvements with -N squeries; let -Q send all probes when using -N. + add -H wait-probe-hop, which specifies the minimum delay between + probes with the same TTL. identify the hop that would have caused + traceroute to stop when not using -N so that a normal traceroute + path with one hop representing the destination or stopping hop in + the path is rendered. in the json output, put extra hops beyond + the stopping hop into a extra_hops array. + * make ring-nolocked the default when using -O ring. + * improvements with udpprobe: provide ability to send multiple copies + of the same payload, add json output, reuse available UDP sockets + where possible. + * consistently set and record the IPv4 tos and IPv6 tclass fields for + both ping and trace. + * fix warts.bz2 and warts.xz output, which could previously use all + available space on the file system. + * speed up rendering of byte arrays as hex in json output. + * fix obtaining IPv6 hoplimit on received packets on MacOS. + * record the name of the interface that received IPv4 and IPv6 ICMP + responses in ping. + * add TXT queries to host command; add chaos query class; add + DNS-over-TCP. + * fix use of ctype functions according to netbsd (cast all parameters + to unsigned char). make pass through use of ctype functions to do + ctype function calls last in most logical statements. + * cleanup scamper_file_warts.h so that only necessary struct + definitions are in that header. + * libscamperfile: + * add new functions, bump library version due to udpprobe changes. + * python library + * improve the usefulness of the ScamperInstError exceptions + * let all address parameters to do_() methods also be ScamperAddr + * support creation of ScamperAddr from bytes objects + * updates to support new functionality in udpprobe primitive + * support RR filters on all sections of a DNS response + * add tx, rx, and rtt attributes to DNS responses + * add qtype=txt, qclass=chaos, tcp DNS queries, and ScamperHostTxt + class. + * add helper method to get ns and txt records out of ans section + -- ans_nses() and ans_txts() + * add rx and ifname attributes to ScamperPingReply + * add ScamperDealiasProbe.is_from_target() method + * configure: + * remove obsolete AC_PROG_GCC_TRADITIONAL + * fix net/pfvar.h conditional + * sc_hoiho: + * fix crashes in IP and FNU stages so that router name regular + expression inferences work again. + * sc_wartscat: + * fix index into infiles array + * tests: + * add tests for string_byte2hex, and json escaping + * add unit tests for TXT records + * add fuzzing cradle for host_rr_list + * in fuzz_cmd cradle, ensure any error strings only contain printable + characters. + +------------------------------------------------------------------- +Sat Mar 16 19:34:46 UTC 2024 - Dirk Müller + +- update to 20240229: + * bugfix: correct SCAMPER_DL_IS_ICMP_TIME_REPLY macro so that scamper + does not ignore ICMP replies quoting TCP/UDP packets for 1/256 + source port values. + * bugfixes for -O icmp-rxerr: handle EPOLLERR on linux, try using + IPV6_RECVHOPLIMIT before IPV6_HOPLIMIT for IPv6 udp probing. + * bugfix: fix possible assertions in dealias, trace, and tracelb code. + * ping: count UDP replies as from the target + * trace: correct datalink timestamp adjustments + * add more specific error messages when a scamper command is not + accepted, return them over control socket or terminal, as appropriate. + * scamper_fd_t: refactor fd_addr, fd_sport, fd_dl, fd_ifindex + * scamper_fd_t: decouple udp4raw/udp4dg from each other. use udp4dg + and udp6 sockets in udpprobe primitive, rather than have each + udpprobe task create its own socket. + * scamper_fd_t: add methods that return an available open socket for + probing a given destination without blocking if another task is + probing the same destination. use this with ping -F 0 and trace -s 0, + instead of generating random port values, so that scamper opens + the minimum number of file descriptors. + * ping and trace: have -O dl mean to capture transmit and receive + timestamps from a datalink interface. add -O raw option so that + IPv4 TCP probes can be transmitted over a raw socket, to allow transmitted + TCP packets to be observed on the datalink interface. + * add memory-mapped ring buffer support (PACKET_RX_RING) for receiving + packets on datalink sockets on Linux. enable at scamper runtime + with -O ring. contributed by Alistair King. + ## python module: + * generate module .c with Cython 0.29.37, to enable module to compile + with Python 3.11. + * link against libpython + * have all time parameters take either a timedelta or float/int. float/int + parameters are all seconds. + * add ScamperInstError exception which identifies the scamper instance + and includes the error string returned by the instance. + * reduce copying in methods that return bytes objects + * add str method for ScamperInst +- reenable python build + +------------------------------------------------------------------- +Tue Feb 6 09:07:29 UTC 2024 - Sebastian Wagner + +- Temporarily disable Python build because of incompatibility with Python 3.11 + Reported upstream, will be fixed in next version. + +------------------------------------------------------------------- +Mon Feb 5 12:59:00 UTC 2024 - Sebastian Wagner + +- Update to version 20240122: + * scamper + * fix regression in 20240117 where trace -W 0 (probe as soon as + there's a response) was not accepted, despite being the default. + add unit test for this. + * for trace, improve probe and reply matching of UDP packets + * fix printing UDP responses to traceroute probes in scamper -O text output + * for trace section of scamper.1 man page, document -O const-payload, + and expand documentation for -O dl. + * python module: + * ship scamper release with a the C source code pre-generated for the + python module, so that the build process does not require a cython + installation. bootstrap.pl will build the C source code unless told + not to via --without-cython + * rename ScamperPing.reply_count to ScamperPing.stop_count, as the + reply_count attribute meant something different on a ScamperPing + object than what it means with ScamperDealiasProbe, etc + * sc_remoted: + * expand sc_remoted.1 manual page with information about validating + scamper client TLS certificates, and how to use -M monitor-name. + +------------------------------------------------------------------- +Wed Jan 17 07:35:36 UTC 2024 - Sebastian Wagner + +- update to version 20240117: + - scamper: + - fix crashes if a task is provided an apparent response, but the task + - has not yet sent a packet in ping, sting, tbit, trace, tracelb. + - find and fix memory leaks in measurement command parsing code via + - fuzzing. + - add udpprobe, http, dealias -m midarest, and dealias -m midardisc methods. + - udpprobe and http do not currently have json output methods. + - remove -d dport, -s sport, and -t ttl dealias parameters. these + - were only valid for mercator, and can be specified in a probedef instead. + - record size of responses for dealias probes. + - modify all commands to be able to take human-friendly wait parameters -- + - e.g. trace -W 0.5s or trace -W 500ms instead of trace -W 50000. + - support transmitting raw packets on linux ppp interfaces + - add -b payload-size parameter to ping + - python interface: + - add python interface to most of scamper. building this module requires + - cython < 3.0. to build, use something like: + - PYTHON=/path/to/python CYTHON=/path/to/cython ./configure --with-python + - the documentation for this interface is available at + - https://www.caida.org/catalog/software/scamper/python/ + - the ubuntu PPA provides python3-scamper, and the FreeBSD port should + - hopefully provide py-scamper shortly. these sources may be useful + - for getting the module packaged for other operating systems. + - https://launchpad.net/~matthewluckie/+archive/ubuntu/scamper + - libscamperfile and libscamperctrl: + - improvements, bump versions + - tests: + - many new unit tests and fuzzing cradles for scamper components + - sc_pinger: + - add -l limit and -M move-dir options + - sc_remoted: + - no need to link against libscamperfile, remove dependency + - sc_attach, sc_filterpolicy, sc_prefixscan, sc_wartsfix: + - compile / link on windows. + +------------------------------------------------------------------- +Fri Nov 10 15:00:00 UTC 2023 - Dirk Müller + +- update to 20230614d (bsc#1217032): + * fix buffer overflow when parsing TCP packets where the sender + includes a TCP fast open cookie larger than 16 bytes + +------------------------------------------------------------------- +Sat Oct 7 09:04:41 UTC 2023 - Sebastian Wagner + +- update to version 20230614c: + - scamper: + * fix compile-on-windows support; use icmp-echo probes instead of UDP + probes for traceroute on windows; provide "attach" support on + windows. + * fix compile-on-FreeBSD-15+ where pf firewall does not have + DIOCGETSTATUS ioctl + * in scamper's remote control (-R option), fix file descriptor leak + when unable to reconnect to the remote controller. + * add --disable-scamper-trace --disable-scamper-ping + --disable-scamper-tracelb --disable-scamper-dealias + --disable-scamper-tbit --disable-scamper-sting + --disable-scamper-sniff --disable-scamper-host configure options + to build scamper without specific measurement capabilities. + - sc_attach: + * add windows support + +------------------------------------------------------------------- +Sun Aug 13 06:05:08 UTC 2023 - Sebastian Wagner + +- update to version 20230614b: + - scamper: + * fix handling of EPOLLHUP on client disconnection -- Linux-specific + (scamper -U /path/to/socket) + - libscamperctrl: + * fix handling of disconnected instances + +------------------------------------------------------------------- +Wed Aug 9 05:58:57 UTC 2023 - Sebastian Wagner + +- update to version 20230614a + * configure: + * better tests for zlib, libbz2, and liblzma that check for both + libraries and headers. + * change --with-sc_uptime, --with-sc_hoiho, and --with-tests to be + --enable-sc_uptime, --enable-sc_hoiho, and --enable-tests + * disable maintainer mode, pass foreign to AM_INIT_AUTOMAKE + * scamper: + * remove reading regular files from poll/select/epoll/kqueue path, + which fixes reading regular input files (-f option to scamper) using + epoll or kqueue + * fix reading stdin as input (-f option to scamper) when using + epoll (catch EPOLLHUP) + * add DNS server to host signature, add host path for scamper_task_find + * rework scamper_osinfo to work with malformed release names (uname -r) + * dealias: do not crash on malformed prefixscan and bump commands + * dealias: fix memory leak of probedefs on malformed commands + * sting: fix memory leak of recorded packets + * remove tsps input method (-O tsps option to scamper) + * update manual page + * libscamperctrl: + * link against list.o and splaytree.o so that the library is self-contained + * fix memory leak when task is not accepted + * API improvements + * libscamperfile: + * fix memory leak when reading SOA/MX from warts file + * fix memory leak when reading PMTUD traceroute structures from warts file + * sting: fix memory leak of recorded packets + * sc_analysis_dump, sc_warts2pcap, sc_wartscat, sc_wartsfilter: + * link against list.o/utils.o so that these utilities are not reliant on + those symbols being exported from libscamperfile + * sc_prefixprober: + * allow compression type to be specified using -O + * free scamper_addr_t as each are removed from the list to probe + * sc_remoted: + * catch EPOLLHUP with epoll + * sc_warts2text: + * fix memory leaks + * sc_wartsdump: + * fix memory leaks + * link against utils.o so that sc_wartsdump is not reliant on those + symbols being exported from libscamperfile + +------------------------------------------------------------------- +Tue Jun 13 06:20:24 UTC 2023 - Sebastian Wagner + +- update to version 20230605: + * HEADSUP: if you previously used -e pidfile to record the pid of a + running scamper process, there is a good chance that the pidfile is + owned by root. scamper now attempts to write this file using the uid + that started scamper, and will not be able to write it if scamper is + not started by root (it should not be, rather the scamper binary + should be setuid root). Please delete the existing pidfile, or change + its ownership, prior to restarting scamper, or scamper will not start. + * scamper: + * write a process ID that the user that started scamper can kill + in the pidfile when using privsep. + * when using privsep, exit the unprivileged process if the privileged + process exits (is killed) + * run as real uid from the start of scamper, for both privsep and + not-privsep. + * fix bug where attempting to open an unsupported datalink would + leave a freed scamper_fd_t in the fd_tree and fd_list, leading to + a crash. + * fix double free triggered when a user provides an invalid dealias + command. + * fix memory leak if the payload was specified twice to ping or trace + * rework pollfunc selection logic, use kqueue/epoll by default. + * remove _malloc_options = "AJ" as this only works on unsupported + versions of FreeBSD. + * add additional paramaters to attach command to allow the user + to override list and cycle parameters, documented in manual page. + * catch EAGAIN/EINTR from select/kqueue/epoll to allow gdb to attach + and detach without flagging errors. + * for DNS replies for host command, record reply flags and rcode. + * add support for SOA and NS queries in host. + * add a JSON output for host measurements. + * do not let scamper emit warts to a tty. check for isatty in + configure. + * only allow -O and -z to be specified multiple times in a trace command + * only allow -O to be specified multiple times in a ping command + * split command parsing logic out from task probing logic. add + fuzzing cradle for parsing logic for all measurement types, and + basic unit tests for dealias, ping, and trace parsing logic. + * autodetect output type by file extension if output type is not + explicitly specified on the command line. + * libscamperfile: + * remove all struct definitions from libscamperfile (e.g. + scamper_trace, scamper_ping, scamper_addr, etc). provide typedefs + for each (scamper_trace_t) and _get() functions that return the + field requested. This change will allow hopefully allow + libscamperfile's version to stabilize. all scamper utilities now + use these get functions. + * shift some functions that were previously implemented in + libscamperfile into the one place they were used, if they were only + used in (for example scamper / sc_analysis_dump / other scamper + utility). delete other functions that were not used anywhere in + the public scamper release. + * libscamperctrl: + * fix bug by ensuring line_off is always valid after the read. + * catch EAGAIN from select. + * add kqueue support. + * add scamper_attp_* routines to allow applications to specify + list and cycle parameters. + * for scamper_inst_do, take a parameter to keep with each task. + * add scamper_task_getparam function to get the parameter. + * add scamper_task_getcmd function to get the command associated with a task. + * use TYPE_FATAL instead of TYPE_ERR in application callback when + scamper_inst_read encounters a fatal error, only use TYPE_ERR when + scamper does not accept a command. + * sc_prefixprober: + * new driver to conduct measurements (ping, trace, tracelb) to an + address in each prefix. + * sc_ally: + * use scamper_file_t outfiles, add ability to write gz/bz2/xz files. + * ask for cycle-start and cycle-stop records, write them out. + * improve use of libscamperctrl. + * sc_hoiho: + * add support for VP geohints, document. + * silence -Wshadow. + * silence warnings related to assignments that are not used. + * sc_ipiddump: + * fix memory leak when user specifies invalid command line options. + * sc_filterpolicy: + * ask for cycle-start and cycle-stop records, write them out. + * improve use of libscamperctrl. + * sc_pinger: + * signal done to get cycle stop record. + * improve use of libscamperctrl. + * document remote socket option. + * sc_prefixscan: + * use scamper_file_t outfiles, add ability to write gz/bz2/xz files. + * ask for cycle-start and cycle-stop records, write them out. + * improve use of libscamperctrl. + * sc_remoted: + * catch EAGAIN from select. + * sc_speedtrap: + * ask for cycle-start and cycle-stop records, write them out. + * improve use of libscamperctrl. + * sc_uptime: + * silence -Wshadow. + * silence warnings related to assignments that are not used. + * fix memory leak in up_reboots_doone. + * sc_warts2json: + * fix memory leak with cycle start/stop records. + * emit json for host records. + * sc_wartscat: + * fix ability to write compressed warts files. +- update to version 20230323: + * libscamperfile: + * add ability for scamper and all utilities to read warts and arts + files compressed with bzip2 and xz, if libbz2 and liblzma are found + by configure. + * add ability for scamper and all utilities to write warts files + compressed with gzip, bzip2, and xz, if zlib, libbz2, and liblzma + are found by configure. + * tidy up libscamperfile code. + * misc: + * silence -Wsign-compare and -Wtype-limits + * tidy usage statements for sc_uptime and sc_tbitpmtud + * document use of '-' to read from stdin and write to stdout + in sc_wartsfilter.1 + +------------------------------------------------------------------- +Tue Mar 7 09:28:35 UTC 2023 - Sebastian Wagner + +- Update to version 20230302: + - scamper: + * use a random source port / ICMP ID in trace if -s 0. + * better parallelize pings to a single destination that use + udp-dport, tcp-ack-sport, or tcp-syn-sport probe methods. + * document default value of source port consistently for all + measurements that take a source port parameter in the man page. + - sc_wartscat: + * print useful error messages when encountering an error. + * add ability to merge neighbourdisc, tbit, sting, sniff, and host. + +------------------------------------------------------------------- +Fri Feb 24 07:32:35 UTC 2023 - Sebastian Wagner + +- Update to version 20230224: + - scamper: + - allow multiple parallel measurements to the same destination, + - provided the measurements have probe signatures that scamper can + - distinguish. + - return the associated task ID with each DATA blob in control socket. + - this task ID matches the ID returned in an OK when scamper accepted + - the task. + - in ping, only compute delay statistics on responses from destination. + - in ping, allow timeout to be expressed in fractions of a second. + - libscamperfile: + - support reading gz-compressed warts files. + - libscamperctrl: + - add libscamperctrl, a library to interact with a collection of + - scamper instances. + - modify sc_ally, sc_filterpolicy, sc_prefixscan, sc_speedtrap, and + - sc_pinger to use this library. + - this library is likely to evolve. current behaviour is documented + - in libscamperctrl manual page. + - misc: + - improve sc_wartsfilter manual page with examples. + - add remote control socket support to sc_pinger. + - fix kqueue/epoll loop in sc_remoted. + - consistently use size_t throughout when counting number of items. + - build without warnings using -Wextra -Wno-unused-parameter. + - improvements through adding function attributes to printf-like + - functions. + - deorbit some unused functions from utils.c. + +------------------------------------------------------------------- +Thu Dec 29 09:06:25 UTC 2022 - Sebastian Wagner + +- Update to version 20211212e: + - scamper: + * gracefully handle situations where there is no + /etc/resolv.conf, or no nameserver lines in an /etc/resolv.conf + but a measurement or scamper-internal task wants to resolve a + name + * tidy up buggy prinf-like statements in scamper and some drivers. + - warts/json: + * in JSON output for ping, print the TCP/UDP src/dst ports or + ICMP id/seq used in individual probe packets, + * fix regression in libscamperfile so that it can read old warts + files. + +------------------------------------------------------------------- +Sat Nov 19 07:20:02 UTC 2022 - Sebastian Wagner + +- Update to version 20211212d: + - scamper: + * add tcp-syn-sport method to ping, document in scamper(1) manual page + - documentation: + * document trace json object in sc_warts2json(1) manual page + +------------------------------------------------------------------- +Thu Aug 18 06:36:07 UTC 2022 - Sebastian Wagner + +- Update to version 20211212b: + - scamper: + * add an option (-O cafile=/path/to/file) to load CA certificates + from a specific file when starting scamper for validating a + remote controller's certificate (this was released in 20211212a) + * add options + -O client-certfile=/path/to/certfile and + -O client-privfile=/path/to/privfile + to have scamper present a client certificate during a TLS handshake + with a remote controller + * fix bugs that prevent scamper from reconnecting to a remote + controller + * fix -d debugfile when scamper is built with privilege separation + * fix bug when writing neighbordisc measurements to warts file that + prevents a neighbordisc measurement from being read + * fix bug when reading some tracelb measurements with unresponsive hops + from a warts file + * allow user to specify fractions of a second to ping timeout (-W) + * use a random source port / ICMP ID in ping if -F 0 + - sc_remoted: + * add -C option to specify a CA PEM file to verify client certificates + presented by scamper instances. + * add -O skipnameverification option to tell sc_remoted to verify + scamper presents a certificate signed by the CA, but do not do + name verification + +------------------------------------------------------------------- +Mon Apr 25 14:13:43 UTC 2022 - Dominique Leuenberger + +- Drop libscamperfile1 provides from the lib subpckage: + libscamperfile.so.2 is not a drop-in replacement for anything + that linked libscamperfile.so.1, and as such the provides is + invalid. The obsoletes is technically wrong, but is there to fix + the upgrade path of a wrongly-packaged libscamperfile.so.2 in a + libscamperfile1 package. + +------------------------------------------------------------------- +Fri Feb 25 20:29:54 UTC 2022 - Sebastian Wagner + +- add provices/obsoletes for old libscamperfile1 sub-package. + +------------------------------------------------------------------- +Sat Feb 12 18:37:04 UTC 2022 - Sebastian Wagner + +- Update to version 20211212a: + - No changelog available. + +------------------------------------------------------------------- +Tue Dec 14 17:50:16 UTC 2021 - Sebastian Wagner + +- update to version 20211212: + - scamper: + * in hostname code, handle nameserver lines with comments in them + - sc_remoted: + * fix logic to handle TLSv1.3 handshakes + - sc_hoiho: + * add the ability to learn regular expressions that extract + network names from router hostnames, documented in the + sc_hoiho man page + +------------------------------------------------------------------- +Wed Oct 27 18:47:44 UTC 2021 - Sebastian Wagner + +- update to 20211026: + scamper: + * in trace, allow probes to multiple consecutive hops to be + outstanding in the network without having to stop and wait, + using the -N parameter documented in scamper's man page. + * in trace, do optional PTR lookups using the option documented + in scamper's man page. output these hostnames into warts and + json outputs. + * bump libscamperfile version for the above changes. + * document that scamper's control socket can be told to return + JSON through an option now documented in scamper's man page. + * improvements to reading warts files via fuzzing. + * other man page tidy ups. + sc_erosprober: + * add the ability to adjust the probe list at run time through a + unix domain socket, documented in the sc_erosprober man page. + sc_hoiho: + * add the ability to learn regular expressions that extract + geographic hints from router hostnames, documented in the + sc_hoiho man page + +------------------------------------------------------------------- +Mon Apr 5 19:33:43 UTC 2021 - Sebastian Wagner + +- update to version 20210324: + sc_speedtrap: + * speed up speedtrap's runtime + +------------------------------------------------------------------- +Wed Sep 23 06:32:14 UTC 2020 - Sebastian Wagner + +- update to version 20200923: + - scamper: + * integrate some fixes for compiling scamper on windows + - sc_erosprober: + * allow larger probe intervals + - sc_hoiho: + * add support for learning regexes that extract ASNs in hostnames + +------------------------------------------------------------------- +Sat Jul 18 13:36:44 UTC 2020 - Sebastian Wagner + +- update to version 20200717: + - scamper: + - update remote control protocol to support session resumption + if the underlying TCP connection is interrupted. + - if remote controller is specified with a domain name, use TLS. + - fix -p pidfile when starting scamper as a daemon + - expire entries in the ARP cache periodically + - add -r support to ping and tracelb, and record router addresses + in warts output. + - autoconf work to build on linux without sys/socketvar.h or + linux/netlink.h + - allow scamper to do IPv4 ICMP echo and IPv6 UDP traceroute + without requiring root on linux. + - libscamperfile version 1.0.0 + - sc_remoted: + - update remote control protocol to support session resumption + if the underlying TCP connection is interrupted. + - use HUP signal to reload TLS certificate and private key chain + - add -e pidfile to write PID to file, to make HUP easy + - sc_pinger: + - add utility to ping a set of addresses with ICMP echo, UDP, and + TCP-ack probes + - throughout: + - reduce number of warnings when compiling with -Wextra + - remove rcsid from all files + +------------------------------------------------------------------- +Sat Mar 14 16:50:43 UTC 2020 - Sebastian Wagner + +- update to version 20191102b: + - scamper: + * do not dereference a null pointer when converting a tracelb node + with no IP address to a string, when generating json output. + - sc_bdrmap: + * allow the source IP address to be specified when probing with the + -S parameter. + - sc_wartsfilter: + * a new utility to select specific records from a warts file + +------------------------------------------------------------------- +Mon Jan 6 19:30:11 UTC 2020 - Sebastian Wagner + +-update to version 20191102: + * scamper + * escape hostname in json output for tracelb + * use length parameters when parsing hostname responses, from + Marianne Fletcher + * sc_bdrmap + * add a -O noalias option to tell bdrmap to not do alias resolution. + * update -C documentation in the sc_bdrmap.1 man page + * fix a memory leak of trace objects in -d traces + * print RTT in -d traces + * add an -M option to help corner cases with private and IXP addresses + * relax heuristics to allow VPs to claim routers with IP2AS when no + other router assignments can take place + * turn off analytical interface alias resolution heuristics by default + * sc_hoiho + * change -O verbose to -O debug to better reflect what it does. + * change tpa to atp to be consistent with language in paper + https://www.caida.org/~mjl/pubs/rnc.pdf + * free a malloc, pointed out by clang static analysis + * add support for reading -d 3 output, which is the format of + regular expressions provided in the data supplement: + http://data.caida.org/datasets/supplement/2019-imc-hoiho/ + * sc_uptime + * add a metadata table to be able to track metadata across sc_uptime + invocations, from Marianne Fletcher + * fix an error message when trying to create a database that + already exists. + +------------------------------------------------------------------- +Wed Sep 18 19:37:58 UTC 2019 - Sebastian Wagner + +- remove SIOCGSTAMP.patch +- update to version 20190916: + * scamper + * add a host implementation for looking up DNS records. it uses + the first nameserver it finds in /etc/resolv.conf by default. + * add an -O ptr option to tracelb. + * bugfix json output for tracelb. + * integrate patricia trie implementation into scamper hotspot + * use HAVE_SYSCTL macro to solve a compile issue on android + * include to get SIOCGSTAMP in Linux kernel > 5.2 + * add -A option to ping code to set the ack number to use in tcp + probes (or sequence number in SYN packets). do not randomly + generate sequence and ack values for each TCP ping. + * rework options handling to allow for long long values. + * set the window size in TCP probes to 65535, instead of advertising a + zero receive window. + * update configure scripts around the use of --with-privsep-dir-owner + * sc_ally: + * when outputting alias sets, conduct a canonical sort to allow for + easy diffs + * update man page because sc_ally can take more than two addresses per + line + * sc_erosprober: + * new driver to periodically probe addresses and rotate output files. + * sc_hoiho: + * new utility for holistic orthography of Internet hostname + observations. this utility is only built if --with-sc_hoiho is + passed to configure. sc_hoiho requires pcre or pcre2, which can be + controlled by passing --with-pcre or --with-pcre2 to configure. + * sc_uptime: + * add a last_tx column to state_dsts to allow for simple monitoring of + when each destination address was last probed. + * various drivers: + * handle scamper disconnections gracefully in sc_ally, + sc_filterpolicy, sc_prefixscan, sc_radargun, sc_speedtrap, + sc_tbitblind, sc_tbitpmtud, and sc_uptime + +------------------------------------------------------------------- +Tue Aug 20 19:34:08 UTC 2019 - Sebastian Wagner + +- add SIOCGSTAMP.patch for recent changes in socket.h/socketios.h + +------------------------------------------------------------------- +Sat Dec 22 22:04:19 UTC 2018 - Sebastian Wagner + +- update to version 20181219: + * scamper: + * json output format for tracelb (MDA traceroute) + * print an error message if an output file cannot be opened + * document (in warts.5) the offset variable in a warts traceroute record, + and scamper_trace_dtree_t + * use autoconf to check if X509_VERIFY_PARAM_set1_host is available, + rather than OpenSSL #defines that are not used consistently among + OpenSSL-like libraries. + * libscamperfile: + * don't crash on a zero length file, or other conditions where sf->type + is SCAMPER_FILE_NONE + sc_ally: + * fix example in manual page + * dump 3: when merging routers in a transitive closure, remove the + obsolete router from the dump list. + * if an address is repeated in the input file then complain + * sc_bdrmap: + * document -C csum in sc_bdrmap.1 + * allow duplicate prefixes in the IXP file + * add initial support for UDP paris traceroute, as an alternative + to the ICMP paris traceroute bdrmap uses by default. + * document updates in sc_bdrmap.1 + * sc_ttlexp: + * add -O noreserved + * bugfix reading from stdin, file handling + * document updates in sc_ttlexp.1 + * sc_uptime: + * add an optional -I interval parameter which controls how frequently + we want an address to be probed. add logic to exit early if we are + probing on with -I and there is a list of low-priority probing + that is not empty, so that sc_uptime can meet the probe interval. + * add the ability to expire addresses out of the database after they + have not been seen in traceroute for a while, and they do not + respond with an incrementing IPID value, with optional -E expiry + parameter. + * loading addresses into the state database is now a separate step (-a) + * add a -c option to create and initialise a database file + * add do-not-probe support + * replace import code that used a row for each sample with a blob that + stores multiple samples per blob. + * report some measure of progress on import + * build monotonic sequences which allow patterns in responses to be + more easily identified, so that reboots are not falsely inferred + in the cases of multiple counters, 16 bit counters, and routers + that start each sequence after a PTB with a new IPID. + * add an -O verbose to dump IPID sequences + * document updates in sc_uptime.1 + +------------------------------------------------------------------- +Sun May 6 08:20:47 UTC 2018 - sebix@sebix.at + +- update to version 20180504: + * scamper: + * increase the size of a buffer in scamper's traceroute json + creation to reduce chance of truncation. + * print the number of probes sent by traceroute in the json + output. + * enforce a minimum firsthop value of 1 when reading a warts + traceroute object. + * sc_bdrmap: + * choose a static ICMP checksum value when using Paris traceroute + to reduce churn in observed topology in bdrmap output. + * add ability to pass list of ASes to -d traces to see + traceroutes towards specific ASes, useful for understanding + bdrmap inferences. + +------------------------------------------------------------------- +Thu Mar 8 19:36:27 UTC 2018 - sebix@sebix.at + +- update to version 20180309: + * sc_*: + * For the utilities (sc_*) that read input files, do not allocate + memory to hold the entire input file in memory before parsing + the file. This improvement affects sc_ally, sc_attach, + sc_bdrmap, sc_filterpolicy, sc_radargun, sc_speedtrap, + sc_tbitblind, sc_tbitpmtud, sc_uptime, sc_warts2text. + * sc_tbitpmtud: + * add scamper driver from IMC2010 paper to collect data on webserver + responsiveness to ICMP packet too big messages, and perform + rudimentary analysis of collected data. + * sc_ttlexp: + * new utility to dump source addresses from ICMP TTL expired + messages in warts files. + * sc_wartsfix: + * add a manual page + * sc_warts2csv: + * add a manual page + +------------------------------------------------------------------- +Mon Dec 4 08:40:18 UTC 2017 - sebix@sebix.at + +- remove new-openssl.patch, included upstream +- update to version 20171204: + - scamper: + * add a blind-fin tbit test, which tests receiver behavior to TCP FIN + packets which could have come from an off-path attacker. + - sc_radargun: + * add -d 2 option, which dumps interface IP-ID behavior classifications. + +------------------------------------------------------------------- +Thu Nov 30 21:22:24 UTC 2017 - sebix@sebix.at + +- add patch new-openssl.patch to compile with new openssl versions + +------------------------------------------------------------------- +Thu Aug 24 06:58:41 UTC 2017 - sebix@sebix.at + +- update to version 20170822 + scamper: + * replace recursive versions of some functions with iterative versions. + * add cycle-start and cycle-stop json record implementations. + * fix traceroute json record: the hop transmit time value it reported + was junk. + * add support for sending json over the control socket. use + "attach format json" to get this mode; "attach" by itself still + returns uuencoded warts. Initial patch supplied by Young Hyun. + * fix possible memory leaks detected with static analysis. + * quality assurance on research paper cites in manual pages. + * spelling errors noticed by Iain R. Learmonth. + + sc_ally: + * add feature to dump inferred aliases from the collected data. + + sc_speedtrap: + * add threaded implementation of pairwise comparison to form candidate + alias sets, if pthreads are detected at compilation time and + --disable-threads configure option is not supplied. + + sc_uptime: + * new scamper driver to infer IPv6 device reboot windows if the device + returns an incrementing identifier field in the IPv6 fragmentation + header. the driver is not built by default, as it expects sqlite3. + use --with-sc_uptime configure option to build. + https://www.caida.org/~mjl/pubs/spf.pdf + +------------------------------------------------------------------- +Thu Jun 22 20:47:31 UTC 2017 - sebix@sebix.at + +- update to 20161204a + * More fixes to libscamperfile caught with fuzz testing. corrupt + warts files provided by Greg Ward of Dyn + * if targets or commands are specified in a file, and that file + ends after all probing of commands in that file has completed, + finish the source, allowing scamper to exit. this scenario is + most likely when stdin is the input file. Reported by Alex + Colvin of Dyn + * use select/poll/epoll/kqueue to look for read events on stdin files + * malloc enough memory for a prefix6_t in the prefixtree code. reported + by Sebastian Wagner via gcc7. only sc_bdrmap uses that code + * increase size of string buffers for some ping and trace fields for text + output to silence gcc7 warning. + * allow source IP address to be null when outputting a trace with json + * update sc_tbitblind.1 man page to show correct use of scamper's IPFW + firewall support, which changed in the 20161204 release + * fix unlikely unaligned access when computing checksums with IPv6 + addresses + +------------------------------------------------------------------- +Wed Jun 21 20:20:18 UTC 2017 - sebix@sebix.at + +- update to 20161204 + * add remote control socket support to scamper. scamper can be + configured to connect to a remote controller at run time to + allow remote systems to control a scamper instance. the + remote controller is handled by the sc_remoted utility, and + is documented in the sc_remoted manual page (see below). + * fixes to libscamperfile caught with fuzz testing. corrupt + warts data files provided by Greg Ward of Dyn. + * add a PATRICIA trie implementation based off Sedgewick's + Algorithms in C++ book. this improves the performance + of scamper compared to holding addresses in splaytrees. + * improve speed of warts(5) code. + * improve speed of scamper_writebuf by allocating pagesize blocks + at a time. + * begin to document ping warts records in warts(5). + * fix debug printf implementation so that all features will + be built in as long as --without-debugfile is not used. + backported to 20141211g. + * silence compiler warnings from Microsoft Visual Studio. + backported to 20141211g. + * sc_prefixscan: + * add a utility, sc_prefixscan, that provides a convenient + interface to scamper's prefixscan alias resolution method. + https://www.caida.org/tools/measurement/scamper/man/sc_prefixscan.1.pdf + * sc_radargun: + * add a utility, sc_radargun, that provides a convenient + interface to scamper's radargun implementation. + https://www.caida.org/tools/measurement/scamper/man/sc_radargun.1.pdf + * sc_remoted: + * add a utility, sc_remoted, that provides an interface to a + collection of remote scamper instances. + https://www.caida.org/tools/measurement/scamper/man/sc_remoted.1.pdf + * sc_ally: + * use writebufs so sc_ally is event driven and will not block. + * add code to probe candidate sets in pairs, with transitive + closure to save probes. + * allow inter-probe gaps of less than 1 second. + * sc_attach: + * add support for remote control sockets. + * add an option to randomise the order tasks are run. + * sc_speedtrap: + * stricter default test for inferring if two IP addresses may + share a single shared counter. + backported to 20141211g. + * code cleanup. + * sc_warts2json + * add support for printing ICMP extensions included in traceroute + responses, prompted by Quirin Scheitle + +------------------------------------------------------------------- +Sat Oct 8 19:30:55 UTC 2016 - mardnh@gmx.de + +- update to version 20141211e + - upstream does not provide a changelog + +------------------------------------------------------------------- +Sun Aug 21 18:29:06 UTC 2016 - mardnh@gmx.de + +- moved man3/* from lib- to -devel subpackage +- removed useless provides from libscamperfile0 + +------------------------------------------------------------------- +Wed Aug 17 17:49:53 UTC 2016 - mardnh@gmx.de + +- initial package, version 20141211e + diff --git a/scamper.spec b/scamper.spec new file mode 100644 index 0000000..0e6c729 --- /dev/null +++ b/scamper.spec @@ -0,0 +1,159 @@ +# +# spec file for package scamper +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2016, Martin Hauke +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: scamper +Version: 20241112 +Release: 0 +Summary: Parallel Internet measurement utility +License: GPL-2.0-only +Group: Productivity/Networking/Diagnostic +URL: https://www.caida.org/catalog/software/scamper/ +Source: https://www.caida.org/tools/measurement/%{name}/code/%{name}-cvs-%{version}.tar.gz +BuildRequires: libopenssl-devel +# for the Python module +BuildRequires: python3 +BuildRequires: python3-Cython +# for sc_uptime +BuildRequires: pkgconfig(sqlite3) +# for sc_hoiho +BuildRequires: pkgconfig(libpcre2-8) +#BuildRequires: pkgconfig(libpcre) + +%description +Scamper is a program that is able to conduct Internet measurement +tasks to large numbers of IPv4 and IPv6 addresses, in parallel, to +fill a specified packets-per-second rate. Currently, it supports the +well-known ping and traceroute techniques, as well as MDA traceroute, +alias resolution, some parts of tbit, sting, and neighbour discovery. + +Scamper can do ICMP-based Path MTU discovery. scamper starts with the +outgoing interface's MTU and discovers the location of Path MTU +bottlenecks. scamper performs a PMTUD search when an ICMP +fragmentation required message is not returned to establish the PMTU +to the next point in the network, followed by a TTL limited search to +infer where the failure appears to occur. + +This also contains the Python module. + +%package -n libscamperfile9 +Summary: File access library for scamper's binary dump format +Group: System/Libraries + +%description -n libscamperfile9 +Scamper is a program that is able to conduct Internet measurement +tasks to large numbers of IPv4 and IPv6 addresses, in parallel, to +fill a specified packets-per-second rate. Currently, it supports the +well-known ping and traceroute techniques, as well as MDA traceroute, +alias resolution, some parts of tbit, sting, and neighbour discovery. + +This package contains the library that provides access to the binary output +files that scamper can produce in certain modes. + +%package -n libscamperfile-devel +Summary: Development headers for scamper's binary dump file access library +Group: Development/Libraries/Other +Requires: libscamperfile9 = %{version}-%{release} + +%description -n libscamperfile-devel +Scamper is a program that is able to conduct Internet measurement +tasks to large numbers of IPv4 and IPv6 addresses, in parallel, to +fill a specified packets-per-second rate. Currently, it supports the +well-known ping and traceroute techniques, as well as MDA traceroute, +alias resolution, some parts of tbit, sting, and neighbour discovery. + +This package contains development headers and other ancillary files for the +libscamperfile library. + +%package -n libscamperctrl2 +Summary: Control library for scamper +Group: System/Libraries +Obsoletes: libscamperctl1 < %{version} + +%description -n libscamperctrl2 +Scamper is a program that is able to conduct Internet measurement +tasks to large numbers of IPv4 and IPv6 addresses, in parallel, to +fill a specified packets-per-second rate. Currently, it supports the +well-known ping and traceroute techniques, as well as MDA traceroute, +alias resolution, some parts of tbit, sting, and neighbour discovery. + +This package contains thee library that provides functions to interact +with a collection of scamper instances. + +%package -n libscamperctrl-devel +Summary: Development headers for scamper's control library +Group: Development/Libraries/Other +Requires: libscamperctrl2 = %{version}-%{release} + +%description -n libscamperctrl-devel +Scamper is a program that is able to conduct Internet measurement +tasks to large numbers of IPv4 and IPv6 addresses, in parallel, to +fill a specified packets-per-second rate. Currently, it supports the +well-known ping and traceroute techniques, as well as MDA traceroute, +alias resolution, some parts of tbit, sting, and neighbour discovery. + +This package contains development headers and other ancillary files for the +libscamperctrl library. + +%prep +%setup -q -n %{name}-cvs-%{version} + +%build +export PYTHON=%{_bindir}/python3 +# disabled --with-pcre2 build since 20240229 because of build failure. Reported upstream +%configure --disable-static --disable-debug-file --enable-sc_uptime --with-python --enable-tests --enable-scamper-ring +make %{?_smp_mflags} + +%install +%make_install +find %{buildroot} -type f -name "*.la" -delete -print + +%check +pushd tests +make %{?_smp_mflags} +popd + +%post -n libscamperfile9 -p /sbin/ldconfig +%post -n libscamperctrl2 -p /sbin/ldconfig +%postun -n libscamperfile9 -p /sbin/ldconfig +%postun -n libscamperctrl2 -p /sbin/ldconfig + +%files +%license COPYING +%{_bindir}/sc_* +%{_bindir}/scamper +%{_mandir}/man1/* +%{_mandir}/man5/* +%{python3_sitelib}/scamper.so + +%files -n libscamperfile9 +%{_libdir}/libscamperfile.so.* + +%files -n libscamperfile-devel +%{_includedir}/scamper_* +%{_libdir}/libscamperfile.so +%{_mandir}/man3/* + +%files -n libscamperctrl2 +%{_libdir}/libscamperctrl.so.* + +%files -n libscamperctrl-devel +%{_includedir}/libscamperctrl.h +%{_libdir}/libscamperctrl.so + +%changelog