103 lines
2.1 KiB
Nix
103 lines
2.1 KiB
Nix
{ version
|
|
, src
|
|
, lib
|
|
, buildPythonPackage
|
|
, pythonOlder
|
|
, pythonAtLeast
|
|
, pytestCheckHook
|
|
, setuptools
|
|
, fetchurl
|
|
, chromalog
|
|
, cryptography
|
|
, service-identity
|
|
, twisted
|
|
, txtorcon
|
|
, python-bitcointx
|
|
, argon2_cffi
|
|
, autobahn
|
|
, bencoderpyx
|
|
, klein
|
|
, mnemonic
|
|
, pyjwt
|
|
, werkzeug
|
|
, libnacl
|
|
, pyopenssl
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "joinmarket";
|
|
inherit version src;
|
|
format = "pyproject";
|
|
|
|
# Since v0.9.11, Python older than v3.8 is not supported. Python v3.12 is
|
|
# still not supported.
|
|
disabled = (pythonOlder "3.8") || (pythonAtLeast "3.12");
|
|
|
|
nativeBuildInputs = [
|
|
setuptools
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
# base jm packages
|
|
chromalog
|
|
cryptography
|
|
service-identity
|
|
twisted
|
|
txtorcon
|
|
|
|
# jmbitcoin
|
|
python-bitcointx
|
|
|
|
# jmclient
|
|
argon2_cffi
|
|
autobahn
|
|
bencoderpyx
|
|
klein
|
|
mnemonic
|
|
pyjwt
|
|
werkzeug
|
|
|
|
# jmdaemon
|
|
libnacl
|
|
pyopenssl
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace pyproject.toml \
|
|
--replace-fail 'txtorcon==23.11.0' 'txtorcon==23.5.0' \
|
|
--replace-fail 'twisted==23.10.0' 'twisted==23.8.0' \
|
|
--replace-fail 'service-identity==21.1.0' 'service-identity==23.1.0' \
|
|
--replace-fail 'cryptography==41.0.6' 'cryptography==41.0.3'
|
|
|
|
# Modify pyproject.toml to include only specific modules. Do not include 'jmqtui'.
|
|
sed -i '/^\[tool.setuptools.packages.find\]/a include = ["jmbase", "jmbitcoin", "jmclient", "jmdaemon"]' pyproject.toml
|
|
'';
|
|
|
|
nativeCheckInputs = [
|
|
pytestCheckHook
|
|
];
|
|
|
|
pytestFlagsArray = [
|
|
"test/jmbase/"
|
|
"test/jmbitcoin/"
|
|
"test/jmdaemon/test_enc_wrapper.py"
|
|
|
|
# Other tests require preconfigured bitcoind and miniircd
|
|
# https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/TESTING.md
|
|
# "test/jmclient/"
|
|
# "test/jmdaemon/"
|
|
];
|
|
|
|
pythonImportsCheck = [
|
|
"jmbase"
|
|
"jmbitcoin"
|
|
"jmclient"
|
|
"jmdaemon"
|
|
];
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/Joinmarket-Org/joinmarket-clientserver";
|
|
maintainers = with maintainers; [ seberm nixbitcoin ];
|
|
license = licenses.gpl3;
|
|
};
|
|
}
|