From 2e53ae7cda8d704d38633636f6e602abe411498c Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" 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 ;;; Copyright © 2021 Zelphir Kaltstahl ;;; Copyright © 2021 Oleg Pykhalov +;;; Copyright © 2021 Artyom V. Poptsov ;;; ;;; 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