diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/pypcap/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/pypcap/default.nix | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/pypcap/default.nix b/nixpkgs/pkgs/development/python-modules/pypcap/default.nix new file mode 100644 index 000000000000..dc916213fcd0 --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/pypcap/default.nix @@ -0,0 +1,39 @@ +{ lib, writeText, buildPythonPackage, fetchPypi, libpcap, dpkt }: + +buildPythonPackage rec { + pname = "pypcap"; + version = "1.2.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "07ww25z4xydp11hb38halh1940gmp5lca11hwfb63zv3bps248x3"; + }; + + patches = [ + # The default setup.py searchs for pcap.h in a static list of default + # folders. So we have to add the path to libpcap in the nix-store. + (writeText "libpcap-path.patch" + '' + --- a/setup.py + +++ b/setup.py + @@ -28,6 +28,7 @@ def recursive_search(path, target_files): + + def find_prefix_and_pcap_h(): + prefixes = chain.from_iterable(( + + '${libpcap}', + ('/usr', sys.prefix), + glob.glob('/opt/libpcap*'), + glob.glob('../libpcap*'), + '') + ]; + + buildInputs = [ libpcap ]; + checkInputs = [ dpkt ]; + + meta = with lib; { + homepage = https://github.com/pynetwork/pypcap; + description = "Simplified object-oriented Python wrapper for libpcap"; + license = licenses.bsd3; + maintainers = with maintainers; [ geistesk ]; + }; +} |