diff options
Diffstat (limited to 'gnu/packages/databases.scm')
-rw-r--r-- | gnu/packages/databases.scm | 232 |
1 files changed, 125 insertions, 107 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 7258622f42..0456d4508e 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) |