1{
2 lib,
3 buildPythonPackage,
4 ed25519,
5 freezegun,
6 fetchFromGitHub,
7 hatchling,
8 pytestCheckHook,
9 flit-core,
10 requests,
11 securesystemslib,
12}:
13
14buildPythonPackage rec {
15 pname = "tuf";
16 version = "6.0.0";
17 pyproject = true;
18
19 src = fetchFromGitHub {
20 owner = "theupdateframework";
21 repo = "python-tuf";
22 tag = "v${version}";
23 hash = "sha256-CPbZOpUYi7MWKLMj7kwTsmEkxLCf4wU7IOCcbzMkPlU=";
24 };
25
26 build-system = [
27 flit-core
28 hatchling
29 ];
30
31 dependencies = [
32 requests
33 securesystemslib
34 ]
35 ++ securesystemslib.optional-dependencies.pynacl
36 ++ securesystemslib.optional-dependencies.crypto;
37
38 __darwinAllowLocalNetworking = true;
39
40 checkInputs = [
41 freezegun
42 ];
43
44 nativeCheckInputs = [
45 ed25519
46 pytestCheckHook
47 ];
48
49 pythonImportsCheck = [ "tuf" ];
50
51 preCheck = ''
52 cd tests
53 '';
54
55 meta = {
56 description = "Python reference implementation of The Update Framework (TUF)";
57 homepage = "https://github.com/theupdateframework/python-tuf";
58 changelog = "https://github.com/theupdateframework/python-tuf/blob/v${version}/docs/CHANGELOG.md";
59 license = with lib.licenses; [
60 asl20
61 mit
62 ];
63 maintainers = with lib.maintainers; [ fab ];
64 };
65}