diff mbox series

[bug#47528] gnu: Add guile2.2-bash.

Message ID cddcb5d9a62440d4e07168df27864c43@selfhosted.xyz
State New
Headers show
Series [bug#47528] gnu: Add guile2.2-bash. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

david larsson March 31, 2021, 6:45 p.m. UTC
From 00288ef6849c78b09c2934bd4565af76cccc2825 Mon Sep 17 00:00:00 2001
 From: methuselah-0 <david.larsson@selfhosted.xyz>
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(+)

+
+and then run @command{scm \"$(pwd)\"/example.scm}.")
+      (license license:gpl3+))))
+
  (define-public guile-8sync
    (package
      (name "guile-8sync")

Comments

Ludovic Courtès April 5, 2021, 9:46 a.m. UTC | #1
Hi David,

david larsson <david.larsson@selfhosted.xyz> skribis:

> From 00288ef6849c78b09c2934bd4565af76cccc2825 Mon Sep 17 00:00:00 2001
> From: methuselah-0 <david.larsson@selfhosted.xyz>
> 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.

Since you’re maintaining your own version of ‘guile-bash’ upstream, how
about making sure that it works with Guile 3.0 (the current default in
Guix) and changing ‘guile-bash’ to refer to your version and to use
Guile 3.0?

Thanks,
Ludo’.
david larsson April 5, 2021, 12:39 p.m. UTC | #2
On 2021-04-05 11:46, Ludovic Courtès wrote:
> Hi David,
> 
> david larsson <david.larsson@selfhosted.xyz> skribis:
> 
>> From 00288ef6849c78b09c2934bd4565af76cccc2825 Mon Sep 17 00:00:00 2001
>> From: methuselah-0 <david.larsson@selfhosted.xyz>
>> 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.
> 
> Since you’re maintaining your own version of ‘guile-bash’ upstream, how
> about making sure that it works with Guile 3.0 (the current default in
> Guix) and changing ‘guile-bash’ to refer to your version and to use
> Guile 3.0?
> 
> Thanks,
> Ludo’.

Hi, I would have liked to, but I don't understand the codebase as well 
as I want to yet so Im unable to. The project is created by Dmitry 
Bogatov, and my minor edit (removed a test-case) is just a quick-fix to 
make the package build for guile2.2. Hopefully, Dmitry will be back some 
day to maintain the project again.

Best regards,
David
diff mbox series

Patch

From 00288ef6849c78b09c2934bd4565af76cccc2825 Mon Sep 17 00:00:00 2001
From: methuselah-0 <david.larsson@selfhosted.xyz>
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 <me@bonfacemunyoki.com>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
+;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;;
 ;;; 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