at master 1.7 kB view raw
1{ 2 lib, 3 stdenv, 4 asyncssh, 5 bcrypt, 6 buildPythonPackage, 7 fetchFromGitHub, 8 fsspec, 9 importlib-metadata, 10 mock-ssh-server, 11 pytest-asyncio, 12 pytestCheckHook, 13 setuptools, 14 setuptools-scm, 15}: 16 17buildPythonPackage rec { 18 pname = "sshfs"; 19 version = "2025.2.0"; 20 pyproject = true; 21 22 src = fetchFromGitHub { 23 owner = "fsspec"; 24 repo = "sshfs"; 25 tag = version; 26 hash = "sha256-O9Va3dLfTko9AfyK4iJa8U6xrtJsNNEeBn9UeRAgmVc="; 27 }; 28 29 build-system = [ 30 setuptools 31 setuptools-scm 32 ]; 33 34 dependencies = [ 35 asyncssh 36 fsspec 37 ]; 38 39 optional-dependencies = { 40 bcrypt = [ asyncssh ] ++ asyncssh.optional-dependencies.bcrypt; 41 fido2 = [ asyncssh ] ++ asyncssh.optional-dependencies.fido2; 42 gssapi = [ asyncssh ] ++ asyncssh.optional-dependencies.gssapi; 43 libnacl = [ asyncssh ] ++ asyncssh.optional-dependencies.libnacl; 44 pkcs11 = [ asyncssh ] ++ asyncssh.optional-dependencies.pkcs11; 45 pyopenssl = [ asyncssh ] ++ asyncssh.optional-dependencies.pyOpenSSL; 46 }; 47 48 __darwinAllowLocalNetworking = true; 49 50 nativeCheckInputs = [ 51 importlib-metadata 52 mock-ssh-server 53 pytest-asyncio 54 pytestCheckHook 55 ]; 56 57 disabledTests = [ 58 # Test requires network access 59 "test_config_expansions" 60 ] 61 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 62 # Test fails with sandbox enabled 63 "test_checksum" 64 ]; 65 66 pythonImportsCheck = [ "sshfs" ]; 67 68 meta = with lib; { 69 description = "SSH/SFTP implementation for fsspec"; 70 homepage = "https://github.com/fsspec/sshfs/"; 71 changelog = "https://github.com/fsspec/sshfs/releases/tag/${src.tag}"; 72 license = licenses.asl20; 73 maintainers = with maintainers; [ melling ]; 74 }; 75}