summary refs log tree commit diff
path: root/pkgs/development/python-modules/scapy
diff options
context:
space:
mode:
authorMichael Weiss <dev.primeos@gmail.com>2018-08-07 18:52:47 +0200
committerMichael Weiss <dev.primeos@gmail.com>2018-08-07 18:55:48 +0200
commitf9291887af76f94ed35f26b2d3c31369ad2a3c46 (patch)
tree20704cde1b05fa396f186fc0943f608cf36800c1 /pkgs/development/python-modules/scapy
parent25f4a12bc4d22b0684ef08c5ea3b94e181bde9c6 (diff)
downloadnixlib-f9291887af76f94ed35f26b2d3c31369ad2a3c46.tar
nixlib-f9291887af76f94ed35f26b2d3c31369ad2a3c46.tar.gz
nixlib-f9291887af76f94ed35f26b2d3c31369ad2a3c46.tar.bz2
nixlib-f9291887af76f94ed35f26b2d3c31369ad2a3c46.tar.lz
nixlib-f9291887af76f94ed35f26b2d3c31369ad2a3c46.tar.xz
nixlib-f9291887af76f94ed35f26b2d3c31369ad2a3c46.tar.zst
nixlib-f9291887af76f94ed35f26b2d3c31369ad2a3c46.zip
pythonPackages.scapy: Add optional dependencies
Diffstat (limited to 'pkgs/development/python-modules/scapy')
-rw-r--r--pkgs/development/python-modules/scapy/default.nix21
1 files changed, 16 insertions, 5 deletions
diff --git a/pkgs/development/python-modules/scapy/default.nix b/pkgs/development/python-modules/scapy/default.nix
index c24592ef9650..06061eb9ebff 100644
--- a/pkgs/development/python-modules/scapy/default.nix
+++ b/pkgs/development/python-modules/scapy/default.nix
@@ -1,6 +1,13 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, isPyPy, isPy3k, pythonOlder
-, matplotlib, pycrypto, ecdsa
+{ buildPythonPackage, fetchFromGitHub, lib, isPyPy, isPy3k, pythonOlder
+, pycrypto, ecdsa # TODO
 , enum34, mock
+, withOptionalDeps ? true, tcpdump, ipython
+, withCryptography ? true, cryptography
+, withVoipSupport ? true, sox
+, withPlottingSupport ? true, matplotlib
+, withGraphicsSupport ? false, pyx, texlive, graphviz, imagemagick
+# 2D/3D graphics and graphs TODO: VPython
+# TODO: nmap, numpy
 }:
 
 buildPythonPackage rec {
@@ -19,15 +26,19 @@ buildPythonPackage rec {
   # TODO: Temporary workaround
   patches = [ ./fix-version-1.patch ./fix-version-2.patch ];
 
-  propagatedBuildInputs =
-    [ matplotlib pycrypto ecdsa ]
+  propagatedBuildInputs = [ pycrypto ecdsa ]
+    ++ lib.optional withOptionalDeps [ tcpdump ipython ]
+    ++ lib.optional withCryptography [ cryptography ]
+    ++ lib.optional withVoipSupport [ sox ]
+    ++ lib.optional withPlottingSupport [ matplotlib ]
+    ++ lib.optional withGraphicsSupport [ pyx texlive.combined.scheme-minimal graphviz imagemagick ]
     ++ lib.optional (isPy3k && pythonOlder "3.4") [ enum34 ]
     ++ lib.optional doCheck [ mock ];
 
   # Tests fail with Python 3.6 (seems to be an upstream bug, I'll investigate)
   doCheck = if isPy3k then false else true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Powerful interactive network packet manipulation program";
     homepage = https://scapy.net/;
     license = licenses.gpl2;