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