1{
2 lib,
3 buildPythonPackage,
4 defusedxml,
5 fetchFromGitHub,
6 jsonschema,
7 pytestCheckHook,
8 pythonOlder,
9 pyyaml,
10 semantic-version,
11 setuptools,
12 xmlschema,
13}:
14
15buildPythonPackage rec {
16 pname = "lib4sbom";
17 version = "0.8.7";
18 pyproject = true;
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchFromGitHub {
23 owner = "anthonyharrison";
24 repo = "lib4sbom";
25 tag = "v${version}";
26 hash = "sha256-qHKedDh7G6yvk6LOs5drJJbkLo20/dP49GG7Q/pOmBw=";
27 };
28
29 build-system = [ setuptools ];
30
31 dependencies = [
32 defusedxml
33 jsonschema
34 pyyaml
35 semantic-version
36 xmlschema
37 ];
38
39 nativeCheckInputs = [ pytestCheckHook ];
40
41 disabledTests = [
42 # stub tests that always fail
43 "TestCycloneDXGenerator"
44 "TestCcycloneDX_parser"
45 "TestGenerator"
46 "TestOutput"
47 "TestParser"
48 "TestSPDX_Generator"
49 "TestSPDX_Parser"
50 # tests with missing getters
51 "test_set_downloadlocation"
52 "test_set_homepage"
53 "test_set_checksum"
54 "test_set_externalreference"
55 # checks for invalid return type
56 "test_set_type"
57 # wrong capilatization
58 "test_set_supplier"
59 "test_set_originator"
60 ];
61
62 pythonImportsCheck = [ "lib4sbom" ];
63
64 meta = with lib; {
65 description = "Library to ingest and generate SBOMs";
66 homepage = "https://github.com/anthonyharrison/lib4sbom";
67 changelog = "https://github.com/anthonyharrison/lib4sbom/releases/tag/${src.tag}";
68 license = licenses.asl20;
69 maintainers = with maintainers; [ teatwig ];
70 };
71}