summaryrefslogtreecommitdiff
path: root/gnu/packages/guile-xyz.scm
diff options
context:
space:
mode:
authorArtyom Bologov <mail@aartaka.me>2024-01-24 23:20:52 +0400
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-01-26 22:02:19 +0000
commitd9d97e26c152d7b5ff13f8aa7a030fee2004bf79 (patch)
tree102635a19155ed74b8958905e768790333b019d2 /gnu/packages/guile-xyz.scm
parent41e95150a07f4cd736d33a812638439562e4e170 (diff)
gnu: Add guile-lmdb.
* gnu/packages/guile-xyz.scm (guile-lmdb): New variable. Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r--gnu/packages/guile-xyz.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index b90b86a53a..4c696a6823 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2022,6 +2022,48 @@ convenient interface to SQL databases. This package implements the interface
for MySQL.")
(license license:gpl2+)))
+(define-public guile-lmdb
+ (let ((commit "438143ca9ba157faec6f4c2740092c31c733fbfe")
+ (revision "0"))
+ (package
+ (name "guile-lmdb")
+ (version (git-version "0.0.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aartaka/guile-lmdb")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0p43c8ppbhzpi944in0z2jqr7acl8pm7s1x0p5f0idqda6n6f828"))))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:source-directory "modules"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'substitute-lmdb-so
+ (lambda _
+ (let ((lmdb (string-append
+ #$(this-package-input "lmdb") "/lib/liblmdb.so")))
+ (substitute* "modules/lmdb/lmdb.scm"
+ (("liblmdb.so") lmdb))))))))
+ (native-inputs (list guile-3.0))
+ (inputs (list guile-3.0 lmdb))
+ (home-page "https://github.com/aartaka/guile-lmdb")
+ (synopsis "Bindings for Lightning Memory-Mapped Database in Guile")
+ (description "This package provides a Scheme wrapper around liblmdb.so.
+Most names are the same as LMDB ones, except for prefix absence.
+Several conveniences are added on top:
+@itemize
+@item @code{call-with-env-and-txn} and @code{call-with-cursor} wrappers.
+@item @code{for-cursor} procedure for cursor iteration.
+@item @code{val} and @code{stat} types.
+@item Error signaling instead of integer return values.
+@end itemize")
+ (license license:gpl3+))))
+
(define-public guile-config
(package
(name "guile-config")