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