nixpkgs/pkgs/development/python-modules/manuf/default.nix
2023-11-18 11:49:22 +03:00

62 lines
1.5 KiB
Nix

{ lib
, buildPythonPackage
, fetchFromGitHub
, runCommand
, python3
, wireshark-cli
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "manuf";
version = "1.1.5";
format = "setuptools";
src = fetchFromGitHub {
owner = "coolbho3k";
repo = "manuf";
rev = "${version}";
hash = "sha256-3CFs3aqwE8rZPwU1QBqAGxNHT5jg7ymG12yBD56gTNI=";
};
nativeBuildInputs = [ wireshark-cli ];
patches = [
# Do update while building package from wireshark-cli
./internal_db_update_nix.patch
# Fix MANUF_URL for external db update functionality (https://github.com/coolbho3k/manuf/issues/34)
./fix_manuf_url.patch
];
postPatch = ''
${lib.getExe wireshark-cli} -G manuf > manuf/manuf
cat ${wireshark-cli}/share/wireshark/wka >> manuf/manuf
'';
nativeCheckInputs = [
pytestCheckHook
];
disabledTests = [
"test_update_update"
];
pythonImportsCheck = [ "manuf" ];
passthru.tests = {
testMacAddress = runCommand "${pname}-test" {} ''
${python3.pkgs.manuf}/bin/manuf BC:EE:7B:00:00:00 > $out
[ "$(cat $out | tr -d '\n')" = "Vendor(manuf='ASUSTekC', manuf_long='ASUSTek COMPUTER INC.', comment=None)" ]
'';
};
meta = with lib; {
homepage = "https://github.com/coolbho3k/manuf";
description = " Parser library for Wireshark's OUI database";
mainProgram = "manuf";
platforms = platforms.linux;
license = with licenses; [ lgpl3Plus asl20 ];
maintainers = with maintainers; [ dsuetin ];
};
}