Subject: [PATCH 2/2] gnu: Add python-klaus.

From: jgart <[email-masked]>
Date: Mon, 29 Jul 2024 13:28:27 -0500

* gnu/packages/version-control.scm (python-klaus): New variable.

Change-Id: I1b7c31deb799e0ea5195eda109740fdb90e5fabd
---
 gnu/packages/version-control.scm | 47 +++++++++++++++++++++++++++++++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index cf7f7b0ad8..d8692ef803 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -41,7 +41,7 @@
 ;;; Copyright © 2021 François J. <[email-masked]>
 ;;; Copyright © 2021 Julien Lepiller <[email-masked]>
 ;;; Copyright © 2021 Guillaume Le Vaillant <[email-masked]>
-;;; Copyright © 2021 jgart <[email-masked]>
+;;; Copyright © 2021, 2024 jgart <[email-masked]>
 ;;; Copyright © 2021 Foo Chuan Wei <[email-masked]>
 ;;; Copyright © 2022 Jai Vetrivelan <[email-masked]>
 ;;; Copyright © 2022 Maxime Devos <[email-masked]>
@@ -716,6 +716,51 @@ (define-public git-minimal/pinned
                (base32
                 "0bqz401dyp8wnjj3k5ahrniwk4dalndysqazzwdvv25hqbkacm70"))))))
 
+(define-public python-klaus
+  (package
+    (name "python-klaus")
+    (version "3.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "klaus" version))
+              (sha256
+               (base32
+                "1w6sl15llnkcg7kmnpn64awdiis061q2gijnhdx0ng7z4p1glapl"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:tests? #f ; TODO: https://github.com/jonashaag/klaus/issues/322
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'configure-git
+            (lambda* (#:key inputs #:allow-other-keys)
+              (for-each (lambda (file)
+                          (substitute* file
+                            (("\"git\"")
+                             (string-append "\"" (search-input-file inputs "/bin/git") "\""))))
+                        (list "klaus/ctagsutils.py"
+                              "klaus/repo.py"
+                              "klaus/utils.py"
+                              "tests/test_contrib.py"
+                              "tests/test_make_app.py")))))))
+    (inputs (list git-minimal))
+    (native-inputs
+     (list python-pytest))
+    (propagated-inputs
+     (list python-dulwich python-flask python-httpauth
+           python-humanize python-pygments python-werkzeug))
+    (home-page "https://github.com/jonashaag/klaus")
+    (synopsis "Simple git web viewer")
+    (description "klaus is a simple, easy-to-set-up git web viewer. It features
+@itemize
+@item Super easy to set up -- no configuration required
+@item Syntax highlighting
+@item Markdown + RestructuredText rendering support
+@item Pull + push support (Git Smart HTTP)
+@item Code navigation using Exuberant ctags
+@end itemize")
+    (license license:isc)))
+
 (define-public git2cl
   (let ((commit "1d74d4c0d933fc69ed5cec838c73502584dead05"))
     (package
-- 
2.45.2