nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib
2, bcrypt
3, buildPythonPackage
4, cryptography
5, fetchPypi
6, invoke
7, mock
8, pyasn1
9, pynacl
10, pytest-relaxed
11, pytestCheckHook
12, fetchpatch
13}:
14
15buildPythonPackage rec {
16 pname = "paramiko";
17 version = "2.10.4";
18 format = "setuptools";
19
20 src = fetchPypi {
21 inherit pname version;
22 sha256 = "sha256-PS5lC2gSzm0WCr/3AdbvRDTsl5NLE+lc8a09pw/7XFg=";
23 };
24
25 patches = [
26 # Fix usage of dsa keys
27 # https://github.com/paramiko/paramiko/pull/1606/
28 (fetchpatch {
29 url = "https://github.com/paramiko/paramiko/commit/18e38b99f515056071fb27b9c1a4f472005c324a.patch";
30 sha256 = "sha256-bPDghPeLo3NiOg+JwD5CJRRLv2VEqmSx1rOF2Tf8ZDA=";
31 })
32 ];
33
34 propagatedBuildInputs = [
35 bcrypt
36 cryptography
37 pyasn1
38 pynacl
39 ];
40
41 checkInputs = [
42 invoke
43 mock
44 pytest-relaxed
45 pytestCheckHook
46 ];
47
48 # with python 3.9.6+, the deprecation warnings will fail the test suite
49 # see: https://github.com/pyinvoke/invoke/issues/829
50 # pytest-relaxed does not work with pytest 6
51 # see: https://github.com/bitprophet/pytest-relaxed/issues/12
52 doCheck = false;
53
54 disabledTestPaths = [
55 "tests/test_sftp.py"
56 "tests/test_config.py"
57 ];
58
59 pythonImportsCheck = [
60 "paramiko"
61 ];
62
63 __darwinAllowLocalNetworking = true;
64
65 meta = with lib; {
66 homepage = "https://github.com/paramiko/paramiko/";
67 description = "Native Python SSHv2 protocol library";
68 license = licenses.lgpl21Plus;
69 longDescription = ''
70 Library for making SSH2 connections (client or server). Emphasis is
71 on using SSH2 as an alternative to SSL for making secure connections
72 between python scripts. All major ciphers and hash methods are
73 supported. SFTP client and server mode are both supported too.
74 '';
75 maintainers = with maintainers; [ SuperSandro2000 ];
76 };
77}