1{ lib
2, buildPythonPackage
3, fetchPypi
4, fetchpatch
5, argon2-cffi
6, keyring
7, pycryptodome
8, pytestCheckHook
9, pythonOlder
10}:
11
12buildPythonPackage rec {
13 pname = "keyrings.cryptfile";
14 # NOTE: newer releases are bugged/incompatible
15 # https://github.com/frispete/keyrings.cryptfile/issues/15
16 version = "1.3.4";
17 disabled = pythonOlder "3.5";
18
19 src = fetchPypi {
20 inherit pname version;
21 hash = "sha256-jW+cKMm+xef8C+fl0CGe+6SEkYBHDjFX2/kLCZ62j6c=";
22 };
23
24 patches = [
25 # upstream setup.cfg has an option that is not supported
26 ./fix-testsuite.patch
27 # change of API in keyrings.testing
28 (fetchpatch {
29 url = "https://github.com/frispete/keyrings.cryptfile/commit/6fb9e45f559b8b69f7a0a519c0bece6324471d79.patch";
30 hash = "sha256-1878pMO9Ed1zs1pl+7gMjwx77HbDHdE1CryN8TPfPdU=";
31 })
32 ];
33
34 propagatedBuildInputs = [
35 argon2-cffi
36 keyring
37 pycryptodome
38 ];
39
40 pythonImportsCheck = [
41 "keyrings.cryptfile"
42 ];
43
44 nativeCheckInputs = [
45 pytestCheckHook
46 ];
47
48 disabledTests = [
49 "test_set_properties"
50 "UncryptedFileKeyringTestCase"
51 ];
52
53 meta = with lib; {
54 description = "Encrypted file keyring backend";
55 homepage = "https://github.com/frispete/keyrings.cryptfile";
56 license = licenses.mit;
57 maintainers = teams.chia.members;
58 };
59}