1{
2 lib,
3 buildPythonPackage,
4 defusedxml,
5 dissect-cstruct,
6 dissect-target,
7 fetchFromGitHub,
8 minio,
9 pycryptodome,
10 pytestCheckHook,
11 pythonOlder,
12 requests,
13 requests-toolbelt,
14 rich,
15 setuptools,
16 setuptools-scm,
17}:
18
19buildPythonPackage rec {
20 pname = "acquire";
21 version = "3.20";
22 pyproject = true;
23
24 disabled = pythonOlder "3.9";
25
26 src = fetchFromGitHub {
27 owner = "fox-it";
28 repo = "acquire";
29 tag = version;
30 hash = "sha256-BfY7LKSP82QnRz3QdfUNFvz7epw5RwGT/H2S43MSvVk=";
31 };
32
33 build-system = [
34 setuptools
35 setuptools-scm
36 ];
37
38 dependencies = [
39 defusedxml
40 dissect-cstruct
41 dissect-target
42 ];
43
44 optional-dependencies = {
45 full = [
46 dissect-target
47 minio
48 pycryptodome
49 requests
50 requests-toolbelt
51 rich
52 ]
53 ++ dissect-target.optional-dependencies.full;
54 };
55
56 nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.full;
57
58 disabledTests = [
59 "output_encrypt"
60 "test_collector_collect_glob"
61 "test_collector_collect_path_with_dir"
62 "test_misc_osx"
63 "test_misc_unix"
64 ];
65
66 pythonImportsCheck = [ "acquire" ];
67
68 meta = with lib; {
69 description = "Tool to quickly gather forensic artifacts from disk images or a live system";
70 homepage = "https://github.com/fox-it/acquire";
71 changelog = "https://github.com/fox-it/acquire/releases/tag/${version}";
72 license = licenses.agpl3Only;
73 maintainers = with maintainers; [ fab ];
74 };
75}