gnu: lmdb: Expand description.
[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>
9a9d6d78 10;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
bdc11dc4 11;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
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>
62ea44fc 15;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
b9f771a7 16;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
259a94e9 17;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
d39a84e8 18;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
fda852ff 19;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
5f96f303
LC
20;;;
21;;; This file is part of GNU Guix.
22;;;
23;;; GNU Guix is free software; you can redistribute it and/or modify it
24;;; under the terms of the GNU General Public License as published by
25;;; the Free Software Foundation; either version 3 of the License, or (at
26;;; your option) any later version.
27;;;
28;;; GNU Guix is distributed in the hope that it will be useful, but
29;;; WITHOUT ANY WARRANTY; without even the implied warranty of
30;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31;;; GNU General Public License for more details.
32;;;
33;;; You should have received a copy of the GNU General Public License
34;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
35
36(define-module (gnu packages databases)
37 #:use-module (gnu packages)
06a035db 38 #:use-module (gnu packages algebra)
4c6aa73b
RJ
39 #:use-module (gnu packages autotools)
40 #:use-module (gnu packages avahi)
77e52190 41 #:use-module (gnu packages base)
b747a9db 42 #:use-module (gnu packages bash)
06a035db 43 #:use-module (gnu packages bison)
23bbd7dd 44 #:use-module (gnu packages boost)
06a035db
MB
45 #:use-module (gnu packages check)
46 #:use-module (gnu packages compression)
62ea44fc 47 #:use-module (gnu packages crypto)
06a035db
MB
48 #:use-module (gnu packages curl)
49 #:use-module (gnu packages cyrus-sasl)
50 #:use-module (gnu packages emacs)
4c6aa73b
RJ
51 #:use-module (gnu packages gettext)
52 #:use-module (gnu packages glib)
06a035db
MB
53 #:use-module (gnu packages gnupg)
54 #:use-module (gnu packages jemalloc)
708155df 55 #:use-module (gnu packages language)
5f96f303 56 #:use-module (gnu packages linux)
d39a84e8 57 #:use-module (gnu packages man)
5f96f303 58 #:use-module (gnu packages ncurses)
d3c6ad0a 59 #:use-module (gnu packages parallel)
77631745 60 #:use-module (gnu packages pcre)
06a035db 61 #:use-module (gnu packages perl)
4c6aa73b 62 #:use-module (gnu packages pkg-config)
d3c6ad0a 63 #:use-module (gnu packages popt)
06a035db 64 #:use-module (gnu packages python)
4c6aa73b 65 #:use-module (gnu packages rdf)
06a035db
MB
66 #:use-module (gnu packages readline)
67 #:use-module (gnu packages tcl)
68 #:use-module (gnu packages tls)
77631745 69 #:use-module (gnu packages xml)
0e1b262e 70 #:use-module ((guix licenses) #:prefix license:)
5f96f303
LC
71 #:use-module (guix packages)
72 #:use-module (guix download)
73 #:use-module (guix build-system gnu)
274da61d 74 #:use-module (guix build-system perl)
4d98bfaf 75 #:use-module (guix build-system python)
77631745 76 #:use-module (guix build-system cmake)
329d13b8 77 #:use-module (guix utils)
5f96f303
LC
78 #:use-module (srfi srfi-26)
79 #:use-module (ice-9 match))
80
4c6aa73b
RJ
81(define-public 4store
82 (package
83 (name "4store")
84 (version "1.1.6")
85 (source (origin
86 (method url-fetch)
87 (uri (string-append "https://github.com/garlik/4store/archive/v"
88 version ".tar.gz"))
89 (file-name (string-append name "-" version ".tar.gz"))
90 (sha256
91 (base32 "004fmcf1w75zhc1x3zc6kc97j4jqn2v5nhk6yb3z3cpfrhzi9j50"))
92 (patches (list (search-patch "4store-fix-buildsystem.patch")))))
93 (build-system gnu-build-system)
94 (native-inputs
95 `(("perl" ,perl)
96 ("python" ,python-2)
97 ("autoconf" ,autoconf)
98 ("automake" ,automake)
b94a6ca0 99 ("gettext" ,gettext-minimal)
4c6aa73b 100 ("libtool" ,libtool)
74c8b174 101 ("pcre" ,pcre "bin") ;for 'pcre-config'
4c6aa73b
RJ
102 ("pkg-config" ,pkg-config)))
103 (inputs
104 `(("glib" ,glib)
105 ("rasqal" ,rasqal)
106 ("libxml2" ,libxml2)
107 ("raptor2" ,raptor2)
108 ("readline" ,readline)
109 ("avahi" ,avahi)
4c6aa73b
RJ
110 ("cyrus-sasl" ,cyrus-sasl)
111 ("openssl" ,openssl)
112 ("util-linux" ,util-linux)))
113 (arguments
114 `(#:phases
115 (modify-phases %standard-phases
116 (add-before 'configure 'generate-configure
117 (lambda _
118 (zero? (system* "./autogen.sh")))))))
119 ;; http://www.4store.org has been down for a while now.
120 (home-page "https://github.com/garlik/4store")
121 (synopsis "Clustered RDF storage and query engine")
122 (description "4store is a RDF/SPARQL store written in C, supporting
123either single machines or networked clusters.")
ba8b9f8d 124 (license license:gpl3+)))
4c6aa73b 125
b416aadf
LC
126(define-public gdbm
127 (package
128 (name "gdbm")
2135d1eb 129 (version "1.12")
b416aadf
LC
130 (source (origin
131 (method url-fetch)
132 (uri (string-append "mirror://gnu/gdbm/gdbm-"
133 version ".tar.gz"))
134 (sha256
135 (base32
2135d1eb 136 "1smwz4x5qa4js0zf1w3asq6z7mh20zlgwbh2bk5dczw6xrk22yyr"))))
b416aadf
LC
137 (arguments `(#:configure-flags '("--enable-libgdbm-compat")))
138 (build-system gnu-build-system)
6fd52309 139 (home-page "http://www.gnu.org.ua/software/gdbm")
b416aadf
LC
140 (synopsis
141 "Hash library of database functions compatible with traditional dbm")
142 (description
143 "GDBM is a library for manipulating hashed databases. It is used to
144store key/value pairs in a file in a manner similar to the Unix dbm library
145and provides interfaces to the traditional file format.")
ba8b9f8d 146 (license license:gpl3+)))
b416aadf 147
5f96f303
LC
148(define-public bdb
149 (package
150 (name "bdb")
18e681bf 151 (version "6.2.23")
5f96f303
LC
152 (source (origin
153 (method url-fetch)
18e681bf
EF
154 (uri (string-append "http://download.oracle.com/berkeley-db/db-"
155 version ".tar.gz"))
156 (sha256
157 (base32
158 "1isxx4jfmnh913jzhp8hhfngbk6dsg46f4kjpvvc56maj64jqqa7"))))
5f96f303
LC
159 (build-system gnu-build-system)
160 (outputs '("out" ; programs, libraries, headers
161 "doc")) ; 94 MiB of HTML docs
162 (arguments
163 '(#:tests? #f ; no check target available
ff1f39e3 164 #:disallowed-references ("doc")
5bef7749
AE
165 #:phases
166 (alist-replace
167 'configure
168 (lambda* (#:key outputs #:allow-other-keys)
169 (let ((out (assoc-ref outputs "out"))
170 (doc (assoc-ref outputs "doc")))
171 ;; '--docdir' is not honored, so we need to patch.
172 (substitute* "dist/Makefile.in"
173 (("docdir[[:blank:]]*=.*")
174 (string-append "docdir = " doc "/share/doc/bdb")))
5f96f303 175
5bef7749
AE
176 (zero?
177 (system* "./dist/configure"
178 (string-append "--prefix=" out)
179 (string-append "CONFIG_SHELL=" (which "bash"))
180 (string-append "SHELL=" (which "bash"))
5f96f303 181
0e50d521
LC
182 ;; Remove 7 MiB of .a files.
183 "--disable-static"
184
5bef7749
AE
185 ;; The compatibility mode is needed by some packages,
186 ;; notably iproute2.
b86c013c
AE
187 "--enable-compat185"
188
189 ;; The following flag is needed so that the inclusion
190 ;; of db_cxx.h into C++ files works; it leads to
191 ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
192 "--enable-cxx"))))
5f96f303 193 %standard-phases)))
35b9e423 194 (synopsis "Berkeley database")
5f96f303
LC
195 (description
196 "Berkeley DB is an embeddable database allowing developers the choice of
197SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
a24fda81
MB
198 ;; Starting with version 6, BDB is distributed under AGPL3. Many individual
199 ;; files are covered by the 3-clause BSD license.
ba8b9f8d 200 (license (list license:agpl3+ license:bsd-3))
5f96f303
LC
201 (home-page
202 "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html")))
203
557fa39c
EF
204(define-public bdb-5.3
205 (package (inherit bdb)
206 (name "bdb")
207 (version "5.3.28")
ba8b9f8d
MB
208 (license (license:non-copyleft "file://LICENSE"
209 "See LICENSE in the distribution."))
557fa39c
EF
210 (source (origin
211 (method url-fetch)
212 (uri (string-append "http://download.oracle.com/berkeley-db/db-"
213 version ".tar.gz"))
214 (sha256
215 (base32
9a9d6d78
EF
216 "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0"))))
217 (arguments
218 `(#:tests? #f ; no check target available
219 #:disallowed-references ("doc")
220 #:phases
221 (alist-replace
222 'configure
223 (lambda* (#:key outputs #:allow-other-keys)
224 (let ((out (assoc-ref outputs "out"))
225 (doc (assoc-ref outputs "doc")))
226 ;; '--docdir' is not honored, so we need to patch.
227 (substitute* "dist/Makefile.in"
228 (("docdir[[:blank:]]*=.*")
229 (string-append "docdir = " doc "/share/doc/bdb")))
230
231 (zero?
232 (system* "./dist/configure"
233 (string-append "--prefix=" out)
234 (string-append "CONFIG_SHELL=" (which "bash"))
235 (string-append "SHELL=" (which "bash"))
236
237 ;; Bdb doesn't recognize aarch64 as an architecture.
238 ,@(if (string=? "aarch64-linux" (%current-system))
239 '("--build=aarch64-unknown-linux-gnu")
240 '())
241
242 ;; Remove 7 MiB of .a files.
243 "--disable-static"
244
245 ;; The compatibility mode is needed by some packages,
246 ;; notably iproute2.
247 "--enable-compat185"
248
249 ;; The following flag is needed so that the inclusion
250 ;; of db_cxx.h into C++ files works; it leads to
251 ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
252 "--enable-cxx"))))
253 %standard-phases)))))
557fa39c 254
b9f771a7
MB
255(define-public leveldb
256 (package
257 (name "leveldb")
04c88363 258 (version "1.20")
b9f771a7
MB
259 (source (origin
260 (method url-fetch)
261 (uri (string-append "https://github.com/google/leveldb"
262 "/archive/v" version ".tar.gz"))
263 (file-name (string-append name "-" version ".tar.gz"))
264 (sha256
265 (base32
04c88363 266 "0r36bcrj6b2afsp4aw1gjai3jbs1c7734pxpc1jz7hh9nasyiazm"))))
b9f771a7
MB
267 (build-system gnu-build-system)
268 (arguments
269 '(#:make-flags (list "CC=gcc")
270 #:phases
271 (modify-phases %standard-phases
272 (delete 'configure)
273 (replace 'install
274 ;; There is no install target, so we do it here.
275 (lambda* (#:key outputs #:allow-other-keys)
276 (let* ((out (assoc-ref outputs "out"))
277 (lib (string-append out "/lib"))
278 (include (string-append out "/include")))
279 (for-each (lambda (file)
280 (install-file file lib))
281 (find-files "out-shared" "^libleveldb\\.so.*$"))
282 (copy-recursively "include" include)
283 #t))))))
284 (inputs
285 `(("snappy" ,snappy)))
286 (home-page "http://leveldb.org/")
287 (synopsis "Fast key-value storage library")
288 (description
289 "LevelDB is a fast key-value storage library that provides an ordered
290mapping from string keys to string values.")
ba8b9f8d 291 (license license:bsd-3)))
b9f771a7 292
5f96f303
LC
293(define-public mysql
294 (package
295 (name "mysql")
ab71ea93 296 (version "5.7.18")
5f96f303
LC
297 (source (origin
298 (method url-fetch)
23bbd7dd
EF
299 (uri (list (string-append
300 "http://dev.mysql.com/get/Downloads/MySQL-"
301 (version-major+minor version) "/"
302 name "-" version ".tar.gz")
303 (string-append
304 "http://downloads.mysql.com/archives/get/file/"
305 name "-" version ".tar.gz")))
5f96f303
LC
306 (sha256
307 (base32
ab71ea93 308 "18m1mr55k9zmvnyqs0wr50csqsz3scs09fykh60wsml6c3np2p8b"))))
329d13b8
SB
309 (build-system cmake-build-system)
310 (arguments
69419655 311 `(#:configure-flags
329d13b8
SB
312 '("-DBUILD_CONFIG=mysql_release"
313 "-DWITH_SSL=system"
314 "-DWITH_ZLIB=system"
315 "-DDEFAULT_CHARSET=utf8"
316 "-DDEFAULT_COLLATION=utf8_general_ci"
317 "-DMYSQL_DATADIR=/var/lib/mysql"
318 "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
319 "-DINSTALL_INFODIR=share/mysql/docs"
320 "-DINSTALL_MANDIR=share/man"
321 "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
322 "-DINSTALL_SCRIPTDIR=bin"
323 "-DINSTALL_INCLUDEDIR=include/mysql"
324 "-DINSTALL_DOCREADMEDIR=share/mysql/docs"
325 "-DINSTALL_SUPPORTFILESDIR=share/mysql"
326 "-DINSTALL_MYSQLSHAREDIR=share/mysql"
327 "-DINSTALL_DOCDIR=share/mysql/docs"
328 "-DINSTALL_SHAREDIR=share/mysql"
329 ;; Get rid of test data.
330 "-DINSTALL_MYSQLTESTDIR="
3f289db6
LC
331 "-DINSTALL_SQLBENCHDIR=")
332 #:phases (modify-phases %standard-phases
333 (add-after
23bbd7dd
EF
334 'unpack 'patch-boost-version
335 (lambda _
336 ;; Mysql wants boost-1.59.0 specifically
337 (substitute* "cmake/boost.cmake"
69419655
EB
338 (("59")
339 ,(match (string-split (package-version boost) #\.)
340 ((_ minor . _) minor))))))
6a52df50
LC
341 (add-after
342 'install 'remove-extra-binaries
343 (lambda* (#:key outputs #:allow-other-keys)
344 (let ((out (assoc-ref outputs "out")))
345 ;; Remove the 3 *_embedded files, which weigh in at
346 ;; 14 MiB each.
347 (for-each delete-file
348 (find-files (string-append out "/bin")
349 "_embedded$"))
b4f67b7e
EF
350 #t))))
351 ;; On aarch64 the test suite runs out of memory and fails.
352 ,@(if (string-prefix? "aarch64-linux"
353 (or (%current-target-system) (%current-system)))
354 '(#:tests? #f)
355 '())))
329d13b8
SB
356 (native-inputs
357 `(("bison" ,bison)
358 ("perl" ,perl)))
5f96f303 359 (inputs
23bbd7dd
EF
360 `(("boost" ,boost)
361 ("libaio" ,libaio)
362 ("ncurses" ,ncurses)
5f96f303 363 ("openssl" ,openssl)
23bbd7dd 364 ("zlib" ,zlib)))
5f96f303 365 (home-page "http://www.mysql.com/")
9e771e3b 366 (synopsis "Fast, easy to use, and popular database")
5f96f303
LC
367 (description
368 "MySQL is a fast, reliable, and easy to use relational database
369management system that supports the standardized Structured Query
370Language.")
ba8b9f8d 371 (license license:gpl2)))
5f96f303 372
77631745
SB
373(define-public mariadb
374 (package
375 (name "mariadb")
607b424f 376 (version "10.1.24")
77631745
SB
377 (source (origin
378 (method url-fetch)
379 (uri (string-append "https://downloads.mariadb.org/f/"
380 name "-" version "/source/"
381 name "-" version ".tar.gz"))
382 (sha256
383 (base32
607b424f 384 "07jm9m7d5x4zdpasdjs98m36dkjl7ypc9jz4xmnczj0ybfp9kpxk"))))
77631745
SB
385 (build-system cmake-build-system)
386 (arguments
387 '(#:configure-flags
388 '("-DBUILD_CONFIG=mysql_release"
6cf8e576
LF
389 ;; Linking with libarchive fails, like this:
390
391 ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o):
392 ;; relocation R_X86_64_32 against `.bss' can not be used when
393 ;; making a shared object; recompile with -fPIC
394
395 ;; For now, disable the features that that use libarchive (xtrabackup).
396 "-DWITH_LIBARCHIVE=OFF"
397
77631745
SB
398 "-DDEFAULT_CHARSET=utf8"
399 "-DDEFAULT_COLLATION=utf8_general_ci"
400 "-DMYSQL_DATADIR=/var/lib/mysql"
401 "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
402 "-DINSTALL_INFODIR=share/mysql/docs"
403 "-DINSTALL_MANDIR=share/man"
404 "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
405 "-DINSTALL_SCRIPTDIR=bin"
406 "-DINSTALL_INCLUDEDIR=include/mysql"
407 "-DINSTALL_DOCREADMEDIR=share/mysql/docs"
408 "-DINSTALL_SUPPORTFILESDIR=share/mysql/support-files"
409 "-DINSTALL_MYSQLSHAREDIR=share/mysql"
410 "-DINSTALL_DOCDIR=share/mysql/docs"
411 "-DINSTALL_SHAREDIR=share/mysql")
412 #:phases
413 (modify-phases %standard-phases
414 (add-before
415 'configure 'pre-configure
416 (lambda _
417 (setenv "CONFIG_SHELL" (which "sh"))
77631745
SB
418 #t))
419 (add-after
420 'install 'post-install
421 (lambda* (#:key outputs #:allow-other-keys)
422 (let* ((out (assoc-ref outputs "out"))
423 (test (assoc-ref outputs "test")))
424 (substitute* (string-append out "/bin/mysql_install_db")
425 (("basedir=\"\"")
426 (string-append "basedir=\"" out "\"")))
427 ;; Remove unneeded files for testing.
428 (with-directory-excursion out
429 (for-each delete-file-recursively
430 '("data" "mysql-test" "sql-bench"
431 "share/man/man1/mysql-test-run.pl.1")))))))))
432 (native-inputs
433 `(("bison" ,bison)
434 ("perl" ,perl)))
435 (inputs
436 `(("jemalloc" ,jemalloc)
437 ("libaio" ,libaio)
438 ("libxml2" ,libxml2)
439 ("ncurses" ,ncurses)
440 ("openssl" ,openssl)
441 ("pcre" ,pcre)
442 ("zlib" ,zlib)))
443 (home-page "https://mariadb.org/")
444 (synopsis "SQL database server")
445 (description
446 "MariaDB is a multi-user and multi-threaded SQL database server, designed
447as a drop-in replacement of MySQL.")
ba8b9f8d 448 (license license:gpl2)))
77631745 449
5f96f303
LC
450(define-public postgresql
451 (package
452 (name "postgresql")
9bd42f1d 453 (version "9.6.3")
5f96f303
LC
454 (source (origin
455 (method url-fetch)
dbeaf8f2 456 (uri (string-append "https://ftp.postgresql.org/pub/source/v"
9020890b 457 version "/postgresql-" version ".tar.bz2"))
5f96f303
LC
458 (sha256
459 (base32
9bd42f1d 460 "1imrjp4vfslxj5rrvphcrrk21zv8kqw3gacmwradixh1d5rv6i8n"))))
5f96f303 461 (build-system gnu-build-system)
dd213082 462 (arguments
b7aa3f5d
DM
463 `(#:configure-flags '("--with-uuid=e2fs")
464 #:phases
dd213082
JD
465 (modify-phases %standard-phases
466 (add-before 'configure 'patch-/bin/sh
467 (lambda _
468 ;; Refer to the actual shell.
469 (substitute* '("src/bin/pg_ctl/pg_ctl.c"
470 "src/bin/psql/command.c")
471 (("/bin/sh") (which "sh")))
b7aa3f5d
DM
472 #t))
473 (add-after 'build 'build-contrib
474 (lambda _
475 (zero? (system* "make" "-C" "contrib"))))
476 (add-after 'install 'install-contrib
477 (lambda _
478 (zero? (system* "make" "-C" "contrib" "install")))))))
5f96f303
LC
479 (inputs
480 `(("readline" ,readline)
b7aa3f5d 481 ("libuuid" ,util-linux)
5f96f303 482 ("zlib" ,zlib)))
d887f420 483 (home-page "https://www.postgresql.org/")
5f96f303
LC
484 (synopsis "Powerful object-relational database system")
485 (description
486 "PostgreSQL is a powerful object-relational database system. It is fully
487ACID compliant, has full support for foreign keys, joins, views, triggers, and
488stored procedures (in multiple languages). It includes most SQL:2008 data
489types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and
490TIMESTAMP. It also supports storage of binary large objects, including
491pictures, sounds, or video.")
ba8b9f8d 492 (license (license:x11-style "file://COPYRIGHT"))))
5f96f303 493
259a94e9
TD
494(define-public qdbm
495 (package
496 (name "qdbm")
497 (version "1.8.78")
498 (source
499 (origin
500 (method url-fetch)
501 (uri (string-append "http://fallabs.com/" name "/"
502 name "-" version ".tar.gz"))
503 (sha256
504 (base32
505 "0gmpvhn02pkq280ffmn4da1g4mdr1xxz7l80b7y4n7km1mrzwrml"))))
506 (build-system gnu-build-system)
507 (arguments
508 `( #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
509 (assoc-ref %outputs "out")
510 "/lib"))))
511 (home-page "http://fallabs.com/qdbm")
512 (synopsis "Key-value database")
513 (description "QDBM is a library of routines for managing a
514database. The database is a simple data file containing key-value
515pairs. Every key and value is serial bytes with variable length.
516Binary data as well as character strings can be used as a key or a
517value. There is no concept of data tables or data types. Records are
518organized in a hash table or B+ tree.")
519 (license license:lgpl2.1+)))
520
5f96f303
LC
521(define-public recutils
522 (package
523 (name "recutils")
524 (version "1.7")
525 (source (origin
526 (method url-fetch)
527 (uri (string-append "mirror://gnu/recutils/recutils-"
528 version ".tar.gz"))
529 (sha256
530 (base32
531 "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93"))))
532 (build-system gnu-build-system)
533
534 ;; Running tests in parallel leads to test failures and crashes in
535 ;; torture/utils.
b747a9db
LF
536 (arguments '(#:parallel-tests? #f
537 #:configure-flags
538 (list (string-append "--with-bash-headers="
539 (assoc-ref %build-inputs "bash:include")
c21af659
LC
540 "/include/bash"))
541
542 #:phases (modify-phases %standard-phases
543 (add-before 'build 'set-bash4.4-header-location
544 (lambda _
545 (substitute* "bash/Makefile.in"
546 ;; Adjust the header search path for Bash
547 ;; 4.4 in accordance with 'bash.pc'.
548 (("AM_CPPFLAGS = (.*)$" _ rest)
549 (string-append "AM_CPPFLAGS = "
550 "-I$(BASH_HEADERS)/include "
551 rest))
552
553 ;; Install to PREFIX/lib/bash to match Bash
554 ;; 4.4's search path.
555 (("^libdir = .*$")
556 "libdir = @libdir@/bash\n"))
557 #t)))))
5f96f303 558
b8fc3622 559 (native-inputs `(("emacs" ,emacs-minimal)
7ae7ca0e 560 ("bc" ,bc)
b747a9db 561 ("bash:include" ,bash "include")
b3546174 562 ("libuuid" ,util-linux)))
5f96f303
LC
563
564 ;; TODO: Add more optional inputs.
5f96f303
LC
565 (inputs `(("curl" ,curl)
566 ("libgcrypt" ,libgcrypt)
567 ("check" ,check)))
568 (synopsis "Manipulate plain text files as databases")
569 (description
570 "GNU Recutils is a set of tools and libraries for creating and
571manipulating text-based, human-editable databases. Despite being text-based,
572databases created with Recutils carry all of the expected features such as
c5779c93
LC
573unique fields, primary keys, time stamps and more. Many different field
574types are supported, as is encryption.")
ba8b9f8d 575 (license license:gpl3+)
6fd52309 576 (home-page "https://www.gnu.org/software/recutils/")))
5f96f303 577
d3c6ad0a
MB
578(define-public rocksdb
579 (package
580 (name "rocksdb")
2e93ee5f 581 (version "5.2.1")
d3c6ad0a
MB
582 (source (origin
583 (method url-fetch)
584 (uri (string-append "https://github.com/facebook/rocksdb"
585 "/archive/v" version ".tar.gz"))
586 (file-name (string-append name "-" version ".tar.gz"))
587 (sha256
588 (base32
2e93ee5f 589 "1v2q05bl56sfp51m09z7g6489hkfq4vf6b4qgfg3d96ylgmay9yb"))
d3c6ad0a
MB
590 (modules '((guix build utils)))
591 (snippet
592 '(begin
593 ;; TODO: unbundle gtest.
594 (delete-file "build_tools/gnu_parallel")
595 #t))))
596 (build-system gnu-build-system)
597 (arguments
d7b344c5 598 `(#:make-flags (list "CC=gcc"
d3c6ad0a
MB
599 (string-append "INSTALL_PATH="
600 (assoc-ref %outputs "out")))
d7b344c5
MB
601 ;; Many tests fail on 32-bit platforms. There are multiple reports about
602 ;; this upstream, but it's not going to be supported any time soon.
603 #:tests? (let ((system ,(or (%current-target-system)
604 (%current-system))))
605 (or (string-prefix? "x86_64-linux" system)
606 (string-prefix? "aarch64-linux" system)))
d3c6ad0a
MB
607 #:phases
608 (modify-phases %standard-phases
609 (add-after 'unpack 'patch-Makefile
610 (lambda _
611 (substitute* "Makefile"
612 (("build_tools/gnu_parallel") "parallel")
f91c677c
MB
613 ;; Don't depend on the static library when installing.
614 (("install: install-static")
615 "install: install-shared")
d3c6ad0a
MB
616 (("#!/bin/sh") (string-append "#!" (which "sh"))))
617 #t))
618 (delete 'configure)
d7b344c5
MB
619 ;; The default target is only needed for tests and built on demand.
620 (delete 'build)
621 (add-before 'check 'disable-optimizations
622 (lambda _
623 ;; Prevent the build from passing '-march=native' to the compiler.
624 (setenv "PORTABLE" "1")
625 #t))
d3c6ad0a
MB
626 (add-before 'check 'disable-failing-tests
627 (lambda _
628 (substitute* "Makefile"
bf144793
MB
629 ;; This test fails with GCC-5 and is unmaintained.
630 ;; https://github.com/facebook/rocksdb/issues/2148
631 (("^[[:blank:]]+spatial_db_test[[:blank:]]+\\\\") "\\")
d3c6ad0a
MB
632 ;; These tests reliably fail due to "Too many open files".
633 (("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\")
634 (("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))
635 #t))
f91c677c
MB
636 (add-after 'check 'build-release-libraries
637 ;; The default build target is a debug build for tests. The
638 ;; install target depends on "shared_lib" and "static_lib"
639 ;; targets for release builds so we build them here for clarity.
640 ;; TODO: Add debug output.
641 (lambda* (#:key (make-flags '()) #:allow-other-keys)
f91c677c 642 (zero? (apply system* "make" "shared_lib" make-flags)))))))
d3c6ad0a
MB
643 (native-inputs
644 `(("parallel" ,parallel)
645 ("perl" ,perl)
646 ("procps" ,procps)
77e52190
MB
647 ("python" ,python-2)
648 ("which" ,which)))
d3c6ad0a
MB
649 (inputs
650 `(("bzip2" ,bzip2)
651 ("gflags" ,gflags)
652 ("jemalloc" ,jemalloc)
653 ("lz4" ,lz4)
654 ("snappy" ,snappy)
655 ("zlib" ,zlib)))
656 (home-page "http://rocksdb.org/")
657 (synopsis "Persistent key-value store for fast storage")
658 (description
659 "RocksDB is a library that forms the core building block for a fast
660key-value server, especially suited for storing data on flash drives. It
661has a @dfn{Log-Structured-Merge-Database} (LSM) design with flexible tradeoffs
662between @dfn{Write-Amplification-Factor} (WAF), @dfn{Read-Amplification-Factor}
663(RAF) and @dfn{Space-Amplification-Factor} (SAF). It has multi-threaded
664compactions, making it specially suitable for storing multiple terabytes of
665data in a single database. RocksDB is partially based on @code{LevelDB}.")
666 ;; RocksDB is BSD-3 and the JNI adapter is Apache 2.0.
ba8b9f8d 667 (license (list license:bsd-3 license:asl2.0))))
d3c6ad0a 668
b92d02d9
RJ
669(define-public sparql-query
670 (package
671 (name "sparql-query")
672 (version "1.1")
673 (source (origin
674 (method url-fetch)
675 (uri (string-append "https://github.com/tialaramex/"
676 name "/archive/" version ".tar.gz"))
677 (sha256
678 (base32 "0yq3k20472rv8npcc420q9ab6idy584g5y0q501d360k5q0ggr8w"))
679 (file-name (string-append name "-" version ".tar.gz"))))
680 (build-system gnu-build-system)
681 (inputs
682 `(("readline" ,readline)
683 ("ncurses" ,ncurses)
684 ("glib" ,glib)
685 ("libxml2" ,libxml2)
686 ("curl" ,curl)))
687 (native-inputs
688 `(("pkg-config" ,pkg-config)))
689 (arguments
690 `(#:make-flags '("CC=gcc")
691 #:phases
692 (modify-phases %standard-phases
693 (delete 'configure)
694 ;; The Makefile uses git to obtain versioning information. This phase
695 ;; substitutes the git invocation with the package version.
696 (add-after 'unpack 'remove-git-dependency
697 (lambda _
698 (substitute* "Makefile"
699 (("^gitrev :=.*$")
700 (string-append "gitrev = \"v" ,version "\"")))))
701 ;; The install phase of the Makefile assumes $PREFIX/usr/local/bin.
702 ;; This replacement does the same thing, except for using $PREFIX/bin
703 ;; instead.
704 (replace 'install
705 (lambda* (#:key outputs #:allow-other-keys)
706 (let* ((out (assoc-ref outputs "out"))
707 (bin (string-append out "/bin")))
708 (install-file "sparql-query" bin)
709 (system* "ln" "--symbolic"
710 (string-append bin "/sparql-query")
711 (string-append bin "/sparql-update")))))
712 (replace 'check
713 (lambda* (#:key make-flags #:allow-other-keys)
714 (and
715 (zero? (apply system* "make" `(,@make-flags "scan-test")))
716 (zero? (system "./scan-test"))))))))
717 (home-page "https://github.com/tialaramex/sparql-query/")
718 (synopsis "Command-line tool for accessing SPARQL endpoints over HTTP")
719 (description "Sparql-query is a command-line tool for accessing SPARQL
720endpoints over HTTP. It has been intentionally designed to 'feel' similar to
721tools for interrogating SQL databases. For example, you can enter a query over
722several lines, using a semi-colon at the end of a line to indicate the end of
723your query. It also supports readline so that you can more easily recall and
724edit previous queries, even across sessions. It can be used non-interactively,
725for example from a shell script.")
726 ;; Some files (like scan-sparql.c) contain a GPLv3+ license header, while
727 ;; others (like sparql-query.c) contain a GPLv2+ license header.
ba8b9f8d 728 (license (list license:gpl3+))))
b92d02d9 729
5f96f303
LC
730(define-public sqlite
731 (package
732 (name "sqlite")
8a68a353 733 (version "3.17.0")
5f96f303
LC
734 (source (origin
735 (method url-fetch)
5f96f303
LC
736 (uri (let ((numeric-version
737 (match (string-split version #\.)
738 ((first-digit other-digits ...)
739 (string-append first-digit
740 (string-pad-right
741 (string-concatenate
742 (map (cut string-pad <> 2 #\0)
743 other-digits))
744 6 #\0))))))
e58db46b 745 (string-append "https://sqlite.org/2017/sqlite-autoconf-"
3ad8cb41 746 numeric-version ".tar.gz")))
5f96f303
LC
747 (sha256
748 (base32
8a68a353 749 "0k472gq0p706jq4529p60znvw02hdf172qxgbdv59q0n7anqbr54"))))
5f96f303 750 (build-system gnu-build-system)
8f1d22b7 751 (inputs `(("readline" ,readline)))
49689377
MW
752 (arguments
753 `(#:configure-flags
73dc727e
DC
754 ;; Add -DSQLITE_SECURE_DELETE, -DSQLITE_ENABLE_UNLOCK_NOTIFY and
755 ;; -DSQLITE_ENABLE_DBSTAT_VTAB to CFLAGS. GNU Icecat will refuse
756 ;; to use the system SQLite unless these options are enabled.
757 (list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE "
758 "-DSQLITE_ENABLE_UNLOCK_NOTIFY "
759 "-DSQLITE_ENABLE_DBSTAT_VTAB"))))
3ad8cb41 760 (home-page "https://www.sqlite.org/")
5f96f303
LC
761 (synopsis "The SQLite database management system")
762 (description
763 "SQLite is a software library that implements a self-contained, serverless,
35b9e423
EB
764zero-configuration, transactional SQL database engine. SQLite is the most
765widely deployed SQL database engine in the world. The source code for SQLite
766is in the public domain.")
ba8b9f8d 767 (license license:public-domain)))
db60b1d9
LC
768
769(define-public tdb
770 (package
771 (name "tdb")
1abd0904 772 (version "1.3.11")
db60b1d9
LC
773 (source (origin
774 (method url-fetch)
ca473fc2 775 (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
db60b1d9
LC
776 version ".tar.gz"))
777 (sha256
778 (base32
1abd0904 779 "0i1l38h0vyck6zkcj4fn2l03spadlmyr1qa1xpdp9dy2ccbm3s1r"))))
db60b1d9
LC
780 (build-system gnu-build-system)
781 (arguments
6ccb7814
EF
782 '(#:phases
783 (modify-phases %standard-phases
784 (replace 'configure
785 (lambda* (#:key outputs #:allow-other-keys)
786 (let ((out (assoc-ref outputs "out")))
787 ;; The 'configure' script is a wrapper for Waf and
788 ;; doesn't recognize things like '--enable-fast-install'.
789 (zero? (system* "./configure"
790 (string-append "--prefix=" out)))))))))
db60b1d9
LC
791 (native-inputs
792 `(;; TODO: Build the documentation.
793 ;; ("docbook-xsl" ,docbook-xsl)
794 ;; ("libxml2" ,libxml2)
795 ;; ("libxslt" ,libxslt)
796 ("python" ,python-2))) ;for the Waf build system
1abd0904 797 (home-page "https://tdb.samba.org/")
35b9e423 798 (synopsis "Trivial database")
db60b1d9
LC
799 (description
800 "TDB is a Trivial Database. In concept, it is very much like GDBM,
801and BSD's DB except that it allows multiple simultaneous writers and uses
802locking internally to keep writers from trampling on each other. TDB is also
803extremely small.")
ba8b9f8d 804 (license license:lgpl3+)))
274da61d
LC
805
806(define-public perl-dbi
807 (package
808 (name "perl-dbi")
6138dede 809 (version "1.636")
274da61d
LC
810 (source (origin
811 (method url-fetch)
812 (uri (string-append
813 "mirror://cpan/authors/id/T/TI/TIMB/DBI-"
814 version ".tar.gz"))
815 (sha256
816 (base32
6138dede 817 "0v37vnr5p0bx396cj0lb5kb69jbryq2mspp602hbgd04gklxqzcg"))))
274da61d
LC
818 (build-system perl-build-system)
819 (synopsis "Database independent interface for Perl")
820 (description "This package provides an database interface for Perl.")
6138dede 821 (home-page "http://search.cpan.org/dist/DBI")
2f3108ad 822 (license license:perl-license)))
274da61d 823
feae3395
EB
824(define-public perl-dbix-class
825 (package
826 (name "perl-dbix-class")
5d78d746 827 (version "0.082840")
feae3395
EB
828 (source
829 (origin
830 (method url-fetch)
831 (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/"
832 "DBIx-Class-" version ".tar.gz"))
833 (sha256
834 (base32
5d78d746 835 "1vw1f756g8m5hq11nqf5dk2cw2y4mqq91ca5p75fn5g3fp8syja0"))))
feae3395
EB
836 (build-system perl-build-system)
837 (native-inputs
838 `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
839 ("perl-file-temp" ,perl-file-temp)
840 ("perl-package-stash" ,perl-package-stash)
841 ("perl-test-deep" ,perl-test-deep)
842 ("perl-test-exception" ,perl-test-exception)
843 ("perl-test-warn" ,perl-test-warn)))
844 (propagated-inputs
845 `(("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
846 ("perl-class-c3-componentised" ,perl-class-c3-componentised)
847 ("perl-class-inspector" ,perl-class-inspector)
848 ("perl-config-any" ,perl-config-any)
849 ("perl-context-preserve" ,perl-context-preserve)
850 ("perl-data-dumper-concise" ,perl-data-dumper-concise)
851 ("perl-data-page" ,perl-data-page)
852 ("perl-dbi" ,perl-dbi)
853 ("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
854 ("perl-hash-merge" ,perl-hash-merge)
855 ("perl-module-find" ,perl-module-find)
856 ("perl-moo" ,perl-moo)
857 ("perl-mro-compat" ,perl-mro-compat)
858 ("perl-namespace-clean" ,perl-namespace-clean)
859 ("perl-path-class" ,perl-path-class)
860 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
861 ("perl-scope-guard" ,perl-scope-guard)
862 ("perl-sql-abstract" ,perl-sql-abstract)
863 ("perl-sub-name" ,perl-sub-name)
864 ("perl-text-balanced" ,perl-text-balanced)
865 ("perl-try-tiny" ,perl-try-tiny)))
866 (home-page "http://search.cpan.org/dist/DBIx-Class")
867 (synopsis "Extensible and flexible object <-> relational mapper")
868 (description "An SQL to OO mapper with an object API inspired by
869Class::DBI (with a compatibility layer as a springboard for porting) and a
870resultset API that allows abstract encapsulation of database operations. It
871aims to make representing queries in your code as perl-ish as possible while
872still providing access to as many of the capabilities of the database as
873possible, including retrieving related records from multiple tables in a
874single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
875\"ORDER BY\" and \"HAVING\" support.")
2f3108ad 876 (license license:perl-license)))
e61fd0f0 877
4e4039e5
EB
878(define-public perl-dbix-class-cursor-cached
879 (package
880 (name "perl-dbix-class-cursor-cached")
180cb81b 881 (version "1.001004")
4e4039e5
EB
882 (source
883 (origin
884 (method url-fetch)
885 (uri (string-append "mirror://cpan/authors/id/A/AR/ARCANEZ/"
886 "DBIx-Class-Cursor-Cached-" version ".tar.gz"))
887 (sha256
888 (base32
180cb81b 889 "09b2jahn2x12qm4f7qm1jzsxbz7qn1czp6a3fnl5l2i3l4r5421p"))))
4e4039e5
EB
890 (build-system perl-build-system)
891 (native-inputs
892 `(("perl-cache-cache" ,perl-cache-cache)
893 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
894 (propagated-inputs
895 `(("perl-carp-clan" ,perl-carp-clan)
896 ("perl-dbix-class" ,perl-dbix-class)))
897 (home-page "http://search.cpan.org/dist/DBIx-Class-Cursor-Cached")
898 (synopsis "Cursor with built-in caching support")
899 (description "DBIx::Class::Cursor::Cached provides a cursor class with
900built-in caching support.")
2f3108ad 901 (license license:perl-license)))
4e4039e5 902
e61fd0f0
EB
903(define-public perl-dbix-class-introspectablem2m
904 (package
905 (name "perl-dbix-class-introspectablem2m")
7a462b80 906 (version "0.001002")
e61fd0f0
EB
907 (source
908 (origin
909 (method url-fetch)
68a9d6df 910 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
e61fd0f0
EB
911 "DBIx-Class-IntrospectableM2M-" version ".tar.gz"))
912 (sha256
913 (base32
7a462b80 914 "1w47rh2241iy5x3a9bqsyd5kdp9sk43dksr99frzv4qn4jsazfn6"))))
e61fd0f0
EB
915 (build-system perl-build-system)
916 (propagated-inputs
917 `(("perl-dbix-class" ,perl-dbix-class)))
918 (home-page "http://search.cpan.org/dist/DBIx-Class-IntrospectableM2M")
919 (synopsis "Introspect many-to-many relationships")
920 (description "Because the many-to-many relationships are not real
921relationships, they can not be introspected with DBIx::Class. Many-to-many
922relationships are actually just a collection of convenience methods installed
923to bridge two relationships. This DBIx::Class component can be used to store
924all relevant information about these non-relationships so they can later be
925introspected and examined.")
2f3108ad 926 (license license:perl-license)))
708155df
EB
927
928(define-public perl-dbix-class-schema-loader
929 (package
930 (name "perl-dbix-class-schema-loader")
ebd2dbbf 931 (version "0.07046")
708155df
EB
932 (source
933 (origin
934 (method url-fetch)
935 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
936 "DBIx-Class-Schema-Loader-" version ".tar.gz"))
937 (sha256
938 (base32
ebd2dbbf 939 "08cgn0dx42y9xsxas9np7s55a7qmy4kf6sfmx0jmk4hryvbapml3"))))
708155df
EB
940 (build-system perl-build-system)
941 (native-inputs
942 `(("perl-config-any" ,perl-config-any)
943 ("perl-config-general" ,perl-config-general)
944 ("perl-dbd-sqlite" ,perl-dbd-sqlite)
945 ("perl-dbix-class-introspectablem2m" ,perl-dbix-class-introspectablem2m)
946 ("perl-moose" ,perl-moose)
947 ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
948 ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
949 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
950 ("perl-test-deep" ,perl-test-deep)
951 ("perl-test-differences" ,perl-test-differences)
952 ("perl-test-exception" ,perl-test-exception)
953 ("perl-test-pod" ,perl-test-pod)
954 ("perl-test-warn" ,perl-test-warn)))
955 (propagated-inputs
956 `(("perl-class-unload" ,perl-class-unload)
957 ("perl-class-inspector" ,perl-class-inspector)
958 ("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
959 ("perl-class-c3-componentised" ,perl-class-c3-componentised)
960 ("perl-carp-clan" ,perl-carp-clan)
961 ("perl-data-dump" ,perl-data-dump)
962 ("perl-dbix-class" ,perl-dbix-class)
963 ("perl-hash-merge" ,perl-hash-merge)
964 ("perl-list-moreutils" ,perl-list-moreutils)
965 ("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase)
966 ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number)
967 ("perl-lingua-en-tagger" ,perl-lingua-en-tagger)
968 ("perl-namespace-clean" ,perl-namespace-clean)
969 ("perl-mro-compat" ,perl-mro-compat)
970 ("perl-scope-guard" ,perl-scope-guard)
971 ("perl-string-camelcase" ,perl-string-camelcase)
972 ("perl-string-toidentifier-en" ,perl-string-toidentifier-en)
973 ("perl-sub-name" ,perl-sub-name)
974 ("perl-try-tiny" ,perl-try-tiny)))
975 (arguments `(#:tests? #f)) ;TODO: t/20invocations.t fails
976 (home-page "http://search.cpan.org/dist/DBIx-Class-Schema-Loader")
977 (synopsis "Create a DBIx::Class::Schema based on a database")
978 (description "DBIx::Class::Schema::Loader automates the definition of a
979DBIx::Class::Schema by scanning database table definitions and setting up the
980columns, primary keys, unique constraints and relationships.")
2f3108ad 981 (license license:perl-license)))
274da61d 982
186eb132
EB
983(define-public perl-dbd-pg
984 (package
985 (name "perl-dbd-pg")
4d40c6aa 986 (version "3.5.3")
186eb132
EB
987 (source
988 (origin
989 (method url-fetch)
990 (uri (string-append "mirror://cpan/authors/id/T/TU/TURNSTEP/"
991 "DBD-Pg-" version ".tar.gz"))
992 (sha256
993 (base32
4d40c6aa 994 "03m9w1cd0yyrbqwkwcl92j1cpmasmm69f3hwvcrlfsi5fnwsk63y"))))
186eb132
EB
995 (build-system perl-build-system)
996 (native-inputs
997 `(("perl-dbi" ,perl-dbi)))
998 (propagated-inputs
999 `(("perl-dbi" ,perl-dbi)
1000 ("postgresql" ,postgresql)))
1001 (home-page "http://search.cpan.org/dist/DBD-Pg")
1002 (synopsis "DBI PostgreSQL interface")
f33e71fc
LC
1003 (description "This package provides a PostgreSQL driver for the Perl5
1004@dfn{Database Interface} (DBI).")
2f3108ad 1005 (license license:perl-license)))
186eb132 1006
4b7857a4
RW
1007(define-public perl-dbd-mysql
1008 (package
1009 (name "perl-dbd-mysql")
7c635ed6 1010 (version "4.041")
4b7857a4
RW
1011 (source
1012 (origin
1013 (method url-fetch)
7c635ed6 1014 (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
4b7857a4
RW
1015 "DBD-mysql-" version ".tar.gz"))
1016 (sha256
1017 (base32
7c635ed6 1018 "0h4h6zwzj8fwh9ljb8svnsa0a3ch4p10hp59kpdibdb4qh8xwxs7"))))
4b7857a4
RW
1019 (build-system perl-build-system)
1020 ;; Tests require running MySQL server
1021 (arguments `(#:tests? #f))
1022 (propagated-inputs
1023 `(("perl-dbi" ,perl-dbi)
1024 ("mysql" ,mysql)))
1025 (home-page "http://search.cpan.org/dist/DBD-mysql")
1026 (synopsis "DBI MySQL interface")
1027 (description "This package provides a MySQL driver for the Perl5
1028@dfn{Database Interface} (DBI).")
2f3108ad 1029 (license license:perl-license)))
4b7857a4 1030
274da61d
LC
1031(define-public perl-dbd-sqlite
1032 (package
1033 (name "perl-dbd-sqlite")
2273b751 1034 (version "1.54")
274da61d
LC
1035 (source (origin
1036 (method url-fetch)
1037 (uri (string-append
1038 "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-"
1039 version ".tar.gz"))
1040 (sha256
1041 (base32
2273b751 1042 "0sbj9lx9syzpknvjv8cz9jndg32qz775vy2prgq305npv3dsca9r"))))
274da61d
LC
1043 (build-system perl-build-system)
1044 (inputs `(("sqlite" ,sqlite)))
1045 (propagated-inputs `(("perl-dbi" ,perl-dbi)))
1046 (synopsis "SQlite interface for Perl")
1047 (description "DBD::SQLite is a Perl DBI driver for SQLite, that includes
1048the entire thing in the distribution. So in order to get a fast transaction
1049capable RDBMS working for your Perl project you simply have to install this
1050module, and nothing else.")
2f3108ad 1051 (license license:perl-license)
274da61d 1052 (home-page "http://search.cpan.org/~ishigaki/DBD-SQLite/lib/DBD/SQLite.pm")))
14e84b2d 1053
dd90952e
EB
1054(define-public perl-sql-abstract
1055 (package
1056 (name "perl-sql-abstract")
1057 (version "1.81")
1058 (source
1059 (origin
1060 (method url-fetch)
1061 (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/"
1062 "SQL-Abstract-" version ".tar.gz"))
1063 (sha256
1064 (base32
1065 "17sgwq3mvqjhv3b77cnvrq60xgp8harjhlnvpwmxc914rqc5ckaz"))))
1066 (build-system perl-build-system)
1067 (native-inputs
1068 `(("perl-test-deep" ,perl-test-deep)
1069 ("perl-test-exception" ,perl-test-exception)
1070 ("perl-test-warn" ,perl-test-warn)))
1071 (propagated-inputs
1072 `(("perl-hash-merge" ,perl-hash-merge)
1073 ("perl-moo" ,perl-moo)
1074 ("perl-mro-compat" ,perl-mro-compat)
1075 ("perl-text-balanced" ,perl-text-balanced)))
1076 (home-page "http://search.cpan.org/dist/SQL-Abstract")
1077 (synopsis "Generate SQL from Perl data structures")
1078 (description "This module was inspired by the excellent DBIx::Abstract.
1079While based on the concepts used by DBIx::Abstract, the concepts used have
1080been modified to make the SQL easier to generate from Perl data structures.
1081The underlying idea is for this module to do what you mean, based on the data
1082structures you provide it, so that you don't have to modify your code every
e881752c 1083time your data changes.")
2f3108ad 1084 (license license:perl-license)))
14e84b2d 1085
b4dcb026
EB
1086(define-public perl-sql-splitstatement
1087 (package
1088 (name "perl-sql-splitstatement")
1089 (version "1.00020")
1090 (source
1091 (origin
1092 (method url-fetch)
1093 (uri (string-append "mirror://cpan/authors/id/E/EM/EMAZEP/"
1094 "SQL-SplitStatement-" version ".tar.gz"))
1095 (sha256
1096 (base32
1097 "0bqg45k4c9qkb2ypynlwhpvzsl4ssfagmsalys18s5c79ps30z7p"))))
1098 (build-system perl-build-system)
1099 (native-inputs
1100 `(("perl-test-exception" ,perl-test-exception)))
1101 (propagated-inputs
1102 `(("perl-class-accessor" ,perl-class-accessor)
1103 ("perl-list-moreutils" ,perl-list-moreutils)
1104 ("perl-regexp-common" ,perl-regexp-common)
1105 ("perl-sql-tokenizer" ,perl-sql-tokenizer)))
1106 (home-page "http://search.cpan.org/dist/SQL-SplitStatement")
1107 (synopsis "Split SQL code into atomic statements")
1108 (description "This module tries to split any SQL code, even including
1109non-standard extensions, into the atomic statements it is composed of.")
2f3108ad 1110 (license license:perl-license)))
b4dcb026 1111
718c89c1
EB
1112(define-public perl-sql-tokenizer
1113 (package
1114 (name "perl-sql-tokenizer")
1115 (version "0.24")
1116 (source
1117 (origin
1118 (method url-fetch)
1119 (uri (string-append "mirror://cpan/authors/id/I/IZ/IZUT/"
1120 "SQL-Tokenizer-" version ".tar.gz"))
1121 (sha256
1122 (base32
1123 "1qa2dfbzdlr5qqdam9yn78z5w3al5r8577x06qan8wv58ay6ka7s"))))
1124 (build-system perl-build-system)
1125 (home-page "http://search.cpan.org/dist/SQL-Tokenizer")
1126 (synopsis "SQL tokenizer")
1127 (description "SQL::Tokenizer is a tokenizer for SQL queries. It does not
1128claim to be a parser or query verifier. It just creates sane tokens from a
1129valid SQL query.")
2f3108ad 1130 (license license:perl-license)))
718c89c1 1131
14e84b2d
JD
1132(define-public unixodbc
1133 (package
1134 (name "unixodbc")
3fef0a2f 1135 (version "2.3.4")
14e84b2d
JD
1136 (source (origin
1137 (method url-fetch)
e881752c 1138 (uri
14e84b2d 1139 (string-append
3fef0a2f
EF
1140 "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
1141 version ".tar.gz"))
14e84b2d 1142 (sha256
3fef0a2f 1143 (base32 "0f8y88rcc2akjvjv5y66yx7k0ms9h1s0vbcfy25j93didflhj59f"))))
14e84b2d
JD
1144 (build-system gnu-build-system)
1145 (synopsis "Data source abstraction library")
1146 (description "Unixodbc is a library providing an API with which to access
1147data sources. Data sources include SQL Servers and any software with an ODBC
1148Driver.")
ba8b9f8d 1149 (license license:lgpl2.1+)
14e84b2d
JD
1150 ;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
1151 (home-page "http://www.unixodbc.org")))
b4a9c924
EB
1152
1153(define-public unqlite
1154 (package
1155 (name "unqlite")
1156 (version "1.1.6")
1157 (source (origin
1158 (method url-fetch)
1159 ;; Contains bug fixes against the official release, and has an
1160 ;; autotooled build system.
1161 (uri (string-append "https://github.com/aidin36/tocc/releases/"
1162 "download/v1.0.0/"
1163 "unqlite-unofficial-" version ".tar.gz"))
1164 (sha256
1165 (base32
1166 "1sbpvhg15gadq0mpcy16q7k3rkg4b4dicpnn5xifpkpn02sqik3s"))))
1167 (build-system gnu-build-system)
1168 (arguments `(#:tests? #f)) ;No check target
1169 (home-page "http://www.unqlite.org")
1170 (synopsis "In-memory key/value and document store")
1171 (description
1172 "UnQLite is an in-process software library which implements a
1173self-contained, serverless, zero-configuration, transactional NoSQL
1174database engine. UnQLite is a document store database similar to
1175MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store
69b4ffcf 1176similar to BerkeleyDB, LevelDB, etc.")
ba8b9f8d 1177 (license license:bsd-2)))
463f6766
DT
1178
1179(define-public redis
1180 (package
1181 (name "redis")
b25f060f 1182 (version "3.2.4")
463f6766
DT
1183 (source (origin
1184 (method url-fetch)
1185 (uri (string-append "http://download.redis.io/releases/redis-"
1186 version".tar.gz"))
1187 (sha256
1188 (base32
b25f060f 1189 "1wb9jd692a0y52bkkxr6815kk4g039mirjdrvqx24265lv2l5l1a"))))
463f6766
DT
1190 (build-system gnu-build-system)
1191 (arguments
1192 '(#:tests? #f ; tests related to master/slave and replication fail
1193 #:phases (modify-phases %standard-phases
1194 (delete 'configure))
1195 #:make-flags `("CC=gcc"
1196 "MALLOC=libc"
b25f060f 1197 "LDFLAGS=-ldl"
463f6766
DT
1198 ,(string-append "PREFIX="
1199 (assoc-ref %outputs "out")))))
1200 (synopsis "Key-value cache and store")
1201 (description "Redis is an advanced key-value cache and store. Redis
1202supports many data structures including strings, hashes, lists, sets, sorted
1203sets, bitmaps and hyperloglogs.")
1204 (home-page "http://redis.io/")
ba8b9f8d 1205 (license license:bsd-3)))
a65e2a02 1206
1207(define-public kyotocabinet
1208 (package
1209 (name "kyotocabinet")
1210 (version "1.2.76")
1211 (source (origin
1212 (method url-fetch)
1213 (uri (string-append "http://fallabs.com/kyotocabinet/pkg/"
1214 name "-" version ".tar.gz"))
1215 (sha256
1216 (base32
1217 "0g6js20x7vnpq4p8ghbw3mh9wpqksya9vwhzdx6dnlf354zjsal1"))))
1218 (build-system gnu-build-system)
1219 (arguments
1220 `(#:configure-flags
1221 (list
9d59023e 1222 "--disable-opt" ;"-march=native". XXX this also turns off -O0.
a65e2a02 1223 (string-append "LDFLAGS=-Wl,-rpath="
1224 (assoc-ref %outputs "out") "/lib"))))
1225 (inputs `(("zlib" ,zlib)))
1226 (home-page "http://fallabs.com/kyotocabinet/")
1227 (synopsis
1228 "Kyoto Cabinet is a modern implementation of the DBM database")
1229 (description
1230 "Kyoto Cabinet is a standalone file-based database that supports Hash
1231and B+ Tree data storage models. It is a fast key-value lightweight
1232database and supports many programming languages. It is a NoSQL database.")
ba8b9f8d 1233 (license license:gpl3+)))
6242b314 1234
bdc11dc4 1235(define-public tokyocabinet
1236 (package
1237 (name "tokyocabinet")
1238 (version "1.4.48")
1239 (source
1240 (origin
1241 (method url-fetch)
1242 (uri (string-append "http://fallabs.com/tokyocabinet/"
1243 name "-" version ".tar.gz"))
1244 (sha256
1245 (base32
1246 "140zvr0n8kvsl0fbn2qn3f2kh3yynfwnizn4dgbj47m975yg80x0"))))
1247 (build-system gnu-build-system)
1248 (arguments
1249 `(#:configure-flags
1250 (list "--enable-pthread" "--enable-off64" "--enable-fastest"
1251 (string-append "LDFLAGS=-Wl,-rpath="
1252 (assoc-ref %outputs "out") "/lib"))))
1253 (inputs
1254 `(("zlib" ,zlib)))
1255 (home-page "http://fallabs.com/tokyocabinet/")
1256 (synopsis "Tokyo Cabinet is a modern implementation of the DBM database")
1257 (description
1258 "Tokyo Cabinet is a library of routines for managing a database.
1259The database is a simple data file containing records, each is a pair of a
1260key and a value. Every key and value is serial bytes with variable length.
1261Both binary data and character string can be used as a key and a value.
1262There is neither concept of data tables nor data types. Records are
1263organized in hash table, B+ tree, or fixed-length array.")
1264 (license license:lgpl2.1+)))
1265
6242b314
SB
1266(define-public wiredtiger
1267 (package
1268 (name "wiredtiger")
81e95821 1269 (version "2.9.1")
6242b314
SB
1270 (source (origin
1271 (method url-fetch)
1272 (uri (string-append
1273 "http://source.wiredtiger.com/releases/wiredtiger-"
1274 version ".tar.bz2"))
1275 (sha256
1276 (base32
81e95821 1277 "0krwnb2zfbhvjaskwl875qzd3y626s84zcciq2mxr5c5riw3yh6s"))))
6242b314
SB
1278 (build-system gnu-build-system)
1279 (arguments
1280 '(#:configure-flags '("--enable-lz4" "--enable-zlib")
1281 #:phases
1282 (modify-phases %standard-phases
1283 (add-before 'check 'disable-test/fops
1284 (lambda _
1285 ;; XXX: timed out after 3600 seconds of silence
1286 (substitute* "Makefile"
1287 (("test/fops") ""))
1288 #t)))))
1289 (inputs
1290 `(("lz4" ,lz4)
1291 ("zlib" ,zlib)))
1292 (home-page "http://source.wiredtiger.com/")
1293 (synopsis "NoSQL data engine")
1294 (description
1295 "WiredTiger is an extensible platform for data management. It supports
1296row-oriented storage (where all columns of a row are stored together),
1297column-oriented storage (where columns are stored in groups, allowing for
1298more efficient access and storage of column subsets) and log-structured merge
1299trees (LSM), for sustained throughput under random insert workloads.")
ba8b9f8d 1300 (license license:gpl3) ; or GPL-2
6242b314 1301 ;; configure.ac: WiredTiger requires a 64-bit build.
092b7b3e 1302 (supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux"))))
90c2ee88
DM
1303
1304(define-public perl-db-file
1305 (package
1306 (name "perl-db-file")
dd0cfb37 1307 (version "1.840")
90c2ee88
DM
1308 (source
1309 (origin
1310 (method url-fetch)
1311 (uri (string-append
1312 "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
1313 version
1314 ".tar.gz"))
1315 (sha256
1316 (base32
dd0cfb37 1317 "1i5jz85z4hpx15lw6ix27pyvrf0ziyh4z33lii4d3wnhz83lg1mp"))))
90c2ee88
DM
1318 (build-system perl-build-system)
1319 (inputs `(("bdb" ,bdb)))
1320 (native-inputs `(("perl-test-pod" ,perl-test-pod)))
1321 (arguments
1322 `(#:phases (modify-phases %standard-phases
1323 (add-before
1324 'configure 'modify-config.in
1325 (lambda* (#:key inputs #:allow-other-keys)
1326 (substitute* "config.in"
1327 (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb")))
1328 #t)))))
1329 (home-page "http://search.cpan.org/dist/DB_File")
1330 (synopsis
1331 "Perl5 access to Berkeley DB version 1.x")
1332 (description
1333 "The DB::File module provides Perl bindings to the Berkeley DB version 1.x.")
2f3108ad 1334 (license license:perl-license)))
0e1b262e
DC
1335
1336(define-public lmdb
1337 (package
1338 (name "lmdb")
603fd6b9 1339 (version "0.9.21")
0e1b262e
DC
1340 (source (origin
1341 (method url-fetch)
1342 (uri (string-append "https://github.com/LMDB/lmdb/archive/"
1343 "LMDB_" version ".tar.gz"))
1344 (sha256
1345 (base32
603fd6b9 1346 "0ndmj07hkm2ic60z1f4rdscxs7pq45hk9fibjyv5nhfclhsvd1qi"))))
0e1b262e
DC
1347 (build-system gnu-build-system)
1348 (arguments
1349 `(#:test-target "test"
1350 #:phases
1351 (modify-phases %standard-phases
1352 (replace 'configure
1353 (lambda* (#:key outputs #:allow-other-keys)
1354 (chdir (string-append
1355 (getenv "PWD") "/lmdb-LMDB_" ,version "/libraries/liblmdb"))
1356 (substitute* "Makefile"
1357 (("/usr/local") (assoc-ref outputs "out")))
1358 #t)))))
1359 (home-page "https://symas.com/products/lightning-memory-mapped-database")
fda852ff
TGR
1360 (synopsis "Lightning Memory-Mapped Database library")
1361 (description
1362 "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance
1363transactional database. Unlike more complex relational databases, LMDB handles
1364only key-value pairs (stored as arbitrary byte arrays) and relies on the
1365underlying operating system for caching and locking, keeping the code small and
1366simple.
1367The use of ‘zero-copy’ memory-mapped files combines the persistence of classic
1368disk-based databases with high read performance that scales linearly over
1369multiple cores. The size of each database is limited only by the size of the
1370virtual address space — not physical RAM.")
0e1b262e 1371 (license license:openldap2.8)))
fe71eee0
JN
1372
1373(define-public libpqxx
1374 (package
1375 (name "libpqxx")
1376 (version "4.0.1")
1377 (source (origin
1378 (method url-fetch)
1379 (uri (string-append
1380 "http://pqxx.org/download/software/libpqxx/"
1381 name "-" version ".tar.gz"))
1382 (sha256
1383 (base32
1384 "0f6wxspp6rx12fkasanb0z2g2gc8dhcfwnxagx8wwqbpg6ifsz09"))))
1385 (build-system gnu-build-system)
1386 (native-inputs
1387 `(("python" ,python-2)))
1388 (inputs `(("postgresql" ,postgresql)))
1389 (arguments
5ac097e2
MB
1390 `(#:tests? #f ; # FAIL: 1
1391 #:phases
1392 (modify-phases %standard-phases
1393 (add-before 'configure 'fix-sed-command
1394 (lambda _
1395 ;; Newer sed versions error out if double brackets are not used.
1396 (substitute* "configure"
1397 (("\\[:space:\\]") "[[:space:]]"))
1398 #t)))))
fe71eee0
JN
1399 (synopsis "C++ connector for PostgreSQL")
1400 (description
1401 "Libpqxx is a C++ library to enable user programs to communicate with the
1402PostgreSQL database back-end. The database back-end can be local or it may be
1403on another machine, accessed via TCP/IP.")
1404 (home-page "http://pqxx.org/")
1405 (license license:bsd-3)))
4d98bfaf
EF
1406
1407(define-public python-peewee
1408 (package
1409 (name "python-peewee")
1410 (version "2.8.3")
1411 (source
1412 (origin
1413 (method url-fetch)
1414 (uri (pypi-uri "peewee" version))
1415 (sha256
1416 (base32
1417 "1605bk11s7aap2q4qyba93rx7yfh8b11kk0cqi08z8klx2iar8yd"))))
1418 (build-system python-build-system)
1419 (arguments
1420 `(#:tests? #f)) ; Fails to import test data
1421 (native-inputs
1422 `(("python-cython" ,python-cython)))
1423 (home-page "https://github.com/coleifer/peewee/")
1424 (synopsis "Small object-relational mapping utility")
1425 (description
1426 "Peewee is a simple and small ORM (object-relation mapping) tool. Peewee
1427handles converting between pythonic values and those used by databases, so you
1428can use Python types in your code without having to worry. It has built-in
1429support for sqlite, mysql and postgresql. If you already have a database, you
1430can autogenerate peewee models using @code{pwiz}, a model generator.")
1431 (license license:expat)))
1432
1433(define-public python2-peewee
1434 (package-with-python2 python-peewee))
62ea44fc
AP
1435
1436(define-public sqlcipher
1437 (package
1438 (name "sqlcipher")
1439 (version "3.3.1")
1440 (source
1441 (origin
1442 (method url-fetch)
1443 (uri (string-append "https://github.com/sqlcipher/" name
1444 "/archive/v" version ".tar.gz"))
1445 (sha256
1446 (base32 "1gv58dlbpzrmznly52yqbxgvii0ib88zr3aszla1bsypwjr6flff"))
1447 (file-name (string-append name "-" version ".tar.gz"))))
1448 (build-system gnu-build-system)
1449 (inputs
1450 `(("libcrypto" ,openssl)
1451 ("libtcl8.6" ,tcl))) ; required for running the tests
1452 (native-inputs
1453 `(("tcl" ,tcl)))
1454 (arguments
1455 '(#:configure-flags
1456 '("--enable-tempstore=yes"
1457 "CFLAGS=-DSQLITE_HAS_CODEC -DSQLITE_ENABLE_FTS3"
1458 "LDFLAGS=-lcrypto -ltcl8.6"
1459 "--disable-tcl")
1460 ;; tests cannot be run from the Makefile
1461 ;; see: <https://github.com/sqlcipher/sqlcipher/issues/172>
1462 #:test-target "testfixture"
1463 #:phases
1464 (modify-phases %standard-phases
1465 (add-before 'check 'build-test-runner
1466 (assoc-ref %standard-phases 'check))
1467 (replace 'check
1468 (lambda _
1469 (zero?
1470 (system* "./testfixture" "test/crypto.test")))))))
1471 (home-page "https://www.zetetic.net/sqlcipher/")
1472 (synopsis
1473 "Library providing transparent encryption of SQLite database files")
1474 (description "SQLCipher is an implementation of SQLite, extended to
1475provide transparent 256-bit AES encryption of database files. Pages are
1476encrypted before being written to disk and are decrypted when read back. It’s
1477well suited for protecting embedded application databases and for mobile
1478development.")
1479 ;; The source files
1480 ;; src/{crypto.c,crypto_impl.c,crypto.h,crypto_cc.c,crypto_libtomcrypt.c},
1481 ;; src/{crypto_openssl.c,sqlcipher.h}, tool/crypto-speedtest.tcl,
1482 ;; test/crypto.test are licensed under a 3-clause BSD license. All other
1483 ;; source files are in the public domain.
1484 (license (list license:public-domain license:bsd-3))))
98d403bb
DM
1485
1486(define-public python-pyodbc-c
1487 (package
1488 (name "python-pyodbc-c")
c6b6a74e 1489 (version "3.1.4")
98d403bb
DM
1490 (source
1491 (origin
1492 (method url-fetch)
1493 (uri (string-append "https://gitlab.com/daym/pyodbc-c/repository/"
1494 "archive.tar.gz?ref=v" version))
1495 (sha256
1496 (base32
c6b6a74e 1497 "05aq2297k779xidmxcwkrrxjvj1bh2q7d9a1rcjv6zr15y764ga9"))
98d403bb
DM
1498 (file-name (string-append name "-" version ".tar.gz"))))
1499 (build-system python-build-system)
1500 (inputs
1501 `(("unixodbc" ,unixodbc)))
1502 (arguments
1503 `(;; No unit tests exist.
1504 #:tests? #f))
1505 (home-page "https://github.com/mkleehammer/pyodbc")
1506 (synopsis "Python ODBC Library")
1507 (description "@code{python-pyodbc-c} provides a Python DB-API driver
1508for ODBC.")
1509 (license (license:x11-style "file://LICENSE.TXT"))))
1510
1511(define-public python2-pyodbc-c
1512 (package-with-python2 python-pyodbc-c))
d39a84e8
AI
1513
1514(define-public mdbtools
1515 (package
1516 (name "mdbtools")
1517 (version "0.7.1")
1518 (source
1519 (origin
1520 (method url-fetch)
1521 (uri (string-append "https://github.com/brianb/mdbtools/archive/"
1522 version ".tar.gz"))
1523 (sha256
1524 (base32
1525 "05hbmxcq173kzb899gdi3bz2qcc1vi3n1qbbkwpsvrq7ggf11wyw"))
1526 (file-name (string-append name "-" version ".tar.gz"))))
1527 (build-system gnu-build-system)
1528 (inputs
1529 `(("glib" ,glib)))
1530 (native-inputs
1531 `(("autoconf" ,autoconf)
1532 ("automake" ,automake)
1533 ("libtool" ,libtool)
1534 ("pkg-config" ,pkg-config)
1535 ("txt2man" ,txt2man)
1536 ("which" ,which)))
1537 (arguments
1538 `(#:phases
1539 (modify-phases %standard-phases
1540 (add-before 'configure 'autoreconf
1541 (lambda _
1542 (zero? (system* "autoreconf" "-vfi")))))))
1543 (home-page "http://mdbtools.sourceforge.net/")
1544 (synopsis "Read Microsoft Access databases")
1545 (description "MDB Tools is a set of tools and applications to read the
1546proprietary MDB file format used in Microsoft's Access database package. This
1547includes programs to export schema and data from Microsoft's Access database
1548file format to other databases such as MySQL, Oracle, Sybase, PostgreSQL,
1549etc., and an SQL engine for performing simple SQL queries.")
1550 (license (list license:lgpl2.0
1551 license:gpl2+))))