Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / magic-wormhole / default.nix
blob353e2c0e053b076841e266bbc42bb72f37252f99
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , fetchPypi
6 # build-system
7 , setuptools
9 # dependencies
10 , spake2
11 , pynacl
12 , six
13 , attrs
14 , twisted
15 , autobahn
16 , automat
17 , tqdm
18 , click
19 , humanize
20 , txtorcon
22 # optional-dependencies
23 , noiseprotocol
25 # tests
26 , nettools
27 , unixtools
28 , mock
29 , magic-wormhole-transit-relay
30 , magic-wormhole-mailbox-server
31 , pytestCheckHook
34 buildPythonPackage rec {
35   pname = "magic-wormhole";
36   version = "0.13.0";
37   format = "pyproject";
39   src = fetchPypi {
40     inherit pname version;
41     hash = "sha256-rDvWgoYnDn8UnAYUmo5Anl+jTX/rDoiESibSnu0tFRY=";
42   };
44   nativeBuildInputs = [
45     setuptools
46   ];
48   propagatedBuildInputs = [
49     spake2
50     pynacl
51     six
52     attrs
53     twisted
54     autobahn
55     automat
56     tqdm
57     click
58     humanize
59     txtorcon
60   ]
61   ++ autobahn.optional-dependencies.twisted
62   ++ twisted.optional-dependencies.tls;
64   passthru.optional-dependencies = {
65     dilation = [
66       noiseprotocol
67     ];
68   };
70   nativeCheckInputs = [
71     mock
72     magic-wormhole-transit-relay
73     magic-wormhole-mailbox-server
74     pytestCheckHook
75   ]
76   ++ passthru.optional-dependencies.dilation
77   ++ lib.optionals stdenv.isDarwin [ unixtools.locale ];
79   disabledTests = lib.optionals stdenv.isDarwin [
80     # These tests doesn't work within Darwin's sandbox
81     "test_version"
82     "test_text"
83     "test_receiver"
84     "test_sender"
85     "test_sender_allocation"
86     "test_text_wrong_password"
87     "test_override"
88     "test_allocate_port"
89     "test_allocate_port_no_reuseaddr"
90     "test_ignore_localhost_hint"
91     "test_ignore_localhost_hint_orig"
92     "test_keep_only_localhost_hint"
93     "test_get_direct_hints"
94     "test_listener"
95     "test_success_direct"
96     "test_direct"
97     "test_relay"
98   ];
100   disabledTestPaths = lib.optionals stdenv.isDarwin [
101     # These tests doesn't work within Darwin's sandbox
102     "src/wormhole/test/test_xfer_util.py"
103     "src/wormhole/test/test_wormhole.py"
104   ];
106   postPatch = lib.optionalString stdenv.isLinux ''
107     sed -i -e "s|'ifconfig'|'${nettools}/bin/ifconfig'|" src/wormhole/ipaddrs.py
108   '';
110   postInstall = ''
111     install -Dm644 docs/wormhole.1 $out/share/man/man1/wormhole.1
112   '';
114   meta = with lib; {
115     changelog = "https://github.com/magic-wormhole/magic-wormhole/blob/${version}/NEWS.md";
116     description = "Securely transfer data between computers";
117     homepage = "https://github.com/magic-wormhole/magic-wormhole";
118     license = licenses.mit;
119     maintainers = with maintainers; [ asymmetric ];
120     mainProgram = "wormhole";
121   };