diff --git a/pkgs/tools/misc/cyclonedx-python/default.nix b/pkgs/tools/misc/cyclonedx-python/default.nix new file mode 100644 index 00000000000..97dfd8310da --- /dev/null +++ b/pkgs/tools/misc/cyclonedx-python/default.nix @@ -0,0 +1,47 @@ +{ lib +, python3 +, fetchFromGitHub +}: +python3.pkgs.buildPythonApplication rec { + pname = "cyclonedx-python"; + version = "0.4.3"; + + src = fetchFromGitHub { + owner = "CycloneDX"; + repo = "cyclonedx-python"; + rev = "v${version}"; + sha256 = "BvG4aWBMsllW2L4lLsiRFUCPjgoDpHxN49fsUFdg7tQ="; + }; + + # They pin versions for exact version numbers because "A bill-of-material such + # as CycloneDX expects exact version numbers" -- but that's unnecessary with + # Nix. + preBuild = '' + sed "s@==.*'@'@" -i setup.py + ''; + + propagatedBuildInputs = with python3.pkgs; [ + packageurl-python + requests + xmlschema + setuptools + requirements-parser + packaging + chardet + jsonschema + ]; + + # the tests want access to the cyclonedx binary + doCheck = false; + + pythonImportsCheck = [ + "cyclonedx" + ]; + + meta = with lib; { + description = "Creates CycloneDX Software Bill of Materials (SBOM) from Python projects"; + homepage = "https://github.com/CycloneDX/cyclonedx-python"; + license = licenses.asl20; + maintainers = teams.determinatesystems.members; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e90dcf0345f..f70a05f3ed1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1300,6 +1300,8 @@ in cyclone-scheme = callPackage ../development/interpreters/cyclone { }; + cyclonedx-python = callPackage ../tools/misc/cyclonedx-python { }; + deltachat-electron = callPackage ../applications/networking/instant-messengers/deltachat-electron { };