Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / asyncssh / default.nix
blob735e831c03249fdb915e8bcaac0448363def0317
1 { lib
2 , stdenv
3 , bcrypt
4 , buildPythonPackage
5 , cryptography
6 , fetchPypi
7 , fido2
8 , gssapi
9 , libnacl
10 , libsodium
11 , nettle
12 , openssh
13 , openssl
14 , pyopenssl
15 , pytestCheckHook
16 , python-pkcs11
17 , pythonOlder
18 , typing-extensions
21 buildPythonPackage rec {
22   pname = "asyncssh";
23   version = "2.14.2";
24   format = "setuptools";
26   disabled = pythonOlder "3.6";
28   src = fetchPypi {
29     inherit pname version;
30     hash = "sha256-6Va/iYjQega6MwX2YE4mH0ygFMSiMvCHPxx2kvvjz8I=";
31   };
33   propagatedBuildInputs = [
34     cryptography
35     libsodium
36     nettle
37     typing-extensions
38   ];
40   passthru.optional-dependencies = {
41     bcrypt = [
42       bcrypt
43     ];
44     fido2 = [
45       fido2
46     ];
47     gssapi = [
48       gssapi
49     ];
50     libnacl = [
51       libnacl
52     ];
53     pkcs11 = [
54       python-pkcs11
55     ];
56     pyOpenSSL = [
57       pyopenssl
58     ];
59   };
61   __darwinAllowLocalNetworking = true;
63   nativeCheckInputs = [
64     openssh
65     openssl
66     pytestCheckHook
67   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
69   patches = [
70     # Reverts https://github.com/ronf/asyncssh/commit/4b3dec994b3aa821dba4db507030b569c3a32730
71     #
72     # This changed the test to avoid setting the sticky bit
73     # because that's not allowed for plain files in FreeBSD.
74     # However that broke the test on NixOS, failing with
75     # "Operation not permitted"
76     ./fix-sftp-chmod-test-nixos.patch
77   ];
79   disabledTestPaths = [
80     # Disables windows specific test (specifically the GSSAPI wrapper for Windows)
81     "tests/sspi_stub.py"
82   ];
84   disabledTests = [
85     # No PIN set
86     "TestSKAuthCTAP2"
87     # Requires network access
88     "test_connect_timeout_exceeded"
89     # Fails in the sandbox
90     "test_forward_remote"
91   ];
93   pythonImportsCheck = [
94     "asyncssh"
95   ];
97   meta = with lib; {
98     description = "Asynchronous SSHv2 Python client and server library";
99     homepage = "https://asyncssh.readthedocs.io/";
100     changelog = "https://github.com/ronf/asyncssh/blob/v${version}/docs/changes.rst";
101     license = licenses.epl20;
102     maintainers = with maintainers; [ ];
103   };