1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 defusedxml,
6 fetchFromGitHub,
7 lxml,
8 paramiko,
9 poetry-core,
10 pontos,
11 pytestCheckHook,
12 pythonOlder,
13 typing-extensions,
14}:
15
16buildPythonPackage rec {
17 pname = "python-gvm";
18 version = "26.1.1";
19 pyproject = true;
20
21 disabled = pythonOlder "3.9";
22
23 src = fetchFromGitHub {
24 owner = "greenbone";
25 repo = "python-gvm";
26 tag = "v${version}";
27 hash = "sha256-NslJHSNFVaUJhUXFUPeJ/S1zIpQmaKrXgQGjKOQJw2k=";
28 };
29
30 build-system = [ poetry-core ];
31
32 pythonRelaxDeps = [ "defusedxml" ];
33
34 dependencies = [
35 defusedxml
36 lxml
37 paramiko
38 typing-extensions
39 ];
40
41 nativeCheckInputs = [
42 pontos
43 pytestCheckHook
44 ];
45
46 disabledTests = [
47 # No running SSH available
48 "test_connect_error"
49 "test_feed_xml_error"
50 ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "test_feed_xml_error" ];
51
52 pythonImportsCheck = [ "gvm" ];
53
54 meta = with lib; {
55 description = "Collection of APIs that help with remote controlling a Greenbone Security Manager";
56 homepage = "https://github.com/greenbone/python-gvm";
57 changelog = "https://github.com/greenbone/python-gvm/releases/tag/${src.tag}";
58 license = with licenses; [ gpl3Plus ];
59 maintainers = with maintainers; [ fab ];
60 };
61}