Merge pull request #249532 from OroraTech/feature/add-libpcap

This commit is contained in:
Janik 2023-09-19 07:35:07 +02:00 committed by GitHub
commit 9b3be3f09e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 82 additions and 4 deletions

View File

@ -0,0 +1,66 @@
{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, pythonOlder
, dbus
, pkgsLibpcap
, pkg-about
, setuptools
, tox
}:
buildPythonPackage rec {
pname = "libpcap";
version = "1.11.0b7";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
extension = "zip";
hash = "sha256-gEWFqmeOJTVHdjcSOxfVLZtrNSO3CTY1L2VcXOu7q7k=";
};
nativeBuildInputs = [
setuptools
tox
];
postPatch = ''
cat <<EOF >src/libpcap/libpcap.cfg
[libpcap]
LIBPCAP = ${pkgsLibpcap}/lib/libpcap${stdenv.hostPlatform.extensions.sharedLibrary}
EOF
'';
propagatedBuildInputs = [
dbus.lib
pkgsLibpcap
pkg-about
];
# Project has tests, but I can't get them to run even outside of nix
doCheck = false;
pythonImportsCheck = [
"libpcap"
];
meta = with lib; {
description = "Python binding for the libpcap C library";
longDescription = ''
Python libpcap module is a low-level binding for libpcap C library.
It is an effort to allow python programs full access to the API provided by the well known libpcap Unix C library and by its implementations provided under Win32 systems by such packet capture systems as: Npcap, WinPcap
libpcap is a lightweight Python package, based on the ctypes library.
It is fully compliant implementation of the original C libpcap from 1.0.0 up to 1.9.0 API and the WinPcaps 4.1.3 libpcap (1.0.0rel0b) API by implementing whole its functionality in a clean Python instead of C.
'';
homepage = "https://github.com/karpierz/libpcap/";
license = licenses.bsd3;
maintainers = [ teams.ororatech ];
};
}

View File

@ -6053,6 +6053,10 @@ self: super: with self; {
inherit (pkgs) libsodium;
};
libpcap = callPackage ../development/python-modules/libpcap {
pkgsLibpcap = pkgs.libpcap; # Needs the C library
};
libpurecool = callPackage ../development/python-modules/libpurecool { };
libpyfoscam = callPackage ../development/python-modules/libpyfoscam { };
@ -7943,7 +7947,9 @@ self: super: with self; {
pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
pcapy-ng = callPackage ../development/python-modules/pcapy-ng { };
pcapy-ng = callPackage ../development/python-modules/pcapy-ng {
inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
};
pcodedmp = callPackage ../development/python-modules/pcodedmp { };
@ -9055,7 +9061,9 @@ self: super: with self; {
pydes = callPackage ../development/python-modules/pydes { };
py-desmume = callPackage ../development/python-modules/py-desmume { };
py-desmume = callPackage ../development/python-modules/py-desmume {
inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
};
pydevccu = callPackage ../development/python-modules/pydevccu { };
@ -9714,7 +9722,9 @@ self: super: with self; {
pypca = callPackage ../development/python-modules/pypca { };
pypcap = callPackage ../development/python-modules/pypcap { };
pypcap = callPackage ../development/python-modules/pypcap {
inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
};
pypck = callPackage ../development/python-modules/pypck { };
@ -11585,7 +11595,9 @@ self: super: with self; {
scancode-toolkit = callPackage ../development/python-modules/scancode-toolkit { };
scapy = callPackage ../development/python-modules/scapy { };
scapy = callPackage ../development/python-modules/scapy {
inherit (pkgs) libpcap; # Avoid confusion with python package of the same name
};
schedule = callPackage ../development/python-modules/schedule { };