From 00288ef6849c78b09c2934bd4565af76cccc2825 Mon Sep 17 00:00:00 2001 From: methuselah-0 Date: Wed, 31 Mar 2021 20:43:16 +0200 Subject: [PATCH] gnu: Add guile2.2-bash. * gnu/packages/guile-xyz.scm (guile2.2-bash): New variable. --- gnu/packages/guile-xyz.scm | 68 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index c798bed817..90f2ec720e 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -36,6 +36,7 @@ ;;; Copyright © 2021 Bonface Munyoki Kilyungi ;;; Copyright © 2021 Xinglu Chen ;;; Copyright © 2021 Leo Le Bouter +;;; Copyright © 2021 David Larsson ;;; ;;; This file is part of GNU Guix. ;;; @@ -429,6 +430,73 @@ enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm and then run @command{scm example.scm}.") (license license:gpl3+)))) +(define-public guile2.2-bash + (let ((commit "678e06df1e9f786ba87b47b18fa5c041eb0e3e86") + (revision "1")) + (package + (name "guile2.2-bash") + (version (string-append "0.1.6-" revision "." (string-take commit 7))) + (home-page + "https://gitlab.com/methuselah-0/guile-bash") + (source (origin + (method git-fetch) + (uri (git-reference + (commit commit) + (url "https://gitlab.com/methuselah-0/guile-bash.git"))) + (sha256 + (base32 + "1dipzbyy3jlc3d40v5vbf4a9vlw6fyv4b03hfvj94iy3papji5sn")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + ;; Add -I to match 'bash.pc' of Bash 4.4. + (list (string-append "CPPFLAGS=-I" + (assoc-ref %build-inputs "bash:include") + "/include/bash/include") + + ;; The '.a' file is useless. + "--disable-static" + + ;; Install 'lib/bash' as Bash 4.4 expects. + (string-append "--libdir=" (assoc-ref %outputs "out") + "/lib/bash")))) + (native-inputs `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf-wrapper) + ("automake" ,automake) + ("libtool" ,libtool) + ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. + ("gettext" ,gettext-minimal) + + ;; Bash with loadable module support, for the test + ;; suite. + ("bash-full" ,bash))) + (inputs `(("guile" ,guile-2.2) + ("bash:include" ,bash "include"))) + (synopsis "Extend Bash using Guile") + (description + "Guile-Bash provides a shared library and set of Guile modules, +allowing you to extend Bash in Scheme. Scheme interfaces allow you to access +the following aspects of Bash: + +@itemize +@item aliases; +@item setting and getting Bash variables; +@item creating dynamic variables; +@item creating Bash functions with a Scheme implementation; +@item reader macro for output capturing; +@item reader macro for evaluating raw Bash commands. +@end itemize + +To enable it, run: + +@example +enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm +@end example + +and then run @command{scm \"$(pwd)\"/example.scm}.") + (license license:gpl3+)))) + (define-public guile-8sync (package (name "guile-8sync") -- 2.30.2