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}