* Tue Jan 14 2025 Andrea Claudi <aclaudi@redhat.com> - 2.6.1-1.el10 - New version 2.6.1 (Andrea Claudi) [RHEL-73919] - Fix source link layer address for ipv6 neigh solicitation [RHEL-73918] Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
232 lines
5.4 KiB
RPMSpec
232 lines
5.4 KiB
RPMSpec
Name: scapy
|
|
Version: 2.6.1
|
|
Release: 1%{?dist}
|
|
Summary: Interactive packet manipulation tool and network scanner
|
|
|
|
%global gituser secdev
|
|
%global gitname scapy
|
|
%global commit 95ba5b8504152a1f820bbe679ccf03668cb5118f
|
|
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
|
|
|
License: GPL-2.0-only
|
|
URL: https://scapy.net/
|
|
#was http://www.secdev.org/projects/scapy/
|
|
VCS: https://github.com/secdev/scapy
|
|
# https://github.com/secdev/scapy/releases
|
|
# https://bitbucket.org/secdev/scapy/pull-request/80
|
|
# https://scapy.readthedocs.io/en/latest/introduction.html
|
|
Source0: https://github.com/%{gituser}/%{gitname}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
|
|
%global common_desc %{expand:
|
|
Scapy is a powerful interactive packet manipulation program built on top
|
|
of the Python interpreter. It can be used to forge or decode packets of
|
|
a wide number of protocols, send them over the wire, capture them, match
|
|
requests and replies, and much more.}
|
|
|
|
|
|
# By default build with python3 subpackage
|
|
%bcond_without python3
|
|
|
|
# Build also the python2 package on releases up to fc31 and rhel8
|
|
%if (0%{?fedora} && 0%{?fedora} <= 31 ) || ( 0%{?rhel} && 0%{?rhel} <= 8 )
|
|
%bcond_without python2
|
|
%else
|
|
%bcond_with python2
|
|
%endif
|
|
|
|
# By default build the documentation only on Fedora due to cc-by-nc-sa license
|
|
%if 0%{?fedora}
|
|
%bcond_without doc
|
|
%else
|
|
%bcond_with doc
|
|
%endif
|
|
|
|
|
|
|
|
|
|
BuildArch: noarch
|
|
|
|
BuildRequires: make
|
|
BuildRequires: sed
|
|
|
|
%if %{with python2}
|
|
BuildRequires: python2-devel
|
|
BuildRequires: python2-setuptools
|
|
%if %{with doc}
|
|
BuildRequires: python2-tox
|
|
%endif
|
|
%endif
|
|
|
|
%if %{with python3}
|
|
BuildRequires: python%{python3_pkgversion}-devel
|
|
BuildRequires: python%{python3_pkgversion}-setuptools
|
|
%if %{with doc}
|
|
BuildRequires: python%{python3_pkgversion}-tox
|
|
%endif
|
|
%endif
|
|
|
|
# Recommends only supported on fedora and rhel8+
|
|
%if (0%{?fedora}) || ( 0%{?rhel} && 0%{?rhel} >= 8 )
|
|
Recommends: tcpdump
|
|
# Using database of manufactures /usr/share/wireshark/manuf
|
|
Recommends: wireshark-cli
|
|
%endif
|
|
|
|
%description %{common_desc}
|
|
|
|
%if %{with python2}
|
|
%package -n python2-%{name}
|
|
Summary: Interactive packet manipulation tool and network scanner
|
|
|
|
%{?python_provide:%python_provide python2-%{name}}
|
|
|
|
%if (0%{?fedora}) || ( 0%{?rhel} && 0%{?rhel} >= 8 )
|
|
Recommends: python2-pyx
|
|
Recommends: python2-matplotlib
|
|
Recommends: ipython2
|
|
%endif
|
|
|
|
%description -n python2-%{name}
|
|
%{common_desc}
|
|
|
|
%endif
|
|
|
|
|
|
%if %{with python3}
|
|
%package -n python%{python3_pkgversion}-%{name}
|
|
Summary: Interactive packet manipulation tool and network scanner
|
|
|
|
%{?python_provide:%python_provide python%{python3_pkgversion}-%{name}}
|
|
Provides: %{name} = %{version}-%{release}
|
|
|
|
%if (0%{?fedora}) || ( 0%{?rhel} && 0%{?rhel} >= 8 )
|
|
Recommends: PyX
|
|
Recommends: python%{python3_pkgversion}-matplotlib
|
|
Recommends: ipython3
|
|
%endif
|
|
|
|
%description -n python%{python3_pkgversion}-%{name}
|
|
%{common_desc}
|
|
%endif
|
|
|
|
%if %{with doc}
|
|
%package doc
|
|
Summary: Interactive packet manipulation tool and network scanner
|
|
License: CC-BY-NC-SA-2.5
|
|
|
|
BuildRequires: python%{python3_pkgversion}-sphinx
|
|
BuildRequires: python%{python3_pkgversion}-sphinx_rtd_theme
|
|
|
|
%description doc
|
|
%{common_desc}
|
|
%endif
|
|
|
|
|
|
|
|
%prep
|
|
%autosetup -p 1 -n %{name}-%{version}
|
|
|
|
# Remove shebang
|
|
# https://github.com/secdev/scapy/pull/2332
|
|
SHEBANGS=$(find ./scapy -name '*.py' -print | xargs grep -l -e '^#!.*env python')
|
|
for FILE in $SHEBANGS ; do
|
|
sed -i.orig -e 1d "${FILE}"
|
|
touch -r "${FILE}.orig" "${FILE}"
|
|
rm "${FILE}.orig"
|
|
done
|
|
|
|
|
|
|
|
%build
|
|
%if %{with python2}
|
|
%py2_build
|
|
%endif
|
|
|
|
%if %{with python3}
|
|
%py3_build
|
|
%endif
|
|
|
|
%if %{with doc}
|
|
make -C doc/scapy html BUILDDIR=_build_doc SPHINXBUILD=sphinx-build-%python3_version
|
|
|
|
rm -f doc/scapy/_build_doc/html/.buildinfo
|
|
rm -f doc/scapy/_build_doc/html/_static/_dummy
|
|
%endif
|
|
|
|
|
|
|
|
%install
|
|
install -dp -m0755 %{buildroot}%{_mandir}/man1
|
|
install -Dp -m0644 doc/scapy.1* %{buildroot}%{_mandir}/man1/
|
|
|
|
%if %{with python2}
|
|
%py2_install
|
|
rm -f %{buildroot}%{python2_sitelib}/*egg-info/requires.txt
|
|
|
|
|
|
# Rename the executables
|
|
mv -f %{buildroot}%{_bindir}/scapy %{buildroot}%{_bindir}/scapy2
|
|
|
|
%if ! %{with python3}
|
|
# Link the default to the py2 version of executables if py3 not built
|
|
ln -s %{_bindir}/scapy2 %{buildroot}%{_bindir}/scapy
|
|
%endif
|
|
%endif
|
|
|
|
%if %{with python3}
|
|
%py3_install
|
|
rm -f %{buildroot}%{python3_sitelib}/*egg-info/requires.txt
|
|
|
|
# Rename the executables
|
|
mv -f %{buildroot}%{_bindir}/scapy %{buildroot}%{_bindir}/scapy3
|
|
|
|
# Link the default to the python3 version of executables
|
|
ln -s %{_bindir}/scapy3 %{buildroot}%{_bindir}/scapy
|
|
%endif
|
|
|
|
|
|
|
|
# check
|
|
# TODO: Need to fix/remove slow/failed test
|
|
# cd test/
|
|
# ./run_tests_py2 || true
|
|
# ./run_tests_py3 || true
|
|
|
|
|
|
|
|
%if %{with python2}
|
|
%files -n python2-%{name}
|
|
%license LICENSE
|
|
%if ! %{with python3}
|
|
%doc %{_mandir}/man1/scapy.1*
|
|
%{_bindir}/scapy
|
|
%endif
|
|
%{_bindir}/scapy2
|
|
%{python2_sitelib}/scapy/
|
|
%{python2_sitelib}/scapy-*.egg-info
|
|
%exclude %{python2_sitelib}/test/
|
|
%endif
|
|
|
|
|
|
|
|
%if %{with python3}
|
|
%files -n python%{python3_pkgversion}-%{name}
|
|
%license LICENSE
|
|
%doc %{_mandir}/man1/scapy.1*
|
|
%{_bindir}/scapy
|
|
%{_bindir}/scapy3
|
|
%{python3_sitelib}/scapy/
|
|
%{python3_sitelib}/scapy-*.egg-info
|
|
%exclude %{python3_sitelib}/test/
|
|
%endif
|
|
|
|
|
|
%if %{with doc}
|
|
%files doc
|
|
%doc doc/scapy/_build_doc/html
|
|
%endif
|
|
|
|
|
|
%changelog
|
|
%autochangelog
|