Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / dulwich / default.nix
blob2e1c93f89c04b197a517ace120f24d157933dac2
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
19 buildPythonPackage rec {
20   version = "0.21.6";
21   pname = "dulwich";
22   format = "setuptools";
24   disabled = pythonOlder "3.7";
26   src = fetchPypi {
27     inherit pname version;
28     hash = "sha256-MPvofotR84E8Ex4oQchtAHQ00WC9FttYa0DUfzHdBbA=";
29   };
31   LC_ALL = "en_US.UTF-8";
33   propagatedBuildInputs = [
34     certifi
35     urllib3
36   ];
38   passthru.optional-dependencies = {
39     fastimport = [
40       fastimport
41     ];
42     pgp = [
43       gpgme
44       gnupg
45     ];
46     paramiko = [
47       paramiko
48     ];
49   };
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;
61   doCheck = !stdenv.isDarwin;
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   ];
72   disabledTestPaths = [
73     # missing test inputs
74     "dulwich/contrib/test_swift_smoke.py"
75   ];
77   pythonImportsCheck = [
78     "dulwich"
79   ];
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   };