Subject: [PATCH] gnu: Add cl-readline

From: Foo Chuan Wei <[email-masked]>
Date: Tue, 12 Oct 2021 07:48:05 +0000

* gnu/packages/lisp-xyz.scm (sbcl-readline, cl-readline, ecl-readline):
  New variables.
---
 gnu/packages/lisp-xyz.scm | 46 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 5d9db448d0..24a409f78c 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -84,6 +84,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tcl)
@@ -18841,3 +18842,48 @@ formats within this framework.")
 
 (define-public cl-feeder
   (sbcl-package->cl-source-package sbcl-feeder))
+
+(define-public sbcl-readline
+  (let ((commit "8438c9ebd92ccc95ebab9cc9cbe6c72d44fccc58")
+        (revision "1"))
+    (package
+      (name "sbcl-readline")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/vindarel/cl-readline")
+                       (commit commit)))
+                (sha256
+                  (base32
+                    "14iskvqfw71ssaav483vmqw62lrpznysjs800gjjppxs785p1fa0"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs `(("alexandria" ,sbcl-alexandria)
+                ("cffi" ,sbcl-cffi)
+                ("readline" ,readline)))
+      (arguments '(#:asd-systems '("cl-readline")
+                   #:phases
+                   (modify-phases %standard-phases
+                     (add-after 'unpack 'fix-paths
+                       (lambda* (#:key inputs #:allow-other-keys)
+                         (substitute* "cl-readline.lisp"
+                           (("libreadline.so")
+                            (string-append (assoc-ref inputs "readline")
+                                           "/lib/libreadline.so")))
+                         #t)))))
+      (home-page "https://github.com/vindarel/cl-readline")
+      (synopsis "Common Lisp bindings to the GNU Readline library")
+      (description
+        "The Readline library provides a set of functions for use by
+applications that allow users to edit command lines as they are typed in. Both
+Emacs and vi editing modes are available. The Readline library includes
+additional functions to maintain a list of previously-entered command lines, to
+recall and perhaps reedit those lines, and perform csh-like history expansion on
+previous commands.")
+      (license license:gpl3))))
+
+(define-public cl-readline
+  (sbcl-package->cl-source-package sbcl-readline))
+
+(define-public ecl-readline
+  (sbcl-package->ecl-package sbcl-readline))

base-commit: 35aaf1fe10488ae9ed732fb2c383d09a70c109c0
-- 
2.25.1