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}