about summary refs log tree commit diff
path: root/pkgs/development/python-modules/docutils/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/docutils/default.nix')
-rw-r--r--pkgs/development/python-modules/docutils/default.nix92
1 files changed, 58 insertions, 34 deletions
diff --git a/pkgs/development/python-modules/docutils/default.nix b/pkgs/development/python-modules/docutils/default.nix
index 136f679fcf6e2..cdfb53572213d 100644
--- a/pkgs/development/python-modules/docutils/default.nix
+++ b/pkgs/development/python-modules/docutils/default.nix
@@ -1,41 +1,65 @@
-{ stdenv
-, lib
-, fetchPypi
-, buildPythonPackage
-, python
-, pythonOlder
+{
+  stdenv,
+  lib,
+  fetchFromRepoOrCz,
+  buildPythonPackage,
+  flit-core,
+  pillow,
+  python,
+  pythonOlder,
 }:
 
-buildPythonPackage rec {
-  pname = "docutils";
-  version = "0.20.1";
+# Note: this package is used to build LLVM’s documentation, which is part of the Darwin stdenv.
+# It cannot use `fetchgit` because that would pull curl into the bootstrap, which is disallowed.
 
-  disabled = pythonOlder "3.7";
+let
+  self = buildPythonPackage rec {
+    pname = "docutils";
+    version = "0.21.2";
+    pyproject = true;
 
-  format = "setuptools";
+    disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-8IpOJ2w6FYOobc4+NKuj/gTQK7ot1R7RYQYkToqSPjs=";
-  };
+    src = fetchFromRepoOrCz {
+      repo = "docutils";
+      rev = "docutils-${version}";
+      hash = "sha256-Q+9yW+BYUEvPYV504368JsAoKKoaTZTeKh4tVeiNv5Y=";
+    };
+
+    build-system = [ flit-core ];
+
+    # infinite recursion via sphinx and pillow
+    doCheck = false;
+    passthru.tests.pytest = self.overridePythonAttrs { doCheck = true; };
+
+    nativeCheckInputs = [ pillow ];
+
+    # Only Darwin needs LANG, but we could set it in general.
+    # It's done here conditionally to prevent mass-rebuilds.
+    checkPhase =
+      lib.optionalString stdenv.isDarwin ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" ''
+      + ''
+        ${python.interpreter} test/alltests.py
+      '';
+
+    # Create symlinks lacking a ".py" suffix, many programs depend on these names
+    postFixup = ''
+      for f in $out/bin/*.py; do
+        ln -s $(basename $f) $out/bin/$(basename $f .py)
+      done
+    '';
 
-  # Only Darwin needs LANG, but we could set it in general.
-  # It's done here conditionally to prevent mass-rebuilds.
-  checkPhase = lib.optionalString stdenv.isDarwin ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" '' + ''
-    ${python.interpreter} test/alltests.py
-  '';
-
-  # Create symlinks lacking a ".py" suffix, many programs depend on these names
-  postFixup = ''
-    for f in $out/bin/*.py; do
-      ln -s $(basename $f) $out/bin/$(basename $f .py)
-    done
-  '';
-
-  meta = with lib; {
-    description = "Python Documentation Utilities";
-    homepage = "http://docutils.sourceforge.net/";
-    license = with licenses; [ publicDomain bsd2 psfl gpl3Plus ];
-    maintainers = with maintainers; [ AndersonTorres ];
+    meta = with lib; {
+      description = "Python Documentation Utilities";
+      homepage = "http://docutils.sourceforge.net/";
+      license = with licenses; [
+        publicDomain
+        bsd2
+        psfl
+        gpl3Plus
+      ];
+      maintainers = with maintainers; [ AndersonTorres ];
+    };
   };
-}
+in
+self