1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 6 # build-system 7 poetry-core, 8 9 # dependencies 10 apscheduler, 11 bitstring, 12 cffi, 13 ecdsa, 14 monero, 15 pypng, 16 pyqrcode, 17 pyramid, 18 pyramid-jinja2, 19 pysocks, 20 pytz, 21 requests, 22 tzlocal, 23 waitress, 24 yoyo-migrations, 25 26 # tests 27 pytestCheckHook, 28 webtest, 29}: 30 31buildPythonPackage rec { 32 pname = "cypherpunkpay"; 33 version = "1.0.16"; 34 pyproject = true; 35 36 src = fetchFromGitHub { 37 owner = "CypherpunkPay"; 38 repo = "CypherpunkPay"; 39 tag = "v${version}"; 40 hash = "sha256-X0DB0PVwR0gRnt3jixFzglWAOPKBMvqTOG6pK6OJ03w="; 41 }; 42 43 pythonRelaxDeps = [ 44 "bitstring" 45 "cffi" 46 "ecdsa" 47 "pypng" 48 "tzlocal" 49 "yoyo-migrations" 50 "waitress" 51 ]; 52 53 build-system = [ 54 poetry-core 55 ]; 56 57 dependencies = [ 58 apscheduler 59 bitstring 60 cffi 61 ecdsa 62 monero 63 pypng 64 pyqrcode 65 pyramid 66 pyramid-jinja2 67 pysocks 68 pytz 69 requests 70 tzlocal 71 waitress 72 yoyo-migrations 73 ]; 74 75 nativeCheckInputs = [ 76 pytestCheckHook 77 webtest 78 ]; 79 80 pytestFlags = [ 81 "-Wignore::DeprecationWarning" 82 ]; 83 84 disabledTestPaths = [ 85 # performance test 86 "tests/unit/tools/pbkdf2_test.py" 87 # tests require network connection 88 "tests/network/explorers/bitcoin" 89 "tests/network/monero/monero_address_transactions_db_test.py" 90 "tests/network/net/http_client" 91 "tests/network/prices" 92 # tests require bitcoind running 93 "tests/network/full_node_clients" 94 # tests require lnd running 95 "tests/network/ln" 96 # tests require tor running 97 "tests/network/monero/monero_test.py" 98 "tests/network/net/tor_client" 99 "tests/network/usecases/calc_monero_address_credits_uc_test.py" 100 "tests/network/usecases/fetch_monero_txs_from_open_node_uc_test.py" 101 # tests require the full environment running 102 "tests/acceptance/views" 103 "tests/acceptance/views_admin" 104 "tests/acceptance/views_donations" 105 "tests/acceptance/views_dummystore" 106 ]; 107 108 pythonImportsCheck = [ "cypherpunkpay" ]; 109 110 meta = { 111 description = "Modern self-hosted software for accepting Bitcoin"; 112 homepage = "https://github.com/CypherpunkPay/CypherpunkPay"; 113 changelog = "https://github.com/CypherpunkPay/CypherpunkPay/releases/tag/v${version}"; 114 license = with lib.licenses; [ 115 mit # or 116 unlicense 117 ]; 118 maintainers = with lib.maintainers; [ prusnak ]; 119 }; 120}