Subject: Re: [PATCH] gnu: Add cgit-pink.

From: Liliana Marie Prikler <[email-masked]>
Date: Thu, 17 Aug 2023 21:00:26 +0200

Hi Arun,

Am Donnerstag, dem 17.08.2023 um 14:51 +0100 schrieb Arun Isaac:
> * 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)))
You should probably be using an input for the git source rather than
inlining it here.
> +          ;; 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.
You can probably inherit some of these fields from cgit.  Also, what
happened to all the python stuff?

> +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.")
Sheesh.  Less marketing speech would be greatly appreciated.

Cheers