1{
2 lib,
3 argon2-cffi,
4 buildPythonPackage,
5 dissect-cstruct,
6 dissect-util,
7 dissect-target,
8 fetchFromGitHub,
9 pycryptodome,
10 pythonOlder,
11 rich,
12 setuptools-scm,
13 setuptools,
14}:
15
16buildPythonPackage rec {
17 pname = "dissect-fve";
18 version = "4.2";
19 pyproject = true;
20
21 disabled = pythonOlder "3.9";
22
23 src = fetchFromGitHub {
24 owner = "fox-it";
25 repo = "dissect.fve";
26 tag = version;
27 hash = "sha256-OgagTnt4y6Fzd7jbsCgbkTzcsdnozImfdKI9ew9JaqI=";
28 };
29
30 pythonRelaxDeps = [
31 "pycryptodome"
32 ];
33
34 build-system = [
35 setuptools
36 setuptools-scm
37 ];
38
39 dependencies = [
40 argon2-cffi
41 dissect-cstruct
42 dissect-util
43 pycryptodome
44 ];
45
46 optional-dependencies = {
47 full = [
48 dissect-target
49 rich
50 ];
51 };
52
53 pythonImportsCheck = [ "dissect.fve" ];
54
55 meta = with lib; {
56 description = "Dissect module implementing parsers for full volume encryption implementations";
57 homepage = "https://github.com/fox-it/dissect.fve";
58 changelog = "https://github.com/fox-it/dissect.fve/releases/tag/${src.tag}";
59 license = licenses.agpl3Only;
60 maintainers = with maintainers; [ fab ];
61 };
62}