tahoe-lafs/nix/tahoe-lafs.nix

131 lines
2.1 KiB
Nix
Raw Normal View History

{ buildPythonPackage
, tahoe-lafs-src
, extras
2023-03-13 20:43:22 +00:00
# control how the test suite is run
, doCheck ? false
# always dependencies
, attrs
, autobahn
, cbor2
, click
, collections-extended
, cryptography
, distro
, eliot
, filelock
, foolscap
, future
, klein
, magic-wormhole
, netifaces
, psutil
, pycddl
, pyrsistent
, pyutil
, six
, treq
, twisted
, werkzeug
, zfec
, zope_interface
# tor extra dependencies
, txtorcon
# i2p extra dependencies
, txi2p
# twisted extra dependencies - if there is overlap with our dependencies we
# have to skip them since we can't have a name in the argument set twice.
, appdirs
, bcrypt
, idna
, pyasn1
, pyopenssl
, service-identity
# test dependencies
, beautifulsoup4
, fixtures
, hypothesis
, mock
, paramiko
, prometheus-client
, pytest
, pytest-timeout
, pytest-twisted
, tenacity
, testtools
, towncrier
}:
let
pname = "tahoe-lafs";
version = "1.18.0.post1";
pickExtraDependencies = deps: extras: builtins.foldl' (accum: extra: accum ++ deps.${extra}) [] extras;
pythonExtraDependencies = {
tor = [ txtorcon ];
i2p = [ txi2p ];
};
pythonPackageDependencies = [
attrs
autobahn
cbor2
click
collections-extended
cryptography
distro
eliot
filelock
foolscap
future
klein
magic-wormhole
netifaces
psutil
pycddl
pyrsistent
pyutil
six
treq
twisted
# Get the dependencies for the Twisted extras we depend on, too.
twisted.passthru.optional-dependencies.tls
twisted.passthru.optional-dependencies.conch
werkzeug
zfec
zope_interface
] ++ pickExtraDependencies pythonExtraDependencies extras;
pythonCheckDependencies = [
beautifulsoup4
fixtures
hypothesis
mock
paramiko
prometheus-client
pytest
pytest-timeout
pytest-twisted
tenacity
testtools
towncrier
];
in
buildPythonPackage {
inherit pname version;
src = tahoe-lafs-src;
2023-03-13 21:01:57 +00:00
propagatedBuildInputs = pythonPackageDependencies;
2023-03-13 20:43:22 +00:00
inherit doCheck;
checkInputs = pythonCheckDependencies;
2023-03-13 20:43:22 +00:00
checkPhase = ''
export TAHOE_LAFS_HYPOTHESIS_PROFILE=ci
python -m twisted.trial -j $NIX_BUILD_CORES allmydata
'';
}