Compare commits

..

No commits in common. "c9-beta" and "c10s" have entirely different histories.

12 changed files with 332 additions and 547 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/scapy-2.6.1.tar.gz
/scapy-*.tar.gz

View File

@ -1 +0,0 @@
9f35faf56a17641fa457972c8ca9723b38435e33 SOURCES/scapy-2.6.1.tar.gz

View File

@ -1,158 +0,0 @@
diff -u --recursive scapy-2.6.1-vanilla/setup.py scapy-2.6.1/setup.py
--- scapy-2.6.1-vanilla/setup.py 2019-08-04 11:12:30.000000000 -0500
+++ scapy-2.6.1/setup.py 2021-03-11 13:30:35.033061720 -0600
@@ -1,28 +1,19 @@
#! /usr/bin/env python
"""
-Setuptools setup file for Scapy.
+Distutils setup file for Scapy.
"""
-import io
-import os
-import sys
-
-if sys.version_info[0] <= 2:
- raise OSError("Scapy no longer supports Python 2 ! Please use Scapy 2.5.0")
-
try:
- from setuptools import setup
- from setuptools.command.sdist import sdist
- from setuptools.command.build_py import build_py
+ from setuptools import setup, find_packages
except:
raise ImportError("setuptools is required to install scapy !")
+import io
+import os
def get_long_description():
- """
- Extract description from README.md, for PyPI's usage
- """
+ """Extract description from README.md, for PyPI's usage"""
def process_ignore_tags(buffer):
return "\n".join(
x for x in buffer.split("\n") if "<!-- ignore_ppi -->" not in x
@@ -38,52 +29,76 @@
return None
-# Note: why do we bother including a 'scapy/VERSION' file and doing our
-# own versioning stuff, instead of using more standard methods?
-# Because it's all garbage.
-
-# If you remain fully standard, there's no way
-# of adding the version dynamically, even less when using archives
-# (currently, we're able to add the version anytime someone exports Scapy
-# on github).
-
-# If you use setuptools_scm, you'll be able to have the git tag set into
-# the wheel (therefore the metadata), that you can then retrieve using
-# importlib.metadata, BUT it breaks sdist (source packages), as those
-# don't include metadata.
-
-
-def _build_version(path):
- """
- This adds the scapy/VERSION file when creating a sdist and a wheel
- """
- fn = os.path.join(path, 'scapy', 'VERSION')
- with open(fn, 'w') as f:
- f.write(__import__('scapy').VERSION)
-
-
-class SDist(sdist):
- """
- Modified sdist to create scapy/VERSION file
- """
- def make_release_tree(self, base_dir, *args, **kwargs):
- super(SDist, self).make_release_tree(base_dir, *args, **kwargs)
- # ensure there's a scapy/VERSION file
- _build_version(base_dir)
-
-
-class BuildPy(build_py):
- """
- Modified build_py to create scapy/VERSION file
- """
- def build_package_data(self):
- super(BuildPy, self).build_package_data()
- # ensure there's a scapy/VERSION file
- _build_version(self.build_lib)
-
+# https://packaging.python.org/guides/distributing-packages-using-setuptools/
setup(
- cmdclass={'sdist': SDist, 'build_py': BuildPy},
+ name='scapy',
+ version=__import__('scapy').VERSION,
+ packages=find_packages(),
data_files=[('share/man/man1', ["doc/scapy.1"])],
+ package_data={
+ 'scapy': ['VERSION'],
+ },
+ # Build starting scripts automatically
+ entry_points={
+ 'console_scripts': [
+ 'scapy = scapy.main:interact'
+ ]
+ },
+ python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4',
+ # pip > 9 handles all the versioning
+ extras_require={
+ 'basic': ["ipython"],
+ 'complete': [
+ 'ipython',
+ 'pyx',
+ 'cryptography>=2.0',
+ 'matplotlib'
+ ],
+ 'docs': [
+ 'sphinx>=3.0.0',
+ 'sphinx_rtd_theme>=0.4.3',
+ 'tox>=3.0.0'
+ ]
+ },
+ # We use __file__ in scapy/__init__.py, therefore Scapy isn't zip safe
+ zip_safe=False,
+
+ # Metadata
+ author='Philippe BIONDI',
+ author_email='phil(at)secdev.org',
+ maintainer='Pierre LALET, Gabriel POTTER, Guillaume VALADON',
+ description='Scapy: interactive packet manipulation tool',
long_description=get_long_description(),
long_description_content_type='text/markdown',
+ license='GPL-2.0-only',
+ url='https://scapy.net',
+ project_urls={
+ 'Documentation': 'https://scapy.readthedocs.io',
+ 'Source Code': 'https://github.com/secdev/scapy/',
+ },
+ download_url='https://github.com/secdev/scapy/tarball/master',
+ keywords=["network"],
+ classifiers=[
+ "Development Status :: 5 - Production/Stable",
+ "Environment :: Console",
+ "Intended Audience :: Developers",
+ "Intended Audience :: Information Technology",
+ "Intended Audience :: Science/Research",
+ "Intended Audience :: System Administrators",
+ "Intended Audience :: Telecommunications Industry",
+ "License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
+ "Programming Language :: Python :: 2",
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.4",
+ "Programming Language :: Python :: 3.5",
+ "Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Topic :: Security",
+ "Topic :: System :: Networking",
+ "Topic :: System :: Networking :: Monitoring",
+ ]
)

View File

@ -1,387 +0,0 @@
Name: scapy
Version: 2.6.1
Release: 1%{?dist}
Summary: Interactive packet manipulation tool and network scanner
License: GPLv2
URL: http://www.secdev.org/projects/scapy/
Source0: https://github.com/secdev/scapy/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch1: scapy-2.6.1-setup-py.patch
%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
# 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 0%{?with_python2}
BuildRequires: python2-devel
BuildRequires: python2-setuptools
%endif
%if 0%{?with_python3}
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-setuptools
%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 0%{?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 0%{?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 0%{?with_doc}
%package doc
Summary: Interactive packet manipulation tool and network scanner
BuildRequires: python%{python3_pkgversion}-sphinx
BuildRequires: python%{python3_pkgversion}-sphinx_rtd_theme
%if 0%{?with_python2}
BuildRequires: python2-tox
%endif
%if 0%{?with_python3}
BuildRequires: python%{python3_pkgversion}-tox
%endif
%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 0%{?with_python2}
%py2_build
%endif
%if 0%{?with_python3}
%py3_build
%endif
%if 0%{?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
popd
%endif
%install
install -dp -m0755 %{buildroot}%{_mandir}/man1
install -Dp -m0644 doc/scapy.1* %{buildroot}%{_mandir}/man1/
%if 0%{?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 ! 0%{?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 0%{?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 0%{?with_python2}
%files -n python2-%{name}
%license LICENSE
%if ! 0%{?with_python3}
%doc %{_mandir}/man1/scapy.1*
%{_bindir}/scapy
%endif
%{_bindir}/scapy2
%{python2_sitelib}/scapy/
%{python2_sitelib}/scapy-*.egg-info
%endif
%if 0%{?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 0%{?with_doc}
%files doc
%doc doc/scapy/_build_doc/html
%endif
%changelog
* Thu Dec 05 2024 Andrea Claudi <aclaudi@redhat.com> - 2.6.1-1.el9
- New version 2.6.1 (Andrea Claudi) [RHEL-657]
* Fri Jun 23 2023 Andrea Claudi <aclaudi@redhat.com> - 2.5.0-1.el9
- Don't package scapy tests (Andrea Claudi)
- Fix scapy compliance with pep-0440 (Andrea Claudi) [2162667]
- New version 2.5.0 (Andrea Claudi) [RHEL-657]
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 2.4.4-5
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Jul 23 2021 Andrea Claudi <aclaudi@redhat.com> - 2.4.4-4.el9
- Don't build scapy-doc package on rhel (Andrea Claudi) [1973720]
- Enable gating test on RHEL9 (Jianwen Ji) [1974642]
* Mon May 31 2021 Miro Hrončok <mhroncok@redhat.com> - 2.4.4-3
- Drop build dependency on tox
- Resolves: rhbz#1956399
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.4.4-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Fri Mar 12 2021 Michal Ambroz <rebus _AT seznam.cz> - 2.4.4-1
- bump to 2.4.4 release
* Thu Mar 11 2021 W. Michael Petullo <mike@flyn.org> - 2.4.3-8
- Patch to fix loading libc.a; see https://bugs.python.org/issue42580
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 2.4.3-5
- Rebuilt for Python 3.9
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Nov 08 2019 Michal Ambroz <rebus _AT seznam.cz> - 2.4.3-3
- remove colliding manpage from python2 package
- add license files
- add doc subpackage
- remove shebangs
* Sun Oct 06 2019 Michal Ambroz <rebus _AT seznam.cz> - 2.4.3-2
- change to recommended python build dependencies for EPEL7 - thanks Miro Hroncok
* Thu Sep 26 2019 Michal Ambroz <rebus _AT seznam.cz> - 2.4.3-1
- bump to 2.4.3 release
- change the python2 to conditional build to be able to keep one spec for all
- add Recommends for dependencies, except for EPEL7
* Fri Sep 20 2019 Miro Hrončok <mhroncok@redhat.com> - 2.4.0-8
- Subpackage python2-scapy has been removed
See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2.4.0-7
- Rebuilt for Python 3.8
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.4.0-3
- Rebuilt for Python 3.7
* Mon Apr 30 2018 Michal Ambroz <rebus _AT seznam.cz> - 2.4.0-2
- disable the test for now - there is too many failing (network) tests
* Mon Apr 30 2018 Michal Ambroz <rebus _AT seznam.cz> - 2.4.0-1
- bump to 2.4.0 release
* Fri Mar 9 2018 Michal Ambroz <rebus _AT seznam.cz> - 2.4.0-0.rc5.1
- bump to upstream 2.4.0 release candidate 5
- enable separate python3 and python2 build
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jan 31 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.3.3-3
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue May 23 2017 Michal Ambroz <rebus _AT seznam.cz> - 2.3.3-1
- bump to upstream 2.3.3
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.1-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Sat Dec 26 2015 Sven Lankes <athmane@fedoraproject.org> - 2.3.1-1
- update to latest upstream release (2.3.1)
- Update to 2.3.1
- Remove upstreamed patch
- Some spec fixes
- Thanks to Athmane Madjoudj for the patch
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Oct 02 2014 Lubomir Rintel <lkundrak@v3.sk> - 2.2.0-5
- Fix psdump()/pdfdump()
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Sun Jul 22 2012 Sven Lankes <sven@lank.es> - 2.2.0-1
- Update to Scapy 2.2.0
- Fixes rhbz #788659 - thanks to Thiébaud Weksteen
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0.10-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0.10-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0.10-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.0.0.10-4
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Mon Dec 22 2008 Devan Goodwin <dgoodwin@dangerouslyinc.com> 2.0.0.10-1
- Update to Scapy 2.0.0.10.
* Sun Dec 07 2008 Devan Goodwin <dgoodwin@dangerouslyinc.com> 2.0.0.9-2
- Update for Scapy 2.0.0.9.
* Tue Jan 22 2008 Devan Goodwin <dgoodwin@dangerouslyinc.com> 1.1.1-4
- Switch to using rm macro.
* Mon Jan 21 2008 Devan Goodwin <dgoodwin@dangerouslyinc.com> 1.1.1-2
- Spec file cleanup.
* Fri Jan 18 2008 Devan Goodwin <dgoodwin@dangerouslyinc.com> 1.1.1-1
- Initial packaging for Fedora.

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -0,0 +1,18 @@
# HG changeset patch
# User Jean-Michel <jean-michel.picod@cassidian.com>
# Date 1400096697 -7200
# Node ID 3bd59a1a75ff4a96e3f549840d27fe707d9f7b8c
# Parent 6dd464d5ac302325e9e06f9ee2cf1d8e81637554
Adding missing import for psdump() and pdfdump() methods
diff --git a/scapy/packet.py b/scapy/packet.py
--- a/scapy/packet.py
+++ b/scapy/packet.py
@@ -15,6 +15,7 @@
from volatile import VolatileValue
from utils import import_hexcap,tex_escape,colgen,get_temp_file
from error import Scapy_Exception,log_runtime
+import subprocess
try:
import pyx

View File

@ -0,0 +1,24 @@
# HG changeset patch
# User Lubomir Rintel <lkundrak@v3.sk>
# Date 1411237938 -7200
# Node ID 0ce553161b799e9dc91f63de73dfdb0f50360056
# Parent ac04713bb61839a3476b72118e3d1c3ce5c81e86
Do not default to acroread and gv
They are not very likely to be present nowadays. Default to user's preferred
application instead.
diff --git a/scapy/config.py b/scapy/config.py
--- a/scapy/config.py
+++ b/scapy/config.py
@@ -56,8 +56,8 @@
class ProgPath(ConfClass):
- pdfreader = "acroread"
- psreader = "gv"
+ pdfreader = "xdg-open"
+ psreader = "xdg-open"
dot = "dot"
display = "display"
tcpdump = "tcpdump"

View File

@ -0,0 +1,23 @@
https://github.com/secdev/scapy/commit/0c3d5e417bbd923c4729d15572c3d693d58aff81.patch
From 0c3d5e417bbd923c4729d15572c3d693d58aff81 Mon Sep 17 00:00:00 2001
From: Gabriel <gabriel@potter.fr>
Date: Wed, 21 Aug 2019 18:18:14 +0800
Subject: [PATCH] Small Python 2 fix
---
scapy/tools/generate_ethertypes.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scapy/tools/generate_ethertypes.py b/scapy/tools/generate_ethertypes.py
index 5bc5cdf98..47c38c4f9 100644
--- a/scapy/tools/generate_ethertypes.py
+++ b/scapy/tools/generate_ethertypes.py
@@ -20,7 +20,7 @@
with urllib.request.urlopen(URL) as stream:
DATA = stream.read()
-reg = rb".*ETHERTYPE_([^\s]+)\s.0x([0-9A-Fa-f]+).*\/\*(.*)\*\/"
+reg = br".*ETHERTYPE_([^\s]+)\s.0x([0-9A-Fa-f]+).*\/\*(.*)\*\/"
COMPILED = b"""#
# Ethernet frame types
# This file describes some of the various Ethernet

12
scapy-2.4.3-libc.patch Normal file
View File

@ -0,0 +1,12 @@
diff -u --recursive scapy-2.4.3-vanilla/scapy/arch/bpf/core.py scapy-2.4.3/scapy/arch/bpf/core.py
--- scapy-2.4.3-vanilla/scapy/arch/bpf/core.py 2019-08-04 11:12:30.000000000 -0500
+++ scapy-2.4.3/scapy/arch/bpf/core.py 2021-03-11 13:30:35.033061720 -0600
@@ -28,7 +28,7 @@
# ctypes definitions
-LIBC = cdll.LoadLibrary(find_library("libc"))
+LIBC = cdll.LoadLibrary(find_library("c"))
LIBC.ioctl.argtypes = [c_int, c_ulong, c_char_p]
LIBC.ioctl.restype = c_int

231
scapy.spec Normal file
View File

@ -0,0 +1,231 @@
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

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (scapy-2.5.0.tar.gz) = 4e5cacff0bbf6fd991ea24f4680049d042082fae4b349c8082078e6f01b38c09bb5c8276bfba15d4a88a1eb5af92c505848ec98556b10eecbd803f134a5b244a
SHA512 (scapy-2.6.1.tar.gz) = 4ab02f5b9dfcf329ee4f4837655066227b1e162e695d6cbe84ada4e2ff44589462a9843b0f16699ec974dcf6e0a81af3c5b088ceac48a679e9591f4cec0eedc8

15
tests/tests.yml Normal file
View File

@ -0,0 +1,15 @@
# Tests for scapy
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-source
- role: standard-test-basic
required_packages:
- python3-pip
tests:
- install-tox-mock:
run: pip3 install tox mock
- smoke-test:
dir: ./source/test/
run: chmod +x ./run_tests && bash ./run_tests -t fields.uts