scamper/scamper.spec
Dirk Mueller eee3abab7c - 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.

OBS-URL: https://build.opensuse.org/package/show/network:utilities/scamper?expand=0&rev=64
2024-03-16 19:38:49 +00:00

159 lines
5.8 KiB
RPMSpec

#
# spec file for package scamper
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2016, Martin Hauke <mardnh@gmx.de>
#
# 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: 20240229
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-Cython0
# for sc_uptime
BuildRequires: pkgconfig(sqlite3)
# for sc_hoiho
BuildRequires: pkgconfig(libpcre2-8)
%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 libscamperfile8
Summary: File access library for scamper's binary dump format
Group: System/Libraries
Obsoletes: libscamperfile1 < %{version}
Obsoletes: libscamperfile2 < %{version}
Obsoletes: libscamperfile3 < %{version}
Obsoletes: libscamperfile4 < %{version}
Obsoletes: libscamperfile5 < %{version}
Obsoletes: libscamperfile6 < %{version}
%description -n libscamperfile8
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: libscamperfile8 = %{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
%configure --disable-static --without-debugfile --with-pcre2 --enable-sc_hoiho --enable-sc_uptime --with-python
make %{?_smp_mflags}
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%post -n libscamperfile8 -p /sbin/ldconfig
%post -n libscamperctrl2 -p /sbin/ldconfig
%postun -n libscamperfile8 -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 libscamperfile8
%{_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