gnu: Add perl-net-statsd.
[jackhill/guix/guix.git] / gnu / packages / databases.scm
CommitLineData
5f96f303 1;;; GNU Guix --- Functional package management for GNU
ff1f39e3 2;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
b86c013c 3;;; Copyright © 2012, 2014, 2015 Andreas Enge <andreas@enge.fr>
5f96f303 4;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
218a2106 5;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
8047d13d 6;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
e61fd0f0 7;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
77631745 8;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
b747a9db 9;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
b2476513 10;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
679b535b 11;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
4c6aa73b 12;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
0e1b262e 13;;; Copyright © 2016 David Craven <david@craven.ch>
5f96f303
LC
14;;;
15;;; This file is part of GNU Guix.
16;;;
17;;; GNU Guix is free software; you can redistribute it and/or modify it
18;;; under the terms of the GNU General Public License as published by
19;;; the Free Software Foundation; either version 3 of the License, or (at
20;;; your option) any later version.
21;;;
22;;; GNU Guix is distributed in the hope that it will be useful, but
23;;; WITHOUT ANY WARRANTY; without even the implied warranty of
24;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25;;; GNU General Public License for more details.
26;;;
27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29
30(define-module (gnu packages databases)
31 #:use-module (gnu packages)
4c6aa73b
RJ
32 #:use-module (gnu packages autotools)
33 #:use-module (gnu packages avahi)
b747a9db 34 #:use-module (gnu packages bash)
23bbd7dd 35 #:use-module (gnu packages boost)
4c6aa73b
RJ
36 #:use-module (gnu packages gettext)
37 #:use-module (gnu packages glib)
5f96f303 38 #:use-module (gnu packages perl)
708155df 39 #:use-module (gnu packages language)
5f96f303 40 #:use-module (gnu packages linux)
cc2b77df 41 #:use-module (gnu packages tls)
5f96f303
LC
42 #:use-module (gnu packages compression)
43 #:use-module (gnu packages ncurses)
44 #:use-module (gnu packages readline)
45 #:use-module (gnu packages emacs)
46 #:use-module (gnu packages check)
47 #:use-module (gnu packages algebra)
48 #:use-module (gnu packages curl)
4c6aa73b 49 #:use-module (gnu packages cyrus-sasl)
5f96f303 50 #:use-module (gnu packages gnupg)
db60b1d9 51 #:use-module (gnu packages python)
77631745 52 #:use-module (gnu packages pcre)
4c6aa73b
RJ
53 #:use-module (gnu packages pkg-config)
54 #:use-module (gnu packages rdf)
77631745
SB
55 #:use-module (gnu packages xml)
56 #:use-module (gnu packages bison)
57 #:use-module (gnu packages jemalloc)
5f96f303 58 #:use-module ((guix licenses)
6242b314 59 #:select (gpl2 gpl3 gpl3+ lgpl2.1+ lgpl3+ x11-style non-copyleft
463f6766 60 bsd-2 bsd-3 public-domain))
0e1b262e 61 #:use-module ((guix licenses) #:prefix license:)
5f96f303
LC
62 #:use-module (guix packages)
63 #:use-module (guix download)
64 #:use-module (guix build-system gnu)
274da61d 65 #:use-module (guix build-system perl)
77631745 66 #:use-module (guix build-system cmake)
329d13b8 67 #:use-module (guix utils)
5f96f303
LC
68 #:use-module (srfi srfi-26)
69 #:use-module (ice-9 match))
70
4c6aa73b
RJ
71(define-public 4store
72 (package
73 (name "4store")
74 (version "1.1.6")
75 (source (origin
76 (method url-fetch)
77 (uri (string-append "https://github.com/garlik/4store/archive/v"
78 version ".tar.gz"))
79 (file-name (string-append name "-" version ".tar.gz"))
80 (sha256
81 (base32 "004fmcf1w75zhc1x3zc6kc97j4jqn2v5nhk6yb3z3cpfrhzi9j50"))
82 (patches (list (search-patch "4store-fix-buildsystem.patch")))))
83 (build-system gnu-build-system)
84 (native-inputs
85 `(("perl" ,perl)
86 ("python" ,python-2)
87 ("autoconf" ,autoconf)
88 ("automake" ,automake)
89 ("gettext" ,gnu-gettext)
90 ("libtool" ,libtool)
74c8b174 91 ("pcre" ,pcre "bin") ;for 'pcre-config'
4c6aa73b
RJ
92 ("pkg-config" ,pkg-config)))
93 (inputs
94 `(("glib" ,glib)
95 ("rasqal" ,rasqal)
96 ("libxml2" ,libxml2)
97 ("raptor2" ,raptor2)
98 ("readline" ,readline)
99 ("avahi" ,avahi)
4c6aa73b
RJ
100 ("cyrus-sasl" ,cyrus-sasl)
101 ("openssl" ,openssl)
102 ("util-linux" ,util-linux)))
103 (arguments
104 `(#:phases
105 (modify-phases %standard-phases
106 (add-before 'configure 'generate-configure
107 (lambda _
108 (zero? (system* "./autogen.sh")))))))
109 ;; http://www.4store.org has been down for a while now.
110 (home-page "https://github.com/garlik/4store")
111 (synopsis "Clustered RDF storage and query engine")
112 (description "4store is a RDF/SPARQL store written in C, supporting
113either single machines or networked clusters.")
114 (license gpl3+)))
115
b416aadf
LC
116(define-public gdbm
117 (package
118 (name "gdbm")
2135d1eb 119 (version "1.12")
b416aadf
LC
120 (source (origin
121 (method url-fetch)
122 (uri (string-append "mirror://gnu/gdbm/gdbm-"
123 version ".tar.gz"))
124 (sha256
125 (base32
2135d1eb 126 "1smwz4x5qa4js0zf1w3asq6z7mh20zlgwbh2bk5dczw6xrk22yyr"))))
b416aadf
LC
127 (arguments `(#:configure-flags '("--enable-libgdbm-compat")))
128 (build-system gnu-build-system)
129 (home-page "http://www.gnu.org/software/gdbm/")
130 (synopsis
131 "Hash library of database functions compatible with traditional dbm")
132 (description
133 "GDBM is a library for manipulating hashed databases. It is used to
134store key/value pairs in a file in a manner similar to the Unix dbm library
135and provides interfaces to the traditional file format.")
136 (license gpl3+)))
137
5f96f303
LC
138(define-public bdb
139 (package
140 (name "bdb")
18e681bf 141 (version "6.2.23")
5f96f303
LC
142 (source (origin
143 (method url-fetch)
18e681bf
EF
144 (uri (string-append "http://download.oracle.com/berkeley-db/db-"
145 version ".tar.gz"))
146 (sha256
147 (base32
148 "1isxx4jfmnh913jzhp8hhfngbk6dsg46f4kjpvvc56maj64jqqa7"))))
5f96f303
LC
149 (build-system gnu-build-system)
150 (outputs '("out" ; programs, libraries, headers
151 "doc")) ; 94 MiB of HTML docs
152 (arguments
153 '(#:tests? #f ; no check target available
ff1f39e3 154 #:disallowed-references ("doc")
5bef7749
AE
155 #:phases
156 (alist-replace
157 'configure
158 (lambda* (#:key outputs #:allow-other-keys)
159 (let ((out (assoc-ref outputs "out"))
160 (doc (assoc-ref outputs "doc")))
161 ;; '--docdir' is not honored, so we need to patch.
162 (substitute* "dist/Makefile.in"
163 (("docdir[[:blank:]]*=.*")
164 (string-append "docdir = " doc "/share/doc/bdb")))
5f96f303 165
5bef7749
AE
166 (zero?
167 (system* "./dist/configure"
168 (string-append "--prefix=" out)
169 (string-append "CONFIG_SHELL=" (which "bash"))
170 (string-append "SHELL=" (which "bash"))
5f96f303 171
0e50d521
LC
172 ;; Remove 7 MiB of .a files.
173 "--disable-static"
174
5bef7749
AE
175 ;; The compatibility mode is needed by some packages,
176 ;; notably iproute2.
b86c013c
AE
177 "--enable-compat185"
178
179 ;; The following flag is needed so that the inclusion
180 ;; of db_cxx.h into C++ files works; it leads to
181 ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
182 "--enable-cxx"))))
5f96f303 183 %standard-phases)))
35b9e423 184 (synopsis "Berkeley database")
5f96f303
LC
185 (description
186 "Berkeley DB is an embeddable database allowing developers the choice of
187SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
166191b3
LC
188 (license (non-copyleft "file://LICENSE"
189 "See LICENSE in the distribution."))
5f96f303
LC
190 (home-page
191 "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html")))
192
557fa39c
EF
193(define-public bdb-5.3
194 (package (inherit bdb)
195 (name "bdb")
196 (version "5.3.28")
197 (source (origin
198 (method url-fetch)
199 (uri (string-append "http://download.oracle.com/berkeley-db/db-"
200 version ".tar.gz"))
201 (sha256
202 (base32
203 "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0"))))))
204
5f96f303
LC
205(define-public mysql
206 (package
207 (name "mysql")
362bc747 208 (version "5.7.15")
5f96f303
LC
209 (source (origin
210 (method url-fetch)
23bbd7dd
EF
211 (uri (list (string-append
212 "http://dev.mysql.com/get/Downloads/MySQL-"
213 (version-major+minor version) "/"
214 name "-" version ".tar.gz")
215 (string-append
216 "http://downloads.mysql.com/archives/get/file/"
217 name "-" version ".tar.gz")))
5f96f303
LC
218 (sha256
219 (base32
362bc747 220 "0mlrxcvkn6bf869hjw9fb6m24ak26ndffnd91b4mknmz8cqkb1ch"))))
329d13b8
SB
221 (build-system cmake-build-system)
222 (arguments
223 '(#:configure-flags
224 '("-DBUILD_CONFIG=mysql_release"
225 "-DWITH_SSL=system"
226 "-DWITH_ZLIB=system"
227 "-DDEFAULT_CHARSET=utf8"
228 "-DDEFAULT_COLLATION=utf8_general_ci"
229 "-DMYSQL_DATADIR=/var/lib/mysql"
230 "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
231 "-DINSTALL_INFODIR=share/mysql/docs"
232 "-DINSTALL_MANDIR=share/man"
233 "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
234 "-DINSTALL_SCRIPTDIR=bin"
235 "-DINSTALL_INCLUDEDIR=include/mysql"
236 "-DINSTALL_DOCREADMEDIR=share/mysql/docs"
237 "-DINSTALL_SUPPORTFILESDIR=share/mysql"
238 "-DINSTALL_MYSQLSHAREDIR=share/mysql"
239 "-DINSTALL_DOCDIR=share/mysql/docs"
240 "-DINSTALL_SHAREDIR=share/mysql"
241 ;; Get rid of test data.
242 "-DINSTALL_MYSQLTESTDIR="
3f289db6
LC
243 "-DINSTALL_SQLBENCHDIR=")
244 #:phases (modify-phases %standard-phases
245 (add-after
23bbd7dd
EF
246 'unpack 'patch-boost-version
247 (lambda _
248 ;; Mysql wants boost-1.59.0 specifically
249 (substitute* "cmake/boost.cmake"
250 (("59") "60"))))
6a52df50
LC
251 (add-after
252 'install 'remove-extra-binaries
253 (lambda* (#:key outputs #:allow-other-keys)
254 (let ((out (assoc-ref outputs "out")))
255 ;; Remove the 3 *_embedded files, which weigh in at
256 ;; 14 MiB each.
257 (for-each delete-file
258 (find-files (string-append out "/bin")
259 "_embedded$"))
3f289db6 260 #t))))))
329d13b8
SB
261 (native-inputs
262 `(("bison" ,bison)
263 ("perl" ,perl)))
5f96f303 264 (inputs
23bbd7dd
EF
265 `(("boost" ,boost)
266 ("libaio" ,libaio)
267 ("ncurses" ,ncurses)
5f96f303 268 ("openssl" ,openssl)
23bbd7dd 269 ("zlib" ,zlib)))
5f96f303 270 (home-page "http://www.mysql.com/")
9e771e3b 271 (synopsis "Fast, easy to use, and popular database")
5f96f303
LC
272 (description
273 "MySQL is a fast, reliable, and easy to use relational database
274management system that supports the standardized Structured Query
275Language.")
276 (license gpl2)))
277
77631745
SB
278(define-public mariadb
279 (package
280 (name "mariadb")
b5b2c11b 281 (version "10.1.17")
77631745
SB
282 (source (origin
283 (method url-fetch)
284 (uri (string-append "https://downloads.mariadb.org/f/"
285 name "-" version "/source/"
286 name "-" version ".tar.gz"))
287 (sha256
288 (base32
b5b2c11b 289 "1ddalhxxcn95qp5b50z213niylcd0s6bqphid0c7c624wg2mm92c"))))
77631745
SB
290 (build-system cmake-build-system)
291 (arguments
292 '(#:configure-flags
293 '("-DBUILD_CONFIG=mysql_release"
294 "-DDEFAULT_CHARSET=utf8"
295 "-DDEFAULT_COLLATION=utf8_general_ci"
296 "-DMYSQL_DATADIR=/var/lib/mysql"
297 "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
298 "-DINSTALL_INFODIR=share/mysql/docs"
299 "-DINSTALL_MANDIR=share/man"
300 "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
301 "-DINSTALL_SCRIPTDIR=bin"
302 "-DINSTALL_INCLUDEDIR=include/mysql"
303 "-DINSTALL_DOCREADMEDIR=share/mysql/docs"
304 "-DINSTALL_SUPPORTFILESDIR=share/mysql/support-files"
305 "-DINSTALL_MYSQLSHAREDIR=share/mysql"
306 "-DINSTALL_DOCDIR=share/mysql/docs"
307 "-DINSTALL_SHAREDIR=share/mysql")
308 #:phases
309 (modify-phases %standard-phases
310 (add-before
311 'configure 'pre-configure
312 (lambda _
313 (setenv "CONFIG_SHELL" (which "sh"))
77631745
SB
314 #t))
315 (add-after
316 'install 'post-install
317 (lambda* (#:key outputs #:allow-other-keys)
318 (let* ((out (assoc-ref outputs "out"))
319 (test (assoc-ref outputs "test")))
320 (substitute* (string-append out "/bin/mysql_install_db")
321 (("basedir=\"\"")
322 (string-append "basedir=\"" out "\"")))
323 ;; Remove unneeded files for testing.
324 (with-directory-excursion out
325 (for-each delete-file-recursively
326 '("data" "mysql-test" "sql-bench"
327 "share/man/man1/mysql-test-run.pl.1")))))))))
328 (native-inputs
329 `(("bison" ,bison)
330 ("perl" ,perl)))
331 (inputs
332 `(("jemalloc" ,jemalloc)
333 ("libaio" ,libaio)
334 ("libxml2" ,libxml2)
335 ("ncurses" ,ncurses)
336 ("openssl" ,openssl)
337 ("pcre" ,pcre)
338 ("zlib" ,zlib)))
339 (home-page "https://mariadb.org/")
340 (synopsis "SQL database server")
341 (description
342 "MariaDB is a multi-user and multi-threaded SQL database server, designed
343as a drop-in replacement of MySQL.")
344 (license gpl2)))
345
5f96f303
LC
346(define-public postgresql
347 (package
348 (name "postgresql")
2b895f69 349 (version "9.5.4")
5f96f303
LC
350 (source (origin
351 (method url-fetch)
dbeaf8f2 352 (uri (string-append "https://ftp.postgresql.org/pub/source/v"
9020890b 353 version "/postgresql-" version ".tar.bz2"))
5f96f303
LC
354 (sha256
355 (base32
2b895f69 356 "1l3fqxlpxgl6nrcd4h6lpi2hsiv56yg83n3xrn704rmdch8mfpng"))))
5f96f303 357 (build-system gnu-build-system)
dd213082
JD
358 (arguments
359 `(#:phases
360 (modify-phases %standard-phases
361 (add-before 'configure 'patch-/bin/sh
362 (lambda _
363 ;; Refer to the actual shell.
364 (substitute* '("src/bin/pg_ctl/pg_ctl.c"
365 "src/bin/psql/command.c")
366 (("/bin/sh") (which "sh")))
367 #t)))))
5f96f303
LC
368 (inputs
369 `(("readline" ,readline)
370 ("zlib" ,zlib)))
371 (home-page "http://www.postgresql.org/")
372 (synopsis "Powerful object-relational database system")
373 (description
374 "PostgreSQL is a powerful object-relational database system. It is fully
375ACID compliant, has full support for foreign keys, joins, views, triggers, and
376stored procedures (in multiple languages). It includes most SQL:2008 data
377types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and
378TIMESTAMP. It also supports storage of binary large objects, including
379pictures, sounds, or video.")
380 (license (x11-style "file://COPYRIGHT"))))
381
382(define-public recutils
383 (package
384 (name "recutils")
385 (version "1.7")
386 (source (origin
387 (method url-fetch)
388 (uri (string-append "mirror://gnu/recutils/recutils-"
389 version ".tar.gz"))
390 (sha256
391 (base32
392 "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93"))))
393 (build-system gnu-build-system)
394
395 ;; Running tests in parallel leads to test failures and crashes in
396 ;; torture/utils.
b747a9db
LF
397 (arguments '(#:parallel-tests? #f
398 #:configure-flags
399 (list (string-append "--with-bash-headers="
400 (assoc-ref %build-inputs "bash:include")
401 "/include/bash"))))
5f96f303 402
b8fc3622 403 (native-inputs `(("emacs" ,emacs-minimal)
7ae7ca0e 404 ("bc" ,bc)
b747a9db 405 ("bash:include" ,bash "include")
b3546174 406 ("libuuid" ,util-linux)))
5f96f303
LC
407
408 ;; TODO: Add more optional inputs.
5f96f303
LC
409 (inputs `(("curl" ,curl)
410 ("libgcrypt" ,libgcrypt)
411 ("check" ,check)))
412 (synopsis "Manipulate plain text files as databases")
413 (description
414 "GNU Recutils is a set of tools and libraries for creating and
415manipulating text-based, human-editable databases. Despite being text-based,
416databases created with Recutils carry all of the expected features such as
c5779c93
LC
417unique fields, primary keys, time stamps and more. Many different field
418types are supported, as is encryption.")
5f96f303
LC
419 (license gpl3+)
420 (home-page "http://www.gnu.org/software/recutils/")))
421
b92d02d9
RJ
422(define-public sparql-query
423 (package
424 (name "sparql-query")
425 (version "1.1")
426 (source (origin
427 (method url-fetch)
428 (uri (string-append "https://github.com/tialaramex/"
429 name "/archive/" version ".tar.gz"))
430 (sha256
431 (base32 "0yq3k20472rv8npcc420q9ab6idy584g5y0q501d360k5q0ggr8w"))
432 (file-name (string-append name "-" version ".tar.gz"))))
433 (build-system gnu-build-system)
434 (inputs
435 `(("readline" ,readline)
436 ("ncurses" ,ncurses)
437 ("glib" ,glib)
438 ("libxml2" ,libxml2)
439 ("curl" ,curl)))
440 (native-inputs
441 `(("pkg-config" ,pkg-config)))
442 (arguments
443 `(#:make-flags '("CC=gcc")
444 #:phases
445 (modify-phases %standard-phases
446 (delete 'configure)
447 ;; The Makefile uses git to obtain versioning information. This phase
448 ;; substitutes the git invocation with the package version.
449 (add-after 'unpack 'remove-git-dependency
450 (lambda _
451 (substitute* "Makefile"
452 (("^gitrev :=.*$")
453 (string-append "gitrev = \"v" ,version "\"")))))
454 ;; The install phase of the Makefile assumes $PREFIX/usr/local/bin.
455 ;; This replacement does the same thing, except for using $PREFIX/bin
456 ;; instead.
457 (replace 'install
458 (lambda* (#:key outputs #:allow-other-keys)
459 (let* ((out (assoc-ref outputs "out"))
460 (bin (string-append out "/bin")))
461 (install-file "sparql-query" bin)
462 (system* "ln" "--symbolic"
463 (string-append bin "/sparql-query")
464 (string-append bin "/sparql-update")))))
465 (replace 'check
466 (lambda* (#:key make-flags #:allow-other-keys)
467 (and
468 (zero? (apply system* "make" `(,@make-flags "scan-test")))
469 (zero? (system "./scan-test"))))))))
470 (home-page "https://github.com/tialaramex/sparql-query/")
471 (synopsis "Command-line tool for accessing SPARQL endpoints over HTTP")
472 (description "Sparql-query is a command-line tool for accessing SPARQL
473endpoints over HTTP. It has been intentionally designed to 'feel' similar to
474tools for interrogating SQL databases. For example, you can enter a query over
475several lines, using a semi-colon at the end of a line to indicate the end of
476your query. It also supports readline so that you can more easily recall and
477edit previous queries, even across sessions. It can be used non-interactively,
478for example from a shell script.")
479 ;; Some files (like scan-sparql.c) contain a GPLv3+ license header, while
480 ;; others (like sparql-query.c) contain a GPLv2+ license header.
481 (license (list gpl3+))))
482
5f96f303
LC
483(define-public sqlite
484 (package
485 (name "sqlite")
45ff4b56 486 (version "3.12.2")
5f96f303
LC
487 (source (origin
488 (method url-fetch)
489 ;; TODO: Download from sqlite.org once this bug :
490 ;; http://lists.gnu.org/archive/html/bug-guile/2013-01/msg00027.html
491 ;; has been fixed.
492 (uri (let ((numeric-version
493 (match (string-split version #\.)
494 ((first-digit other-digits ...)
495 (string-append first-digit
496 (string-pad-right
497 (string-concatenate
498 (map (cut string-pad <> 2 #\0)
499 other-digits))
500 6 #\0))))))
42e66649
SB
501 (list
502 (string-append
75710da6
LC
503 "https://fossies.org/linux/misc/sqlite-autoconf-"
504 numeric-version ".tar.gz")
42e66649 505 (string-append
75710da6
LC
506 "http://distfiles.gentoo.org/distfiles/"
507 "/sqlite-autoconf-" numeric-version ".tar.gz"))
6f96706d
LC
508
509 ;; XXX: As of 2015-09-08, SourceForge is squatting the URL
510 ;; below, returning 200 and showing an advertising page.
511 ;; (string-append
512 ;; "mirror://sourceforge/sqlite.mirror/SQLite%20" version
513 ;; "/sqlite-autoconf-" numeric-version ".tar.gz")
514 ))
5f96f303
LC
515 (sha256
516 (base32
45ff4b56 517 "1fwss0i2lixv39b27gkqiibdd2syym90wh3qbiaxnfgxk867f07x"))))
5f96f303 518 (build-system gnu-build-system)
8f1d22b7 519 (inputs `(("readline" ,readline)))
49689377
MW
520 (arguments
521 `(#:configure-flags
522 ;; Add -DSQLITE_SECURE_DELETE and -DSQLITE_ENABLE_UNLOCK_NOTIFY to
523 ;; CFLAGS. GNU Icecat will refuse to use the system SQLite unless these
524 ;; options are enabled.
525 '("CFLAGS=-O2 -DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_UNLOCK_NOTIFY")))
5f96f303
LC
526 (home-page "http://www.sqlite.org/")
527 (synopsis "The SQLite database management system")
528 (description
529 "SQLite is a software library that implements a self-contained, serverless,
35b9e423
EB
530zero-configuration, transactional SQL database engine. SQLite is the most
531widely deployed SQL database engine in the world. The source code for SQLite
532is in the public domain.")
5f96f303 533 (license public-domain)))
db60b1d9
LC
534
535(define-public tdb
536 (package
537 (name "tdb")
6747a852 538 (version "1.3.9")
db60b1d9
LC
539 (source (origin
540 (method url-fetch)
ca473fc2 541 (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
db60b1d9
LC
542 version ".tar.gz"))
543 (sha256
544 (base32
6747a852 545 "1ll4q17scax1arg12faj8p25jq1f7q9irc3pwla0ziymwqkgf0bi"))))
db60b1d9
LC
546 (build-system gnu-build-system)
547 (arguments
548 '(#:phases (alist-replace
549 'configure
550 (lambda* (#:key outputs #:allow-other-keys)
551 (let ((out (assoc-ref outputs "out")))
552 ;; The 'configure' script is a wrapper for Waf and
553 ;; doesn't recognize things like '--enable-fast-install'.
554 (zero? (system* "./configure"
555 (string-append "--prefix=" out)))))
556 %standard-phases)))
557 (native-inputs
558 `(;; TODO: Build the documentation.
559 ;; ("docbook-xsl" ,docbook-xsl)
560 ;; ("libxml2" ,libxml2)
561 ;; ("libxslt" ,libxslt)
562 ("python" ,python-2))) ;for the Waf build system
563 (home-page "http://tdb.samba.org/")
35b9e423 564 (synopsis "Trivial database")
db60b1d9
LC
565 (description
566 "TDB is a Trivial Database. In concept, it is very much like GDBM,
567and BSD's DB except that it allows multiple simultaneous writers and uses
568locking internally to keep writers from trampling on each other. TDB is also
569extremely small.")
570 (license lgpl3+)))
274da61d
LC
571
572(define-public perl-dbi
573 (package
574 (name "perl-dbi")
6138dede 575 (version "1.636")
274da61d
LC
576 (source (origin
577 (method url-fetch)
578 (uri (string-append
579 "mirror://cpan/authors/id/T/TI/TIMB/DBI-"
580 version ".tar.gz"))
581 (sha256
582 (base32
6138dede 583 "0v37vnr5p0bx396cj0lb5kb69jbryq2mspp602hbgd04gklxqzcg"))))
274da61d
LC
584 (build-system perl-build-system)
585 (synopsis "Database independent interface for Perl")
586 (description "This package provides an database interface for Perl.")
6138dede 587 (home-page "http://search.cpan.org/dist/DBI")
274da61d
LC
588 (license (package-license perl))))
589
feae3395
EB
590(define-public perl-dbix-class
591 (package
592 (name "perl-dbix-class")
593 (version "0.082810")
594 (source
595 (origin
596 (method url-fetch)
597 (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/"
598 "DBIx-Class-" version ".tar.gz"))
599 (sha256
600 (base32
601 "1zlsswk8j2k024gwhdhia8ksrmb8065n98dahkk8c0r69wv85n04"))))
602 (build-system perl-build-system)
603 (native-inputs
604 `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
605 ("perl-file-temp" ,perl-file-temp)
606 ("perl-package-stash" ,perl-package-stash)
607 ("perl-test-deep" ,perl-test-deep)
608 ("perl-test-exception" ,perl-test-exception)
609 ("perl-test-warn" ,perl-test-warn)))
610 (propagated-inputs
611 `(("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
612 ("perl-class-c3-componentised" ,perl-class-c3-componentised)
613 ("perl-class-inspector" ,perl-class-inspector)
614 ("perl-config-any" ,perl-config-any)
615 ("perl-context-preserve" ,perl-context-preserve)
616 ("perl-data-dumper-concise" ,perl-data-dumper-concise)
617 ("perl-data-page" ,perl-data-page)
618 ("perl-dbi" ,perl-dbi)
619 ("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
620 ("perl-hash-merge" ,perl-hash-merge)
621 ("perl-module-find" ,perl-module-find)
622 ("perl-moo" ,perl-moo)
623 ("perl-mro-compat" ,perl-mro-compat)
624 ("perl-namespace-clean" ,perl-namespace-clean)
625 ("perl-path-class" ,perl-path-class)
626 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
627 ("perl-scope-guard" ,perl-scope-guard)
628 ("perl-sql-abstract" ,perl-sql-abstract)
629 ("perl-sub-name" ,perl-sub-name)
630 ("perl-text-balanced" ,perl-text-balanced)
631 ("perl-try-tiny" ,perl-try-tiny)))
632 (home-page "http://search.cpan.org/dist/DBIx-Class")
633 (synopsis "Extensible and flexible object <-> relational mapper")
634 (description "An SQL to OO mapper with an object API inspired by
635Class::DBI (with a compatibility layer as a springboard for porting) and a
636resultset API that allows abstract encapsulation of database operations. It
637aims to make representing queries in your code as perl-ish as possible while
638still providing access to as many of the capabilities of the database as
639possible, including retrieving related records from multiple tables in a
640single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
641\"ORDER BY\" and \"HAVING\" support.")
e61fd0f0
EB
642 (license (package-license perl))))
643
4e4039e5
EB
644(define-public perl-dbix-class-cursor-cached
645 (package
646 (name "perl-dbix-class-cursor-cached")
647 (version "1.001002")
648 (source
649 (origin
650 (method url-fetch)
651 (uri (string-append "mirror://cpan/authors/id/A/AR/ARCANEZ/"
652 "DBIx-Class-Cursor-Cached-" version ".tar.gz"))
653 (sha256
654 (base32
655 "19r7jr6pknxiirrybq0cd0lnr76xiw05arnfqgk9nrhp6c7vvil0"))))
656 (build-system perl-build-system)
657 (native-inputs
658 `(("perl-cache-cache" ,perl-cache-cache)
659 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
660 (propagated-inputs
661 `(("perl-carp-clan" ,perl-carp-clan)
662 ("perl-dbix-class" ,perl-dbix-class)))
663 (home-page "http://search.cpan.org/dist/DBIx-Class-Cursor-Cached")
664 (synopsis "Cursor with built-in caching support")
665 (description "DBIx::Class::Cursor::Cached provides a cursor class with
666built-in caching support.")
667 (license (package-license perl))))
668
e61fd0f0
EB
669(define-public perl-dbix-class-introspectablem2m
670 (package
671 (name "perl-dbix-class-introspectablem2m")
672 (version "0.001001")
673 (source
674 (origin
675 (method url-fetch)
676 (uri (string-append "mirror://cpan/authors/id/G/GR/GRODITI/"
677 "DBIx-Class-IntrospectableM2M-" version ".tar.gz"))
678 (sha256
679 (base32
680 "0p9zx1yc1f6jg583l206wilsni2v8mlngc2vf2q8yn10pmy4y6wm"))))
681 (build-system perl-build-system)
682 (propagated-inputs
683 `(("perl-dbix-class" ,perl-dbix-class)))
684 (home-page "http://search.cpan.org/dist/DBIx-Class-IntrospectableM2M")
685 (synopsis "Introspect many-to-many relationships")
686 (description "Because the many-to-many relationships are not real
687relationships, they can not be introspected with DBIx::Class. Many-to-many
688relationships are actually just a collection of convenience methods installed
689to bridge two relationships. This DBIx::Class component can be used to store
690all relevant information about these non-relationships so they can later be
691introspected and examined.")
708155df
EB
692 (license (package-license perl))))
693
694(define-public perl-dbix-class-schema-loader
695 (package
696 (name "perl-dbix-class-schema-loader")
697 (version "0.07042")
698 (source
699 (origin
700 (method url-fetch)
701 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
702 "DBIx-Class-Schema-Loader-" version ".tar.gz"))
703 (sha256
704 (base32
705 "0sb48as7azmj6s4acxh98wcvcik7lxm7dcjz1c3wdrkrbmbbz0jf"))))
706 (build-system perl-build-system)
707 (native-inputs
708 `(("perl-config-any" ,perl-config-any)
709 ("perl-config-general" ,perl-config-general)
710 ("perl-dbd-sqlite" ,perl-dbd-sqlite)
711 ("perl-dbix-class-introspectablem2m" ,perl-dbix-class-introspectablem2m)
712 ("perl-moose" ,perl-moose)
713 ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
714 ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
715 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
716 ("perl-test-deep" ,perl-test-deep)
717 ("perl-test-differences" ,perl-test-differences)
718 ("perl-test-exception" ,perl-test-exception)
719 ("perl-test-pod" ,perl-test-pod)
720 ("perl-test-warn" ,perl-test-warn)))
721 (propagated-inputs
722 `(("perl-class-unload" ,perl-class-unload)
723 ("perl-class-inspector" ,perl-class-inspector)
724 ("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
725 ("perl-class-c3-componentised" ,perl-class-c3-componentised)
726 ("perl-carp-clan" ,perl-carp-clan)
727 ("perl-data-dump" ,perl-data-dump)
728 ("perl-dbix-class" ,perl-dbix-class)
729 ("perl-hash-merge" ,perl-hash-merge)
730 ("perl-list-moreutils" ,perl-list-moreutils)
731 ("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase)
732 ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number)
733 ("perl-lingua-en-tagger" ,perl-lingua-en-tagger)
734 ("perl-namespace-clean" ,perl-namespace-clean)
735 ("perl-mro-compat" ,perl-mro-compat)
736 ("perl-scope-guard" ,perl-scope-guard)
737 ("perl-string-camelcase" ,perl-string-camelcase)
738 ("perl-string-toidentifier-en" ,perl-string-toidentifier-en)
739 ("perl-sub-name" ,perl-sub-name)
740 ("perl-try-tiny" ,perl-try-tiny)))
741 (arguments `(#:tests? #f)) ;TODO: t/20invocations.t fails
742 (home-page "http://search.cpan.org/dist/DBIx-Class-Schema-Loader")
743 (synopsis "Create a DBIx::Class::Schema based on a database")
744 (description "DBIx::Class::Schema::Loader automates the definition of a
745DBIx::Class::Schema by scanning database table definitions and setting up the
746columns, primary keys, unique constraints and relationships.")
274da61d
LC
747 (license (package-license perl))))
748
186eb132
EB
749(define-public perl-dbd-pg
750 (package
751 (name "perl-dbd-pg")
752 (version "3.5.1")
753 (source
754 (origin
755 (method url-fetch)
756 (uri (string-append "mirror://cpan/authors/id/T/TU/TURNSTEP/"
757 "DBD-Pg-" version ".tar.gz"))
758 (sha256
759 (base32
760 "0z0kf1kjgbi5f6nr63i2fnrx7629d9lvxg1q8sficwb3zdf1ggzx"))))
761 (build-system perl-build-system)
762 (native-inputs
763 `(("perl-dbi" ,perl-dbi)))
764 (propagated-inputs
765 `(("perl-dbi" ,perl-dbi)
766 ("postgresql" ,postgresql)))
767 (home-page "http://search.cpan.org/dist/DBD-Pg")
768 (synopsis "DBI PostgreSQL interface")
f33e71fc
LC
769 (description "This package provides a PostgreSQL driver for the Perl5
770@dfn{Database Interface} (DBI).")
186eb132
EB
771 (license (package-license perl))))
772
4b7857a4
RW
773(define-public perl-dbd-mysql
774 (package
775 (name "perl-dbd-mysql")
d2600150 776 (version "4.035")
4b7857a4
RW
777 (source
778 (origin
779 (method url-fetch)
d2600150 780 (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
4b7857a4
RW
781 "DBD-mysql-" version ".tar.gz"))
782 (sha256
783 (base32
d2600150 784 "0dqrnrk8yjl06xl8hld5wyalk77z0h9j5h1gdk4z9g0nx9js7v5p"))))
4b7857a4
RW
785 (build-system perl-build-system)
786 ;; Tests require running MySQL server
787 (arguments `(#:tests? #f))
788 (propagated-inputs
789 `(("perl-dbi" ,perl-dbi)
790 ("mysql" ,mysql)))
791 (home-page "http://search.cpan.org/dist/DBD-mysql")
792 (synopsis "DBI MySQL interface")
793 (description "This package provides a MySQL driver for the Perl5
794@dfn{Database Interface} (DBI).")
795 (license (package-license perl))))
796
274da61d
LC
797(define-public perl-dbd-sqlite
798 (package
799 (name "perl-dbd-sqlite")
800 (version "1.42")
801 (source (origin
802 (method url-fetch)
803 (uri (string-append
804 "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-"
805 version ".tar.gz"))
806 (sha256
807 (base32
808 "14x9cjsc8dz8ad1nad0bqiq9cbk1rjfb8h5y0rpk3pdl38y6afxb"))))
809 (build-system perl-build-system)
810 (inputs `(("sqlite" ,sqlite)))
811 (propagated-inputs `(("perl-dbi" ,perl-dbi)))
812 (synopsis "SQlite interface for Perl")
813 (description "DBD::SQLite is a Perl DBI driver for SQLite, that includes
814the entire thing in the distribution. So in order to get a fast transaction
815capable RDBMS working for your Perl project you simply have to install this
816module, and nothing else.")
817 (license (package-license perl))
818 (home-page "http://search.cpan.org/~ishigaki/DBD-SQLite/lib/DBD/SQLite.pm")))
14e84b2d 819
dd90952e
EB
820(define-public perl-sql-abstract
821 (package
822 (name "perl-sql-abstract")
823 (version "1.81")
824 (source
825 (origin
826 (method url-fetch)
827 (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/"
828 "SQL-Abstract-" version ".tar.gz"))
829 (sha256
830 (base32
831 "17sgwq3mvqjhv3b77cnvrq60xgp8harjhlnvpwmxc914rqc5ckaz"))))
832 (build-system perl-build-system)
833 (native-inputs
834 `(("perl-test-deep" ,perl-test-deep)
835 ("perl-test-exception" ,perl-test-exception)
836 ("perl-test-warn" ,perl-test-warn)))
837 (propagated-inputs
838 `(("perl-hash-merge" ,perl-hash-merge)
839 ("perl-moo" ,perl-moo)
840 ("perl-mro-compat" ,perl-mro-compat)
841 ("perl-text-balanced" ,perl-text-balanced)))
842 (home-page "http://search.cpan.org/dist/SQL-Abstract")
843 (synopsis "Generate SQL from Perl data structures")
844 (description "This module was inspired by the excellent DBIx::Abstract.
845While based on the concepts used by DBIx::Abstract, the concepts used have
846been modified to make the SQL easier to generate from Perl data structures.
847The underlying idea is for this module to do what you mean, based on the data
848structures you provide it, so that you don't have to modify your code every
e881752c 849time your data changes.")
dd90952e 850 (license (package-license perl))))
14e84b2d 851
b4dcb026
EB
852(define-public perl-sql-splitstatement
853 (package
854 (name "perl-sql-splitstatement")
855 (version "1.00020")
856 (source
857 (origin
858 (method url-fetch)
859 (uri (string-append "mirror://cpan/authors/id/E/EM/EMAZEP/"
860 "SQL-SplitStatement-" version ".tar.gz"))
861 (sha256
862 (base32
863 "0bqg45k4c9qkb2ypynlwhpvzsl4ssfagmsalys18s5c79ps30z7p"))))
864 (build-system perl-build-system)
865 (native-inputs
866 `(("perl-test-exception" ,perl-test-exception)))
867 (propagated-inputs
868 `(("perl-class-accessor" ,perl-class-accessor)
869 ("perl-list-moreutils" ,perl-list-moreutils)
870 ("perl-regexp-common" ,perl-regexp-common)
871 ("perl-sql-tokenizer" ,perl-sql-tokenizer)))
872 (home-page "http://search.cpan.org/dist/SQL-SplitStatement")
873 (synopsis "Split SQL code into atomic statements")
874 (description "This module tries to split any SQL code, even including
875non-standard extensions, into the atomic statements it is composed of.")
876 (license (package-license perl))))
877
718c89c1
EB
878(define-public perl-sql-tokenizer
879 (package
880 (name "perl-sql-tokenizer")
881 (version "0.24")
882 (source
883 (origin
884 (method url-fetch)
885 (uri (string-append "mirror://cpan/authors/id/I/IZ/IZUT/"
886 "SQL-Tokenizer-" version ".tar.gz"))
887 (sha256
888 (base32
889 "1qa2dfbzdlr5qqdam9yn78z5w3al5r8577x06qan8wv58ay6ka7s"))))
890 (build-system perl-build-system)
891 (home-page "http://search.cpan.org/dist/SQL-Tokenizer")
892 (synopsis "SQL tokenizer")
893 (description "SQL::Tokenizer is a tokenizer for SQL queries. It does not
894claim to be a parser or query verifier. It just creates sane tokens from a
895valid SQL query.")
896 (license (package-license perl))))
897
14e84b2d
JD
898(define-public unixodbc
899 (package
900 (name "unixodbc")
3fef0a2f 901 (version "2.3.4")
14e84b2d
JD
902 (source (origin
903 (method url-fetch)
e881752c 904 (uri
14e84b2d 905 (string-append
3fef0a2f
EF
906 "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
907 version ".tar.gz"))
14e84b2d 908 (sha256
3fef0a2f 909 (base32 "0f8y88rcc2akjvjv5y66yx7k0ms9h1s0vbcfy25j93didflhj59f"))))
14e84b2d
JD
910 (build-system gnu-build-system)
911 (synopsis "Data source abstraction library")
912 (description "Unixodbc is a library providing an API with which to access
913data sources. Data sources include SQL Servers and any software with an ODBC
914Driver.")
e881752c 915 (license lgpl2.1+)
14e84b2d
JD
916 ;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
917 (home-page "http://www.unixodbc.org")))
b4a9c924
EB
918
919(define-public unqlite
920 (package
921 (name "unqlite")
922 (version "1.1.6")
923 (source (origin
924 (method url-fetch)
925 ;; Contains bug fixes against the official release, and has an
926 ;; autotooled build system.
927 (uri (string-append "https://github.com/aidin36/tocc/releases/"
928 "download/v1.0.0/"
929 "unqlite-unofficial-" version ".tar.gz"))
930 (sha256
931 (base32
932 "1sbpvhg15gadq0mpcy16q7k3rkg4b4dicpnn5xifpkpn02sqik3s"))))
933 (build-system gnu-build-system)
934 (arguments `(#:tests? #f)) ;No check target
935 (home-page "http://www.unqlite.org")
936 (synopsis "In-memory key/value and document store")
937 (description
938 "UnQLite is an in-process software library which implements a
939self-contained, serverless, zero-configuration, transactional NoSQL
940database engine. UnQLite is a document store database similar to
941MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store
69b4ffcf 942similar to BerkeleyDB, LevelDB, etc.")
b4a9c924 943 (license bsd-2)))
463f6766
DT
944
945(define-public redis
946 (package
947 (name "redis")
383434cc 948 (version "3.2.3")
463f6766
DT
949 (source (origin
950 (method url-fetch)
951 (uri (string-append "http://download.redis.io/releases/redis-"
952 version".tar.gz"))
953 (sha256
954 (base32
383434cc 955 "05az2g3gna5lkhh6x1a5m6yardbiig1l4ysggldlk5if8ww9qkk7"))))
463f6766
DT
956 (build-system gnu-build-system)
957 (arguments
958 '(#:tests? #f ; tests related to master/slave and replication fail
959 #:phases (modify-phases %standard-phases
960 (delete 'configure))
961 #:make-flags `("CC=gcc"
962 "MALLOC=libc"
963 ,(string-append "PREFIX="
964 (assoc-ref %outputs "out")))))
965 (synopsis "Key-value cache and store")
966 (description "Redis is an advanced key-value cache and store. Redis
967supports many data structures including strings, hashes, lists, sets, sorted
968sets, bitmaps and hyperloglogs.")
969 (home-page "http://redis.io/")
970 (license bsd-3)))
a65e2a02 971
972(define-public kyotocabinet
973 (package
974 (name "kyotocabinet")
975 (version "1.2.76")
976 (source (origin
977 (method url-fetch)
978 (uri (string-append "http://fallabs.com/kyotocabinet/pkg/"
979 name "-" version ".tar.gz"))
980 (sha256
981 (base32
982 "0g6js20x7vnpq4p8ghbw3mh9wpqksya9vwhzdx6dnlf354zjsal1"))))
983 (build-system gnu-build-system)
984 (arguments
985 `(#:configure-flags
986 (list
987 (string-append "LDFLAGS=-Wl,-rpath="
988 (assoc-ref %outputs "out") "/lib"))))
989 (inputs `(("zlib" ,zlib)))
990 (home-page "http://fallabs.com/kyotocabinet/")
991 (synopsis
992 "Kyoto Cabinet is a modern implementation of the DBM database")
993 (description
994 "Kyoto Cabinet is a standalone file-based database that supports Hash
995and B+ Tree data storage models. It is a fast key-value lightweight
996database and supports many programming languages. It is a NoSQL database.")
997 (license gpl3+)))
6242b314
SB
998
999(define-public wiredtiger
1000 (package
1001 (name "wiredtiger")
1002 (version "2.8.0")
1003 (source (origin
1004 (method url-fetch)
1005 (uri (string-append
1006 "http://source.wiredtiger.com/releases/wiredtiger-"
1007 version ".tar.bz2"))
1008 (sha256
1009 (base32
1010 "1qh7y5paisdxq19jgg81ld7i32lz920n5k30hdpxnr8ll9c4hgjr"))))
1011 (build-system gnu-build-system)
1012 (arguments
1013 '(#:configure-flags '("--enable-lz4" "--enable-zlib")
1014 #:phases
1015 (modify-phases %standard-phases
1016 (add-before 'check 'disable-test/fops
1017 (lambda _
1018 ;; XXX: timed out after 3600 seconds of silence
1019 (substitute* "Makefile"
1020 (("test/fops") ""))
1021 #t)))))
1022 (inputs
1023 `(("lz4" ,lz4)
1024 ("zlib" ,zlib)))
1025 (home-page "http://source.wiredtiger.com/")
1026 (synopsis "NoSQL data engine")
1027 (description
1028 "WiredTiger is an extensible platform for data management. It supports
1029row-oriented storage (where all columns of a row are stored together),
1030column-oriented storage (where columns are stored in groups, allowing for
1031more efficient access and storage of column subsets) and log-structured merge
1032trees (LSM), for sustained throughput under random insert workloads.")
1033 (license gpl3) ; or GPL-2
1034 ;; configure.ac: WiredTiger requires a 64-bit build.
1035 (supported-systems '("x86_64-linux" "mips64el-linux"))))
90c2ee88
DM
1036
1037(define-public perl-db-file
1038 (package
1039 (name "perl-db-file")
1040 (version "1.838")
1041 (source
1042 (origin
1043 (method url-fetch)
1044 (uri (string-append
1045 "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
1046 version
1047 ".tar.gz"))
1048 (sha256
1049 (base32
1050 "0yp5d5zr8dk9g6xdh7ygi5bq63q7nxvhd58dk2i3ki4nb7yv2yh9"))))
1051 (build-system perl-build-system)
1052 (inputs `(("bdb" ,bdb)))
1053 (native-inputs `(("perl-test-pod" ,perl-test-pod)))
1054 (arguments
1055 `(#:phases (modify-phases %standard-phases
1056 (add-before
1057 'configure 'modify-config.in
1058 (lambda* (#:key inputs #:allow-other-keys)
1059 (substitute* "config.in"
1060 (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb")))
1061 #t)))))
1062 (home-page "http://search.cpan.org/dist/DB_File")
1063 (synopsis
1064 "Perl5 access to Berkeley DB version 1.x")
1065 (description
1066 "The DB::File module provides Perl bindings to the Berkeley DB version 1.x.")
1067 (license (package-license perl))))
0e1b262e
DC
1068
1069(define-public lmdb
1070 (package
1071 (name "lmdb")
1072 (version "0.9.18")
1073 (source (origin
1074 (method url-fetch)
1075 (uri (string-append "https://github.com/LMDB/lmdb/archive/"
1076 "LMDB_" version ".tar.gz"))
1077 (sha256
1078 (base32
1079 "12crvzxky8in99ibh22k4ppmkgqs28yy3v7yy944za7fsrqv8dfx"))))
1080 (build-system gnu-build-system)
1081 (arguments
1082 `(#:test-target "test"
1083 #:phases
1084 (modify-phases %standard-phases
1085 (replace 'configure
1086 (lambda* (#:key outputs #:allow-other-keys)
1087 (chdir (string-append
1088 (getenv "PWD") "/lmdb-LMDB_" ,version "/libraries/liblmdb"))
1089 (substitute* "Makefile"
1090 (("/usr/local") (assoc-ref outputs "out")))
1091 #t)))))
1092 (home-page "https://symas.com/products/lightning-memory-mapped-database")
1093 (synopsis "Lightning memory-mapped database library")
1094 (description "Lightning memory-mapped database library.")
1095 (license license:openldap2.8)))