diff mbox series

[bug#55383] gnu: Add cl-lmdb.

Message ID 20220512071224.11231-1-arunisaac@systemreboot.net
State New
Headers show
Series [bug#55383] gnu: Add cl-lmdb. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Arun Isaac May 12, 2022, 7:12 a.m. UTC
* gnu/packages/lisp-xyz.scm (sbcl-lmdb, cl-lmdb): New variables.
---
 gnu/packages/lisp-xyz.scm | 52 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

Comments

Guillaume Le Vaillant May 13, 2022, 3:34 p.m. UTC | #1
Hi,

Arun Isaac <arunisaac@systemreboot.net> skribis:

> This patch adds cl-lmdb. But, lmdb does not build for ecl. So, I have omitted
> ecl-lmdb. Is that ok?

Yes.


> * gnu/packages/lisp-xyz.scm (sbcl-lmdb, cl-lmdb): New variables.
> ---
>  gnu/packages/lisp-xyz.scm | 52 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
>
> [...]
> +      (inputs
> +       (list lmdb
> +             sbcl-alexandria
> +             sbcl-bordeaux-threads
> +             sbcl-cl-reexport
> +             sbcl-mgl-pax
> +             sbcl-osicat
> +             sbcl-trivial-garbage
> +             sbcl-trivial-utf-8))
> [...]

The sbcl-trivial-features package should be added to the inputs, as it
is listed in the asd file. Otherwise, LGTM, you can push the patch.
Arun Isaac May 16, 2022, 8:35 a.m. UTC | #2
Hi Guillaume,

> The sbcl-trivial-features package should be added to the inputs, as it
> is listed in the asd file. Otherwise, LGTM, you can push the patch.

I added sbcl-trivial-features and pushed the patch.

Thank you!
diff mbox series

Patch

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index ab264923c3..33b3957464 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -34,6 +34,7 @@ 
 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
+;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -57,6 +58,7 @@ 
 
 (define-module (gnu packages lisp-xyz)
   #:use-module (gnu packages)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -21269,3 +21271,53 @@  (define-public cl-formgrep
 
 (define-public ecl-formgrep
   (sbcl-package->ecl-package sbcl-formgrep))
+
+(define-public sbcl-lmdb
+  (let ((commit "f439b707939a52769dc9747838ff4a616fab14a3")
+        (revision "0"))
+    (package
+      (name "sbcl-lmdb")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/antimer/lmdb")
+               (commit commit)))
+         (file-name (git-file-name "cl-lmdb" version))
+         (sha256
+          (base32 "0akvimmvd4kcx6gh1j1dzvcclhc0jc4hc9vkh3ldgzb8wyf4vl8q"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'fix-paths
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "src/lmdb.lisp"
+                  (("\"liblmdb.so\"")
+                   (string-append
+                    "\"" (search-input-file inputs "/lib/liblmdb.so") "\""))))))))
+      (inputs
+       (list lmdb
+             sbcl-alexandria
+             sbcl-bordeaux-threads
+             sbcl-cl-reexport
+             sbcl-mgl-pax
+             sbcl-osicat
+             sbcl-trivial-garbage
+             sbcl-trivial-utf-8))
+      (native-inputs
+       (list sbcl-try))
+      (home-page "https://github.com/antimer/lmdb")
+      (synopsis "LMDB bindings for Common Lisp")
+      (description
+       "LMDB, the Lightning Memory-mapped Database, is an ACID key-value
+database with multiversion concurrency control.  This package is a Common Lisp
+wrapper around the C LMDB library.  It covers most of C LMDB's functionality,
+has a simplified API, much needed safety checks, and comprehensive
+documentation.")
+      (license license:expat))))
+
+(define-public cl-lmdb
+  (sbcl-package->cl-source-package sbcl-lmdb))