1{ stdenv
2, lib
3, buildPythonPackage
4, fetchFromGitHub
5, poetry-core
6, APScheduler
7, bitstring
8, cffi
9, ecdsa
10, monero
11, pypng
12, pyqrcode
13, pyramid
14, pyramid_jinja2
15, pysocks
16, requests
17, tzlocal
18, waitress
19, yoyo-migrations
20, pytestCheckHook
21, pytest-cov
22, webtest
23}:
24
25buildPythonPackage rec {
26 pname = "cypherpunkpay";
27 version = "1.0.16";
28 format = "pyproject";
29
30 src = fetchFromGitHub {
31 owner = "CypherpunkPay";
32 repo = "CypherpunkPay";
33 rev = "refs/tags/v${version}";
34 sha256 = "sha256-X0DB0PVwR0gRnt3jixFzglWAOPKBMvqTOG6pK6OJ03w=";
35 };
36
37 postPatch = ''
38 substituteInPlace pyproject.toml \
39 --replace 'monero = "^0.99"' 'monero = ">=0.99"' \
40 --replace 'pypng = "^0.0.20"' 'pypng = ">=0.0.20"' \
41 --replace 'tzlocal = "2.1"' 'tzlocal = ">=2.1"'
42 '';
43
44 nativeBuildInputs = [
45 poetry-core
46 ];
47
48 propagatedBuildInputs = [
49 APScheduler
50 bitstring
51 cffi
52 ecdsa
53 monero
54 pypng
55 pyqrcode
56 pyramid
57 pyramid_jinja2
58 pysocks
59 requests
60 tzlocal
61 waitress
62 yoyo-migrations
63 ];
64
65 checkInputs = [
66 pytestCheckHook
67 pytest-cov
68 webtest
69 ];
70
71 disabledTestPaths = [
72 # performance test
73 "test/unit/tools/pbkdf2_test.py"
74 # tests require network connection
75 "test/network/explorers/bitcoin"
76 "test/network/net/http_client"
77 "test/network/prices"
78 # tests require bitcoind running
79 "test/network/full_node_clients"
80 # tests require lnd running
81 "test/network/ln"
82 # tests require tor running
83 "test/network/net/tor_client"
84 # tests require the full environment running
85 "test/acceptance/views"
86 "test/acceptance/views_admin"
87 "test/acceptance/views_donations"
88 "test/acceptance/views_dummystore"
89 ];
90
91 meta = with lib; {
92 description = "Modern self-hosted software for accepting Bitcoin";
93 homepage = "https://cypherpunkpay.org";
94 license = with licenses; [ mit /* or */ unlicense ];
95 maintainers = with maintainers; [ prusnak ];
96 };
97}