tahoe-lafs/nix/tahoe-lafs.nix

80 lines
1.6 KiB
Nix
Raw Normal View History

2023-03-13 21:10:29 +00:00
{ lib
, pythonPackages
2023-03-13 21:10:29 +00:00
, buildPythonPackage
, tahoe-lafs-src
, extrasNames
2023-03-13 20:43:22 +00:00
# control how the test suite is run
, doCheck
}:
let
pname = "tahoe-lafs";
version = "1.18.0.post1";
pickExtraDependencies = deps: extras: builtins.foldl' (accum: extra: accum ++ deps.${extra}) [] extras;
pythonExtraDependencies = with pythonPackages; {
tor = [ txtorcon ];
i2p = [ txi2p ];
};
pythonPackageDependencies = with pythonPackages; [
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 extrasNames;
unitTestDependencies = with pythonPackages; [
beautifulsoup4
fixtures
hypothesis
mock
prometheus-client
testtools
];
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 = unitTestDependencies;
2023-03-13 20:43:22 +00:00
checkPhase = ''
export TAHOE_LAFS_HYPOTHESIS_PROFILE=ci
python -m twisted.trial -j $NIX_BUILD_CORES allmydata
'';
2023-03-13 21:06:06 +00:00
meta = with lib; {
homepage = "https://tahoe-lafs.org/";
description = "secure, decentralized, fault-tolerant file store";
# Also TGPPL
license = licenses.gpl2Plus;
};
}