gnu: network-manager-applet: Update to 1.8.24.
[jackhill/guix/guix.git] / gnu / packages / databases.scm
CommitLineData
5f96f303 1;;; GNU Guix --- Functional package management for GNU
189be331 2;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
a8714bf6
RW
3;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
4;;; Copyright © 2013, 2017 Cyril Roelandt <tipecaml@gmail.com>
218a2106 5;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
b9ed5ef3 6;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
a8714bf6 7;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
da1f7a9e 8;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
b747a9db 9;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
a8714bf6
RW
10;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
11;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
12;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
c007e35d 13;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
47956fa0 14;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
6d09a7b5 15;;; Copyright © 2016, 2017, 2018 Roel Janssen <roel@gnu.org>
0e1b262e 16;;; Copyright © 2016 David Craven <david@craven.ch>
fe71eee0 17;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
62ea44fc 18;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
a8714bf6 19;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
7fa9cca8 20;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
c336567d 21;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
259a94e9 22;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
a8714bf6
RW
23;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
24;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
d39a84e8 25;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
245e7a68 26;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
38abef12 27;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19601e89 28;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
231123ee 29;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
7bcc3405 30;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
e58d3a59 31;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
16973071 32;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
3926a099 33;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
dae7661a 34;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
da602679 35;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
9df78675 36;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
a3abc3fd 37;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
91477def 38;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
450d5dc2 39;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
5f96f303
LC
40;;;
41;;; This file is part of GNU Guix.
42;;;
43;;; GNU Guix is free software; you can redistribute it and/or modify it
44;;; under the terms of the GNU General Public License as published by
45;;; the Free Software Foundation; either version 3 of the License, or (at
46;;; your option) any later version.
47;;;
48;;; GNU Guix is distributed in the hope that it will be useful, but
49;;; WITHOUT ANY WARRANTY; without even the implied warranty of
50;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
51;;; GNU General Public License for more details.
52;;;
53;;; You should have received a copy of the GNU General Public License
54;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
55
56(define-module (gnu packages databases)
57 #:use-module (gnu packages)
58071723 58 #:use-module (gnu packages admin)
06a035db 59 #:use-module (gnu packages algebra)
4c6aa73b
RJ
60 #:use-module (gnu packages autotools)
61 #:use-module (gnu packages avahi)
77e52190 62 #:use-module (gnu packages base)
b747a9db 63 #:use-module (gnu packages bash)
06a035db 64 #:use-module (gnu packages bison)
23bbd7dd 65 #:use-module (gnu packages boost)
06a035db 66 #:use-module (gnu packages check)
dae7661a 67 #:use-module (gnu packages cmake)
06a035db 68 #:use-module (gnu packages compression)
62ea44fc 69 #:use-module (gnu packages crypto)
06a035db
MB
70 #:use-module (gnu packages curl)
71 #:use-module (gnu packages cyrus-sasl)
255d1bbe 72 #:use-module (gnu packages dbm)
06a035db 73 #:use-module (gnu packages emacs)
da602679 74 #:use-module (gnu packages flex)
2fa55c72 75 #:use-module (gnu packages gcc)
4c6aa73b
RJ
76 #:use-module (gnu packages gettext)
77 #:use-module (gnu packages glib)
06a035db 78 #:use-module (gnu packages gnupg)
16973071 79 #:use-module (gnu packages guile)
da1f7a9e 80 #:use-module (gnu packages time)
33c88fcb 81 #:use-module (gnu packages golang)
06a035db 82 #:use-module (gnu packages jemalloc)
708155df 83 #:use-module (gnu packages language)
686144e9 84 #:use-module (gnu packages libevent)
5f96f303 85 #:use-module (gnu packages linux)
d39a84e8 86 #:use-module (gnu packages man)
5f96f303 87 #:use-module (gnu packages ncurses)
aace6f6d 88 #:use-module (gnu packages onc-rpc)
d3c6ad0a 89 #:use-module (gnu packages parallel)
77631745 90 #:use-module (gnu packages pcre)
06a035db 91 #:use-module (gnu packages perl)
5ccde207 92 #:use-module (gnu packages perl-check)
cabe8f18 93 #:use-module (gnu packages perl-web)
4c6aa73b 94 #:use-module (gnu packages pkg-config)
d3c6ad0a 95 #:use-module (gnu packages popt)
06a035db 96 #:use-module (gnu packages python)
9763102b 97 #:use-module (gnu packages python-crypto)
450d5dc2 98 #:use-module (gnu packages python-web)
44d10b1f 99 #:use-module (gnu packages python-xyz)
4c6aa73b 100 #:use-module (gnu packages rdf)
06a035db 101 #:use-module (gnu packages readline)
afcbb020 102 #:use-module (gnu packages ruby)
6bbbca90 103 #:use-module (gnu packages serialization)
9d0c291e 104 #:use-module (gnu packages sphinx)
cd0322a3 105 #:use-module (gnu packages sqlite)
06a035db 106 #:use-module (gnu packages tcl)
33c88fcb
CB
107 #:use-module (gnu packages terminals)
108 #:use-module (gnu packages textutils)
06a035db 109 #:use-module (gnu packages tls)
6bbbca90 110 #:use-module (gnu packages valgrind)
dae7661a 111 #:use-module (gnu packages web)
77631745 112 #:use-module (gnu packages xml)
0e1b262e 113 #:use-module ((guix licenses) #:prefix license:)
5f96f303
LC
114 #:use-module (guix packages)
115 #:use-module (guix download)
da602679 116 #:use-module (guix bzr-download)
16973071 117 #:use-module (guix git-download)
9df78675 118 #:use-module (guix build-system emacs)
5f96f303 119 #:use-module (guix build-system gnu)
58071723 120 #:use-module (guix build-system go)
274da61d 121 #:use-module (guix build-system perl)
4d98bfaf 122 #:use-module (guix build-system python)
afcbb020 123 #:use-module (guix build-system ruby)
77631745 124 #:use-module (guix build-system cmake)
6e385b76 125 #:use-module (guix build-system scons)
51b0f09e 126 #:use-module ((guix build utils) #:hide (which))
329d13b8 127 #:use-module (guix utils)
29cfbfca 128 #:use-module (srfi srfi-1)
5f96f303
LC
129 #:use-module (srfi srfi-26)
130 #:use-module (ice-9 match))
131
4c6aa73b
RJ
132(define-public 4store
133 (package
134 (name "4store")
135 (version "1.1.6")
136 (source (origin
50e20b8f
EF
137 (method git-fetch)
138 (uri (git-reference
139 (url "https://github.com/4store/4store.git")
140 (commit (string-append "v" version))))
141 (file-name (git-file-name name version))
4c6aa73b 142 (sha256
50e20b8f 143 (base32 "1kzdfmwpzy64cgqlkcz5v4klwx99w0jk7afckyf7yqbqb4rydmpk"))
ea09f99f
RJ
144 (patches (search-patches "4store-unset-preprocessor-directive.patch"
145 "4store-fix-buildsystem.patch"))))
4c6aa73b
RJ
146 (build-system gnu-build-system)
147 (native-inputs
148 `(("perl" ,perl)
149 ("python" ,python-2)
150 ("autoconf" ,autoconf)
151 ("automake" ,automake)
b94a6ca0 152 ("gettext" ,gettext-minimal)
4c6aa73b 153 ("libtool" ,libtool)
74c8b174 154 ("pcre" ,pcre "bin") ;for 'pcre-config'
4c6aa73b
RJ
155 ("pkg-config" ,pkg-config)))
156 (inputs
157 `(("glib" ,glib)
158 ("rasqal" ,rasqal)
159 ("libxml2" ,libxml2)
160 ("raptor2" ,raptor2)
161 ("readline" ,readline)
162 ("avahi" ,avahi)
4c6aa73b
RJ
163 ("cyrus-sasl" ,cyrus-sasl)
164 ("openssl" ,openssl)
165 ("util-linux" ,util-linux)))
4c6aa73b 166 ;; http://www.4store.org has been down for a while now.
bbf9092b 167 (home-page "https://github.com/4store/4store")
4c6aa73b
RJ
168 (synopsis "Clustered RDF storage and query engine")
169 (description "4store is a RDF/SPARQL store written in C, supporting
170either single machines or networked clusters.")
ba8b9f8d 171 (license license:gpl3+)))
4c6aa73b 172
58071723
CB
173(define-public go-gopkg.in-mgo.v2
174 (package
175 (name "go-gopkg.in-mgo.v2")
176 (version "2016.08.01")
177 (source (origin
178 (method git-fetch)
179 (uri (git-reference
180 (url "https://github.com/go-mgo/mgo")
181 (commit (string-append "r" version))))
182 (file-name (git-file-name name version))
183 (sha256
184 (base32
185 "0rwbi1z63w43b0z9srm8m7iz1fdwx7bq7n2mz862d6liiaqa59jd"))))
186 (build-system go-build-system)
187 (arguments
188 `(#:import-path "gopkg.in/mgo.v2"
189 ;; TODO: The tests fail as MongoDB fails to start
190 ;; Error parsing command line: unrecognised option '--chunkSize'
191 #:tests? #f
192 #:phases
193 (modify-phases %standard-phases
194 (delete 'reset-gzip-timestamps)
195 (add-before 'check 'start-mongodb
196 (lambda* (#:key tests? #:allow-other-keys)
96272e28
MW
197 (when tests?
198 (with-directory-excursion "src/gopkg.in/mgo.v2"
199 (invoke "make" "startdb")))
200 #t))
58071723
CB
201 (add-after 'check 'stop'mongodb
202 (lambda* (#:key tests? #:allow-other-keys)
96272e28
MW
203 (when tests?
204 (with-directory-excursion "src/gopkg.in/mgo.v2"
205 (invoke "make" "stopdb")))
206 #t)))))
58071723
CB
207 (native-inputs
208 `(("go-gopkg.in-check.v1" ,go-gopkg.in-check.v1)
209 ("mongodb" ,mongodb)
210 ("daemontools" ,daemontools)))
211 (synopsis "@code{mgo} offers a rich MongoDB driver for Go.")
212 (description
213 "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.
214It implements a rich selection of features under a simple API following
215standard Go idioms.")
216 (home-page "http://labix.org/mgo")
217 (license license:bsd-2)))
218
afcbb020
CB
219(define-public es-dump-restore
220 (package
221 (name "es-dump-restore")
222 (version "2.1.0")
223 (source
224 (origin
225 (method url-fetch)
226 (uri (rubygems-uri "es_dump_restore" version))
227 (sha256
228 (base32
229 "020yk7f1hw48clmf5501z3xv9shsdchyymcv0y2cci2c1xvr1mim"))))
230 (build-system ruby-build-system)
231 (arguments
0076f5a9 232 '(#:tests? #f)) ;; No testsuite.
afcbb020
CB
233 (propagated-inputs
234 `(("ruby-httpclient" ,ruby-httpclient)
235 ("ruby-multi-json" ,ruby-multi-json)
236 ("ruby-progress_bar" ,ruby-progress_bar)
237 ("ruby-rubyzip" ,ruby-rubyzip)
238 ("ruby-thor" ,ruby-thor)))
239 (synopsis "Utility for dumping and restoring ElasticSearch indexes")
240 (description
241 "This package provides a utility for dumping the contents of an
242ElasticSearch index to a compressed file and restoring the dumpfile back to an
243ElasticSearch server")
244 (home-page "https://github.com/patientslikeme/es_dump_restore")
245 (license license:expat)))
246
b9f771a7
MB
247(define-public leveldb
248 (package
249 (name "leveldb")
3a32be71 250 (version "1.22")
b9f771a7 251 (source (origin
ad7c77fd
MB
252 (method git-fetch)
253 (uri (git-reference
254 (url "https://github.com/google/leveldb")
5cc013f0 255 (commit version)))
ad7c77fd 256 (file-name (git-file-name name version))
b9f771a7
MB
257 (sha256
258 (base32
3a32be71 259 "0qrnhiyq7r4wa1a4wi82zgns35smj94mcjsc7kfs1k6ia9ys79z7"))))
5cc013f0 260 (build-system cmake-build-system)
b9f771a7 261 (arguments
5cc013f0 262 `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DLEVELDB_BUILD_TESTS=ON")))
b9f771a7
MB
263 (inputs
264 `(("snappy" ,snappy)))
265 (home-page "http://leveldb.org/")
266 (synopsis "Fast key-value storage library")
267 (description
268 "LevelDB is a fast key-value storage library that provides an ordered
269mapping from string keys to string values.")
ba8b9f8d 270 (license license:bsd-3)))
b9f771a7 271
686144e9
CB
272(define-public memcached
273 (package
274 (name "memcached")
591464e3 275 (version "1.5.16")
686144e9
CB
276 (source
277 (origin
278 (method url-fetch)
279 (uri (string-append
280 "https://memcached.org/files/memcached-" version ".tar.gz"))
281 (sha256
591464e3 282 (base32 "0nnccb697jhdn5gqrh3phibzs6xr4nf4ryv7nmyv5vf11n4jr8j5"))))
686144e9
CB
283 (build-system gnu-build-system)
284 (inputs
285 `(("libevent" ,libevent)
286 ("cyrus-sasl" ,cyrus-sasl)))
287 (home-page "https://memcached.org/")
61d996b9
TGR
288 (synopsis "In-memory caching service")
289 (description "Memcached is an in-memory key-value store. It has a small
686144e9
CB
290and generic API, and was originally intended for use with dynamic web
291applications.")
292 (license license:bsd-3)))
293
da602679
MC
294(define-public libmemcached
295 (package
296 (name "libmemcached")
297 (version "1.0.18")
298 ;; We build from the sources since we want to build the extra HTML
299 ;; documentation which is not included with the release.
300 (source (origin
301 (method bzr-fetch)
302 (uri (bzr-reference
303 (url "lp:libmemcached/1.0")
304 (revision (string-append "tag:" version))))
305 (file-name (string-append name "-" version "-checkout"))
306 (sha256
307 (base32
308 "1842s4dxdh21gdr46q4dgxigidcs6dkqnbnqjwb9l8r0bqx5nb10"))))
309 (build-system gnu-build-system)
310 (native-inputs
311 `(("memcached" ,memcached)
312 ("libtool" ,libtool)
313 ("autoconf" ,autoconf)
314 ("automake" ,automake)
315 ("bison" ,bison)
316 ("flex" ,flex)
317 ("perl" ,perl)
318 ("python-sphinx" ,python-sphinx))) ;to build the HTML doc.
319 (inputs
320 `(("libevent" ,libevent)
321 ("cyrus-sasl" ,cyrus-sasl)))
322 (outputs '("out" "doc"))
323 (arguments
324 '(#:phases
325 (modify-phases %standard-phases
326 (add-before 'bootstrap 'fix-configure.ac
327 ;; Move the AC_CONFIG_AUX_DIR macro use under AC_INIT, otherwise we
328 ;; get the error ``configure: error: cannot find install-sh,
329 ;; install.sh, or shtool in "." "./.." "./../.."`` (see:
330 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19539 and
331 ;; https://bugs.launchpad.net/libmemcached/+bug/1803922).
332 (lambda _
333 (delete-file "bootstrap.sh") ;not useful in the context of Guix
334 (substitute* "configure.ac"
335 (("^AC_CONFIG_AUX_DIR\\(\\[build-aux\\]\\).*") "")
336 (("(^AC_INIT.*)" anchor)
337 (string-append anchor "AC_CONFIG_AUX_DIR([build-aux])\n")))
338 #t))
339 (add-before 'bootstrap 'disable-failing-tests
340 ;; See: https://bugs.launchpad.net/libmemcached/+bug/1803926
341 (lambda _
342 ;; Mark some heavily failing test suites as expected to fail.
343 (substitute* "Makefile.am"
344 (("(XFAIL_TESTS =[^\n]*)" xfail_tests)
345 (string-append xfail_tests " tests/testudp"
346 " tests/libmemcached-1.0/testapp"
347 " tests/libmemcached-1.0/testsocket")))
348 ;; Disable two tests of the unittest test suite.
349 (substitute* "libtest/unittest.cc"
350 ((".*echo_fubar_BINARY \\},.*") "")
351 ((".*application_doesnotexist_BINARY \\},.*") ""))
352 #t))
353 (add-after 'disable-dns-tests 'build-and-install-html-doc
354 (lambda* (#:key outputs #:allow-other-keys)
355 (let ((html (string-append (assoc-ref outputs "doc")
356 "/share/doc/libmemcached/html/")))
357 (invoke "make" "install-html")
358 ;; Cleanup useless files.
359 (for-each delete-file-recursively
360 (map (lambda (x) (string-append html x))
361 '("_sources" ".doctrees" ".buildinfo"))))
362 #t)))))
363 (home-page "https://libmemcached.org/")
364 (synopsis "C++ library for memcached")
365 (description "libMemcached is a library to use memcached in C/C++
366applications. It comes with a complete reference guide and documentation of
367the API, and provides features such as:
368@itemize
369@item Asynchronous and synchronous transport support
370@item Consistent hashing and distribution
371@item Tunable hashing algorithm to match keys
372@item Access to large object support
373@item Local replication
374@end itemize")
375 (license license:bsd-3)))
376
063edf92
MC
377(define-public python-pylibmc
378 (package
379 (name "python-pylibmc")
380 (version "1.6.0")
381 (source
382 (origin
383 (method url-fetch)
384 (uri (pypi-uri "pylibmc" version))
385 (sha256
386 (base32
387 "1n6nvvhl0g52gpzzwdj1my6049xljkfwyxxygnwda9smrbj7pyay"))))
388 (build-system python-build-system)
389 (arguments
390 '(#:phases
391 (modify-phases %standard-phases
392 (add-before 'check 'start-memcached-daemon
393 ;; The test suite requires a memcached server.
394 (lambda _
395 (invoke "memcached" "-d"))))))
396 (native-inputs
397 `(("memcached" ,memcached)
398 ("python-nose" ,python-nose)))
399 (inputs
400 `(("libmemcached" ,libmemcached)
401 ("zlib" ,zlib)
402 ("cyrus-sasl" ,cyrus-sasl)))
403 (home-page
404 "http://sendapatch.se/projects/pylibmc/")
405 (synopsis
406 "Python client for memcached")
407 (description
408 "@code{pylibmc} is a client in Python for memcached. It is a wrapper
409around TangentOrg’s libmemcached library, and can be used as a drop-in
410replacement for the code@{python-memcached} library.")
411 (license license:bsd-3)))
412
413(define-public python2-pylibmc
414 (package-with-python2 python-pylibmc))
415
6bbbca90
CB
416(define-public mongodb
417 (package
418 (name "mongodb")
f1c49e75 419 (version "3.4.10")
6bbbca90
CB
420 (source (origin
421 (method url-fetch)
422 (uri (string-append "https://github.com/mongodb/mongo/archive/r"
423 version ".tar.gz"))
424 (file-name (string-append name "-" version ".tar.gz"))
425 (sha256
f1c49e75 426 (base32 "0676lvkljj7a5hdhv78dbykqnqrj9lbn9799mi84b8vbnzsq961r"))
51b0f09e
EF
427 (modules '((guix build utils)))
428 (snippet
429 '(begin
430 (for-each (lambda (dir)
431 (delete-file-recursively
432 (string-append "src/third_party/" dir)))
433 '("pcre-8.41" "scons-2.5.0" "snappy-1.1.3"
434 "valgrind-3.11.0" "wiredtiger"
6cbee49d
MW
435 "yaml-cpp-0.5.3" "zlib-1.2.8"))
436 #t))
6bbbca90
CB
437 (patches
438 (list
439 (search-patch "mongodb-support-unknown-linux-distributions.patch")))))
6e385b76 440 (build-system scons-build-system)
6bbbca90
CB
441 (inputs
442 `(("openssl" ,openssl)
443 ("pcre" ,pcre)
319b52c3
EF
444 ,@(match (%current-system)
445 ((or "x86_64-linux" "aarch64-linux" "mips64el-linux")
446 `(("wiredtiger" ,wiredtiger)))
447 (_ `()))
6bbbca90
CB
448 ("yaml-cpp" ,yaml-cpp)
449 ("zlib" ,zlib)
51b0f09e 450 ("snappy" ,snappy)))
6bbbca90 451 (native-inputs
6e385b76 452 `(("valgrind" ,valgrind)
90205b62 453 ("perl" ,perl)
61506fe5 454 ("python" ,python-2)
90205b62
CB
455 ("python2-pymongo" ,python2-pymongo)
456 ("python2-pyyaml" ,python2-pyyaml)
457 ("tzdata" ,tzdata)))
6bbbca90 458 (arguments
6e385b76
AI
459 `(#:scons ,scons-python2
460 #:phases
6bbbca90
CB
461 (let ((common-options
462 `(;; "--use-system-tcmalloc" TODO: Missing gperftools
463 "--use-system-pcre"
29cfbfca
EF
464 ;; wiredtiger is 64-bit only
465 ,,(if (any (cute string-prefix? <> (or (%current-target-system)
466 (%current-system)))
467 '("i686-linux" "armhf-linux"))
468 ``"--wiredtiger=off"
319b52c3 469 ``"--use-system-wiredtiger")
6bbbca90
CB
470 ;; TODO
471 ;; build/opt/mongo/db/fts/unicode/string.o failed: Error 1
472 ;; --use-system-boost
473 "--use-system-snappy"
474 "--use-system-zlib"
475 "--use-system-valgrind"
476 ;; "--use-system-stemmer" TODO: Missing relevant package
477 "--use-system-yaml"
478 "--disable-warnings-as-errors"
479 ,(format #f "--jobs=~a" (parallel-job-count))
480 "--ssl")))
481 (modify-phases %standard-phases
6bbbca90
CB
482 (add-after 'unpack 'scons-propagate-environment
483 (lambda _
484 ;; Modify the SConstruct file to arrange for
485 ;; environment variables to be propagated.
486 (substitute* "SConstruct"
487 (("^env = Environment\\(")
488 "env = Environment(ENV=os.environ, "))
489 #t))
490 (add-after 'unpack 'create-version-file
491 (lambda _
492 (call-with-output-file "version.json"
493 (lambda (port)
494 (display ,(simple-format #f "{
495 \"version\": \"~A\"
496}" version) port)))
497 #t))
498 (replace 'build
499 (lambda _
d9bcdfce 500 (apply invoke `("scons"
6bbbca90 501 ,@common-options
d9bcdfce 502 "mongod" "mongo" "mongos"))))
6bbbca90 503 (replace 'check
90205b62
CB
504 (lambda* (#:key tests? inputs #:allow-other-keys)
505 (setenv "TZDIR"
506 (string-append (assoc-ref inputs "tzdata")
507 "/share/zoneinfo"))
96272e28
MW
508 (when tests?
509 ;; Note that with the tests, especially the unittests, the
510 ;; build can take up to ~45GB of space, as many tests are
511 ;; individual executable files, with some being hundreds of
512 ;; megabytes in size.
513 (apply invoke `("scons" ,@common-options "dbtest" "unittests"))
514 (substitute* "build/unittests.txt"
515 ;; TODO: Don't run the async_stream_test, as it hangs
516 (("^build\\/opt\\/mongo\\/executor\\/async\\_stream\\_test\n$")
517 "")
518 ;; TODO: This test fails
519 ;; Expected 0UL != disks.size() (0 != 0) @src/mongo/util/procparser_test.cpp:476
520 (("^build\\/opt\\/mongo\\/util\\/procparser\\_test\n$")
521 ""))
522 (invoke "python" "buildscripts/resmoke.py"
523 "--suites=dbtest,unittests"
524 (format #f "--jobs=~a" (parallel-job-count))))
525 #t))
6bbbca90 526 (replace 'install
96272e28
MW
527 (lambda* (#:key outputs #:allow-other-keys)
528 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
6bbbca90
CB
529 (install-file "mongod" bin)
530 (install-file "mongos" bin)
531 (install-file "mongo" bin))
532 #t))))))
533 (home-page "https://www.mongodb.org/")
534 (synopsis "High performance and high availability document database")
535 (description
536 "Mongo is a high-performance, high availability, schema-free
537document-oriented database. A key goal of MongoDB is to bridge the gap
538between key/value stores (which are fast and highly scalable) and traditional
539RDBMS systems (which are deep in functionality).")
540 (license (list license:agpl3
541 ;; Some parts are licensed under the Apache License
542 license:asl2.0))))
543
7cbf06d8
TGR
544;; XXX When updating, check whether boost-for-mysql is still needed.
545;; It might suffice to patch ‘cmake/boost.cmake’ as done in the past.
5f96f303
LC
546(define-public mysql
547 (package
548 (name "mysql")
aace6f6d 549 (version "5.7.27")
5f96f303
LC
550 (source (origin
551 (method url-fetch)
23bbd7dd 552 (uri (list (string-append
7fe3a57a 553 "https://dev.mysql.com/get/Downloads/MySQL-"
23bbd7dd
EF
554 (version-major+minor version) "/"
555 name "-" version ".tar.gz")
556 (string-append
7fe3a57a 557 "https://downloads.mysql.com/archives/get/file/"
23bbd7dd 558 name "-" version ".tar.gz")))
5f96f303
LC
559 (sha256
560 (base32
aace6f6d 561 "1fhv16zr46pxm1j8vb8x8mh3nwzglg01arz8gnazbmjqldr5idpq"))))
329d13b8
SB
562 (build-system cmake-build-system)
563 (arguments
69419655 564 `(#:configure-flags
329d13b8
SB
565 '("-DBUILD_CONFIG=mysql_release"
566 "-DWITH_SSL=system"
567 "-DWITH_ZLIB=system"
568 "-DDEFAULT_CHARSET=utf8"
569 "-DDEFAULT_COLLATION=utf8_general_ci"
570 "-DMYSQL_DATADIR=/var/lib/mysql"
571 "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
572 "-DINSTALL_INFODIR=share/mysql/docs"
573 "-DINSTALL_MANDIR=share/man"
574 "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
575 "-DINSTALL_SCRIPTDIR=bin"
576 "-DINSTALL_INCLUDEDIR=include/mysql"
577 "-DINSTALL_DOCREADMEDIR=share/mysql/docs"
578 "-DINSTALL_SUPPORTFILESDIR=share/mysql"
579 "-DINSTALL_MYSQLSHAREDIR=share/mysql"
580 "-DINSTALL_DOCDIR=share/mysql/docs"
581 "-DINSTALL_SHAREDIR=share/mysql"
582 ;; Get rid of test data.
583 "-DINSTALL_MYSQLTESTDIR="
3f289db6
LC
584 "-DINSTALL_SQLBENCHDIR=")
585 #:phases (modify-phases %standard-phases
6a52df50
LC
586 (add-after
587 'install 'remove-extra-binaries
588 (lambda* (#:key outputs #:allow-other-keys)
589 (let ((out (assoc-ref outputs "out")))
590 ;; Remove the 3 *_embedded files, which weigh in at
591 ;; 14 MiB each.
592 (for-each delete-file
593 (find-files (string-append out "/bin")
594 "_embedded$"))
7d099cbe 595 #t))))))
329d13b8
SB
596 (native-inputs
597 `(("bison" ,bison)
aace6f6d
EF
598 ("perl" ,perl)
599 ("pkg-config" ,pkg-config)))
5f96f303 600 (inputs
7cbf06d8 601 `(("boost" ,boost-for-mysql)
23bbd7dd 602 ("libaio" ,libaio)
aace6f6d 603 ("libtirpc" ,libtirpc)
23bbd7dd 604 ("ncurses" ,ncurses)
5f96f303 605 ("openssl" ,openssl)
aace6f6d 606 ("rpcsvc-proto" ,rpcsvc-proto) ; rpcgen
23bbd7dd 607 ("zlib" ,zlib)))
7fe3a57a 608 (home-page "https://www.mysql.com/")
9e771e3b 609 (synopsis "Fast, easy to use, and popular database")
5f96f303
LC
610 (description
611 "MySQL is a fast, reliable, and easy to use relational database
612management system that supports the standardized Structured Query
613Language.")
ba8b9f8d 614 (license license:gpl2)))
5f96f303 615
77631745
SB
616(define-public mariadb
617 (package
618 (name "mariadb")
cc3c5fc5 619 (version "10.1.41")
77631745
SB
620 (source (origin
621 (method url-fetch)
cc3c5fc5
MB
622 (uri (string-append "https://downloads.mariadb.com/MariaDB"
623 "/mariadb-" version "/source/mariadb-"
624 version ".tar.gz"))
77631745
SB
625 (sha256
626 (base32
cc3c5fc5 627 "1wh0073lqw3d9xs150bf2q3qvjwa6886mfi9khmsn7p8vapw6irb"))
fb76ef84 628 (patches (search-patches "mariadb-client-test-32bit.patch"))
2001d2da
MB
629 (modules '((guix build utils)))
630 (snippet
631 '(begin
632 ;; Delete bundled snappy and xz.
633 (delete-file-recursively "storage/tokudb/PerconaFT/third_party")
4333d48a
MB
634 (substitute* "storage/tokudb/PerconaFT/CMakeLists.txt"
635 ;; This file checks that the bundled sources are present and
636 ;; declares build procedures for them.
637 (("^include\\(TokuThirdParty\\)") ""))
638 (substitute* "storage/tokudb/PerconaFT/ft/CMakeLists.txt"
639 ;; Don't attempt to use the procedures we just removed.
640 ((" build_lzma build_snappy") ""))
2001d2da
MB
641
642 ;; Preserve CMakeLists.txt for these.
643 (for-each (lambda (file)
644 (unless (string-suffix? "CMakeLists.txt" file)
645 (delete-file file)))
646 (append (find-files "extra/yassl")
647 (find-files "pcre") (find-files "zlib")))
648 #t))))
77631745
SB
649 (build-system cmake-build-system)
650 (arguments
5193ae64 651 `(#:configure-flags
77631745 652 '("-DBUILD_CONFIG=mysql_release"
6cf8e576
LF
653 ;; Linking with libarchive fails, like this:
654
655 ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o):
656 ;; relocation R_X86_64_32 against `.bss' can not be used when
657 ;; making a shared object; recompile with -fPIC
658
659 ;; For now, disable the features that that use libarchive (xtrabackup).
660 "-DWITH_LIBARCHIVE=OFF"
661
bba7a77e
MB
662 ;; Disable the TokuDB engine, because its test suite frequently fails,
663 ;; and loading it crashes the server: <https://bugs.gnu.org/35521>.
664 "-DTOKUDB_OK=OFF"
665
2001d2da
MB
666 ;; Ensure the system libraries are used.
667 "-DWITH_JEMALLOC=yes"
668 "-DWITH_PCRE=system"
669 "-DWITH_SSL=system"
670 "-DWITH_ZLIB=system"
671
77631745
SB
672 "-DDEFAULT_CHARSET=utf8"
673 "-DDEFAULT_COLLATION=utf8_general_ci"
674 "-DMYSQL_DATADIR=/var/lib/mysql"
675 "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
676 "-DINSTALL_INFODIR=share/mysql/docs"
677 "-DINSTALL_MANDIR=share/man"
678 "-DINSTALL_PLUGINDIR=lib/mysql/plugin"
679 "-DINSTALL_SCRIPTDIR=bin"
680 "-DINSTALL_INCLUDEDIR=include/mysql"
681 "-DINSTALL_DOCREADMEDIR=share/mysql/docs"
682 "-DINSTALL_SUPPORTFILESDIR=share/mysql/support-files"
683 "-DINSTALL_MYSQLSHAREDIR=share/mysql"
684 "-DINSTALL_DOCDIR=share/mysql/docs"
4c27ea06 685 "-DINSTALL_SHAREDIR=share")
77631745
SB
686 #:phases
687 (modify-phases %standard-phases
4333d48a 688 (add-after 'unpack 'fix-pcre-detection
2001d2da
MB
689 (lambda _
690 ;; The bundled PCRE in MariaDB has a patch that was upstreamed
691 ;; in version 8.34. Unfortunately the upstream patch behaves
692 ;; slightly differently and the build system fails to detect it.
693 ;; See <https://bugs.exim.org/show_bug.cgi?id=2173>.
694 ;; XXX: Consider patching PCRE instead.
695 (substitute* "cmake/pcre.cmake"
696 ((" OR NOT PCRE_STACK_SIZE_OK") ""))
2001d2da 697 #t))
3869f39e
MB
698 (add-after 'unpack 'adjust-tests
699 (lambda _
700 (let ((disabled-tests
701 '(;; These fail because root@hostname == root@localhost in
702 ;; the build environment, causing a user count mismatch.
703 ;; See <https://jira.mariadb.org/browse/MDEV-7761>.
704 "main.join_cache"
705 "main.explain_non_select"
1d957c79 706 "main.stat_tables_innodb"
3418e43b 707 "roles.acl_statistics"
69fb26d4
MB
708
709 ;; This file contains a time bomb which makes it fail after
0ce64334 710 ;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
38f77be4 711 "main.mysqldump"
69fb26d4 712
3418e43b
MB
713 ;; FIXME: This test fails on i686:
714 ;; -myisampack: Can't create/write to file (Errcode: 17 "File exists")
715 ;; +myisampack: Can't create/write to file (Errcode: 17 "File exists)
716 ;; When running "myisampack --join=foo/t3 foo/t1 foo/t2"
717 ;; (all three tables must exist and be identical)
718 ;; in a loop it produces the same error around 1/240 times.
719 ;; montywi on #maria suggested removing the real_end check in
720 ;; "strings/my_vsnprintf.c" on line 503, yet it still does not
721 ;; reach the ending quote occasionally. Disable it for now.
62694caa
EF
722 "main.myisampack"
723 ;; FIXME: This test fails on armhf-linux:
724 "mroonga/storage.index_read_multiple_double"))
3869f39e
MB
725
726 ;; This file contains a list of known-flaky tests for this
727 ;; release. Append our own items.
728 (unstable-tests (open-file "mysql-test/unstable-tests" "a")))
729 (for-each (lambda (test)
730 (format unstable-tests "~a : ~a\n"
731 test "Disabled in Guix"))
732 disabled-tests)
733 (close-port unstable-tests)
734
735 (substitute* "mysql-test/mysql-test-run.pl"
736 (("/bin/ls") (which "ls"))
737 (("/bin/sh") (which "sh")))
738 #t)))
5b4d2e40
MB
739 (add-before 'configure 'disable-plugins
740 (lambda _
741 (let ((disable-plugin (lambda (name)
742 (call-with-output-file
743 (string-append "plugin/" name
744 "/CMakeLists.txt")
745 (lambda (port)
746 (format port "\n")))))
03335824 747 (disabled-plugins '(;; XXX: Causes a test failure.
3869f39e 748 "disks")))
5b4d2e40
MB
749 (for-each disable-plugin disabled-plugins)
750 #t)))
3869f39e
MB
751 (replace 'check
752 (lambda* (#:key (tests? #t) #:allow-other-keys)
753 (if tests?
754 (with-directory-excursion "mysql-test"
755 (invoke "./mtr" "--verbose"
3418e43b 756 "--retry=3"
71179b35
MB
757 "--testcase-timeout=40"
758 "--suite-timeout=600"
3869f39e
MB
759 "--parallel" (number->string (parallel-job-count))
760 "--skip-test-list=unstable-tests"))
761 (format #t "test suite not run~%"))
762 #t))
77631745
SB
763 (add-after
764 'install 'post-install
765 (lambda* (#:key outputs #:allow-other-keys)
766 (let* ((out (assoc-ref outputs "out"))
767 (test (assoc-ref outputs "test")))
768 (substitute* (string-append out "/bin/mysql_install_db")
769 (("basedir=\"\"")
770 (string-append "basedir=\"" out "\"")))
771 ;; Remove unneeded files for testing.
772 (with-directory-excursion out
773 (for-each delete-file-recursively
774 '("data" "mysql-test" "sql-bench"
963157f1 775 "share/man/man1/mysql-test-run.pl.1"))
43cec3fb
MB
776 ;; Delete huge and unnecessary executables.
777 (for-each delete-file (find-files "bin" "(test|embedded)"))
963157f1
MB
778 ;; And static libraries.
779 (for-each delete-file (find-files "lib" "\\.a$")))
841ee2a8 780 #t))))))
77631745
SB
781 (native-inputs
782 `(("bison" ,bison)
2fa55c72
MB
783 ;; XXX: On armhf, use GCC 5 to work around <https://bugs.gnu.org/37605>.
784 ,@(if (string-prefix? "armhf" (%current-system))
785 `(("gcc", gcc-5))
786 '())
03335824 787 ("perl" ,perl)))
77631745
SB
788 (inputs
789 `(("jemalloc" ,jemalloc)
790 ("libaio" ,libaio)
791 ("libxml2" ,libxml2)
792 ("ncurses" ,ncurses)
77631745 793 ("pcre" ,pcre)
2001d2da 794 ("xz" ,xz)
77631745 795 ("zlib" ,zlib)))
22f5c076
MB
796 (propagated-inputs
797 ;; mariadb.pc says -lssl -lcrypto, so propagate it.
e74f153a 798 `(("openssl" ,openssl-1.0)))
3869f39e
MB
799 ;; The test suite is very resource intensive and can take more than three
800 ;; hours on a x86_64 system. Give slow and busy machines some leeway.
801 (properties '((timeout . 64800))) ;18 hours
77631745
SB
802 (home-page "https://mariadb.org/")
803 (synopsis "SQL database server")
804 (description
805 "MariaDB is a multi-user and multi-threaded SQL database server, designed
806as a drop-in replacement of MySQL.")
ba8b9f8d 807 (license license:gpl2)))
77631745 808
97dd1b15 809;; Don't forget to update the other postgresql packages when upgrading this one.
5f96f303
LC
810(define-public postgresql
811 (package
812 (name "postgresql")
c8f5827a 813 (version "10.10")
5f96f303
LC
814 (source (origin
815 (method url-fetch)
dbeaf8f2 816 (uri (string-append "https://ftp.postgresql.org/pub/source/v"
9020890b 817 version "/postgresql-" version ".tar.bz2"))
5f96f303
LC
818 (sha256
819 (base32
c8f5827a 820 "0lzj46dwd9cw94gnqm36bxd7jlhfdyqjrfzr3c4xd3prfn2rnkxd"))
c336567d 821 (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
5f96f303 822 (build-system gnu-build-system)
dd213082 823 (arguments
8b7e6d00 824 `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl")
b7aa3f5d 825 #:phases
dd213082
JD
826 (modify-phases %standard-phases
827 (add-before 'configure 'patch-/bin/sh
828 (lambda _
829 ;; Refer to the actual shell.
830 (substitute* '("src/bin/pg_ctl/pg_ctl.c"
831 "src/bin/psql/command.c")
832 (("/bin/sh") (which "sh")))
b7aa3f5d
DM
833 #t))
834 (add-after 'build 'build-contrib
835 (lambda _
1fbad3ad 836 (invoke "make" "-C" "contrib")))
b7aa3f5d
DM
837 (add-after 'install 'install-contrib
838 (lambda _
1fbad3ad 839 (invoke "make" "-C" "contrib" "install"))))))
5f96f303
LC
840 (inputs
841 `(("readline" ,readline)
b7aa3f5d 842 ("libuuid" ,util-linux)
8b7e6d00 843 ("openssl" ,openssl)
5f96f303 844 ("zlib" ,zlib)))
d887f420 845 (home-page "https://www.postgresql.org/")
5f96f303
LC
846 (synopsis "Powerful object-relational database system")
847 (description
848 "PostgreSQL is a powerful object-relational database system. It is fully
849ACID compliant, has full support for foreign keys, joins, views, triggers, and
850stored procedures (in multiple languages). It includes most SQL:2008 data
851types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and
852TIMESTAMP. It also supports storage of binary large objects, including
853pictures, sounds, or video.")
ba8b9f8d 854 (license (license:x11-style "file://COPYRIGHT"))))
5f96f303 855
91477def
GB
856(define-public postgresql-11
857 (package
858 (inherit postgresql)
859 (name "postgresql")
cbfddc2f 860 (version "11.5")
91477def
GB
861 (source (origin
862 (method url-fetch)
863 (uri (string-append "https://ftp.postgresql.org/pub/source/v"
864 version "/postgresql-" version ".tar.bz2"))
865 (sha256
866 (base32
cbfddc2f 867 "106ikalvrilihlvhq7xj7snq98hgbgq6qsgjrd252wgw1c327pvz"))))))
91477def 868
7658d89b
EF
869(define-public postgresql-9.6
870 (package
871 (inherit postgresql)
872 (name "postgresql")
14b80bf6 873 (version "9.6.15")
7658d89b
EF
874 (source (origin
875 (method url-fetch)
876 (uri (string-append "https://ftp.postgresql.org/pub/source/v"
877 version "/postgresql-" version ".tar.bz2"))
878 (sha256
879 (base32
14b80bf6 880 "02hp69h2p02asfblkaahblzdz2zmawd2r11h6237y5j7yadgxn9w"))))))
7658d89b 881
9763102b
TGR
882(define-public python-pymysql
883 (package
884 (name "python-pymysql")
4cb2f29e 885 (version "0.9.3")
9763102b
TGR
886 (source
887 (origin
888 (method url-fetch)
889 (uri (pypi-uri "PyMySQL" version))
890 (sha256
4cb2f29e 891 (base32 "1ry8lxgdc1p3k7gbw20r405jqi5lvhi5wk83kxdbiv8xv3f5kh6q"))))
9763102b
TGR
892 (build-system python-build-system)
893 (native-inputs
894 `(("python-unittest2" ,python-unittest2)))
895 (inputs
896 `(("python-cryptography" ,python-cryptography)))
897 (arguments
898 `(#:tests? #f)) ; tests expect a running MySQL
899 (home-page "https://github.com/PyMySQL/PyMySQL/")
900 (synopsis "Pure-Python MySQL driver")
901 (description
902 "PyMySQL is a pure-Python MySQL client library, based on PEP 249.
903Most public APIs are compatible with @command{mysqlclient} and MySQLdb.")
904 (license license:expat)))
905
906(define-public python2-pymysql
907 (package-with-python2 python-pymysql))
908
259a94e9
TD
909(define-public qdbm
910 (package
911 (name "qdbm")
912 (version "1.8.78")
913 (source
914 (origin
915 (method url-fetch)
916 (uri (string-append "http://fallabs.com/" name "/"
917 name "-" version ".tar.gz"))
918 (sha256
919 (base32
920 "0gmpvhn02pkq280ffmn4da1g4mdr1xxz7l80b7y4n7km1mrzwrml"))))
921 (build-system gnu-build-system)
922 (arguments
923 `( #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
924 (assoc-ref %outputs "out")
925 "/lib"))))
926 (home-page "http://fallabs.com/qdbm")
927 (synopsis "Key-value database")
928 (description "QDBM is a library of routines for managing a
929database. The database is a simple data file containing key-value
930pairs. Every key and value is serial bytes with variable length.
931Binary data as well as character strings can be used as a key or a
932value. There is no concept of data tables or data types. Records are
933organized in a hash table or B+ tree.")
934 (license license:lgpl2.1+)))
935
5f96f303
LC
936(define-public recutils
937 (package
938 (name "recutils")
c007e35d 939 (version "1.8")
5f96f303
LC
940 (source (origin
941 (method url-fetch)
942 (uri (string-append "mirror://gnu/recutils/recutils-"
943 version ".tar.gz"))
944 (sha256
945 (base32
c007e35d 946 "14xiln4immfsw8isnvwvq0h23f6z0wilpgsc4qzabnrzb5lsx3nz"))))
5f96f303
LC
947 (build-system gnu-build-system)
948
c007e35d 949 (arguments '(#:configure-flags
b747a9db
LF
950 (list (string-append "--with-bash-headers="
951 (assoc-ref %build-inputs "bash:include")
c007e35d 952 "/include/bash"))))
5f96f303 953
535a69e9 954 (native-inputs `(("bc" ,bc)
b747a9db 955 ("bash:include" ,bash "include")
c007e35d
EF
956 ("check" ,check)
957 ("libuuid" ,util-linux)
958 ("pkg-config" ,pkg-config)))
5f96f303
LC
959
960 ;; TODO: Add more optional inputs.
5f96f303 961 (inputs `(("curl" ,curl)
c007e35d 962 ("libgcrypt" ,libgcrypt)))
5f96f303
LC
963 (synopsis "Manipulate plain text files as databases")
964 (description
965 "GNU Recutils is a set of tools and libraries for creating and
966manipulating text-based, human-editable databases. Despite being text-based,
967databases created with Recutils carry all of the expected features such as
c5779c93
LC
968unique fields, primary keys, time stamps and more. Many different field
969types are supported, as is encryption.")
ba8b9f8d 970 (license license:gpl3+)
6fd52309 971 (home-page "https://www.gnu.org/software/recutils/")))
5f96f303 972
9df78675
JH
973(define-public emacs-recutils
974 (package
975 (inherit recutils)
976 (name "emacs-recutils")
977 (build-system emacs-build-system)
978 (arguments
979 '(#:phases
980 (modify-phases %standard-phases
981 (add-after 'unpack 'change-directory
982 (lambda _
983 (chdir "etc")
984 #t)))))
985 (native-inputs '())
986 (inputs '())
987 (synopsis "Emacs mode for working with recutils database files")
988 (description "This package provides an Emacs major mode @code{rec-mode}
989for working with GNU Recutils text-based, human-editable databases. It
990supports editing, navigation, and querying of recutils database files
991including field and record folding.")))
992
d3c6ad0a
MB
993(define-public rocksdb
994 (package
995 (name "rocksdb")
5ae458be 996 (version "5.18.3")
d3c6ad0a 997 (source (origin
8dd36658
MB
998 (method git-fetch)
999 (uri (git-reference
1000 (url "https://github.com/facebook/rocksdb")
1001 (commit (string-append "v" version))))
1002 (file-name (git-file-name name version))
d3c6ad0a
MB
1003 (sha256
1004 (base32
5ae458be 1005 "1v2slmmr1dsgf8z0qcfg1y9x1al96859rg48b66p9nsawczd5zv9"))
d3c6ad0a
MB
1006 (modules '((guix build utils)))
1007 (snippet
1008 '(begin
1009 ;; TODO: unbundle gtest.
1010 (delete-file "build_tools/gnu_parallel")
7fa9cca8
MB
1011 (substitute* "Makefile"
1012 (("build_tools/gnu_parallel") "parallel"))
d3c6ad0a
MB
1013 #t))))
1014 (build-system gnu-build-system)
1015 (arguments
7fa9cca8
MB
1016 `(#:make-flags (list "CC=gcc" "V=1"
1017 ;; Ceph requires that RTTI is enabled.
1018 "USE_RTTI=1"
d3c6ad0a 1019 (string-append "INSTALL_PATH="
7fa9cca8
MB
1020 (assoc-ref %outputs "out"))
1021
1022 ;; Running the full test suite takes hours and require
1023 ;; a lot of disk space. Instead we only run a subset
1024 ;; (see .travis.yml and Makefile).
1025 "ROCKSDBTESTS_END=db_tailing_iter_test")
1026 #:test-target "check_some"
d7b344c5
MB
1027 ;; Many tests fail on 32-bit platforms. There are multiple reports about
1028 ;; this upstream, but it's not going to be supported any time soon.
1029 #:tests? (let ((system ,(or (%current-target-system)
1030 (%current-system))))
1031 (or (string-prefix? "x86_64-linux" system)
1032 (string-prefix? "aarch64-linux" system)))
d3c6ad0a
MB
1033 #:phases
1034 (modify-phases %standard-phases
1035 (add-after 'unpack 'patch-Makefile
1036 (lambda _
1037 (substitute* "Makefile"
f91c677c
MB
1038 ;; Don't depend on the static library when installing.
1039 (("install: install-static")
1040 "install: install-shared")
d3c6ad0a
MB
1041 (("#!/bin/sh") (string-append "#!" (which "sh"))))
1042 #t))
1043 (delete 'configure)
d7b344c5
MB
1044 ;; The default target is only needed for tests and built on demand.
1045 (delete 'build)
1046 (add-before 'check 'disable-optimizations
1047 (lambda _
1048 ;; Prevent the build from passing '-march=native' to the compiler.
1049 (setenv "PORTABLE" "1")
1050 #t))
d3c6ad0a
MB
1051 (add-before 'check 'disable-failing-tests
1052 (lambda _
1053 (substitute* "Makefile"
1054 ;; These tests reliably fail due to "Too many open files".
1055 (("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\")
1056 (("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\"))
1057 #t))
7fa9cca8 1058 (add-after 'check 'build
f91c677c 1059 ;; The default build target is a debug build for tests. The
7fa9cca8
MB
1060 ;; install target depends on the "shared_lib" release target
1061 ;; so we build it here for clarity.
1062 (lambda* (#:key (make-flags '()) parallel-build? #:allow-other-keys)
1063 (apply invoke "make" "shared_lib"
1064 `(,@(if parallel-build?
1065 `("-j" ,(number->string (parallel-job-count)))
1066 '())
1067 ,@make-flags)))))))
d3c6ad0a
MB
1068 (native-inputs
1069 `(("parallel" ,parallel)
1070 ("perl" ,perl)
1071 ("procps" ,procps)
77e52190
MB
1072 ("python" ,python-2)
1073 ("which" ,which)))
d3c6ad0a
MB
1074 (inputs
1075 `(("bzip2" ,bzip2)
1076 ("gflags" ,gflags)
1077 ("jemalloc" ,jemalloc)
1078 ("lz4" ,lz4)
1079 ("snappy" ,snappy)
1080 ("zlib" ,zlib)))
1081 (home-page "http://rocksdb.org/")
1082 (synopsis "Persistent key-value store for fast storage")
1083 (description
1084 "RocksDB is a library that forms the core building block for a fast
1085key-value server, especially suited for storing data on flash drives. It
1086has a @dfn{Log-Structured-Merge-Database} (LSM) design with flexible tradeoffs
1087between @dfn{Write-Amplification-Factor} (WAF), @dfn{Read-Amplification-Factor}
1088(RAF) and @dfn{Space-Amplification-Factor} (SAF). It has multi-threaded
1089compactions, making it specially suitable for storing multiple terabytes of
1090data in a single database. RocksDB is partially based on @code{LevelDB}.")
7fa9cca8
MB
1091 ;; RocksDB is dual licensed under GPL2 and ASL 2.0. Some header
1092 ;; files carry the 3-clause BSD license.
1093 (license (list license:gpl2 license:asl2.0 license:bsd-3))))
d3c6ad0a 1094
b92d02d9
RJ
1095(define-public sparql-query
1096 (package
1097 (name "sparql-query")
1098 (version "1.1")
1099 (source (origin
1100 (method url-fetch)
1101 (uri (string-append "https://github.com/tialaramex/"
1102 name "/archive/" version ".tar.gz"))
1103 (sha256
1104 (base32 "0yq3k20472rv8npcc420q9ab6idy584g5y0q501d360k5q0ggr8w"))
1105 (file-name (string-append name "-" version ".tar.gz"))))
1106 (build-system gnu-build-system)
1107 (inputs
1108 `(("readline" ,readline)
1109 ("ncurses" ,ncurses)
1110 ("glib" ,glib)
1111 ("libxml2" ,libxml2)
1112 ("curl" ,curl)))
1113 (native-inputs
1114 `(("pkg-config" ,pkg-config)))
1115 (arguments
1116 `(#:make-flags '("CC=gcc")
1117 #:phases
1118 (modify-phases %standard-phases
1119 (delete 'configure)
1120 ;; The Makefile uses git to obtain versioning information. This phase
1121 ;; substitutes the git invocation with the package version.
1122 (add-after 'unpack 'remove-git-dependency
1123 (lambda _
1124 (substitute* "Makefile"
1125 (("^gitrev :=.*$")
96272e28
MW
1126 (string-append "gitrev = \"v" ,version "\"")))
1127 #t))
b92d02d9
RJ
1128 ;; The install phase of the Makefile assumes $PREFIX/usr/local/bin.
1129 ;; This replacement does the same thing, except for using $PREFIX/bin
1130 ;; instead.
1131 (replace 'install
1132 (lambda* (#:key outputs #:allow-other-keys)
1133 (let* ((out (assoc-ref outputs "out"))
1134 (bin (string-append out "/bin")))
1135 (install-file "sparql-query" bin)
96272e28
MW
1136 (symlink (string-append bin "/sparql-query")
1137 (string-append bin "/sparql-update")))
1138 #t))
b92d02d9
RJ
1139 (replace 'check
1140 (lambda* (#:key make-flags #:allow-other-keys)
96272e28
MW
1141 (apply invoke "make" `(,@make-flags "scan-test"))
1142 (invoke "./scan-test"))))))
b92d02d9
RJ
1143 (home-page "https://github.com/tialaramex/sparql-query/")
1144 (synopsis "Command-line tool for accessing SPARQL endpoints over HTTP")
1145 (description "Sparql-query is a command-line tool for accessing SPARQL
36a4366d 1146endpoints over HTTP. It has been intentionally designed to @code{feel} similar to
b92d02d9
RJ
1147tools for interrogating SQL databases. For example, you can enter a query over
1148several lines, using a semi-colon at the end of a line to indicate the end of
1149your query. It also supports readline so that you can more easily recall and
1150edit previous queries, even across sessions. It can be used non-interactively,
1151for example from a shell script.")
1152 ;; Some files (like scan-sparql.c) contain a GPLv3+ license header, while
1153 ;; others (like sparql-query.c) contain a GPLv2+ license header.
ba8b9f8d 1154 (license (list license:gpl3+))))
b92d02d9 1155
cabe8f18
CB
1156(define-public sqitch
1157 (package
1158 (name "sqitch")
1159 (version "0.9999")
1160 (source
1161 (origin
1162 (method url-fetch)
1163 (uri (string-append
1164 "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-"
1165 version
1166 ".tar.gz"))
1167 (sha256
1168 (base32
1169 "1cvj8grs3bzc4g7dw1zc26g4biv1frav18sq0fkvi2kk0q1aigzm"))))
1170 (build-system perl-build-system)
1171 (arguments
1172 '(#:phases
1173 (modify-phases %standard-phases
1174 (add-before 'check 'set-check-environment
1175 (lambda _
1176 (setenv "TZ" "UTC")
1177 (setenv "HOME" "/tmp")
1178 #t))
1179 (add-after 'install 'wrap-program
1180 (lambda* (#:key outputs #:allow-other-keys)
1181 (let* ((out (assoc-ref outputs "out"))
1182 (path (getenv "PERL5LIB")))
1183 (wrap-program (string-append out "/bin/sqitch")
1184 `("PERL5LIB" ":" prefix
1185 (,(string-append out "/lib/perl5/site_perl"
1186 ":"
1187 path)))))
1188 #t)))))
1189 (native-inputs
1190 `(("perl-capture-tiny" ,perl-capture-tiny)
1191 ("perl-io-pager" ,perl-io-pager)
1192 ("perl-module-build" ,perl-module-build)
1193 ("perl-module-runtime" ,perl-module-runtime)
1194 ("perl-path-class" ,perl-path-class)
1195 ("perl-test-deep" ,perl-test-deep)
1196 ("perl-test-dir" ,perl-test-dir)
1197 ("perl-test-exception" ,perl-test-exception)
1198 ("perl-test-file" ,perl-test-file)
1199 ("perl-test-file-contents" ,perl-test-file-contents)
1200 ("perl-test-mockmodule" ,perl-test-mockmodule)
1201 ("perl-test-nowarnings" ,perl-test-nowarnings)
1202 ("perl-test-warn" ,perl-test-warn)))
1203 (inputs
1204 `(("perl-class-xsaccessor" ,perl-class-xsaccessor)
1205 ("perl-clone" ,perl-clone)
1206 ("perl-config-gitlike" ,perl-config-gitlike)
1207 ("perl-datetime" ,perl-datetime)
1208 ("perl-datetime-timezone" ,perl-datetime-timezone)
1209 ("perl-dbd-pg" ,perl-dbd-pg)
1210 ("perl-dbi" ,perl-dbi)
1211 ("perl-devel-stacktrace" ,perl-devel-stacktrace)
1212 ("perl-encode-locale" ,perl-encode-locale)
1213 ("perl-file-homedir" ,perl-file-homedir)
1214 ("perl-hash-merge" ,perl-hash-merge)
1215 ("perl-ipc-run3" ,perl-ipc-run3)
1216 ("perl-ipc-system-simple" ,perl-ipc-system-simple)
1217 ("perl-libintl-perl" ,perl-libintl-perl)
1218 ("perl-list-moreutils" ,perl-list-moreutils)
1219 ("perl-moo" ,perl-moo)
1220 ("perl-mysql-config" ,perl-mysql-config)
1221 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1222 ("perl-path-class" ,perl-path-class)
1223 ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
1224 ("perl-string-formatter" ,perl-string-formatter)
1225 ("perl-string-shellquote" ,perl-string-shellquote)
1226 ("perl-sub-exporter" ,perl-sub-exporter)
1227 ("perl-template-tiny" ,perl-template-tiny)
1228 ("perl-template-toolkit" ,perl-template-toolkit)
1229 ("perl-throwable" ,perl-throwable)
1230 ("perl-try-tiny" ,perl-try-tiny)
1231 ("perl-type-tiny" ,perl-type-tiny)
1232 ("perl-type-tiny-xs" ,perl-type-tiny-xs)
1233 ("perl-uri" ,perl-uri)
1234 ("perl-uri-db" ,perl-uri-db)))
1235 (home-page "https://sqitch.org/")
1236 (synopsis "Database change management tool")
1237 (description
1238 "Sqitch is a standalone change management system for database schemas,
1239which uses SQL to describe changes.")
1240 (license license:x11)))
1241
311f06c9
TGR
1242(define-public sqlcrush
1243 ;; Unfortunately, there is no proper upstream release and may never be.
1244 (let ((commit "b5f6868f189566a26eecc78d0f0659813c1aa98a")
1245 (revision "1"))
1246 (package
1247 (name "sqlcrush")
1248 (version (git-version "0.1.5" revision commit))
1249 (source (origin
1250 (method git-fetch)
1251 (uri (git-reference
1252 (url "https://github.com/coffeeandscripts/sqlcrush.git")
1253 (commit commit)))
1254 (file-name (git-file-name name version))
1255 (sha256
1256 (base32
1257 "0x3wy40r93p0jv3nbwj9a77wa4ff697d13r0wffmm7q9h3mzsww8"))))
1258 (build-system python-build-system)
1259 (inputs
1260 `(("python-cryptography" ,python-cryptography)
1261 ("python-psycopg2" ,python-psycopg2)
1262 ("python-pymysql" ,python-pymysql)
1263 ("python-sqlalchemy" ,python-sqlalchemy)))
1264 (home-page "https://github.com/coffeeandscripts/sqlcrush")
1265 (synopsis "Text console-based database viewer and editor")
1266 (description
1267 "SQLcrush lets you view and edit a database directly from the text
1268console through an ncurses interface. You can explore each table's structure,
1269browse and edit the contents, add and delete entries, all while tracking your
1270changes.")
1271 (license license:gpl3+)))) ; no headers, see README.md
1272
db60b1d9
LC
1273(define-public tdb
1274 (package
1275 (name "tdb")
c0de48c9 1276 (version "1.4.2")
db60b1d9
LC
1277 (source (origin
1278 (method url-fetch)
ca473fc2 1279 (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
db60b1d9
LC
1280 version ".tar.gz"))
1281 (sha256
1282 (base32
c0de48c9 1283 "0jh0iqbb6pkvqrqn033w5g6gwa4bdgkvp49z0qpkk3h2wk6b4h4h"))))
db60b1d9
LC
1284 (build-system gnu-build-system)
1285 (arguments
6ccb7814
EF
1286 '(#:phases
1287 (modify-phases %standard-phases
1288 (replace 'configure
1289 (lambda* (#:key outputs #:allow-other-keys)
1290 (let ((out (assoc-ref outputs "out")))
1291 ;; The 'configure' script is a wrapper for Waf and
1292 ;; doesn't recognize things like '--enable-fast-install'.
96272e28
MW
1293 (invoke "./configure"
1294 (string-append "--prefix=" out))))))))
db60b1d9
LC
1295 (native-inputs
1296 `(;; TODO: Build the documentation.
1297 ;; ("docbook-xsl" ,docbook-xsl)
1298 ;; ("libxml2" ,libxml2)
1299 ;; ("libxslt" ,libxslt)
97dcedbd
MB
1300 ("python" ,python) ;for the Waf build system
1301 ("which" ,which)))
1abd0904 1302 (home-page "https://tdb.samba.org/")
35b9e423 1303 (synopsis "Trivial database")
db60b1d9
LC
1304 (description
1305 "TDB is a Trivial Database. In concept, it is very much like GDBM,
1306and BSD's DB except that it allows multiple simultaneous writers and uses
1307locking internally to keep writers from trampling on each other. TDB is also
1308extremely small.")
ba8b9f8d 1309 (license license:lgpl3+)))
274da61d
LC
1310
1311(define-public perl-dbi
1312 (package
1313 (name "perl-dbi")
da93d424 1314 (version "1.642")
274da61d
LC
1315 (source (origin
1316 (method url-fetch)
1317 (uri (string-append
1318 "mirror://cpan/authors/id/T/TI/TIMB/DBI-"
1319 version ".tar.gz"))
1320 (sha256
1321 (base32
da93d424 1322 "0pbzqazrx7pnw4nbyaf27in4b6yddkirbd2ws7mnqa2n7812a81z"))))
274da61d
LC
1323 (build-system perl-build-system)
1324 (synopsis "Database independent interface for Perl")
1325 (description "This package provides an database interface for Perl.")
9aba9b12 1326 (home-page "https://metacpan.org/release/DBI")
2f3108ad 1327 (license license:perl-license)))
274da61d 1328
feae3395
EB
1329(define-public perl-dbix-class
1330 (package
1331 (name "perl-dbix-class")
435897c0 1332 (version "0.082841")
feae3395
EB
1333 (source
1334 (origin
1335 (method url-fetch)
1336 (uri (string-append "mirror://cpan/authors/id/R/RI/RIBASUSHI/"
1337 "DBIx-Class-" version ".tar.gz"))
1338 (sha256
1339 (base32
435897c0 1340 "1gf3hgv8f9rnr8bl4ljgsqk4aliphmvljhsk4282kvdc4mcgh1fp"))))
feae3395
EB
1341 (build-system perl-build-system)
1342 (native-inputs
1343 `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
1344 ("perl-file-temp" ,perl-file-temp)
2f837cf7 1345 ("perl-module-install" ,perl-module-install)
feae3395
EB
1346 ("perl-package-stash" ,perl-package-stash)
1347 ("perl-test-deep" ,perl-test-deep)
1348 ("perl-test-exception" ,perl-test-exception)
1349 ("perl-test-warn" ,perl-test-warn)))
1350 (propagated-inputs
1351 `(("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
1352 ("perl-class-c3-componentised" ,perl-class-c3-componentised)
1353 ("perl-class-inspector" ,perl-class-inspector)
1354 ("perl-config-any" ,perl-config-any)
1355 ("perl-context-preserve" ,perl-context-preserve)
1356 ("perl-data-dumper-concise" ,perl-data-dumper-concise)
1357 ("perl-data-page" ,perl-data-page)
1358 ("perl-dbi" ,perl-dbi)
1359 ("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
1360 ("perl-hash-merge" ,perl-hash-merge)
1361 ("perl-module-find" ,perl-module-find)
1362 ("perl-moo" ,perl-moo)
1363 ("perl-mro-compat" ,perl-mro-compat)
1364 ("perl-namespace-clean" ,perl-namespace-clean)
1365 ("perl-path-class" ,perl-path-class)
1366 ("perl-scalar-list-utils" ,perl-scalar-list-utils)
1367 ("perl-scope-guard" ,perl-scope-guard)
1368 ("perl-sql-abstract" ,perl-sql-abstract)
1369 ("perl-sub-name" ,perl-sub-name)
1370 ("perl-text-balanced" ,perl-text-balanced)
1371 ("perl-try-tiny" ,perl-try-tiny)))
9aba9b12 1372 (home-page "https://metacpan.org/release/DBIx-Class")
feae3395
EB
1373 (synopsis "Extensible and flexible object <-> relational mapper")
1374 (description "An SQL to OO mapper with an object API inspired by
1375Class::DBI (with a compatibility layer as a springboard for porting) and a
1376resultset API that allows abstract encapsulation of database operations. It
1377aims to make representing queries in your code as perl-ish as possible while
1378still providing access to as many of the capabilities of the database as
1379possible, including retrieving related records from multiple tables in a
1380single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
1381\"ORDER BY\" and \"HAVING\" support.")
2f3108ad 1382 (license license:perl-license)))
e61fd0f0 1383
4e4039e5
EB
1384(define-public perl-dbix-class-cursor-cached
1385 (package
1386 (name "perl-dbix-class-cursor-cached")
180cb81b 1387 (version "1.001004")
4e4039e5
EB
1388 (source
1389 (origin
1390 (method url-fetch)
1391 (uri (string-append "mirror://cpan/authors/id/A/AR/ARCANEZ/"
1392 "DBIx-Class-Cursor-Cached-" version ".tar.gz"))
1393 (sha256
1394 (base32
180cb81b 1395 "09b2jahn2x12qm4f7qm1jzsxbz7qn1czp6a3fnl5l2i3l4r5421p"))))
4e4039e5
EB
1396 (build-system perl-build-system)
1397 (native-inputs
1398 `(("perl-cache-cache" ,perl-cache-cache)
2f837cf7
MB
1399 ("perl-dbd-sqlite" ,perl-dbd-sqlite)
1400 ("perl-module-install" ,perl-module-install)))
4e4039e5
EB
1401 (propagated-inputs
1402 `(("perl-carp-clan" ,perl-carp-clan)
1403 ("perl-dbix-class" ,perl-dbix-class)))
9aba9b12 1404 (home-page "https://metacpan.org/release/DBIx-Class-Cursor-Cached")
4e4039e5
EB
1405 (synopsis "Cursor with built-in caching support")
1406 (description "DBIx::Class::Cursor::Cached provides a cursor class with
1407built-in caching support.")
2f3108ad 1408 (license license:perl-license)))
4e4039e5 1409
e61fd0f0
EB
1410(define-public perl-dbix-class-introspectablem2m
1411 (package
1412 (name "perl-dbix-class-introspectablem2m")
7a462b80 1413 (version "0.001002")
e61fd0f0
EB
1414 (source
1415 (origin
1416 (method url-fetch)
68a9d6df 1417 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
e61fd0f0
EB
1418 "DBIx-Class-IntrospectableM2M-" version ".tar.gz"))
1419 (sha256
1420 (base32
7a462b80 1421 "1w47rh2241iy5x3a9bqsyd5kdp9sk43dksr99frzv4qn4jsazfn6"))))
e61fd0f0 1422 (build-system perl-build-system)
2f837cf7
MB
1423 (native-inputs
1424 `(("perl-module-install" ,perl-module-install)))
e61fd0f0
EB
1425 (propagated-inputs
1426 `(("perl-dbix-class" ,perl-dbix-class)))
9aba9b12 1427 (home-page "https://metacpan.org/release/DBIx-Class-IntrospectableM2M")
e61fd0f0
EB
1428 (synopsis "Introspect many-to-many relationships")
1429 (description "Because the many-to-many relationships are not real
1430relationships, they can not be introspected with DBIx::Class. Many-to-many
1431relationships are actually just a collection of convenience methods installed
1432to bridge two relationships. This DBIx::Class component can be used to store
1433all relevant information about these non-relationships so they can later be
1434introspected and examined.")
2f3108ad 1435 (license license:perl-license)))
708155df
EB
1436
1437(define-public perl-dbix-class-schema-loader
1438 (package
1439 (name "perl-dbix-class-schema-loader")
1672e7e7 1440 (version "0.07049")
708155df
EB
1441 (source
1442 (origin
1443 (method url-fetch)
1444 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
1445 "DBIx-Class-Schema-Loader-" version ".tar.gz"))
1446 (sha256
1447 (base32
1672e7e7 1448 "0r57fv71ypxafb85cpxph1hdqii7ipjwvc19yb6fpkvq2ggcssg8"))))
708155df
EB
1449 (build-system perl-build-system)
1450 (native-inputs
1451 `(("perl-config-any" ,perl-config-any)
1452 ("perl-config-general" ,perl-config-general)
1453 ("perl-dbd-sqlite" ,perl-dbd-sqlite)
1454 ("perl-dbix-class-introspectablem2m" ,perl-dbix-class-introspectablem2m)
2f837cf7 1455 ("perl-module-install" ,perl-module-install)
708155df
EB
1456 ("perl-moose" ,perl-moose)
1457 ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
1458 ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
1459 ("perl-namespace-autoclean" ,perl-namespace-autoclean)
1460 ("perl-test-deep" ,perl-test-deep)
1461 ("perl-test-differences" ,perl-test-differences)
1462 ("perl-test-exception" ,perl-test-exception)
1463 ("perl-test-pod" ,perl-test-pod)
1464 ("perl-test-warn" ,perl-test-warn)))
1465 (propagated-inputs
1466 `(("perl-class-unload" ,perl-class-unload)
1467 ("perl-class-inspector" ,perl-class-inspector)
1468 ("perl-class-accessor-grouped" ,perl-class-accessor-grouped)
1469 ("perl-class-c3-componentised" ,perl-class-c3-componentised)
1470 ("perl-carp-clan" ,perl-carp-clan)
1471 ("perl-data-dump" ,perl-data-dump)
1472 ("perl-dbix-class" ,perl-dbix-class)
1473 ("perl-hash-merge" ,perl-hash-merge)
1474 ("perl-list-moreutils" ,perl-list-moreutils)
1475 ("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase)
1476 ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number)
1477 ("perl-lingua-en-tagger" ,perl-lingua-en-tagger)
1478 ("perl-namespace-clean" ,perl-namespace-clean)
1479 ("perl-mro-compat" ,perl-mro-compat)
1480 ("perl-scope-guard" ,perl-scope-guard)
1481 ("perl-string-camelcase" ,perl-string-camelcase)
1482 ("perl-string-toidentifier-en" ,perl-string-toidentifier-en)
1483 ("perl-sub-name" ,perl-sub-name)
1484 ("perl-try-tiny" ,perl-try-tiny)))
1485 (arguments `(#:tests? #f)) ;TODO: t/20invocations.t fails
9aba9b12 1486 (home-page "https://metacpan.org/release/DBIx-Class-Schema-Loader")
708155df
EB
1487 (synopsis "Create a DBIx::Class::Schema based on a database")
1488 (description "DBIx::Class::Schema::Loader automates the definition of a
1489DBIx::Class::Schema by scanning database table definitions and setting up the
1490columns, primary keys, unique constraints and relationships.")
2f3108ad 1491 (license license:perl-license)))
274da61d 1492
186eb132
EB
1493(define-public perl-dbd-pg
1494 (package
1495 (name "perl-dbd-pg")
8c078dde 1496 (version "3.7.4")
186eb132
EB
1497 (source
1498 (origin
1499 (method url-fetch)
1500 (uri (string-append "mirror://cpan/authors/id/T/TU/TURNSTEP/"
1501 "DBD-Pg-" version ".tar.gz"))
1502 (sha256
1503 (base32
8c078dde 1504 "0gkqlvbmzbdm0g4k328nlkjdg3wrjm5i2n9jxj1i8sqxkm79rylz"))))
186eb132
EB
1505 (build-system perl-build-system)
1506 (native-inputs
1507 `(("perl-dbi" ,perl-dbi)))
1508 (propagated-inputs
1509 `(("perl-dbi" ,perl-dbi)
1510 ("postgresql" ,postgresql)))
9aba9b12 1511 (home-page "https://metacpan.org/release/DBD-Pg")
186eb132 1512 (synopsis "DBI PostgreSQL interface")
f33e71fc
LC
1513 (description "This package provides a PostgreSQL driver for the Perl5
1514@dfn{Database Interface} (DBI).")
2f3108ad 1515 (license license:perl-license)))
186eb132 1516
4b7857a4
RW
1517(define-public perl-dbd-mysql
1518 (package
1519 (name "perl-dbd-mysql")
49596a54 1520 (version "4.050")
4b7857a4
RW
1521 (source
1522 (origin
1523 (method url-fetch)
49596a54 1524 (uri (string-append "mirror://cpan/authors/id/D/DV/DVEEDEN/"
4b7857a4
RW
1525 "DBD-mysql-" version ".tar.gz"))
1526 (sha256
49596a54 1527 (base32 "0y4djb048i09dk19av7mzfb3khr72vw11p3ayw2p82jsy4gm8j2g"))))
4b7857a4 1528 (build-system perl-build-system)
702a87f2
TGR
1529 (arguments
1530 `(#:phases
1531 (modify-phases %standard-phases
1532 (add-before 'configure 'skip-library-detection
1533 ;; Avoid depencies on perl-devel-checklib, openssl, and zlib. They
1534 ;; are really only needed for the test suite; their absence does not
1535 ;; affect the build or the end result.
1536 (lambda _
1537 (substitute* "Makefile.PL"
1538 (("use Devel::CheckLib;" match)
1539 (string-append "# " match))
1540 (("assert_lib")
1541 "print"))
1542 #t)))
1543 ;; Tests require running MySQL server.
1544 #:tests? #f))
4b7857a4
RW
1545 (propagated-inputs
1546 `(("perl-dbi" ,perl-dbi)
9c6fb330 1547 ("mysql" ,mariadb)))
9aba9b12 1548 (home-page "https://metacpan.org/release/DBD-mysql")
4b7857a4
RW
1549 (synopsis "DBI MySQL interface")
1550 (description "This package provides a MySQL driver for the Perl5
1551@dfn{Database Interface} (DBI).")
2f3108ad 1552 (license license:perl-license)))
4b7857a4 1553
274da61d
LC
1554(define-public perl-dbd-sqlite
1555 (package
1556 (name "perl-dbd-sqlite")
d49bdbca 1557 (version "1.62")
274da61d
LC
1558 (source (origin
1559 (method url-fetch)
1560 (uri (string-append
1561 "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-"
1562 version ".tar.gz"))
1563 (sha256
1564 (base32
d49bdbca 1565 "0p78ri1q6xpc1i98i6mlriv8n66iz8r5r11dlsknjm4y58rfz0mx"))))
274da61d
LC
1566 (build-system perl-build-system)
1567 (inputs `(("sqlite" ,sqlite)))
1568 (propagated-inputs `(("perl-dbi" ,perl-dbi)))
1569 (synopsis "SQlite interface for Perl")
1570 (description "DBD::SQLite is a Perl DBI driver for SQLite, that includes
1571the entire thing in the distribution. So in order to get a fast transaction
1572capable RDBMS working for your Perl project you simply have to install this
1573module, and nothing else.")
2f3108ad 1574 (license license:perl-license)
9aba9b12 1575 (home-page "https://metacpan.org/release/DBD-SQLite")))
14e84b2d 1576
55916fa2
CB
1577(define-public perl-mysql-config
1578 (package
1579 (name "perl-mysql-config")
1580 (version "1.04")
1581 (source
1582 (origin
1583 (method url-fetch)
1584 (uri (string-append
1585 "mirror://cpan/authors/id/D/DA/DARREN/MySQL-Config-"
1586 version
1587 ".tar.gz"))
1588 (sha256
1589 (base32
1590 "1svn7ccw2gc4cazvc58j84rxhnc9vs01zpird0l8460598j475qr"))))
1591 (build-system perl-build-system)
1592 (home-page "https://metacpan.org/release/MySQL-Config")
1593 (synopsis "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files")
1594 (description
1595 "@code{MySQL::Config} emulates the @code{load_defaults} function from
1596libmysqlclient. It will fill an aray with long options, ready to be parsed by
1597@code{Getopt::Long}.")
1598 (license license:perl-license)))
1599
dd90952e
EB
1600(define-public perl-sql-abstract
1601 (package
1602 (name "perl-sql-abstract")
2f813be3 1603 (version "1.86")
dd90952e
EB
1604 (source
1605 (origin
1606 (method url-fetch)
439980b7 1607 (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
dd90952e
EB
1608 "SQL-Abstract-" version ".tar.gz"))
1609 (sha256
2f813be3 1610 (base32 "1pwcm8hwxcgidyyrak37lx69d85q728jxsb0b14jz93gbvdgg9z7"))))
dd90952e
EB
1611 (build-system perl-build-system)
1612 (native-inputs
9dab5017
MB
1613 `(("perl-module-install" ,perl-module-install)
1614 ("perl-test-deep" ,perl-test-deep)
dd90952e
EB
1615 ("perl-test-exception" ,perl-test-exception)
1616 ("perl-test-warn" ,perl-test-warn)))
1617 (propagated-inputs
1618 `(("perl-hash-merge" ,perl-hash-merge)
1619 ("perl-moo" ,perl-moo)
1620 ("perl-mro-compat" ,perl-mro-compat)
1621 ("perl-text-balanced" ,perl-text-balanced)))
9aba9b12 1622 (home-page "https://metacpan.org/release/SQL-Abstract")
dd90952e
EB
1623 (synopsis "Generate SQL from Perl data structures")
1624 (description "This module was inspired by the excellent DBIx::Abstract.
1625While based on the concepts used by DBIx::Abstract, the concepts used have
1626been modified to make the SQL easier to generate from Perl data structures.
1627The underlying idea is for this module to do what you mean, based on the data
1628structures you provide it, so that you don't have to modify your code every
e881752c 1629time your data changes.")
2f3108ad 1630 (license license:perl-license)))
14e84b2d 1631
b4dcb026
EB
1632(define-public perl-sql-splitstatement
1633 (package
1634 (name "perl-sql-splitstatement")
1635 (version "1.00020")
1636 (source
1637 (origin
1638 (method url-fetch)
1639 (uri (string-append "mirror://cpan/authors/id/E/EM/EMAZEP/"
1640 "SQL-SplitStatement-" version ".tar.gz"))
1641 (sha256
1642 (base32
1643 "0bqg45k4c9qkb2ypynlwhpvzsl4ssfagmsalys18s5c79ps30z7p"))))
1644 (build-system perl-build-system)
1645 (native-inputs
1646 `(("perl-test-exception" ,perl-test-exception)))
1647 (propagated-inputs
1648 `(("perl-class-accessor" ,perl-class-accessor)
1649 ("perl-list-moreutils" ,perl-list-moreutils)
1650 ("perl-regexp-common" ,perl-regexp-common)
1651 ("perl-sql-tokenizer" ,perl-sql-tokenizer)))
9aba9b12 1652 (home-page "https://metacpan.org/release/SQL-SplitStatement")
b4dcb026
EB
1653 (synopsis "Split SQL code into atomic statements")
1654 (description "This module tries to split any SQL code, even including
1655non-standard extensions, into the atomic statements it is composed of.")
2f3108ad 1656 (license license:perl-license)))
b4dcb026 1657
718c89c1
EB
1658(define-public perl-sql-tokenizer
1659 (package
1660 (name "perl-sql-tokenizer")
1661 (version "0.24")
1662 (source
1663 (origin
1664 (method url-fetch)
1665 (uri (string-append "mirror://cpan/authors/id/I/IZ/IZUT/"
1666 "SQL-Tokenizer-" version ".tar.gz"))
1667 (sha256
1668 (base32
1669 "1qa2dfbzdlr5qqdam9yn78z5w3al5r8577x06qan8wv58ay6ka7s"))))
1670 (build-system perl-build-system)
9aba9b12 1671 (home-page "https://metacpan.org/release/SQL-Tokenizer")
718c89c1
EB
1672 (synopsis "SQL tokenizer")
1673 (description "SQL::Tokenizer is a tokenizer for SQL queries. It does not
1674claim to be a parser or query verifier. It just creates sane tokens from a
1675valid SQL query.")
2f3108ad 1676 (license license:perl-license)))
718c89c1 1677
14e84b2d
JD
1678(define-public unixodbc
1679 (package
1680 (name "unixodbc")
8327ffcc 1681 (version "2.3.7")
14e84b2d
JD
1682 (source (origin
1683 (method url-fetch)
e881752c 1684 (uri
14e84b2d 1685 (string-append
3fef0a2f
EF
1686 "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
1687 version ".tar.gz"))
14e84b2d 1688 (sha256
8327ffcc 1689 (base32 "0xry3sg497wly8f7715a7gwkn2k36bcap0mvzjw74jj53yx6kwa5"))))
14e84b2d
JD
1690 (build-system gnu-build-system)
1691 (synopsis "Data source abstraction library")
1692 (description "Unixodbc is a library providing an API with which to access
1693data sources. Data sources include SQL Servers and any software with an ODBC
1694Driver.")
ba8b9f8d 1695 (license license:lgpl2.1+)
14e84b2d
JD
1696 ;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
1697 (home-page "http://www.unixodbc.org")))
b4a9c924
EB
1698
1699(define-public unqlite
1700 (package
1701 (name "unqlite")
1702 (version "1.1.6")
1703 (source (origin
1704 (method url-fetch)
1705 ;; Contains bug fixes against the official release, and has an
1706 ;; autotooled build system.
1707 (uri (string-append "https://github.com/aidin36/tocc/releases/"
1708 "download/v1.0.0/"
1709 "unqlite-unofficial-" version ".tar.gz"))
1710 (sha256
1711 (base32
1712 "1sbpvhg15gadq0mpcy16q7k3rkg4b4dicpnn5xifpkpn02sqik3s"))))
1713 (build-system gnu-build-system)
1714 (arguments `(#:tests? #f)) ;No check target
1715 (home-page "http://www.unqlite.org")
1716 (synopsis "In-memory key/value and document store")
1717 (description
1718 "UnQLite is an in-process software library which implements a
1719self-contained, serverless, zero-configuration, transactional NoSQL
1720database engine. UnQLite is a document store database similar to
1721MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store
69b4ffcf 1722similar to BerkeleyDB, LevelDB, etc.")
ba8b9f8d 1723 (license license:bsd-2)))
463f6766
DT
1724
1725(define-public redis
1726 (package
1727 (name "redis")
793a66e5 1728 (version "4.0.10")
463f6766
DT
1729 (source (origin
1730 (method url-fetch)
1731 (uri (string-append "http://download.redis.io/releases/redis-"
1732 version".tar.gz"))
1733 (sha256
1734 (base32
793a66e5 1735 "194cydhv3hf4v95ifvjvsqrs4jn3ffrkg5lvxj5d3y04lwsp9dhx"))))
463f6766
DT
1736 (build-system gnu-build-system)
1737 (arguments
1738 '(#:tests? #f ; tests related to master/slave and replication fail
1739 #:phases (modify-phases %standard-phases
1740 (delete 'configure))
1741 #:make-flags `("CC=gcc"
1742 "MALLOC=libc"
b25f060f 1743 "LDFLAGS=-ldl"
463f6766
DT
1744 ,(string-append "PREFIX="
1745 (assoc-ref %outputs "out")))))
1746 (synopsis "Key-value cache and store")
1747 (description "Redis is an advanced key-value cache and store. Redis
1748supports many data structures including strings, hashes, lists, sets, sorted
1749sets, bitmaps and hyperloglogs.")
1750 (home-page "http://redis.io/")
ba8b9f8d 1751 (license license:bsd-3)))
a65e2a02 1752
1753(define-public kyotocabinet
1754 (package
1755 (name "kyotocabinet")
245e7a68 1756 (version "1.2.77")
a65e2a02 1757 (source (origin
1758 (method url-fetch)
1759 (uri (string-append "http://fallabs.com/kyotocabinet/pkg/"
1760 name "-" version ".tar.gz"))
1761 (sha256
1762 (base32
245e7a68 1763 "1rlx4307adbzd842b4npq6cwlw8h010ingxaz3qz1ijc70lr72an"))))
a65e2a02 1764 (build-system gnu-build-system)
1765 (arguments
1766 `(#:configure-flags
1767 (list
9d59023e 1768 "--disable-opt" ;"-march=native". XXX this also turns off -O0.
a65e2a02 1769 (string-append "LDFLAGS=-Wl,-rpath="
1770 (assoc-ref %outputs "out") "/lib"))))
1771 (inputs `(("zlib" ,zlib)))
1772 (home-page "http://fallabs.com/kyotocabinet/")
1773 (synopsis
1774 "Kyoto Cabinet is a modern implementation of the DBM database")
1775 (description
1776 "Kyoto Cabinet is a standalone file-based database that supports Hash
1777and B+ Tree data storage models. It is a fast key-value lightweight
1778database and supports many programming languages. It is a NoSQL database.")
ba8b9f8d 1779 (license license:gpl3+)))
6242b314 1780
bdc11dc4 1781(define-public tokyocabinet
1782 (package
1783 (name "tokyocabinet")
1784 (version "1.4.48")
1785 (source
1786 (origin
1787 (method url-fetch)
1788 (uri (string-append "http://fallabs.com/tokyocabinet/"
1789 name "-" version ".tar.gz"))
1790 (sha256
1791 (base32
1792 "140zvr0n8kvsl0fbn2qn3f2kh3yynfwnizn4dgbj47m975yg80x0"))))
1793 (build-system gnu-build-system)
1794 (arguments
1795 `(#:configure-flags
1796 (list "--enable-pthread" "--enable-off64" "--enable-fastest"
1797 (string-append "LDFLAGS=-Wl,-rpath="
1798 (assoc-ref %outputs "out") "/lib"))))
1799 (inputs
1800 `(("zlib" ,zlib)))
1801 (home-page "http://fallabs.com/tokyocabinet/")
1802 (synopsis "Tokyo Cabinet is a modern implementation of the DBM database")
1803 (description
1804 "Tokyo Cabinet is a library of routines for managing a database.
1805The database is a simple data file containing records, each is a pair of a
1806key and a value. Every key and value is serial bytes with variable length.
1807Both binary data and character string can be used as a key and a value.
1808There is neither concept of data tables nor data types. Records are
1809organized in hash table, B+ tree, or fixed-length array.")
1810 (license license:lgpl2.1+)))
1811
6242b314
SB
1812(define-public wiredtiger
1813 (package
1814 (name "wiredtiger")
81e95821 1815 (version "2.9.1")
6242b314
SB
1816 (source (origin
1817 (method url-fetch)
1818 (uri (string-append
1819 "http://source.wiredtiger.com/releases/wiredtiger-"
1820 version ".tar.bz2"))
1821 (sha256
1822 (base32
81e95821 1823 "0krwnb2zfbhvjaskwl875qzd3y626s84zcciq2mxr5c5riw3yh6s"))))
6242b314
SB
1824 (build-system gnu-build-system)
1825 (arguments
a469c695 1826 '(#:configure-flags '("--enable-lz4" "--with-builtins=snappy,zlib")
6242b314
SB
1827 #:phases
1828 (modify-phases %standard-phases
1829 (add-before 'check 'disable-test/fops
1830 (lambda _
1831 ;; XXX: timed out after 3600 seconds of silence
1832 (substitute* "Makefile"
1833 (("test/fops") ""))
1834 #t)))))
1835 (inputs
1836 `(("lz4" ,lz4)
3faa422d
CB
1837 ("zlib" ,zlib)
1838 ("snappy" ,snappy)))
6242b314
SB
1839 (home-page "http://source.wiredtiger.com/")
1840 (synopsis "NoSQL data engine")
1841 (description
1842 "WiredTiger is an extensible platform for data management. It supports
1843row-oriented storage (where all columns of a row are stored together),
1844column-oriented storage (where columns are stored in groups, allowing for
1845more efficient access and storage of column subsets) and log-structured merge
1846trees (LSM), for sustained throughput under random insert workloads.")
ba8b9f8d 1847 (license license:gpl3) ; or GPL-2
6242b314 1848 ;; configure.ac: WiredTiger requires a 64-bit build.
092b7b3e 1849 (supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux"))))
90c2ee88 1850
4680fef7
AB
1851(define-public wiredtiger-3
1852 (package
1853 (inherit wiredtiger)
1854 (name "wiredtiger")
1855 (version "3.1.0")
1856 (source (origin
1857 (method url-fetch)
1858 (uri (string-append "http://source.wiredtiger.com/releases/wiredtiger-"
1859 version ".tar.bz2"))
1860 (sha256
1861 (base32
1862 "014awypv579ascg4jbx4pndj2wld337m79yyzrzyr7hxrff139jx"))))))
1863
16973071
KB
1864(define-public guile-wiredtiger
1865 (package
1866 (name "guile-wiredtiger")
b1e6b938 1867 (version "0.7.0")
16973071
KB
1868 (source (origin
1869 (method git-fetch)
1870 (uri (git-reference
1871 (url "https://framagit.org/a-guile-mind/guile-wiredtiger.git")
b1e6b938 1872 (commit "340ad4bc2ff4dcc6216a2f5c6f9172ca320ac66b")))
16973071
KB
1873 (file-name (string-append name "-" version "-checkout"))
1874 (sha256
1875 (base32
b1e6b938 1876 "15j36bvxxzil7qpwlmh1rffqpva3ynvrcpqhhqbj2c9208ayz595"))))
16973071
KB
1877 (build-system gnu-build-system)
1878 (arguments
3926a099 1879 '(#:parallel-tests? #f ;; tests can't be run in parallel, yet.
16973071
KB
1880 #:configure-flags
1881 (list (string-append "--with-libwiredtiger-prefix="
1882 (assoc-ref %build-inputs "wiredtiger")))
189be331 1883 #:make-flags '("GUILE_AUTO_COMPILE=0")))
16973071
KB
1884 (native-inputs
1885 `(("autoconf" ,autoconf)
1886 ("automake" ,automake)
1887 ("pkg-config" ,pkg-config)))
1888 (inputs
b1e6b938 1889 `(("wiredtiger" ,wiredtiger-3)
16973071
KB
1890 ("guile" ,guile-2.2)))
1891 (propagated-inputs
b1e6b938 1892 `(("guile-bytestructures" ,guile-bytestructures)))
3926a099 1893 (synopsis "WiredTiger bindings for GNU Guile")
16973071
KB
1894 (description
1895 "This package provides Guile bindings to the WiredTiger ``NoSQL''
b1e6b938 1896database.")
16973071
KB
1897 (home-page "https://framagit.org/a-guile-mind/guile-wiredtiger")
1898 (license license:gpl3+)))
1899
90c2ee88
DM
1900(define-public perl-db-file
1901 (package
1902 (name "perl-db-file")
a3abc3fd 1903 (version "1.852")
90c2ee88
DM
1904 (source
1905 (origin
1906 (method url-fetch)
1907 (uri (string-append
1908 "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
1909 version
1910 ".tar.gz"))
1911 (sha256
1912 (base32
a3abc3fd 1913 "14c30xyqx9c1hxw40bqbzls41al8gmklxv5jbk2kknmn4dsrbdrs"))))
90c2ee88
DM
1914 (build-system perl-build-system)
1915 (inputs `(("bdb" ,bdb)))
1916 (native-inputs `(("perl-test-pod" ,perl-test-pod)))
1917 (arguments
1918 `(#:phases (modify-phases %standard-phases
1919 (add-before
1920 'configure 'modify-config.in
1921 (lambda* (#:key inputs #:allow-other-keys)
1922 (substitute* "config.in"
1923 (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb")))
1924 #t)))))
9aba9b12 1925 (home-page "https://metacpan.org/release/DB_File")
90c2ee88
DM
1926 (synopsis
1927 "Perl5 access to Berkeley DB version 1.x")
1928 (description
1929 "The DB::File module provides Perl bindings to the Berkeley DB version 1.x.")
2f3108ad 1930 (license license:perl-license)))
0e1b262e
DC
1931
1932(define-public lmdb
1933 (package
1934 (name "lmdb")
49158947 1935 (version "0.9.23")
f167b432
TGR
1936 (source
1937 (origin
1938 (method git-fetch)
1939 (uri (git-reference
1940 (url "https://github.com/LMDB/lmdb.git")
1941 (commit (string-append "LMDB_" version))))
1942 (file-name (git-file-name name version))
1943 (sha256
49158947 1944 (base32 "0ag7l5180ajvm73y59m7sn3p52xm8m972d08cshxhpwgwa4v35k6"))))
0e1b262e
DC
1945 (build-system gnu-build-system)
1946 (arguments
1947 `(#:test-target "test"
1948 #:phases
1949 (modify-phases %standard-phases
1950 (replace 'configure
1951 (lambda* (#:key outputs #:allow-other-keys)
f167b432 1952 (chdir "libraries/liblmdb")
0e1b262e
DC
1953 (substitute* "Makefile"
1954 (("/usr/local") (assoc-ref outputs "out")))
1955 #t)))))
1956 (home-page "https://symas.com/products/lightning-memory-mapped-database")
fda852ff
TGR
1957 (synopsis "Lightning Memory-Mapped Database library")
1958 (description
1959 "The @dfn{Lightning Memory-Mapped Database} (LMDB) is a high-performance
1960transactional database. Unlike more complex relational databases, LMDB handles
1961only key-value pairs (stored as arbitrary byte arrays) and relies on the
1962underlying operating system for caching and locking, keeping the code small and
1963simple.
1964The use of ‘zero-copy’ memory-mapped files combines the persistence of classic
1965disk-based databases with high read performance that scales linearly over
1966multiple cores. The size of each database is limited only by the size of the
1967virtual address space — not physical RAM.")
0e1b262e 1968 (license license:openldap2.8)))
fe71eee0
JN
1969
1970(define-public libpqxx
1971 (package
1972 (name "libpqxx")
1973 (version "4.0.1")
1974 (source (origin
1975 (method url-fetch)
1976 (uri (string-append
1977 "http://pqxx.org/download/software/libpqxx/"
1978 name "-" version ".tar.gz"))
1979 (sha256
1980 (base32
1981 "0f6wxspp6rx12fkasanb0z2g2gc8dhcfwnxagx8wwqbpg6ifsz09"))))
1982 (build-system gnu-build-system)
1983 (native-inputs
1984 `(("python" ,python-2)))
1985 (inputs `(("postgresql" ,postgresql)))
1986 (arguments
5ac097e2
MB
1987 `(#:tests? #f ; # FAIL: 1
1988 #:phases
1989 (modify-phases %standard-phases
1990 (add-before 'configure 'fix-sed-command
1991 (lambda _
1992 ;; Newer sed versions error out if double brackets are not used.
1993 (substitute* "configure"
1994 (("\\[:space:\\]") "[[:space:]]"))
1995 #t)))))
fe71eee0
JN
1996 (synopsis "C++ connector for PostgreSQL")
1997 (description
1998 "Libpqxx is a C++ library to enable user programs to communicate with the
1999PostgreSQL database back-end. The database back-end can be local or it may be
2000on another machine, accessed via TCP/IP.")
2001 (home-page "http://pqxx.org/")
2002 (license license:bsd-3)))
4d98bfaf
EF
2003
2004(define-public python-peewee
2005 (package
2006 (name "python-peewee")
afd84536 2007 (version "2.10.2")
4d98bfaf
EF
2008 (source
2009 (origin
2010 (method url-fetch)
2011 (uri (pypi-uri "peewee" version))
2012 (sha256
2013 (base32
afd84536 2014 "10f2mrd5hw6rjklrzaix2lsxlgc8vx3xak54arcy6yd791zhchi3"))))
4d98bfaf
EF
2015 (build-system python-build-system)
2016 (arguments
2017 `(#:tests? #f)) ; Fails to import test data
2018 (native-inputs
2019 `(("python-cython" ,python-cython)))
2020 (home-page "https://github.com/coleifer/peewee/")
2021 (synopsis "Small object-relational mapping utility")
2022 (description
2023 "Peewee is a simple and small ORM (object-relation mapping) tool. Peewee
2024handles converting between pythonic values and those used by databases, so you
2025can use Python types in your code without having to worry. It has built-in
2026support for sqlite, mysql and postgresql. If you already have a database, you
2027can autogenerate peewee models using @code{pwiz}, a model generator.")
2028 (license license:expat)))
2029
2030(define-public python2-peewee
2031 (package-with-python2 python-peewee))
62ea44fc
AP
2032
2033(define-public sqlcipher
2034 (package
2035 (name "sqlcipher")
682c2918 2036 (version "3.4.2")
62ea44fc
AP
2037 (source
2038 (origin
2039 (method url-fetch)
2040 (uri (string-append "https://github.com/sqlcipher/" name
2041 "/archive/v" version ".tar.gz"))
2042 (sha256
682c2918 2043 (base32 "1nxarwbci8jx99f1d0y1ivxcv25s78l1p7q6qy28lkpkcx8pm2b9"))
62ea44fc
AP
2044 (file-name (string-append name "-" version ".tar.gz"))))
2045 (build-system gnu-build-system)
2046 (inputs
2047 `(("libcrypto" ,openssl)
2048 ("libtcl8.6" ,tcl))) ; required for running the tests
2049 (native-inputs
2050 `(("tcl" ,tcl)))
2051 (arguments
2052 '(#:configure-flags
2053 '("--enable-tempstore=yes"
2054 "CFLAGS=-DSQLITE_HAS_CODEC -DSQLITE_ENABLE_FTS3"
2055 "LDFLAGS=-lcrypto -ltcl8.6"
2056 "--disable-tcl")
2057 ;; tests cannot be run from the Makefile
2058 ;; see: <https://github.com/sqlcipher/sqlcipher/issues/172>
2059 #:test-target "testfixture"
2060 #:phases
2061 (modify-phases %standard-phases
2062 (add-before 'check 'build-test-runner
2063 (assoc-ref %standard-phases 'check))
2064 (replace 'check
2065 (lambda _
96272e28 2066 (invoke "./testfixture" "test/crypto.test"))))))
62ea44fc
AP
2067 (home-page "https://www.zetetic.net/sqlcipher/")
2068 (synopsis
2069 "Library providing transparent encryption of SQLite database files")
2070 (description "SQLCipher is an implementation of SQLite, extended to
2071provide transparent 256-bit AES encryption of database files. Pages are
2072encrypted before being written to disk and are decrypted when read back. It’s
2073well suited for protecting embedded application databases and for mobile
2074development.")
2075 ;; The source files
2076 ;; src/{crypto.c,crypto_impl.c,crypto.h,crypto_cc.c,crypto_libtomcrypt.c},
2077 ;; src/{crypto_openssl.c,sqlcipher.h}, tool/crypto-speedtest.tcl,
2078 ;; test/crypto.test are licensed under a 3-clause BSD license. All other
2079 ;; source files are in the public domain.
2080 (license (list license:public-domain license:bsd-3))))
98d403bb
DM
2081
2082(define-public python-pyodbc-c
2083 (package
2084 (name "python-pyodbc-c")
c6b6a74e 2085 (version "3.1.4")
98d403bb
DM
2086 (source
2087 (origin
2088 (method url-fetch)
2089 (uri (string-append "https://gitlab.com/daym/pyodbc-c/repository/"
2090 "archive.tar.gz?ref=v" version))
2091 (sha256
2092 (base32
c6b6a74e 2093 "05aq2297k779xidmxcwkrrxjvj1bh2q7d9a1rcjv6zr15y764ga9"))
98d403bb
DM
2094 (file-name (string-append name "-" version ".tar.gz"))))
2095 (build-system python-build-system)
2096 (inputs
2097 `(("unixodbc" ,unixodbc)))
2098 (arguments
2099 `(;; No unit tests exist.
2100 #:tests? #f))
2101 (home-page "https://github.com/mkleehammer/pyodbc")
2102 (synopsis "Python ODBC Library")
2103 (description "@code{python-pyodbc-c} provides a Python DB-API driver
2104for ODBC.")
2105 (license (license:x11-style "file://LICENSE.TXT"))))
2106
2107(define-public python2-pyodbc-c
2108 (package-with-python2 python-pyodbc-c))
d39a84e8 2109
41916bea
DM
2110(define-public python-pyodbc
2111 (package
2112 (name "python-pyodbc")
d5be746a 2113 (version "4.0.27")
41916bea
DM
2114 (source
2115 (origin
2116 (method url-fetch)
2117 (uri (pypi-uri "pyodbc" version))
2118 (sha256
d5be746a 2119 (base32 "1kd2i7hc1330cli72vawzby17c3039cqn1aba4i0zrjnpghjhmib"))
41916bea
DM
2120 (file-name (string-append name "-" version ".tar.gz"))))
2121 (build-system python-build-system)
2122 (inputs
2123 `(("unixodbc" ,unixodbc)))
2124 (arguments
d5be746a 2125 `(#:tests? #f)) ; no unit tests exist
41916bea
DM
2126 (home-page "https://github.com/mkleehammer/pyodbc")
2127 (synopsis "Python ODBC Library")
2128 (description "@code{python-pyodbc} provides a Python DB-API driver
2129for ODBC.")
2130 (license (license:x11-style "file:///LICENSE.TXT"))))
2131
2132(define-public python2-pyodbc
2133 (package-with-python2 python-pyodbc))
2134
d39a84e8
AI
2135(define-public mdbtools
2136 (package
2137 (name "mdbtools")
2138 (version "0.7.1")
2139 (source
2140 (origin
f1f1cebd
RW
2141 (method git-fetch)
2142 (uri (git-reference
2143 (url "https://github.com/brianb/mdbtools.git")
2144 (commit version)))
2145 (file-name (git-file-name name version))
d39a84e8
AI
2146 (sha256
2147 (base32
f1f1cebd 2148 "0gwcpp9y09xhs21g7my2fs8ncb8i6ahlyixcx8jd3q97jbzj441l"))))
d39a84e8
AI
2149 (build-system gnu-build-system)
2150 (inputs
2151 `(("glib" ,glib)))
2152 (native-inputs
2153 `(("autoconf" ,autoconf)
2154 ("automake" ,automake)
2155 ("libtool" ,libtool)
2156 ("pkg-config" ,pkg-config)
2157 ("txt2man" ,txt2man)
2158 ("which" ,which)))
d39a84e8
AI
2159 (home-page "http://mdbtools.sourceforge.net/")
2160 (synopsis "Read Microsoft Access databases")
2161 (description "MDB Tools is a set of tools and applications to read the
2162proprietary MDB file format used in Microsoft's Access database package. This
2163includes programs to export schema and data from Microsoft's Access database
2164file format to other databases such as MySQL, Oracle, Sybase, PostgreSQL,
2165etc., and an SQL engine for performing simple SQL queries.")
2166 (license (list license:lgpl2.0
2167 license:gpl2+))))
07041d95
TGR
2168
2169(define-public python-lmdb
2170 (package
2171 (name "python-lmdb")
6263202b 2172 (version "0.95")
07041d95
TGR
2173 (source (origin
2174 (method url-fetch)
2175 (uri (pypi-uri "lmdb" version))
2176 (sha256
2177 (base32
6263202b 2178 "0nx9f193gzl33r1lbqhb96h1igya7pz8wmahr8m9x5zgc05hal91"))
07041d95
TGR
2179 (modules '((guix build utils)))
2180 (snippet
2181 ;; Delete bundled lmdb source files.
6cbee49d
MW
2182 '(begin
2183 (for-each delete-file (list "lib/lmdb.h"
2184 "lib/mdb.c"
2185 "lib/midl.c"
2186 "lib/midl.h"))
2187 #t))))
07041d95
TGR
2188 (build-system python-build-system)
2189 (inputs
2190 `(("lmdb" ,lmdb)))
2191 (arguments
2192 `(#:phases
2193 (modify-phases %standard-phases
2194 (add-before 'build 'use-system-lmdb
2195 (lambda* (#:key inputs #:allow-other-keys)
2196 (let ((lmdb (assoc-ref inputs "lmdb")))
2197 (setenv "LMDB_FORCE_SYSTEM" "set")
2198 (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include"))
2199 (setenv "LMDB_LIBDIR" (string-append lmdb "/lib"))
2200 #t))))
2201 ;; Tests fail with: ‘lmdb.tool: Please specify environment (--env)’.
2202 #:tests? #f))
2203 (home-page "https://github.com/dw/py-lmdb")
2204 (synopsis "Python binding for the ‘Lightning’ database (LMDB)")
2205 (description
2206 "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning
2207Memory-Mapped Database} (LMDB), a high-performance key-value store.")
2208 (license
2209 (list license:openldap2.8
2210 ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3,
2211 ;; but not actually needed on platforms currently supported by Guix.
2212 license:bsd-3))))
2213
2214(define-public python2-lmdb
2215 (package-with-python2 python-lmdb))
da1f7a9e
BW
2216
2217(define-public python-orator
2218 (package
2219 (name "python-orator")
2220 (version "0.9.7")
2221 (source (origin
2222 (method url-fetch)
2223 (uri (pypi-uri "orator" version))
2224 (sha256
2225 (base32
2226 "14r58z64fdp76ixnvmi4lni762b405ynmsx6chr1qihs3yl9zn6c"))))
2227 (build-system python-build-system)
2228 (arguments
2229 `(#:phases
2230 (modify-phases %standard-phases
2231 (add-after 'unpack 'loosen-dependencies
2232 ;; Tests are not actually run since they are not included with the
2233 ;; distributed package, but dependencies are checked.
2234 (lambda _
2235 (substitute* "setup.py"
2236 ((",<.*'") "'")
2237 (("flexmock==0.9.7") "flexmock")
2238 ;; The pytest-mock package is out of date, so we remove minimum
2239 ;; version requirement.
2240 (("pytest-mock.*'") "pytest-mock'"))
2241 #t)))))
2242 (native-inputs
2243 `(("python-pytest-mock" ,python-pytest-mock)
928da609 2244 ("python-pytest" ,python-pytest)
da1f7a9e
BW
2245 ("python-flexmock" ,python-flexmock)))
2246 (propagated-inputs
2247 `(("python-backpack" ,python-backpack)
2248 ("python-blinker" ,python-blinker)
2249 ("python-cleo" ,python-cleo)
2250 ("python-faker" ,python-faker)
2251 ("python-inflection" ,python-inflection)
2252 ("python-lazy-object-proxy" ,python-lazy-object-proxy)
2253 ("python-pendulum" ,python-pendulum)
2254 ("python-pyaml" ,python-pyaml)
2255 ("python-pygments" ,python-pygments)
2256 ("python-simplejson" ,python-simplejson)
2257 ("python-six" ,python-six)
2258 ("python-wrapt" ,python-wrapt)))
2259 (home-page "https://orator-orm.com/")
2260 (synopsis "ActiveRecord ORM for Python")
2261 (description
2262 "Orator provides a simple ActiveRecord-like Object Relational Mapping
2263implementation for Python.")
2264 (license license:expat)
2265 (properties `((python2-variant . ,(delay python2-orator))))))
2266
2267(define-public python2-orator
2268 (package-with-python2 (strip-python2-variant python-orator)))
61ce0998
RJ
2269
2270(define-public virtuoso-ose
2271 (package
2272 (name "virtuoso-ose")
e63da346 2273 (version "7.2.5")
61ce0998
RJ
2274 (source
2275 (origin
2276 (method url-fetch)
2277 (uri (string-append
2278 "https://github.com/openlink/virtuoso-opensource/releases/"
2279 "download/v" version "/virtuoso-opensource-" version ".tar.gz"))
2280 (sha256
e63da346 2281 (base32 "0r1xakclkfi69pzh8z2k16z3x0m49pxp764icj0ad4w4bb97fr42"))))
61ce0998
RJ
2282 (build-system gnu-build-system)
2283 (arguments
6d09a7b5
RJ
2284 `(#:tests? #f ; Tests require a network connection.
2285 ;; TODO: Removing the libsrc/zlib source directory breaks the build.
2286 ;; This indicates that the internal zlib code may still be used.
2287 #:configure-flags '("--without-internal-zlib"
2288 "--with-readline")))
61ce0998
RJ
2289 (inputs
2290 `(("openssl" ,openssl)
6d09a7b5
RJ
2291 ("net-tools" ,net-tools)
2292 ("readline" ,readline)
2293 ("zlib" ,zlib)))
61ce0998
RJ
2294 (home-page "http://vos.openlinksw.com/owiki/wiki/VOS/")
2295 (synopsis "Multi-model database system")
2296 (description "Virtuoso is a scalable cross-platform server that combines
2297relational, graph, and document data management with web application server
2298and web services platform functionality.")
48b68c61
EF
2299 ;; configure: error: ... can only be build on 64bit platforms
2300 (supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux"))
61ce0998 2301 (license license:gpl2)))
74248d22 2302
a8714bf6
RW
2303(define-public python-ccm
2304 (package
2305 (name "python-ccm")
2306 (version "2.1.6")
2307 (source
2308 (origin
2309 (method url-fetch)
2310 (uri (pypi-uri "ccm" version))
2311 (sha256
2312 (base32
2313 "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n"))))
2314 (build-system python-build-system)
2315 (propagated-inputs
2316 `(("python-pyyaml" ,python-pyyaml)
2317 ;; Not listed in setup.py, but used in ccmlib/node.py for full
2318 ;; functionality
2319 ("python-psutil" ,python-psutil)
2320 ("python-six" ,python-six)))
2321 (home-page "https://github.com/pcmanus/ccm")
2322 (synopsis "Cassandra Cluster Manager for Apache Cassandra clusters on
2323localhost")
2324 (description "Cassandra Cluster Manager is a development tool for testing
2325local Cassandra clusters. It creates, launches and removes Cassandra clusters
2326on localhost.")
2327 (license license:asl2.0)))
2328
2329(define-public python2-ccm
2330 (package-with-python2 python-ccm))
2331
2332(define-public python2-pysqlite
2333 (package
2334 (name "python2-pysqlite")
2335 (version "2.8.3")
2336 (source
2337 (origin
2338 (method url-fetch)
2339 (uri (pypi-uri "pysqlite" version))
2340 (sha256
2341 (base32
2342 "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp"))))
2343 (build-system python-build-system)
2344 (inputs
2345 `(("sqlite" ,sqlite)))
2346 (arguments
2347 `(#:python ,python-2 ; incompatible with Python 3
2348 #:tests? #f)) ; no test target
2349 (home-page "https://github.com/ghaering/pysqlite")
2350 (synopsis "SQLite bindings for Python")
2351 (description
2352 "Pysqlite provides SQLite bindings for Python that comply to the
2353Database API 2.0T.")
2354 (license license:zlib)))
2355
2356(define-public python-sqlalchemy
2357 (package
2358 (name "python-sqlalchemy")
1f2f358b 2359 (version "1.3.3")
a8714bf6
RW
2360 (source
2361 (origin
2362 (method url-fetch)
aeec4a8f 2363 (uri (pypi-uri "SQLAlchemy" version))
a8714bf6 2364 (sha256
1f2f358b 2365 (base32 "06c3lcv7nijsgqsjaaa4djrwlzgh9f910zlqxkmgq22h6jl4rici"))))
a8714bf6
RW
2366 (build-system python-build-system)
2367 (native-inputs
6d04f694 2368 `(("python-cython" ,python-cython) ; for C extensions
a8714bf6 2369 ("python-pytest" ,python-pytest)
6d04f694 2370 ("python-mock" ,python-mock))) ; for tests
a8714bf6
RW
2371 (arguments
2372 `(#:phases
2373 (modify-phases %standard-phases
2374 (replace 'check
9871a896 2375 (lambda _ (invoke "py.test"))))))
5cfe650b 2376 (home-page "https://www.sqlalchemy.org")
a8714bf6
RW
2377 (synopsis "Database abstraction library")
2378 (description
2379 "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
2380gives application developers the full power and flexibility of SQL. It
2381provides a full suite of well known enterprise-level persistence patterns,
2382designed for efficient and high-performing database access, adapted into a
2383simple and Pythonic domain language.")
2384 (license license:x11)))
2385
2386(define-public python2-sqlalchemy
2387 (package-with-python2 python-sqlalchemy))
2388
2389(define-public python-sqlalchemy-utils
2390 (package
2391 (name "python-sqlalchemy-utils")
53ae35e4 2392 (version "0.32.21")
a8714bf6
RW
2393 (source
2394 (origin
2395 (method url-fetch)
2396 (uri (pypi-uri "SQLAlchemy-Utils" version))
2397 (sha256
2398 (base32
53ae35e4 2399 "1myn71dn8j74xglyh46f12sh8ywb7j0j732rzwq70kvwwnq32m73"))))
a8714bf6
RW
2400 (build-system python-build-system)
2401 (arguments
2402 '(#:tests? #f)) ; FIXME: Many tests require a running database server.
2403 ;; #:phases
2404 ;; (modify-phases %standard-phases
2405 ;; (replace 'check
2406 ;; (lambda _
2407 ;; (zero? (system* "py.test" "sqlalchemy_utils" "tests")))))
2408 (propagated-inputs
2409 `(("python-six" ,python-six)
2410 ("python-sqlalchemy" ,python-sqlalchemy)))
2411 (native-inputs
2412 `(("python-dateutil" ,python-dateutil)
2413 ("python-flexmock" ,python-flexmock)
2414 ("python-psycopg2" ,python-psycopg2)
2415 ("python-pytest" ,python-pytest)
2416 ("python-pytz" ,python-pytz)))
2417 (home-page "https://github.com/kvesteri/sqlalchemy-utils")
2418 (synopsis "Various utility functions for SQLAlchemy")
2419 (description
2420 "SQLAlchemy-utils provides various utility functions and custom data types
2421for SQLAlchemy. SQLAlchemy is an SQL database abstraction library for Python.
2422
2423You might also want to install the following optional dependencies:
2424@enumerate
2425@item @code{python-passlib}
2426@item @code{python-babel}
2427@item @code{python-cryptography}
2428@item @code{python-pytz}
2429@item @code{python-psycopg2}
2430@item @code{python-furl}
2431@item @code{python-flask-babel}
2432@end enumerate
2433")
2434 (license license:bsd-3)))
2435
2436(define-public python2-sqlalchemy-utils
2437 (package-with-python2 python-sqlalchemy-utils))
2438
2439(define-public python-alembic
2440 (package
2441 (name "python-alembic")
6743080c 2442 (version "1.0.11")
a8714bf6
RW
2443 (source
2444 (origin
2445 (method url-fetch)
2446 (uri (pypi-uri "alembic" version))
2447 (sha256
2448 (base32
6743080c 2449 "1k5hag0vahd5vrf9abx8fdj2whrwaw2iq2yp736mmxnbsn5xkdyd"))))
a8714bf6
RW
2450 (build-system python-build-system)
2451 (native-inputs
2452 `(("python-mock" ,python-mock)
2453 ("python-pytest-cov" ,python-pytest-cov)))
2454 (propagated-inputs
2455 `(("python-dateutil" ,python-dateutil)
2456 ("python-sqlalchemy" ,python-sqlalchemy)
2457 ("python-mako" ,python-mako)
2458 ("python-editor" ,python-editor)))
a7f27da7 2459 (home-page "https://bitbucket.org/zzzeek/alembic")
6743080c 2460 (synopsis "Database migration tool for SQLAlchemy")
a8714bf6
RW
2461 (description
2462 "Alembic is a lightweight database migration tool for usage with the
2463SQLAlchemy Database Toolkit for Python.")
2464 (license license:expat)))
2465
2466(define-public python2-alembic
2467 (package-with-python2 python-alembic))
2468
2469(define-public python-pickleshare
2470 (package
2471 (name "python-pickleshare")
f825faa5 2472 (version "0.7.5")
a8714bf6
RW
2473 (source
2474 (origin
2475 (method url-fetch)
ed519b3c 2476 (uri (pypi-uri "pickleshare" version))
a8714bf6 2477 (sha256
f825faa5 2478 (base32 "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47"))))
a8714bf6 2479 (build-system python-build-system)
ff856cfd
MB
2480 (arguments
2481 `(#:phases (modify-phases %standard-phases
2482 (replace 'check
2483 (lambda _
2484 (invoke "pytest"))))))
2485 (native-inputs
2486 `(("python-pytest" ,python-pytest)))
a8714bf6
RW
2487 (home-page "https://github.com/vivainio/pickleshare")
2488 (synopsis "Tiny key value database with concurrency support")
2489 (description
2490 "PickleShare is a small ‘shelve’-like datastore with concurrency support.
2491Like shelve, a PickleShareDB object acts like a normal dictionary. Unlike
2492shelve, many processes can access the database simultaneously. Changing a
2493value in database is immediately visible to other processes accessing the same
2494database. Concurrency is possible because the values are stored in separate
2495files. Hence the “database” is a directory where all files are governed by
2496PickleShare.")
ed519b3c 2497 (properties `((python2-variant . ,(delay python2-pickleshare))))
a8714bf6
RW
2498 (license license:expat)))
2499
2500(define-public python2-pickleshare
ed519b3c
MB
2501 (let ((pickleshare (package-with-python2
2502 (strip-python2-variant python-pickleshare))))
2503 (package (inherit pickleshare)
2504 (propagated-inputs `(("python2-pathlib2" ,python2-pathlib2)
2505 ,@(package-propagated-inputs pickleshare))))))
a8714bf6
RW
2506
2507(define-public python-apsw
2508 (package
2509 (name "python-apsw")
2dd12924 2510 (version "3.20.1-r1")
a8714bf6
RW
2511 (source
2512 (origin
2513 (method url-fetch)
2dd12924
MB
2514 (uri (string-append "https://github.com/rogerbinns/apsw/archive/"
2515 version ".tar.gz"))
f5c847eb 2516 (file-name (string-append "apsw-" version ".tar.gz"))
a8714bf6
RW
2517 (sha256
2518 (base32
2dd12924 2519 "00ai7m2pqi26qaflhz314d8k5i3syw7xzr145fhfl0crhyh6adz2"))))
a8714bf6
RW
2520 (build-system python-build-system)
2521 (inputs
c553b08b 2522 `(("sqlite" ,sqlite)))
a8714bf6
RW
2523 (arguments
2524 `(#:phases
2525 (modify-phases %standard-phases
2526 (replace 'build
2527 (lambda _
c553b08b
EF
2528 (invoke "python" "setup.py" "build" "--enable-all-extensions")
2529 #t))
a8714bf6
RW
2530 (add-after 'build 'build-test-helper
2531 (lambda _
c553b08b
EF
2532 (invoke "gcc" "-fPIC" "-shared" "-o" "./testextension.sqlext"
2533 "-I." "-Isqlite3" "src/testextension.c")
2534 #t))
a8714bf6
RW
2535 (delete 'check)
2536 (add-after 'install 'check
2537 (lambda* (#:key inputs outputs #:allow-other-keys)
2538 (add-installed-pythonpath inputs outputs)
c553b08b
EF
2539 (invoke "python" "setup.py" "test")
2540 #t)))))
a8714bf6
RW
2541 (home-page "https://github.com/rogerbinns/apsw/")
2542 (synopsis "Another Python SQLite Wrapper")
2543 (description "APSW is a Python wrapper for the SQLite
2544embedded relational database engine. In contrast to other wrappers such as
2545pysqlite it focuses on being a minimal layer over SQLite attempting just to
2546translate the complete SQLite API into Python.")
2547 (license license:zlib)))
2548
2549(define-public python2-apsw
2550 (package-with-python2 python-apsw))
2551
2552(define-public python2-neo4j-driver
2553 (package
2554 (name "python2-neo4j-driver")
2555 ;; NOTE: When upgrading to 1.5.0, please add a python3 variant.
2556 (version "1.4.0")
2557 (source (origin
2558 (method url-fetch)
2559 (uri (pypi-uri "neo4j-driver" version))
2560 (sha256
2561 (base32
2562 "011r1vh182p8mm83d8dz9rfnc3l7rf7fd00cyrbyfzi71jmc4g98"))))
2563 (build-system python-build-system)
2564 (arguments
2565 `(#:python ,python-2))
2566 (home-page "https://neo4j.com/developer/python/")
2567 (synopsis "Neo4j driver code written in Python")
2568 (description "This package provides the Neo4j Python driver that connects
2569to the database using Neo4j's binary protocol. It aims to be minimal, while
2570being idiomatic to Python.")
2571 (license license:asl2.0)))
2572
2573(define-public python2-py2neo
2574 (package
2575 (name "python2-py2neo")
2576 (version "3.1.2")
2577 (source (origin
2578 (method url-fetch)
2579 (uri (pypi-uri "py2neo" version))
2580 (sha256
2581 (base32
2582 "1f1q95vqcvlc3nsc33p841swnjdcjazddlq2dzi3qfnjqjrajxw1"))))
2583 (build-system python-build-system)
2584 (arguments
2585 `(#:python ,python-2))
2586 (home-page "http://py2neo.org")
2587 (synopsis "Library and toolkit for working with Neo4j in Python")
2588 (description "This package provides a client library and toolkit for
2589working with Neo4j from within Python applications and from the command
2590line. The core library has no external dependencies and has been carefully
2591designed to be easy and intuitive to use.")
2592 (license license:asl2.0)))
2593
2594(define-public python-psycopg2
2595 (package
2596 (name "python-psycopg2")
72b7de49 2597 (version "2.7.7")
a8714bf6
RW
2598 (source
2599 (origin
2600 (method url-fetch)
2601 (uri (pypi-uri "psycopg2" version))
2602 (sha256
72b7de49 2603 (base32 "0zjbabb4qjx9dm07imhf8y5a9rpa06d5zah80myiimgdi83nslpl"))))
a8714bf6
RW
2604 (build-system python-build-system)
2605 (arguments
2606 ;; Tests would require a postgresql database "psycopg2_test"
2607 ;; and a running postgresql database management service.
2608 `(#:tests? #f)) ; TODO re-enable after providing a test-db.
2609 (inputs
2610 `(("postgresql" ,postgresql))) ; libpq
2611 (home-page "http://initd.org/psycopg/")
2612 (synopsis "Python PostgreSQL adapter")
2613 (description
19601e89
BW
2614 "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API
26152.0.")
a8714bf6
RW
2616 (license license:lgpl3+)))
2617
2618(define-public python2-psycopg2
2619 (package-with-python2 python-psycopg2))
2620
2621(define-public python-sadisplay
2622 (package
2623 (name "python-sadisplay")
bcdc5cae 2624 (version "0.4.8")
a8714bf6
RW
2625 (source
2626 (origin
2627 (method url-fetch)
2628 (uri (pypi-uri "sadisplay" version))
2629 (sha256
2630 (base32
bcdc5cae 2631 "01d9lxhmgpb68gy8rd6zj6fcwp84n2qq210n1qsk3qbsir79bzh4"))))
a8714bf6
RW
2632 (build-system python-build-system)
2633 (propagated-inputs
2634 `(("python-sqlalchemy" ,python-sqlalchemy)))
2635 (native-inputs
bcdc5cae 2636 ;; For tests.
a8714bf6
RW
2637 `(("python-nose" ,python-nose)))
2638 (home-page "https://bitbucket.org/estin/sadisplay")
2639 (synopsis "SQLAlchemy schema displayer")
2640 (description "This package provides a program to build Entity
2641Relationship diagrams from a SQLAlchemy model (or directly from the
2642database).")
2643 (license license:bsd-3)))
2644
2645(define-public python2-sadisplay
2646 (package-with-python2 python-sadisplay))
2647
2648(define-public python-mysqlclient
2649 (package
2650 (name "python-mysqlclient")
28635e52 2651 (version "1.3.13")
a8714bf6
RW
2652 (source
2653 (origin
2654 (method url-fetch)
2655 (uri (pypi-uri "mysqlclient" version))
2656 (sha256
2657 (base32
28635e52 2658 "0kv4a1icwdav8jpl7qvnr931lw5h3v22ids6lwq6qpi1hjzf33pz"))))
a8714bf6
RW
2659 (build-system python-build-system)
2660 (native-inputs
f94051e6 2661 `(("nose" ,python-nose)
a8714bf6
RW
2662 ("mock" ,python-mock)
2663 ("py.test" ,python-pytest)))
2664 (inputs
f94051e6 2665 `(("mysql" ,mariadb)
a8714bf6
RW
2666 ("libz" ,zlib)
2667 ("openssl" ,openssl)))
2668 (home-page "https://github.com/PyMySQL/mysqlclient-python")
2669 (synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
2670 (description "MySQLdb is an interface to the popular MySQL database server
2671for Python. The design goals are:
2672@enumerate
2673@item Compliance with Python database API version 2.0 [PEP-0249],
2674@item Thread-safety,
2675@item Thread-friendliness (threads will not block each other).
2676@end enumerate")
2677 (license license:gpl2)))
2678
2679(define-public python2-mysqlclient
2680 (package-with-python2 python-mysqlclient))
2681
2682(define-public python-hiredis
2683 (package
2684 (name "python-hiredis")
2685 (version "0.2.0")
2686 (source
2687 (origin
2688 (method url-fetch)
2689 (uri (pypi-uri "hiredis" version))
2690 (sha256
2691 (base32
2692 "1dfm2k9l9zar9nw9fwmm74zrgraxdxs04vx9li56fjcf289qx5fa"))))
2693 (build-system python-build-system)
2694 (arguments
2695 ;; no tests
2696 `(#:tests? #f))
2697 (home-page "https://github.com/redis/hiredis-py")
2698 (synopsis "Python extension that wraps protocol parsing code in hiredis")
2699 (description "Python-hiredis is a python extension that wraps protocol
2700parsing code in hiredis. It primarily speeds up parsing of multi bulk replies.")
2701 (license license:bsd-3)))
2702
2703(define-public python2-hiredis
2704 (package-with-python2 python-hiredis))
2705
2706(define-public python-fakeredis
2707 (package
2708 (name "python-fakeredis")
2709 (version "0.8.2")
2710 (source
2711 (origin
2712 (method url-fetch)
2713 (uri (pypi-uri "fakeredis" version))
2714 (sha256
2715 (base32
2716 "0zncahj3byyasyfx9i7k991ph0n0lq8v3a21pqri5qxn9564bk9r"))))
2717 (build-system python-build-system)
2718 (arguments
2719 ;; no tests
2720 `(#:tests? #f))
2721 (home-page "https://github.com/jamesls/fakeredis")
2722 (synopsis "Fake implementation of redis API for testing purposes")
a4764ff0
TGR
2723 (description
2724 "Fakeredis is a pure-Python implementation of the redis-py Python client
2725that simulates talking to a redis server. It was created for a single purpose:
2726to write unit tests.
2727
2728Setting up redis is not hard, but one often wants to write unit tests that don't
2729talk to an external server such as redis. This module can be used as a
2730reasonable substitute.")
a8714bf6
RW
2731 (license license:bsd-3)))
2732
2733(define-public python2-fakeredis
2734 (package-with-python2 python-fakeredis))
2735
2736(define-public python-redis
2737 (package
2738 (name "python-redis")
23503abb 2739 (version "3.3.8")
a8714bf6
RW
2740 (source
2741 (origin
2742 (method url-fetch)
2743 (uri (pypi-uri "redis" version))
2744 (sha256
23503abb 2745 (base32 "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq"))))
a8714bf6 2746 (build-system python-build-system)
a263a976 2747 ;; Tests require a running Redis server.
a8714bf6
RW
2748 (arguments '(#:tests? #f))
2749 ;; As long as we are not running test, we do not need this input :-)
2750 ;;(native-inputs
2751 ;; `(("python-pytest" ,python-pytest)))
2752 (home-page "https://github.com/andymccurdy/redis-py")
2753 (synopsis "Redis Python client")
2754 (description
2755 "This package provides a Python interface to the Redis key-value store.")
2756 (license license:expat)))
2757
2758(define-public python2-redis
2759 (package-with-python2 python-redis))
2760
2761(define-public python-rq
2762 (package
2763 (name "python-rq")
865c76ea 2764 (version "0.13.0")
a8714bf6
RW
2765 (source
2766 (origin
2767 (method url-fetch)
2768 (uri (pypi-uri "rq" version))
2769 (sha256
865c76ea 2770 (base32 "0xvapd2bxnyq480i48bdkddzlqmv2axbsq85rlfy8k3al8zxxxrf"))))
a8714bf6
RW
2771 (build-system python-build-system)
2772 (propagated-inputs
2773 `(("python-click" ,python-click)
2774 ("python-redis" ,python-redis)))
2775 (home-page "http://python-rq.org/")
2776 (synopsis "Simple job queues for Python")
2777 (description
2778 "RQ (Redis Queue) is a simple Python library for queueing jobs and
2779processing them in the background with workers. It is backed by Redis and it
2780is designed to have a low barrier to entry.")
2781 (license license:bsd-2)))
2782
2783(define-public python2-rq
2784 (package-with-python2 python-rq))
2785
2786(define-public python-trollius-redis
2787 (package
2788 (name "python-trollius-redis")
2789 (version "0.1.4")
2790 (source
2791 (origin
2792 (method url-fetch)
2793 (uri (pypi-uri "trollius_redis" version))
2794 (sha256
2795 (base32
2796 "0k3vypszmgmaipgw9xscvgm79h2zd6p6ci8gdp5sxl6g5kbqr9fy"))))
2797 (build-system python-build-system)
2798 ;; TODO: Tests require packaging 'hiredis'.
2799 (arguments '(#:tests? #f))
2800 (home-page "https://github.com/benjolitz/trollius-redis")
2801 (synopsis "Port of asyncio-redis to trollius")
2802 (description "@code{trollius-redis} is a Redis client for Python
d087a3a6 2803 trollius. It is an asynchronous IO (PEP 3156) implementation of the
a8714bf6
RW
2804 Redis protocol.")
2805 (license license:bsd-2)))
2806
2807(define-public python2-trollius-redis
2808 (package-with-python2 python-trollius-redis))
2809
2810(define-public python-sqlparse
2811 (package
2812 (name "python-sqlparse")
2813 (version "0.2.4")
2814 (source (origin
2815 (method url-fetch)
2816 (uri (pypi-uri "sqlparse" version))
2817 (sha256
2818 (base32
2819 "1v3xh0bkfhb262dbndgzhivpnhdwavdzz8jjhx9vx0xbrx2880nf"))))
2820 (build-system python-build-system)
2821 (arguments
2822 `(#:phases
2823 (modify-phases %standard-phases
2824 (replace 'check
96272e28 2825 (lambda _ (invoke "py.test"))))))
a8714bf6
RW
2826 (native-inputs
2827 `(("python-pytest" ,python-pytest)))
2828 (home-page "https://github.com/andialbrecht/sqlparse")
2829 (synopsis "Non-validating SQL parser")
2830 (description "Sqlparse is a non-validating SQL parser for Python. It
2831provides support for parsing, splitting and formatting SQL statements.")
2832 (license license:bsd-3)))
2833
2834(define-public python2-sqlparse
2835 (package-with-python2 python-sqlparse))
2836
2837(define-public python-sql
2838 (package
2839 (name "python-sql")
909404b5 2840 (version "1.0.0")
a8714bf6
RW
2841 (source
2842 (origin
2843 (method url-fetch)
2844 (uri (pypi-uri "python-sql" version))
2845 (sha256
909404b5 2846 (base32 "05ni936y0ia9xmryl7mlhbj9i80nnvq1bi4zxhb96rv7yvpb3fqb"))))
a8714bf6
RW
2847 (build-system python-build-system)
2848 (home-page "https://python-sql.tryton.org/")
2849 (synopsis "Library to write SQL queries in a pythonic way")
2850 (description "@code{python-sql} is a library to write SQL queries, that
2851transforms idiomatic python function calls to well-formed SQL queries.")
2852 (license license:bsd-3)))
2853
2854(define-public python2-sql
2855 (package-with-python2 python-sql))
33c88fcb
CB
2856
2857(define-public mongo-tools
2858 (package
2859 (name "mongo-tools")
2860 (version "3.4.0")
2861 (source
2862 (origin (method git-fetch)
2863 (uri (git-reference
2864 (url "https://github.com/mongodb/mongo-tools")
2865 (commit (string-append "r" version))))
2866 (file-name (git-file-name name version))
2867 (sha256
2868 (base32
9b32bf6e 2869 "1bcsz5cvj39a7nsxsfqmz9igrw33j6yli9kffigqyscs52amw7x1"))))
33c88fcb
CB
2870 (build-system go-build-system)
2871 (arguments
9b32bf6e
CB
2872 `(#:import-path "github.com/mongodb/mongo-tools"
2873 #:modules ((srfi srfi-1)
2874 (guix build go-build-system)
2875 (guix build utils))
e3900a4d 2876 #:install-source? #f
33c88fcb 2877 #:phases
9b32bf6e
CB
2878 (let ((all-tools
2879 '("bsondump" "mongodump" "mongoexport" "mongofiles"
2880 "mongoimport" "mongooplog" "mongorestore"
2881 "mongostat" "mongotop")))
2882 (modify-phases %standard-phases
2883 (add-after 'unpack 'delete-bundled-source-code
2884 (lambda _
2885 (delete-file-recursively
2886 "src/github.com/mongodb/mongo-tools/vendor")
2887 #t))
fe596965
CB
2888 (add-after 'delete-bundled-source-code 'patch-source
2889 (lambda _
2890 ;; Remove a redundant argument that causes compilation to fail.
2891 (substitute*
2892 "src/github.com/mongodb/mongo-tools/mongorestore/filepath.go"
2893 (("skipping restore of system.profile collection\", db)")
2894 "skipping restore of system.profile collection\")"))
2895 #t))
9b32bf6e
CB
2896 (replace 'build
2897 (lambda _
96272e28
MW
2898 (for-each (lambda (tool)
2899 (let ((command
2900 `("go" "build"
2901 ;; This is where the tests expect to find the
2902 ;; executables
2903 "-o" ,(string-append
2904 "src/github.com/mongodb/mongo-tools/bin/"
2905 tool)
2906 "-v"
2907 "-tags=\"ssl sasl\""
2908 "-ldflags"
2909 "-extldflags=-Wl,-z,now,-z,relro"
2910 ,(string-append
2911 "src/github.com/mongodb/mongo-tools/"
2912 tool "/main/" tool ".go"))))
2913 (simple-format #t "build: running ~A\n"
2914 (string-join command))
2915 (apply invoke command)))
2916 all-tools)
2917 #t))
9b32bf6e
CB
2918 (replace 'check
2919 (lambda _
2920 (with-directory-excursion "src"
96272e28
MW
2921 (for-each (lambda (tool)
2922 (invoke
2923 "go" "test" "-v"
2924 (string-append "github.com/mongodb/mongo-tools/"
2925 tool)))
2926 all-tools))
2927 #t))
9b32bf6e
CB
2928 (replace 'install
2929 (lambda* (#:key outputs #:allow-other-keys)
2930 (for-each (lambda (tool)
2931 (install-file
96272e28
MW
2932 (string-append "src/github.com/mongodb/mongo-tools/bin/"
2933 tool)
9b32bf6e
CB
2934 (string-append (assoc-ref outputs "out")
2935 "/bin")))
96272e28
MW
2936 all-tools)
2937 #t))))))
33c88fcb
CB
2938 (native-inputs
2939 `(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
2940 ("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
2941 ("go-golang.org-x-crypto-ssh-terminal" ,go-golang.org-x-crypto-ssh-terminal)
2942 ("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
2943 ("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
9b32bf6e
CB
2944 ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
2945 ("go-github.com-smartystreets-goconvey" ,go-github.com-smartystreets-goconvey)))
33c88fcb
CB
2946 (home-page "https://github.com/mongodb/mongo-tools")
2947 (synopsis "Various tools for interacting with MongoDB and BSON")
2948 (description
2949 "This package includes a collection of tools related to MongoDB.
2950@table @code
2951@item bsondump
2952Display BSON files in a human-readable format
2953@item mongoimport
2954Convert data from JSON, TSV or CSV and insert them into a collection
2955@item mongoexport
2956Write an existing collection to CSV or JSON format
2957@item mongodump/mongorestore
2958Dump MongoDB backups to disk in the BSON format
2959@item mongorestore
2960Read MongoDB backups in the BSON format, and restore them to a live database
2961@item mongostat
2962Monitor live MongoDB servers, replica sets, or sharded clusters
2963@item mongofiles
2964Read, write, delete, or update files in GridFS
2965@item mongooplog
2966Replay oplog entries between MongoDB servers
2967@item mongotop
2968Monitor read/write activity on a mongo server
2969@end table")
2970 (license license:asl2.0)))
dae7661a
LF
2971
2972(define-public apache-arrow
2973 (package
2974 (name "apache-arrow")
e58d3a59 2975 (version "0.10.0")
dae7661a
LF
2976 (source
2977 (origin
2978 (method git-fetch)
2979 (uri (git-reference
2980 (url "https://github.com/apache/arrow")
2981 (commit (string-append "apache-arrow-" version))))
2982 (file-name (git-file-name name version))
2983 (sha256
e58d3a59
RW
2984 (base32
2985 "04xkp922b8qrrnpvv9ixxnvk7151n1plzx6aqdff6frn9651zvxs"))))
dae7661a
LF
2986 (build-system cmake-build-system)
2987 (arguments
2988 `(#:tests? #f
2989 #:phases
2990 (modify-phases %standard-phases
2991 (add-before 'configure 'enter-source-directory
2992 (lambda _ (chdir "cpp") #t))
2993 (add-after 'unpack 'set-env
2994 (lambda _
2995 (setenv "BOOST_ROOT" (assoc-ref %build-inputs "boost"))
2996 (setenv "BROTLI_HOME" (assoc-ref %build-inputs "brotli"))
2997 (setenv "FLATBUFFERS_HOME" (assoc-ref %build-inputs "flatbuffers"))
2998 (setenv "JEMALLOC_HOME" (assoc-ref %build-inputs "jemalloc"))
2999 (setenv "RAPIDJSON_HOME" (assoc-ref %build-inputs "rapidjson"))
3000 #t)))
3def739d 3001 #:build-type "Release"
dae7661a 3002 #:configure-flags
3def739d 3003 (list "-DARROW_PYTHON=ON"
dae7661a
LF
3004
3005 ;; Install to PREFIX/lib (the default is
3006 ;; PREFIX/lib64).
3007 (string-append "-DCMAKE_INSTALL_LIBDIR="
3008 (assoc-ref %outputs "out")
3009 "/lib")
3010
3011 ;; XXX These Guix package offer static
3012 ;; libraries that are not position independent,
3013 ;; and ld fails to link them into the arrow .so
3014 "-DARROW_WITH_SNAPPY=OFF"
3015 "-DARROW_WITH_ZLIB=OFF"
3016 "-DARROW_WITH_ZSTD=OFF"
3017 "-DARROW_WITH_LZ4=OFF"
3018
3019 ;; Building the tests forces on all the
3020 ;; optional features and the use of static
3021 ;; libraries.
3022 "-DARROW_BUILD_TESTS=OFF"
3023 "-DARROW_BUILD_STATIC=OFF")))
3024 (inputs
3025 `(("boost" ,boost)
3026 ("rapidjson" ,rapidjson)
3027 ("brotli" ,google-brotli)
3028 ("flatbuffers" ,flatbuffers)
e58d3a59 3029 ("jemalloc" ,jemalloc)
dae7661a
LF
3030 ("python-3" ,python)
3031 ("python-numpy" ,python-numpy)))
3032 (home-page "https://arrow.apache.org/")
3033 (synopsis "Columnar in-memory analytics")
3034 (description "Apache Arrow is a columnar in-memory analytics layer
3035designed to accelerate big data. It houses a set of canonical in-memory
3036representations of flat and hierarchical data along with multiple
3037language-bindings for structure manipulation. It also provides IPC and common
3038algorithm implementations.")
3039 (license license:asl2.0)))
5e5ac710
LF
3040
3041(define-public python-pyarrow
3042 (package
3043 (name "python-pyarrow")
0fa926c2 3044 (version "0.10.0")
5e5ac710
LF
3045 (source
3046 (origin
3047 (method git-fetch)
3048 (uri (git-reference
3049 (url "https://github.com/apache/arrow")
3050 (commit (string-append "apache-arrow-" version))))
3051 (file-name (git-file-name name version))
3052 (sha256
0fa926c2
RW
3053 (base32
3054 "04xkp922b8qrrnpvv9ixxnvk7151n1plzx6aqdff6frn9651zvxs"))))
5e5ac710
LF
3055 (build-system python-build-system)
3056 (arguments
0fa926c2 3057 '(#:tests? #f ; XXX There are no tests in the "python" directory
5e5ac710
LF
3058 #:phases
3059 (modify-phases %standard-phases
0fa926c2 3060 (delete 'build) ; XXX the build is performed again during the install phase
5e5ac710
LF
3061 (add-after 'unpack 'enter-source-directory
3062 (lambda _ (chdir "python") #t))
3063 (add-after 'unpack 'set-env
3064 (lambda _
3065 (setenv "ARROW_HOME" (assoc-ref %build-inputs "apache-arrow"))
3066 #t)))))
3067 (propagated-inputs
3068 `(("apache-arrow" ,apache-arrow)
3069 ("python-numpy" ,python-numpy)
3070 ("python-pandas" ,python-pandas)
3071 ("python-six" ,python-six)))
3072 (native-inputs
c69959f0 3073 `(("cmake" ,cmake-minimal)
5e5ac710
LF
3074 ("python-cython" ,python-cython)
3075 ("python-pytest" ,python-pytest)
0fa926c2 3076 ("python-pytest-runner" ,python-pytest-runner)
5e5ac710
LF
3077 ("python-setuptools-scm" ,python-setuptools-scm)))
3078 (home-page "https://arrow.apache.org/docs/python/")
3079 (synopsis "Python bindings for Apache Arrow")
3080 (description "This library provides a Pythonic API wrapper for the reference
3081Arrow C++ implementation, along with tools for interoperability with pandas,
3082NumPy, and other traditional Python scientific computing packages.")
3083 (license license:asl2.0)))
3084
3085(define-public python2-pyarrow
3086 (package-with-python2 python-pyarrow))
450d5dc2
PL
3087
3088(define-public python-crate
3089 (package
3090 (name "python-crate")
3091 (version "0.23.0")
3092 (source (origin
3093 (method url-fetch)
3094 (uri (pypi-uri "crate" version))
3095 (sha256
3096 (base32
3097 "0s3s7yg4m2zflg9q96aibwb5hizsn10ql63fsj6h5z624qkavnlp"))))
3098 (build-system python-build-system)
3099 (propagated-inputs
3100 `(("python-urllib3" ,python-urllib3)))
3101 (home-page "https://github.com/crate/crate-python")
3102 (synopsis "CrateDB Python client")
3103 (description
3104 "This package provides a Python client library for CrateDB.
3105It implements the Python DB API 2.0 specification and includes support for
3106SQLAlchemy.")
3107 (license license:asl2.0)))