1{ lib 2, stdenv 3, buildPythonPackage 4, certifi 5, fastimport 6, fetchPypi 7, gevent 8, geventhttpclient 9, git 10, glibcLocales 11, gnupg 12, gpgme 13, paramiko 14, pytestCheckHook 15, pythonOlder 16, urllib3 17}: 18 19buildPythonPackage rec { 20 version = "0.21.6"; 21 pname = "dulwich"; 22 format = "setuptools"; 23 24 disabled = pythonOlder "3.7"; 25 26 src = fetchPypi { 27 inherit pname version; 28 hash = "sha256-MPvofotR84E8Ex4oQchtAHQ00WC9FttYa0DUfzHdBbA="; 29 }; 30 31 LC_ALL = "en_US.UTF-8"; 32 33 propagatedBuildInputs = [ 34 certifi 35 urllib3 36 ]; 37 38 passthru.optional-dependencies = { 39 fastimport = [ 40 fastimport 41 ]; 42 pgp = [ 43 gpgme 44 gnupg 45 ]; 46 paramiko = [ 47 paramiko 48 ]; 49 }; 50 51 nativeCheckInputs = [ 52 gevent 53 geventhttpclient 54 git 55 glibcLocales 56 pytestCheckHook 57 ] ++ passthru.optional-dependencies.fastimport 58 ++ passthru.optional-dependencies.pgp 59 ++ passthru.optional-dependencies.paramiko; 60 61 doCheck = !stdenv.isDarwin; 62 63 disabledTests = [ 64 # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpsqwlbpd1/\xc0' 65 "test_no_decode_encode" 66 # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpwmtfyvo2/refs.git/refs/heads/\xcd\xee\xe2\xe0\xff\xe2\xe5\xf2\xea\xe01' 67 "test_cyrillic" 68 # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpfseetobk/test/\xc0' 69 "test_commit_no_encode_decode" 70 ]; 71 72 disabledTestPaths = [ 73 # missing test inputs 74 "dulwich/contrib/test_swift_smoke.py" 75 ]; 76 77 pythonImportsCheck = [ 78 "dulwich" 79 ]; 80 81 meta = with lib; { 82 description = "Implementation of the Git file formats and protocols"; 83 longDescription = '' 84 Dulwich is a Python implementation of the Git file formats and protocols, which 85 does not depend on Git itself. All functionality is available in pure Python. 86 ''; 87 homepage = "https://www.dulwich.io/"; 88 changelog = "https://github.com/dulwich/dulwich/blob/dulwich-${version}/NEWS"; 89 license = with licenses; [ asl20 gpl2Plus ]; 90 maintainers = with maintainers; [ koral ]; 91 }; 92}