Subject: [bug#65351] [PATCH] gnu: Add cgit-pink.

From: Arun Isaac <[email-masked]>
Date: Thu, 17 Aug 2023 14:51:28 +0100

* gnu/packages/version-control.scm (git-2.36.1-source, cgit-pink): New
variable.
---
 gnu/packages/version-control.scm | 70 +++++++++++++++++++++++++++++++-
 1 file changed, 69 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 699a091642..20b2c80792 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -21,7 +21,7 @@
 ;;; Copyright © 2018 Sou Bunnbu <[email-masked]>
 ;;; Copyright © 2018 Christopher Baines <[email-masked]>
 ;;; Copyright © 2018 Timothy Sample <[email-masked]>
-;;; Copyright © 2018 Arun Isaac <[email-masked]>
+;;; Copyright © 2018, 2023 Arun Isaac <[email-masked]>
 ;;; Copyright © 2019 Jovany Leandro G.C <[email-masked]>
 ;;; Copyright © 2019 Kei Kebreau <[email-masked]>
 ;;; Copyright © 2019, 2020 Alex Griffin <[email-masked]>
@@ -1130,6 +1130,74 @@ (define-public cgit
 a built-in cache to decrease server I/O pressure.")
     (license license:gpl2)))
 
+(define git-2.36.1-source
+  (origin
+    (method url-fetch)
+    (uri "mirror://kernel.org/software/scm/git/git-2.36.1.tar.xz")
+    (sha256
+     (base32
+      "0w43a35mhc2qf2gjkxjlnkf2lq8g0snf34iy5gqx2678yq7llpa0"))))
+
+(define-public cgit-pink
+  (package
+    (name "cgit-pink")
+    (version "1.4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.causal.agency/cgit-pink")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0yp6rm60pz8pj8wrm1aglix51hhy00al86mm94ag2bifc92q23ar"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:test-target "test"
+      #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+                           (string-append "PERL_PATH="
+                                          (search-input-file %build-inputs "/bin/perl"))
+                           (string-append "SHELL_PATH="
+                                          (search-input-file %build-inputs "/bin/bash"))
+                           ;; Set install paths so that cgit-pink is a drop-in
+                           ;; replacement for cgit.
+                           (string-append "prefix="
+                                          (assoc-ref %outputs "out"))
+                           (string-append "CGIT_SCRIPT_PATH="
+                                          (assoc-ref %outputs "out") "/lib/cgit")
+                           (string-append "CGIT_DATA_PATH="
+                                          (assoc-ref %outputs "out") "/share/cgit"))
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; cgit-pink depends on the source code of a specific version
+          ;; (mentioned in the GIT_VER variable in its Makefile) of
+          ;; git. Extract it.
+          (add-after 'unpack 'unpack-git-source
+            (lambda _
+              (invoke "tar"
+                      "-C" "git"
+                      "--strip-components" "1"
+                      "-xvf" #$git-2.36.1-source)))
+          ;; Install man pages.
+          (add-after 'install 'install-man-pages
+            (lambda* (#:key make-flags #:allow-other-keys)
+              (apply invoke "make" "install-man" make-flags)))
+          (delete 'configure))))
+    (inputs
+     (list openssl zlib))
+    (native-inputs
+     (list asciidoc gnu-gettext perl))
+    (home-page "https://git.causal.agency/cgit-pink/about/")
+    (synopsis "Web fronted for git repositories")
+    (description "cgit-pink is a fast web interface for the Git SCM, using a
+built-in cache to decrease server I/O pressure.  cgit-pink is a fork of cgit.
+Upstream cgit has long been stagnant, with the vast majority of patches sent
+to the mailing list going silently ignored, despite their obvious merit in
+many cases.  This fork aims to incorporate a number of existing patches as
+well as to provide a friendlier place to send new patches.")
+    (license license:gpl2)))
+
 (define-public python-git-multimail
   (package
     (name "python-git-multimail")

base-commit: 1b2d43fe016848ea2ec16ff18cbc14340944fc4e
-- 
2.39.2