Subject: [bug#60732] Patch update

From: "Wicki Gabriel (wicg)" <[email-masked]>
Date: Tue, 21 Feb 2023 17:44:15 +0000

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/

From 0575e799328f93f6c4c5afe893ae10e6e7a9ee28 Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <[email-masked]>
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 <[email-masked]>
 ;;; Copyright © 2022 Baptiste Strazzulla <[email-masked]>
 ;;; Copyright © 2022 Nicolas Graves <[email-masked]>
+;;; Copyright © 2023 Gabriel Wicki <[email-masked]>
 ;;;
 ;;; 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