1{
2 buildPythonPackage,
3 click,
4 ecdsa,
5 fetchpatch,
6 fetchPypi,
7 fido2,
8 intelhex,
9 lib,
10 pyserial,
11 pyusb,
12 requests,
13}:
14
15buildPythonPackage rec {
16 pname = "onlykey-solo-python";
17 version = "0.0.32";
18 format = "setuptools";
19
20 src = fetchPypi {
21 inherit pname version;
22 hash = "sha256-88DuhgX4FCwzIKzw4RqWgMtjRdf5huVlKEHAAEminuQ=";
23 };
24
25 postPatch = ''
26 substituteInPlace setup.py \
27 --replace "fido2 == 0.9.3" "fido2"
28 '';
29
30 patches = [
31 # https://github.com/trustcrypto/onlykey-solo-python/pull/3
32 (fetchpatch {
33 url = "https://github.com/trustcrypto/onlykey-solo-python/commit/dfebd6b36087f5f918da8c1af5a3236581cccf2d.patch";
34 hash = "sha256-O0XQoWwhwvLc0CchUTXSuWgHMNG2ZPDy7FsU3RQrdp8=";
35 })
36 ];
37
38 propagatedBuildInputs = [
39 click
40 ecdsa
41 fido2
42 intelhex
43 pyserial
44 pyusb
45 requests
46 ];
47
48 # no tests
49 doCheck = false;
50 pythonImportsCheck = [ "solo" ];
51
52 meta = with lib; {
53 homepage = "https://github.com/trustcrypto/onlykey-solo-python";
54 description = "Python library for OnlyKey with Solo FIDO2";
55 mainProgram = "solo";
56 maintainers = with maintainers; [ kalbasit ];
57 license = licenses.asl20;
58 };
59}