unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#60732] New package: python-scapy
@ 2023-01-11 16:36 Gabriel Wicki
  2023-02-20 21:21 ` [bug#60732] Review Andreas Enge
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Gabriel Wicki @ 2023-01-11 16:36 UTC (permalink / raw)
  To: 60732

Hi!

I had time to pack some more software for our favorite distro: Python
Scapy.  It's a powerful tool which allows the creation and inspection
of ethernet frames and other network traffic packets from within Python.


From f2ca7968afdc5013d78f38e47bf9bfc34af2baa0 Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <gabriel@erlikon.ch>
Date: Mon, 9 Jan 2023 16:06:20 +0100
Subject: [PATCH] gnu: Add package python-scapy

* gnu/packages/python-xyz.scm (python-scapy):  New variable.
---
 gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 32d826d3c5..7e6704f4aa 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -132,6 +132,7 @@
 ;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
 ;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1462,6 +1463,27 @@ (define-public python-psutil
 iotop, uptime, pidof, tty, taskset, pmap.")
     (license license:bsd-3)))
 
+(define-public python-scapy
+  (package
+    (name "python-scapy")
+    (version "2.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "scapy" version))
+              (sha256
+               (base32
+                "1hpbbmpcn4dwj3z7i7sz4cnbpkaf57p7mvl3p84x9n2gflmhq9jv"))))
+    (arguments
+     '(#:tests? #f)) ;no test
+    (build-system python-build-system)
+    (home-page "https://scapy.net")
+    (synopsis "Python network packet crafting library")
+    (description
+     "Scapy is a powerful interactive packet manipulation program.
+It is able to forge or decode packets of a wide number of protocols, send them
+on the wire, capture them, match requests and replies, and much more.")
+    (license license:gpl2)))
+
 (define-public python-shapely
   (package
     (name "python-shapely")
-- 
2.38.1





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#60732] Review
  2023-01-11 16:36 [bug#60732] New package: python-scapy Gabriel Wicki
@ 2023-02-20 21:21 ` Andreas Enge
  2023-02-21 17:44 ` [bug#60732] Patch update Wicki Gabriel (wicg)
  2023-03-11 22:24 ` bug#60732: Close patch Andreas Enge
  2 siblings, 0 replies; 5+ messages in thread
From: Andreas Enge @ 2023-02-20 21:21 UTC (permalink / raw)
  To: 60732

[-- Attachment #1: Type: text/plain, Size: 711 bytes --]

Hello,

attached is a patch with a slightly reworked description and commit message.
I verified the license and built the package on x86_64.

However, I am not sure about the tests; there is a subdirectory "test",
but it is apparently not run by the standard procedure. Maybe it is not
meant to be an automatic test?

Then scapy.egg-info/requires.txt contains this:
[basic]
ipython

[complete]
ipython
pyx
cryptography>=2.0
matplotlib

[docs]
sphinx>=3.0.0
sphinx_rtd_theme>=0.4.3
tox>=3.0.0

So it looks like there are a number of propagated- and native-inputs that
are missing. It would be good if someone could build and try the package.
Someone who knows Python is needed, I give the task back :)

Andreas


[-- Attachment #2: 0001-gnu-Add-python-scapy.patch --]
[-- Type: text/plain, Size: 2057 bytes --]

From cc5e2cb341ae80c87f54fe0854ae8f5bc05a2a68 Mon Sep 17 00:00:00 2001
Message-Id: <cc5e2cb341ae80c87f54fe0854ae8f5bc05a2a68.1676927790.git.andreas@enge.fr>
From: Gabriel Wicki <gabriel@erlikon.ch>
Date: Mon, 9 Jan 2023 16:06:20 +0100
Subject: [PATCH] gnu: Add python-scapy.

* gnu/packages/python-xyz.scm (python-scapy): New variable.
---
 gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 71a52a7ad8..af481fb9eb 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -132,6 +132,7 @@
 ;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
 ;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1453,6 +1454,30 @@ (define-public python-psutil
 iotop, uptime, pidof, tty, taskset, pmap.")
     (license license:bsd-3)))
 
+(define-public python-scapy
+  (package
+    (name "python-scapy")
+    (version "2.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "scapy" version))
+              (sha256
+               (base32
+                "1hpbbmpcn4dwj3z7i7sz4cnbpkaf57p7mvl3p84x9n2gflmhq9jv"))))
+    (arguments
+     '(#:tests? #t)) ;no test
+    (build-system python-build-system)
+    (home-page "https://scapy.net")
+    (synopsis "Python network packet crafting library")
+    (description
+     "Scapy is a Python library and executable for interactively
+manipulating network packets.  It can forge or decode packets of a number
+of protocols, send them on the wire, capture them, store or read them
+using pcap files, match requests and replies, and so on.
+It can handle tasks such as scanning, tracerouting, probing, unit tests,
+attacks or network discovery.")
+    (license license:gpl2)))
+
 (define-public python-shapely
   (package
     (name "python-shapely")
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#60732] Patch update
  2023-01-11 16:36 [bug#60732] New package: python-scapy Gabriel Wicki
  2023-02-20 21:21 ` [bug#60732] Review Andreas Enge
@ 2023-02-21 17:44 ` Wicki Gabriel (wicg)
  2023-02-28 13:50   ` Wicki Gabriel (wicg)
  2023-03-11 22:24 ` bug#60732: Close patch Andreas Enge
  2 siblings, 1 reply; 5+ messages in thread
From: Wicki Gabriel (wicg) @ 2023-02-21 17:44 UTC (permalink / raw)
  To: 60732@debbugs.gnu.org; +Cc: andreas@enge.fr


[-- Attachment #1.1: Type: text/plain, Size: 992 bytes --]

Hi

Thank you, Andreas, for your review.

When #:tests? #t​ the following output is generated (and the build fails)
> running test
> WARNING: Testing via this command is deprecated and will be removed in a future version. Users looking for a generic test entry point independent of test runner are encouraged to use tox.

I am not sure how to achieve this using our package management system and am not sure if it would be of great gain to do so.

According to the documentation [1] ipython, matplotlib, etc are optional dependencies. I wouldn't include them per se since one can easily invoke a Guix shell providing these.

To test one can invoke a guix shell --pure python-scapy python-ipython​ and run scapy​ manually.


I have adjusted the patch, thank you for your time and effort in advance!
Please let me know if i can improve it some more!

g


1: https://scapy.readthedocs.io/en/latest/installation.html#optional-dependencies
2: https://scapy.net/




[-- Attachment #1.2: Type: text/html, Size: 5196 bytes --]

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-python-scapy.patch --]
[-- Type: text/x-patch; name="0001-gnu-Add-python-scapy.patch", Size: 2013 bytes --]

From 0575e799328f93f6c4c5afe893ae10e6e7a9ee28 Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <gabriel@erlikon.ch>
Date: Mon, 9 Jan 2023 16:06:20 +0100
Subject: [PATCH] gnu: Add python-scapy.

* gnu/packages/python-xyz.scm (python-scapy): New variable.
---
 gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 32d826d3c5..d9bee20eb8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -132,6 +132,7 @@
 ;;; Copyright © 2022 Garek Dyszel <garekdyszel@disroot.org>
 ;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr>
+;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1462,6 +1463,30 @@ (define-public python-psutil
 iotop, uptime, pidof, tty, taskset, pmap.")
     (license license:bsd-3)))
 
+(define-public python-scapy
+  (package
+    (name "python-scapy")
+    (version "2.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "scapy" version))
+              (sha256
+               (base32
+                "1hpbbmpcn4dwj3z7i7sz4cnbpkaf57p7mvl3p84x9n2gflmhq9jv"))))
+    (arguments
+     '(#:tests? #f)) ;The recommendation is to use tox for testing.
+    (build-system python-build-system)
+    (home-page "https://scapy.net")
+    (synopsis "Python network packet crafting library")
+    (description
+     "Scapy is a Python library and executable for interactively
+manipulating network packets.  It can forge or decode packets of a number
+of protocols, send them on the wire, capture them, store or read them
+using pcap files, match requests and replies, and so on.
+It can handle tasks such as scanning, tracerouting, probing, unit tests,
+attacks or network discovery.")
+    (license license:gpl2)))
+
 (define-public python-shapely
   (package
     (name "python-shapely")
-- 
2.39.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#60732] Patch update
  2023-02-21 17:44 ` [bug#60732] Patch update Wicki Gabriel (wicg)
@ 2023-02-28 13:50   ` Wicki Gabriel (wicg)
  0 siblings, 0 replies; 5+ messages in thread
From: Wicki Gabriel (wicg) @ 2023-02-28 13:50 UTC (permalink / raw)
  To: 60732@debbugs.gnu.org; +Cc: jgart@dismail.de, lars@6xq.net

[-- Attachment #1: Type: text/plain, Size: 350 bytes --]

Hello Python Team

I'm sorry if you are well-aware of issue 60732 [0], but since i (think i) forgot to CC you on my previous emails i would like to raise awareness of this (probably) easy merge now 🙂

Let me know if I can change anything, i'm happy to do so.

Thank you for your time and effort,
g

[0] https://issues.guix.gnu.org/60732

[-- Attachment #2: Type: text/html, Size: 2461 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#60732: Close patch
  2023-01-11 16:36 [bug#60732] New package: python-scapy Gabriel Wicki
  2023-02-20 21:21 ` [bug#60732] Review Andreas Enge
  2023-02-21 17:44 ` [bug#60732] Patch update Wicki Gabriel (wicg)
@ 2023-03-11 22:24 ` Andreas Enge
  2 siblings, 0 replies; 5+ messages in thread
From: Andreas Enge @ 2023-03-11 22:24 UTC (permalink / raw)
  To: 60732-done; +Cc: Gabriel Wicki

Hello Gabriel,

apologies for not coming back to you. I was a bit torn about the
dependencies, since we tend to package software as "completely" as
possible. Here however the optional dependencies are quite heavy,
and python-pycrypto is outdated and unmaintained and should not be
used anymore. So in the end I opted to leave them out, if someone feels
the need, we can add them to the package, or indeed as you said they
can install them into their profile themselves.

As for the tests, my impression is that they are actually not activated.
So I added a comment.

The patch is pushed now, thanks again for your patience!

Andreas





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-03-11 22:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-11 16:36 [bug#60732] New package: python-scapy Gabriel Wicki
2023-02-20 21:21 ` [bug#60732] Review Andreas Enge
2023-02-21 17:44 ` [bug#60732] Patch update Wicki Gabriel (wicg)
2023-02-28 13:50   ` Wicki Gabriel (wicg)
2023-03-11 22:24 ` bug#60732: Close patch Andreas Enge

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).