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.15";
22 pyproject = true;
23
24 disabled = pythonOlder "3.9";
25
26 src = fetchFromGitHub {
27 owner = "fox-it";
28 repo = "acquire";
29 rev = "refs/tags/${version}";
30 hash = "sha256-+bA/6CW/1k9JfkXBk/JKXgOlrVHcMcKggzOAHyjdkX0=";
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 passthru.optional-dependencies = {
45 full = [
46 dissect-target
47 minio
48 pycryptodome
49 requests
50 requests-toolbelt
51 rich
52 ] ++ dissect-target.optional-dependencies.full;
53 };
54
55 nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.full;
56
57 pythonImportsCheck = [ "acquire" ];
58
59 meta = with lib; {
60 description = "Tool to quickly gather forensic artifacts from disk images or a live system";
61 homepage = "https://github.com/fox-it/acquire";
62 changelog = "https://github.com/fox-it/acquire/releases/tag/${version}";
63 license = licenses.agpl3Only;
64 maintainers = with maintainers; [ fab ];
65 };
66}