Subject: Re: bug#51998: [PATCH] gnu: Add guile-gitlab

From: [email-masked] (Artyom V. Poptsov)
Date: Fri, 26 Nov 2021 22:20:17 +0300

Hello Mathieu,

thank you for the feedback.

I fixed my patch, please find the updated version attached.

- Artyom

From 2e53ae7cda8d704d38633636f6e602abe411498c Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <[email-masked]>
Date: Sat, 20 Nov 2021 15:32:10 +0300
Subject: [PATCH] gnu: Add guile-gitlab

* gnu/packages/guile-xyz.scm (guile-gitlab): Add new package.
---
 gnu/packages/guile-xyz.scm | 69 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 628d81710a..5aae47da1d 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -38,6 +38,7 @@
 ;;; Copyright © 2021 Leo Le Bouter <[email-masked]>
 ;;; Copyright © 2021 Zelphir Kaltstahl <[email-masked]>
 ;;; Copyright © 2021 Oleg Pykhalov <[email-masked]>
+;;; Copyright © 2021 Artyom V. Poptsov <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4795,3 +4796,71 @@ It provides a generic library for writing implementations of a netlink
 protocol, a low-level rtnetlink implementation that uses that library and a
 high-level API for network management that uses rtnetlink.")
     (license license:gpl3+)))
+
+(define-public guile-gitlab
+  (package
+    (name "guile-gitlab")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/artyom-poptsov/guile-gitlab")
+             (commit (string-append "v" version))))
+       (file-name (string-append name "-" version "-checkout"))
+       (sha256
+        (base32
+         "1vpwwnxxglla8ci9mz6smm3nyqvdz2k082qyrp36ad14v9y70l86"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:modules (((guix build guile-build-system)
+                   #:select (target-guile-effective-version))
+                  ,@%gnu-build-system-modules)
+       #:imported-modules ((guix build guile-build-system)
+                           ,@%gnu-build-system-modules)
+       #:phases (modify-phases %standard-phases
+                  (add-before 'configure 'set-guilesitedir
+                    (lambda _
+                      (substitute* (find-files "." "Makefile.in")
+                        (("^guilesitedir = .*$")
+                         "guilesitedir = \
+$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")
+                        (("guilemoduledir =.*guile/site" all)
+                         (string-append all "/@GUILE_EFFECTIVE_VERSION@")))
+                      #t))
+                  (add-after 'install 'wrap-program
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (bin (string-append out "/bin"))
+                             (guile-lib (assoc-ref inputs "guile-lib"))
+                             (version (target-guile-effective-version))
+                             (scm (string-append "/share/guile/site/"
+                                                 version))
+                             (go (string-append  "/lib/guile/"
+                                                 version "/site-ccache")))
+                        (wrap-program (string-append bin "/gitlab-cli")
+                          `("GUILE_LOAD_PATH" prefix
+                            (,(string-append out scm)
+                             ,(string-append guile-lib scm)))
+                          `("GUILE_LOAD_COMPILED_PATH" prefix
+                            (,(string-append out go)
+                             ,(string-append guile-lib go)))))
+                      #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)
+       ("texinfo" ,texinfo)))
+    (inputs `(("guile"        ,guile-2.2)
+              ("guile-json"   ,guile-json-1)
+              ("guile-gnutls" ,guile2.2-gnutls)))
+    (propagated-inputs `(("guile-lib" ,guile2.2-lib)))
+    (home-page "https://github.com/artyom-poptsov/guile-gitlab")
+    (synopsis "GitLab module for Guile")
+    (description
+     "GNU Guile interface to GitLab Community Edition REST API.
+
+This package provides @samp{gitlab-cli} command line tool for interacting with
+a GitLab instance.")
+    (license license:gpl3)))
-- 
2.25.1

-- 
Artyom "avp" Poptsov <[email-masked]>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F