about summary refs log tree commit diff
path: root/pkgs/development/python-modules/dulwich/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/dulwich/default.nix')
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix87
1 files changed, 50 insertions, 37 deletions
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index 5ce01aaad1b58..49789421af346 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -1,37 +1,36 @@
-{
-  lib,
-  stdenv,
-  buildPythonPackage,
-  certifi,
-  fastimport,
-  fetchFromGitHub,
-  gevent,
-  geventhttpclient,
-  git,
-  glibcLocales,
-  gnupg,
-  gpgme,
-  paramiko,
-  pytest-xdist,
-  pytestCheckHook,
-  pythonOlder,
-  setuptools,
-  setuptools-rust,
-  urllib3,
+{ lib
+, stdenv
+, buildPythonPackage
+, certifi
+, fastimport
+, fetchFromGitHub
+, gevent
+, geventhttpclient
+, git
+, glibcLocales
+, gnupg
+, gpgme
+, paramiko
+, pytest-xdist
+, pytestCheckHook
+, pythonOlder
+, setuptools
+, setuptools-rust
+, urllib3
 }:
 
 buildPythonPackage rec {
+  version = "0.21.7";
   pname = "dulwich";
-  version = "0.22.1";
-  pyproject = true;
+  format = "setuptools";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jelmer";
     repo = "dulwich";
     rev = "refs/tags/${pname}-${version}";
-    hash = "sha256-bf3ZUMX4afpdTBpFnx0HMyzCNG6V/p4eOl36djxGbtk=";
+    hash = "sha256-iP+6KtaQ8tfOobovSLSJZogS/XWW0LuHgE2oV8uQW/8=";
   };
 
   build-system = [
@@ -39,18 +38,22 @@ buildPythonPackage rec {
     setuptools-rust
   ];
 
-  dependencies = [
+  propagatedBuildInputs = [
     certifi
     urllib3
   ];
 
   passthru.optional-dependencies = {
-    fastimport = [ fastimport ];
+    fastimport = [
+      fastimport
+    ];
     pgp = [
       gpgme
       gnupg
     ];
-    paramiko = [ paramiko ];
+    paramiko = [
+      paramiko
+    ];
   };
 
   nativeCheckInputs = [
@@ -60,18 +63,31 @@ buildPythonPackage rec {
     glibcLocales
     pytest-xdist
     pytestCheckHook
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ passthru.optional-dependencies.fastimport
+  ++ passthru.optional-dependencies.pgp
+  ++ passthru.optional-dependencies.paramiko;
 
   doCheck = !stdenv.isDarwin;
 
+  disabledTests = [
+    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpsqwlbpd1/\xc0'
+    "test_no_decode_encode"
+    # 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'
+    "test_cyrillic"
+    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpfseetobk/test/\xc0'
+    "test_commit_no_encode_decode"
+  ];
+
   disabledTestPaths = [
-    # Missing test inputs
-    "tests/contrib/test_swift_smoke.py"
-    # Import issue
-    "tests/test_greenthreads.py"
+    # missing test inputs
+    "dulwich/contrib/test_swift_smoke.py"
+    # flaky on high core count >4
+    "dulwich/tests/compat/test_client.py"
   ];
 
-  pythonImportsCheck = [ "dulwich" ];
+  pythonImportsCheck = [
+    "dulwich"
+  ];
 
   meta = with lib; {
     description = "Implementation of the Git file formats and protocols";
@@ -81,10 +97,7 @@ buildPythonPackage rec {
     '';
     homepage = "https://www.dulwich.io/";
     changelog = "https://github.com/jelmer/dulwich/blob/dulwich-${version}/NEWS";
-    license = with licenses; [
-      asl20
-      gpl2Plus
-    ];
+    license = with licenses; [ asl20 gpl2Plus ];
     maintainers = with maintainers; [ koral ];
   };
 }