aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/databases.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/databases.scm')
-rw-r--r--gnu/packages/databases.scm374
1 files changed, 38 insertions, 336 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 766abc42be..f7b03e96ab 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -32,7 +32,7 @@
;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
-;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
@@ -193,52 +193,6 @@
either single machines or networked clusters.")
(license license:gpl3+)))
-(define-public go-gopkg.in-mgo.v2
- (package
- (name "go-gopkg.in-mgo.v2")
- (version "2016.08.01")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/go-mgo/mgo")
- (commit (string-append "r" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0rwbi1z63w43b0z9srm8m7iz1fdwx7bq7n2mz862d6liiaqa59jd"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "gopkg.in/mgo.v2"
- ;; TODO: The tests fail as MongoDB fails to start
- ;; Error parsing command line: unrecognised option '--chunkSize'
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'reset-gzip-timestamps)
- (add-before 'check 'start-mongodb
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (with-directory-excursion "src/gopkg.in/mgo.v2"
- (invoke "make" "startdb")))
- #t))
- (add-after 'check 'stop'mongodb
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (with-directory-excursion "src/gopkg.in/mgo.v2"
- (invoke "make" "stopdb")))
- #t)))))
- (native-inputs
- `(("go-gopkg.in-check.v1" ,go-gopkg.in-check.v1)
- ("mongodb" ,mongodb)
- ("daemontools" ,daemontools)))
- (synopsis "@code{mgo} offers a rich MongoDB driver for Go.")
- (description
- "@code{mgo} (pronounced as mango) is a MongoDB driver for the Go language.
-It implements a rich selection of features under a simple API following
-standard Go idioms.")
- (home-page "https://labix.org/mgo")
- (license license:bsd-2)))
-
(define-public ephemeralpg
(package
(name "ephemeralpg")
@@ -572,7 +526,8 @@ applications.")
("cyrus-sasl" ,cyrus-sasl)))
(outputs '("out" "doc"))
(arguments
- '(#:phases
+ '(#:tests? #f ;many tests fail and use too much time
+ #:phases
(modify-phases %standard-phases
(add-before 'bootstrap 'fix-configure.ac
;; Move the AC_CONFIG_AUX_DIR macro use under AC_INIT, otherwise we
@@ -584,24 +539,9 @@ applications.")
(delete-file "bootstrap.sh") ;not useful in the context of Guix
(substitute* "configure.ac"
(("^AC_CONFIG_AUX_DIR\\(\\[build-aux\\]\\).*") "")
- (("(^AC_INIT.*)" anchor)
- (string-append anchor "AC_CONFIG_AUX_DIR([build-aux])\n")))
- #t))
- (add-before 'bootstrap 'disable-failing-tests
- ;; See: https://bugs.launchpad.net/libmemcached/+bug/1803926
- (lambda _
- ;; Mark some heavily failing test suites as expected to fail.
- (substitute* "Makefile.am"
- (("(XFAIL_TESTS =[^\n]*)" xfail_tests)
- (string-append xfail_tests " tests/testudp"
- " tests/libmemcached-1.0/testapp"
- " tests/libmemcached-1.0/testsocket")))
- ;; Disable two tests of the unittest test suite.
- (substitute* "libtest/unittest.cc"
- ((".*echo_fubar_BINARY \\},.*") "")
- ((".*application_doesnotexist_BINARY \\},.*") ""))
- #t))
- (add-after 'disable-dns-tests 'build-and-install-html-doc
+ (("^AC_INIT.*" anchor)
+ (string-append anchor "AC_CONFIG_AUX_DIR([build-aux])\n")))))
+ (add-before 'build 'build-and-install-html-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((html (string-append (assoc-ref outputs "doc")
"/share/doc/libmemcached/html/")))
@@ -609,9 +549,8 @@ applications.")
;; Cleanup useless files.
(for-each delete-file-recursively
(map (lambda (x) (string-append html x))
- '("_sources" ".doctrees" ".buildinfo"))))
- #t)))))
- (home-page "https://libmemcached.org/")
+ '("_sources" ".doctrees" ".buildinfo")))))))))
+ (home-page "https://libmemcached.org/libMemcached.html")
(synopsis "C++ library for memcached")
(description "libMemcached is a library to use memcached in C/C++
applications. It comes with a complete reference guide and documentation of
@@ -661,143 +600,6 @@ replacement for the code@{python-memcached} library.")
(define-public python2-pylibmc
(package-with-python2 python-pylibmc))
-(define-public mongodb
- (package
- (name "mongodb")
- (version "3.4.10")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/mongodb/mongo/archive/r"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0676lvkljj7a5hdhv78dbykqnqrj9lbn9799mi84b8vbnzsq961r"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (for-each (lambda (dir)
- (delete-file-recursively
- (string-append "src/third_party/" dir)))
- '("pcre-8.41" "scons-2.5.0" "snappy-1.1.3"
- "valgrind-3.11.0" "wiredtiger"
- "yaml-cpp-0.5.3" "zlib-1.2.8"))
- #t))
- (patches
- (list
- (search-patch "mongodb-support-unknown-linux-distributions.patch")))))
- (build-system scons-build-system)
- (inputs
- `(("openssl" ,openssl-1.0)
- ("pcre" ,pcre)
- ,@(match (%current-system)
- ((or "x86_64-linux" "aarch64-linux" "mips64el-linux")
- `(("wiredtiger" ,wiredtiger)))
- (_ `()))
- ("yaml-cpp" ,yaml-cpp)
- ("zlib" ,zlib)
- ("snappy" ,snappy)))
- (native-inputs
- `(("valgrind" ,valgrind)
- ("perl" ,perl)
- ("python" ,python-2)
- ("python2-pymongo" ,python2-pymongo)
- ("python2-pyyaml" ,python2-pyyaml)
- ("tzdata" ,tzdata-for-tests)))
- (arguments
- `(#:scons ,scons-python2
- #:phases
- (let ((common-options
- `(;; "--use-system-tcmalloc" TODO: Missing gperftools
- "--use-system-pcre"
- ;; wiredtiger is 64-bit only
- ,,(if (any (cute string-prefix? <> (or (%current-target-system)
- (%current-system)))
- '("i686-linux" "armhf-linux"))
- ``"--wiredtiger=off"
- ``"--use-system-wiredtiger")
- ;; TODO
- ;; build/opt/mongo/db/fts/unicode/string.o failed: Error 1
- ;; --use-system-boost
- "--use-system-snappy"
- "--use-system-zlib"
- "--use-system-valgrind"
- ;; "--use-system-stemmer" TODO: Missing relevant package
- "--use-system-yaml"
- "--disable-warnings-as-errors"
- ,(format #f "--jobs=~a" (parallel-job-count))
- "--ssl")))
- (modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda _
- ;; Remove use of GNU extensions in parse_number_test.cpp, to
- ;; allow compiling with GCC 7 or later
- ;; https://jira.mongodb.org/browse/SERVER-28063
- (substitute* "src/mongo/base/parse_number_test.cpp"
- (("0xabcab\\.defdefP-10")
- "687.16784283419838"))
- #t))
- (add-after 'unpack 'scons-propagate-environment
- (lambda _
- ;; Modify the SConstruct file to arrange for
- ;; environment variables to be propagated.
- (substitute* "SConstruct"
- (("^env = Environment\\(")
- "env = Environment(ENV=os.environ, "))
- #t))
- (add-after 'unpack 'create-version-file
- (lambda _
- (call-with-output-file "version.json"
- (lambda (port)
- (display ,(simple-format #f "{
- \"version\": \"~A\"
-}" version) port)))
- #t))
- (replace 'build
- (lambda _
- (apply invoke `("scons"
- ,@common-options
- "mongod" "mongo" "mongos"))))
- (replace 'check
- (lambda* (#:key tests? inputs #:allow-other-keys)
- (setenv "TZDIR"
- (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo"))
- (when tests?
- ;; Note that with the tests, especially the unittests, the
- ;; build can take up to ~45GB of space, as many tests are
- ;; individual executable files, with some being hundreds of
- ;; megabytes in size.
- (apply invoke `("scons" ,@common-options "dbtest" "unittests"))
- (substitute* "build/unittests.txt"
- ;; TODO: Don't run the async_stream_test, as it hangs
- (("^build\\/opt\\/mongo\\/executor\\/async\\_stream\\_test\n$")
- "")
- ;; TODO: This test fails
- ;; Expected 0UL != disks.size() (0 != 0) @src/mongo/util/procparser_test.cpp:476
- (("^build\\/opt\\/mongo\\/util\\/procparser\\_test\n$")
- ""))
- (invoke "python" "buildscripts/resmoke.py"
- "--suites=dbtest,unittests"
- (format #f "--jobs=~a" (parallel-job-count))))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "mongod" bin)
- (install-file "mongos" bin)
- (install-file "mongo" bin))
- #t))))))
- (home-page "https://www.mongodb.org/")
- (synopsis "High performance and high availability document database")
- (description
- "Mongo is a high-performance, high availability, schema-free
-document-oriented database. A key goal of MongoDB is to bridge the gap
-between key/value stores (which are fast and highly scalable) and traditional
-RDBMS systems (which are deep in functionality).")
- (license (list license:agpl3
- ;; Some parts are licensed under the Apache License
- license:asl2.0))))
-
(define-public mycli
(package
(name "mycli")
@@ -833,7 +635,7 @@ auto-completion and syntax highlighting.")
(define-public mysql
(package
(name "mysql")
- (version "5.7.27")
+ (version "5.7.33")
(source (origin
(method url-fetch)
(uri (list (string-append
@@ -845,7 +647,7 @@ auto-completion and syntax highlighting.")
name "-" version ".tar.gz")))
(sha256
(base32
- "1fhv16zr46pxm1j8vb8x8mh3nwzglg01arz8gnazbmjqldr5idpq"))))
+ "1bb343mf7n0qg2qz497gxjsqprygrjz1q1pbz76hgqxnsy08sfxd"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@@ -2499,7 +2301,7 @@ database.")
(define-public lmdb
(package
(name "lmdb")
- (version "0.9.27")
+ (version "0.9.28")
(source
(origin
(method git-fetch)
@@ -2508,7 +2310,7 @@ database.")
(commit (string-append "LMDB_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "09xqqm8yjsf1gv4gd4llal48sms76hfhxadx6rik1j2g5v3d3f1k"))))
+ (base32 "012a8bs49cswsnzw7k4piis5b6dn4by85w7a7mai9i04xcjyy9as"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@@ -2648,17 +2450,25 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
(define-public python-tortoise-orm
(package
(name "python-tortoise-orm")
- (version "0.16.7")
+ (version "0.16.21")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tortoise-orm" version))
(sha256
(base32
- "0wr7p4v0b16ypm9fcpwpl99kf491m6w3jkd13xcsgq13fy73fbqc"))))
+ "1dallk0q8q4v37klm0v3rppf2w8sjkqmypc1w8r9rraqxg1ylacp"))))
(build-system python-build-system)
- ;; Disable tests for now. They pull in a lot of dependencies.
- (arguments `(#:tests? #f))
+ (arguments
+ `(#:tests? #f ; Pypi does not have tests and Git snapshot depends on
+ ; poetry.
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'relax-version-requirements
+ (lambda _
+ (substitute* "setup.py"
+ (("pypika>=0\\.44\\.0,<0\\.45\\.0") "pypika")
+ (("aiosqlite>=0.16.0,<0.17.0") "aiosqlite"))
+ #t)))))
(native-inputs
`(("python-asynctest" ,python-asynctest)
("python-nose2" ,python-nose2)))
@@ -3239,15 +3049,25 @@ translate the complete SQLite API into Python.")
(define-public python-aiosqlite
(package
(name "python-aiosqlite")
- (version "0.12.0")
+ (version "0.17.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "aiosqlite" version))
(sha256
(base32
- "1w8248yz85xyzvvh4jaxnc59fqil45aka6h82kn1rcih4rjxbnn1"))))
+ "0lgfpbkcd730hbgj3zlrbx2y8fzvdns2zj3s4r4l31n49g1arrph"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "python" "-m" "unittest" "aiosqlite.tests")
+ (format #t "test suite not run~%"))
+ #t)))))
+ (propagated-inputs
+ `(("python-typing-extensions" ,python-typing-extensions)))
(native-inputs
`(("python-aiounittest" ,python-aiounittest)))
(home-page "https://github.com/jreese/aiosqlite")
@@ -3535,9 +3355,6 @@ processing them in the background with workers. It is backed by Redis and it
is designed to have a low barrier to entry.")
(license license:bsd-2)))
-(define-public python2-rq
- (package-with-python2 python-rq))
-
(define-public python-rq-scheduler
(package
(name "python-rq-scheduler")
@@ -3650,7 +3467,7 @@ transforms idiomatic python function calls to well-formed SQL queries.")
(define-public python-pypika
(package
(name "python-pypika")
- (version "0.44.0")
+ (version "0.47.6")
(source
(origin (method git-fetch)
(uri (git-reference
@@ -3659,7 +3476,7 @@ transforms idiomatic python function calls to well-formed SQL queries.")
(file-name (git-file-name name version))
(sha256
(base32
- "0mpddrw9z1pzcc40j3pzhd583hlgjx96aa8ak6m9zzhpm4bv3ard"))))
+ "001pg36sw9a36zdd1kccbymcxndphjcjbbrsy6ri7ng8h4dgz549"))))
(build-system python-build-system)
(native-inputs
`(("python-parameterized" ,python-parameterized)))
@@ -3670,121 +3487,6 @@ transforms idiomatic python function calls to well-formed SQL queries.")
the SQL language using a syntax that reflects the resulting query.")
(license license:asl2.0)))
-(define-public mongo-tools
- (package
- (name "mongo-tools")
- (version "3.4.0")
- (source
- (origin (method git-fetch)
- (uri (git-reference
- (url "https://github.com/mongodb/mongo-tools")
- (commit (string-append "r" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1bcsz5cvj39a7nsxsfqmz9igrw33j6yli9kffigqyscs52amw7x1"))))
- (build-system go-build-system)
- (arguments
- `(#:import-path "github.com/mongodb/mongo-tools"
- #:modules ((srfi srfi-1)
- (guix build go-build-system)
- (guix build utils))
- #:install-source? #f
- #:phases
- (let ((all-tools
- '("bsondump" "mongodump" "mongoexport" "mongofiles"
- "mongoimport" "mongooplog" "mongorestore"
- "mongostat" "mongotop")))
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-bundled-source-code
- (lambda _
- (delete-file-recursively
- "src/github.com/mongodb/mongo-tools/vendor")
- #t))
- (add-after 'delete-bundled-source-code 'patch-source
- (lambda _
- ;; Remove a redundant argument that causes compilation to fail.
- (substitute*
- "src/github.com/mongodb/mongo-tools/mongorestore/filepath.go"
- (("skipping restore of system.profile collection\", db)")
- "skipping restore of system.profile collection\")"))
- #t))
- (replace 'build
- (lambda _
- (for-each (lambda (tool)
- (let ((command
- `("go" "build"
- ;; This is where the tests expect to find the
- ;; executables
- "-o" ,(string-append
- "src/github.com/mongodb/mongo-tools/bin/"
- tool)
- "-v"
- "-tags=\"ssl sasl\""
- "-ldflags"
- "-extldflags=-Wl,-z,now,-z,relro"
- ,(string-append
- "src/github.com/mongodb/mongo-tools/"
- tool "/main/" tool ".go"))))
- (simple-format #t "build: running ~A\n"
- (string-join command))
- (apply invoke command)))
- all-tools)
- #t))
- (replace 'check
- (lambda _
- (with-directory-excursion "src"
- (for-each (lambda (tool)
- (invoke
- "go" "test" "-v"
- (string-append "github.com/mongodb/mongo-tools/"
- tool)))
- all-tools))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (for-each (lambda (tool)
- (install-file
- (string-append "src/github.com/mongodb/mongo-tools/bin/"
- tool)
- (string-append (assoc-ref outputs "out")
- "/bin")))
- all-tools)
- #t))))))
- (native-inputs
- `(("go-github.com-howeyc-gopass" ,go-github.com-howeyc-gopass)
- ("go-github.com-jessevdk-go-flags" ,go-github.com-jessevdk-go-flags)
- ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
- ("go-gopkg.in-mgo.v2" ,go-gopkg.in-mgo.v2)
- ("go-gopkg.in-tomb.v2" ,go-gopkg.in-tomb.v2)
- ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
- ("go-github.com-smartystreets-goconvey" ,go-github.com-smartystreets-goconvey)))
- (home-page "https://github.com/mongodb/mongo-tools")
- (synopsis "Various tools for interacting with MongoDB and BSON")
- (description
- "This package includes a collection of tools related to MongoDB.
-@table @code
-@item bsondump
-Display BSON files in a human-readable format
-@item mongoimport
-Convert data from JSON, TSV or CSV and insert them into a collection
-@item mongoexport
-Write an existing collection to CSV or JSON format
-@item mongodump/mongorestore
-Dump MongoDB backups to disk in the BSON format
-@item mongorestore
-Read MongoDB backups in the BSON format, and restore them to a live database
-@item mongostat
-Monitor live MongoDB servers, replica sets, or sharded clusters
-@item mongofiles
-Read, write, delete, or update files in GridFS
-@item mongooplog
-Replay oplog entries between MongoDB servers
-@item mongotop
-Monitor read/write activity on a mongo server
-@end table")
- (license license:asl2.0)))
-
;; There are many wrappers for this in other languages. When touching, please
;; be sure to ensure all dependencies continue to build.
(define-public apache-arrow