1{ lib
2, asn1crypto
3, buildPythonPackage
4, defusedxml
5, dissect-cim
6, dissect-clfs
7, dissect-cstruct
8, dissect-esedb
9, dissect-etl
10, dissect-eventlog
11, dissect-evidence
12, dissect-extfs
13, dissect-fat
14, dissect-ffs
15, dissect-hypervisor
16, dissect-ntfs
17, dissect-regf
18, dissect-sql
19, dissect-util
20, dissect-volume
21, dissect-xfs
22, fetchFromGitHub
23, flow-record
24, fusepy
25, ipython
26, pytestCheckHook
27, pythonOlder
28, pyyaml
29, setuptools
30, setuptools-scm
31, structlog
32, yara-python
33, zstandard
34}:
35
36buildPythonPackage rec {
37 pname = "dissect-target";
38 version = "3.3";
39 format = "pyproject";
40
41 disabled = pythonOlder "3.7";
42
43 src = fetchFromGitHub {
44 owner = "fox-it";
45 repo = "dissect.target";
46 rev = version;
47 hash = "sha256-EWUYN2OsYeDo3C+QgjAVq9NXiVk1KWGILwtT0cI0tB0=";
48 };
49
50 SETUPTOOLS_SCM_PRETEND_VERSION = version;
51
52 nativeBuildInputs = [
53 setuptools
54 setuptools-scm
55 ];
56
57 propagatedBuildInputs = [
58 dissect-cstruct
59 dissect-eventlog
60 dissect-evidence
61 dissect-hypervisor
62 dissect-ntfs
63 dissect-regf
64 dissect-util
65 dissect-volume
66 flow-record
67 structlog
68 ];
69
70 passthru.optional-dependencies = {
71 full = [
72 asn1crypto
73 defusedxml
74 dissect-cim
75 dissect-clfs
76 dissect-esedb
77 dissect-etl
78 dissect-extfs
79 dissect-fat
80 dissect-ffs
81 dissect-sql
82 dissect-xfs
83 fusepy
84 ipython
85 pyyaml
86 yara-python
87 zstandard
88 ];
89 };
90
91 checkInputs = [
92 pytestCheckHook
93 ] ++ passthru.optional-dependencies.full;
94
95 pythonImportsCheck = [
96 "dissect.target"
97 ];
98
99 disabledTests = [
100 # Test requires rdump
101 "test_exec_target_command"
102 ];
103
104 meta = with lib; {
105 description = "Dissect module that provides a programming API and command line tools";
106 homepage = "https://github.com/fox-it/dissect.target";
107 license = licenses.agpl3Only;
108 maintainers = with maintainers; [ fab ];
109 };
110}