1{ lib 2, buildPythonPackage 3, defusedxml 4, dissect-cstruct 5, dissect-util 6, fetchFromGitHub 7, pycryptodome 8, pytestCheckHook 9, pythonOlder 10, rich 11, setuptools 12, setuptools-scm 13}: 14 15buildPythonPackage rec { 16 pname = "dissect-hypervisor"; 17 version = "3.10"; 18 pyproject = true; 19 20 disabled = pythonOlder "3.9"; 21 22 src = fetchFromGitHub { 23 owner = "fox-it"; 24 repo = "dissect.hypervisor"; 25 rev = "refs/tags/${version}"; 26 hash = "sha256-Ml5U7yc4iqqilL6Y9qF3VU+pa0AXnYVQjVas90TpG30="; 27 }; 28 29 SETUPTOOLS_SCM_PRETEND_VERSION = version; 30 31 nativeBuildInputs = [ 32 setuptools 33 setuptools-scm 34 ]; 35 36 propagatedBuildInputs = [ 37 defusedxml 38 dissect-cstruct 39 dissect-util 40 ]; 41 42 passthru.optional-dependencies = { 43 full = [ 44 pycryptodome 45 rich 46 ]; 47 }; 48 49 nativeCheckInputs = [ 50 pytestCheckHook 51 ]; 52 53 pythonImportsCheck = [ 54 "dissect.hypervisor" 55 ]; 56 57 meta = with lib; { 58 description = "Dissect module implementing parsers for various hypervisor disk, backup and configuration files"; 59 homepage = "https://github.com/fox-it/dissect.hypervisor"; 60 changelog = "https://github.com/fox-it/dissect.hypervisor/releases/tag/${version}"; 61 license = licenses.agpl3Only; 62 maintainers = with maintainers; [ fab ]; 63 }; 64}