summaryrefslogtreecommitdiff
path: root/gnu/packages/databases.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/databases.scm')
-rw-r--r--gnu/packages/databases.scm232
1 files changed, 125 insertions, 107 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index ac1b23a327..d7b35834fe 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -153,7 +153,7 @@
(modify-phases %standard-phases
(add-after 'unpack 'generate-configure
(lambda _
- (zero? (system* "sh" "autogen.sh")))))))
+ (invoke "sh" "autogen.sh"))))))
;; http://www.4store.org has been down for a while now.
(home-page "https://github.com/4store/4store")
(synopsis "Clustered RDF storage and query engine")
@@ -164,14 +164,14 @@ either single machines or networked clusters.")
(define-public gdbm
(package
(name "gdbm")
- (version "1.14.1")
+ (version "1.18")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdbm/gdbm-"
version ".tar.gz"))
(sha256
(base32
- "0pxwz3jlwvglq2mrbxvrjgr8pa0aj73p3v9sxmdlj570zw0gzknd"))))
+ "1kimnv12bzjjhaqk4c8w2j6chdj9c6bg21lchaf7abcyfss2r0mq"))))
(arguments `(#:configure-flags '("--enable-libgdbm-compat")))
(build-system gnu-build-system)
(home-page "http://www.gnu.org.ua/software/gdbm")
@@ -207,14 +207,16 @@ and provides interfaces to the traditional file format.")
(delete 'reset-gzip-timestamps)
(add-before 'check 'start-mongodb
(lambda* (#:key tests? #:allow-other-keys)
- (or (not tests?)
- (with-directory-excursion "src/gopkg.in/mgo.v2"
- (invoke "make" "startdb")))))
+ (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)
- (or (not tests?)
- (with-directory-excursion "src/gopkg.in/mgo.v2"
- (invoke "make" "stopdb"))))))))
+ (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)
@@ -511,28 +513,27 @@ applications.")
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
- (or (not 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.
- (begin
- (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)))))))
+ (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 _
- (let ((bin (string-append (assoc-ref %outputs "out") "/bin")))
+ (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))
@@ -620,7 +621,7 @@ Language.")
(define-public mariadb
(package
(name "mariadb")
- (version "10.1.35")
+ (version "10.1.37")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.org/f/"
@@ -628,14 +629,20 @@ Language.")
name "-" version ".tar.gz"))
(sha256
(base32
- "0k9walaglwmwdwmkq48ir17g98n83vliyyg5wck22rjgxn2xk4cy"))
- (patches (search-patches "mariadb-gcc-ice.patch"
- "mariadb-client-test-32bit.patch"))
+ "0ijdmdn9mcciwv361zfmja6b1h6qpbdqgrnnq6kkdapplyq1dmcc"))
+ (patches (search-patches "mariadb-client-test-32bit.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled snappy and xz.
(delete-file-recursively "storage/tokudb/PerconaFT/third_party")
+ (substitute* "storage/tokudb/PerconaFT/CMakeLists.txt"
+ ;; This file checks that the bundled sources are present and
+ ;; declares build procedures for them.
+ (("^include\\(TokuThirdParty\\)") ""))
+ (substitute* "storage/tokudb/PerconaFT/ft/CMakeLists.txt"
+ ;; Don't attempt to use the procedures we just removed.
+ ((" build_lzma build_snappy") ""))
;; Preserve CMakeLists.txt for these.
(for-each (lambda (file)
@@ -679,7 +686,7 @@ Language.")
"-DINSTALL_SHAREDIR=share")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'unbundle
+ (add-after 'unpack 'fix-pcre-detection
(lambda _
;; The bundled PCRE in MariaDB has a patch that was upstreamed
;; in version 8.34. Unfortunately the upstream patch behaves
@@ -688,16 +695,6 @@ Language.")
;; XXX: Consider patching PCRE instead.
(substitute* "cmake/pcre.cmake"
((" OR NOT PCRE_STACK_SIZE_OK") ""))
-
- (substitute* "storage/tokudb/PerconaFT/ft/CMakeLists.txt"
- ;; Remove dependency on these CMake targets.
- ((" build_lzma build_snappy") ""))
-
- (substitute* "storage/tokudb/PerconaFT/CMakeLists.txt"
- ;; This file checks that the bundled sources are present and
- ;; declares build procedures for them. We don't need that.
- (("^include\\(TokuThirdParty\\)") ""))
-
#t))
(add-after 'unpack 'adjust-tests
(lambda _
@@ -707,6 +704,7 @@ Language.")
;; See <https://jira.mariadb.org/browse/MDEV-7761>.
"main.join_cache"
"main.explain_non_select"
+ "main.stat_tables_innodb"
"roles.acl_statistics"
;; FIXME: This test fails on i686:
@@ -772,8 +770,8 @@ Language.")
(for-each delete-file-recursively
'("data" "mysql-test" "sql-bench"
"share/man/man1/mysql-test-run.pl.1"))
- ;; Delete huge mysqltest executables.
- (for-each delete-file (find-files "bin" "test"))
+ ;; Delete huge and unnecessary executables.
+ (for-each delete-file (find-files "bin" "(test|embedded)"))
;; And static libraries.
(for-each delete-file (find-files "lib" "\\.a$")))
#t))))))
@@ -785,11 +783,13 @@ Language.")
("libaio" ,libaio)
("libxml2" ,libxml2)
("ncurses" ,ncurses)
- ("openssl" ,openssl)
("pcre" ,pcre)
("snappy" ,snappy)
("xz" ,xz)
("zlib" ,zlib)))
+ (propagated-inputs
+ ;; mariadb.pc says -lssl -lcrypto, so propagate it.
+ `(("openssl" ,openssl)))
;; The test suite is very resource intensive and can take more than three
;; hours on a x86_64 system. Give slow and busy machines some leeway.
(properties '((timeout . 64800))) ;18 hours
@@ -923,7 +923,23 @@ organized in a hash table or B+ tree.")
version ".tar.gz"))
(sha256
(base32
- "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93"))))
+ "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Adjust the bundled gnulib to work with glibc 2.28. See e.g.
+ ;; "m4-gnulib-libio.patch". This is a phase rather than patch
+ ;; or snippet to work around <https://bugs.gnu.org/32347>.
+ (substitute* (find-files "lib" "\\.c$")
+ (("#if defined _IO_ftrylockfile")
+ "#if defined _IO_EOF_SEEN"))
+ (substitute* "lib/stdio-impl.h"
+ (("^/\\* BSD stdio derived implementations")
+ (string-append "#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN\n"
+ "# define _IO_IN_BACKUP 0x100\n"
+ "#endif\n\n"
+ "/* BSD stdio derived implementations")))
+ #t))))
(build-system gnu-build-system)
;; Running tests in parallel leads to test failures and crashes in
@@ -973,15 +989,16 @@ types are supported, as is encryption.")
(define-public rocksdb
(package
(name "rocksdb")
- (version "5.12.4")
+ (version "5.15.10")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/facebook/rocksdb"
- "/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/facebook/rocksdb")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1jcwgsjhk4hdfr2wf549blkgb89vwcdb5i2ahhqs6zf3mm20i3bf"))
+ "0q26frbj9pykarcfa0yxgwncxlvsqhjkby0jrbfs1a8srja688r4"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1102,7 +1119,8 @@ data in a single database. RocksDB is partially based on @code{LevelDB}.")
(lambda _
(substitute* "Makefile"
(("^gitrev :=.*$")
- (string-append "gitrev = \"v" ,version "\"")))))
+ (string-append "gitrev = \"v" ,version "\"")))
+ #t))
;; The install phase of the Makefile assumes $PREFIX/usr/local/bin.
;; This replacement does the same thing, except for using $PREFIX/bin
;; instead.
@@ -1111,14 +1129,13 @@ data in a single database. RocksDB is partially based on @code{LevelDB}.")
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "sparql-query" bin)
- (system* "ln" "--symbolic"
- (string-append bin "/sparql-query")
- (string-append bin "/sparql-update")))))
+ (symlink (string-append bin "/sparql-query")
+ (string-append bin "/sparql-update")))
+ #t))
(replace 'check
(lambda* (#:key make-flags #:allow-other-keys)
- (and
- (zero? (apply system* "make" `(,@make-flags "scan-test")))
- (zero? (system "./scan-test"))))))))
+ (apply invoke "make" `(,@make-flags "scan-test"))
+ (invoke "./scan-test"))))))
(home-page "https://github.com/tialaramex/sparql-query/")
(synopsis "Command-line tool for accessing SPARQL endpoints over HTTP")
(description "Sparql-query is a command-line tool for accessing SPARQL
@@ -1166,7 +1183,7 @@ changes.")
(define-public sqlite
(package
(name "sqlite")
- (version "3.23.0")
+ (version "3.24.0")
(source (origin
(method url-fetch)
(uri (let ((numeric-version
@@ -1182,7 +1199,7 @@ changes.")
numeric-version ".tar.gz")))
(sha256
(base32
- "0jbf78g3cm5wq77k7sfg8fb6rz44hnp9hs7p5d66fwd000c1lwdp"))))
+ "0jmprv2vpggzhy7ma4ynmv1jzn3pfiwzkld0kkg6hvgvqs44xlfr"))))
(build-system gnu-build-system)
(inputs `(("readline" ,readline)))
(arguments
@@ -1243,8 +1260,8 @@ is in the public domain.")
(let ((out (assoc-ref outputs "out")))
;; The 'configure' script is a wrapper for Waf and
;; doesn't recognize things like '--enable-fast-install'.
- (zero? (system* "./configure"
- (string-append "--prefix=" out)))))))))
+ (invoke "./configure"
+ (string-append "--prefix=" out))))))))
(native-inputs
`(;; TODO: Build the documentation.
;; ("docbook-xsl" ,docbook-xsl)
@@ -1609,7 +1626,7 @@ valid SQL query.")
(define-public unixodbc
(package
(name "unixodbc")
- (version "2.3.6")
+ (version "2.3.7")
(source (origin
(method url-fetch)
(uri
@@ -1617,7 +1634,7 @@ valid SQL query.")
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
version ".tar.gz"))
(sha256
- (base32 "0sads5b8cmmj526gyjba7ccknl1vbhkslfqshv1yqln08zv3gdl8"))))
+ (base32 "0xry3sg497wly8f7715a7gwkn2k36bcap0mvzjw74jj53yx6kwa5"))))
(build-system gnu-build-system)
(synopsis "Data source abstraction library")
(description "Unixodbc is a library providing an API with which to access
@@ -1993,8 +2010,7 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
(assoc-ref %standard-phases 'check))
(replace 'check
(lambda _
- (zero?
- (system* "./testfixture" "test/crypto.test")))))))
+ (invoke "./testfixture" "test/crypto.test"))))))
(home-page "https://www.zetetic.net/sqlcipher/")
(synopsis
"Library providing transparent encryption of SQLite database files")
@@ -2250,9 +2266,6 @@ and web services platform functionality.")
`(("pkg-config" ,pkg-config)))
(inputs
`(("mariadb" ,mariadb)
- ;; FIXME: This should be propagated from MariaDB, but add it here
- ;; for now to prevent a large rebuild.
- ("openssl" ,openssl)
("zlib" ,zlib)))
(propagated-inputs
`(("r-dbi" ,r-dbi)))
@@ -2321,7 +2334,7 @@ Database API 2.0T.")
(define-public python-sqlalchemy
(package
(name "python-sqlalchemy")
- (version "1.0.12")
+ (version "1.2.11")
(source
(origin
(method url-fetch)
@@ -2329,7 +2342,7 @@ Database API 2.0T.")
"SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
(sha256
(base32
- "1l8qclhd0s90w3pvwhi5mjxdwr5j7gw7cjka2fx6f2vqmq7f4yb6"))))
+ "094mmbs4igrxplfyqd59j90jb83ixpbbzqc0w49yw81m82nnjrgg"))))
(build-system python-build-system)
(native-inputs
`(("python-cython" ,python-cython) ;for c extensions
@@ -2339,7 +2352,7 @@ Database API 2.0T.")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (zero? (system* "py.test")))))))
+ (lambda _ (invoke "py.test"))))))
(home-page "http://www.sqlalchemy.org")
(synopsis "Database abstraction library")
(description
@@ -2406,14 +2419,14 @@ You might also want to install the following optional dependencies:
(define-public python-alembic
(package
(name "python-alembic")
- (version "0.9.6")
+ (version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "alembic" version))
(sha256
(base32
- "0cm73vabrqj92v7a0wwvldj8j7bc7dwv358kvkk7p87gx7mm2a04"))))
+ "0asqz9mwc4w8bsar1icv3ik9jslxrj3gv3yxgmhc6nc6r9qbkg04"))))
(build-system python-build-system)
(native-inputs
`(("python-mock" ,python-mock)
@@ -2731,13 +2744,13 @@ reasonable substitute.")
(define-public python-rq
(package
(name "python-rq")
- (version "0.7.1")
+ (version "0.12.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "rq" version))
(sha256
- (base32 "0gaq5pnh0zy46r8jvygi0ifbvz3pq6i7xla78ijcgjw0x77qzsdh"))))
+ (base32 "16d8kni57xlnah2hawy4xgw21xrv3f64j5q5shyp3zxx4yd9iibs"))))
(build-system python-build-system)
(propagated-inputs
`(("python-click" ,python-click)
@@ -2792,7 +2805,7 @@ is designed to have a low barrier to entry.")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda _ (zero? (system* "py.test")))))))
+ (lambda _ (invoke "py.test"))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://github.com/andialbrecht/sqlparse")
@@ -2859,41 +2872,46 @@ transforms idiomatic python function calls to well-formed SQL queries.")
(delete 'install-source)
(replace 'build
(lambda _
- (every (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)))
+ (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"
- (every (lambda (tool)
- (invoke
- "go" "test" "-v"
- (string-append "github.com/mongodb/mongo-tools/" tool)))
- all-tools))))
+ (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 "src/github.com/mongodb/mongo-tools/bin/"
+ tool)
(string-append (assoc-ref outputs "out")
"/bin")))
- all-tools)))))))
+ 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)