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 [
33 requests
34 securesystemslib
35 ]
36 ++ securesystemslib.optional-dependencies.pynacl
37 ++ securesystemslib.optional-dependencies.crypto;
38
39 __darwinAllowLocalNetworking = true;
40
41 checkInputs = [
42 freezegun
43 ];
44
45 nativeCheckInputs = [
46 ed25519
47 pytestCheckHook
48 ];
49
50 pythonImportsCheck = [ "tuf" ];
51
52 preCheck = ''
53 cd tests
54 '';
55
56 meta = {
57 description = "Python reference implementation of The Update Framework (TUF)";
58 homepage = "https://github.com/theupdateframework/python-tuf";
59 changelog = "https://github.com/theupdateframework/python-tuf/blob/v${version}/docs/CHANGELOG.md";
60 license = with lib.licenses; [
61 asl20
62 mit
63 ];
64 maintainers = with lib.maintainers; [ fab ];
65 };
66}