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