summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2017-06-15 10:21:57 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2017-06-21 21:58:39 +0200
commit07041d95b17e98adb152fee3c92f8f5efa58dcbf (patch)
treeb95372694235eeee7849237517c289957b03b0ef
parentfda852ff40e978b77dd7c4e4fe44e5fe23eedd61 (diff)
downloadguix-07041d95b17e98adb152fee3c92f8f5efa58dcbf.tar.gz
gnu: Add python-lmdb.
* gnu/packages/databases.scm (python-lmdb, python2-lmdb): New variables.
-rw-r--r--gnu/packages/databases.scm46
1 files changed, 46 insertions, 0 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 4aa8949d6c..c614f7fcc7 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1549,3 +1549,49 @@ file format to other databases such as MySQL, Oracle, Sybase, PostgreSQL,
 etc., and an SQL engine for performing simple SQL queries.")
     (license (list license:lgpl2.0
                    license:gpl2+))))
+
+(define-public python-lmdb
+  (package
+    (name "python-lmdb")
+    (version "0.92")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "lmdb" version))
+              (sha256
+               (base32
+                "01nw6r08jkipx6v92kw49z34wmwikrpvc5j9xawdiyg1n2526wrx"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; Delete bundled lmdb source files.
+               '(for-each delete-file (list "lib/lmdb.h"
+                                            "lib/mdb.c"
+                                            "lib/midl.c"
+                                            "lib/midl.h")))))
+    (build-system python-build-system)
+    (inputs
+     `(("lmdb" ,lmdb)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'use-system-lmdb
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((lmdb (assoc-ref inputs "lmdb")))
+               (setenv "LMDB_FORCE_SYSTEM" "set")
+               (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include"))
+               (setenv "LMDB_LIBDIR" (string-append lmdb "/lib"))
+               #t))))
+       ;; Tests fail with: ‘lmdb.tool: Please specify environment (--env)’.
+       #:tests? #f))
+    (home-page "https://github.com/dw/py-lmdb")
+    (synopsis "Python binding for the ‘Lightning’ database (LMDB)")
+    (description
+     "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning
+Memory-Mapped Database} (LMDB), a high-performance key-value store.")
+    (license
+     (list license:openldap2.8
+           ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3,
+           ;; but not actually needed on platforms currently supported by Guix.
+           license:bsd-3))))
+
+(define-public python2-lmdb
+  (package-with-python2 python-lmdb))