X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/5cc1075a76392666d3d733837f5c6252b1e48002..973218a3747ad564493a976da588d286fe7d4301:/gnu/packages/databases.scm diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index db27110645..ea74852ffe 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -10,20 +10,20 @@ ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2016 Christopher Allan Webber -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016, 2017, 2018 Roel Janssen ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2016 Danny Milosavljevic -;;; Copyright © 2016, 2017, 2018 Marius Bakke +;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke ;;; Copyright © 2017, 2018 Julien Lepiller ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Jelle Licht ;;; Copyright © 2017 Adriano Peluso ;;; Copyright © 2017 Arun Isaac -;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017, 2018 Alex Vong ;;; Copyright © 2017, 2018 Ben Woodcroft ;;; Copyright © 2017 Rutger Helling @@ -36,6 +36,9 @@ ;;; Copyright © 2019 Jack Hill ;;; Copyright © 2019 Alex Griffin ;;; Copyright © 2019 Gábor Boskovits +;;; Copyright © 2019 Pierre Langlois +;;; Copyright © 2019 Guillaume Le Vaillant +;;; Copyright © 2020 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,6 +74,7 @@ #:use-module (gnu packages dbm) #:use-module (gnu packages emacs) #:use-module (gnu packages flex) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) @@ -83,6 +87,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages man) #:use-module (gnu packages ncurses) + #:use-module (gnu packages onc-rpc) #:use-module (gnu packages parallel) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) @@ -92,6 +97,8 @@ #:use-module (gnu packages popt) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-science) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) @@ -119,7 +126,7 @@ #:use-module (guix build-system ruby) #:use-module (guix build-system cmake) #:use-module (guix build-system scons) - #:use-module ((guix build utils) #:hide (which)) + #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -130,12 +137,13 @@ (name "4store") (version "1.1.6") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/4store/4store/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/4store/4store.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "004fmcf1w75zhc1x3zc6kc97j4jqn2v5nhk6yb3z3cpfrhzi9j50")) + (base32 "1kzdfmwpzy64cgqlkcz5v4klwx99w0jk7afckyf7yqbqb4rydmpk")) (patches (search-patches "4store-unset-preprocessor-directive.patch" "4store-fix-buildsystem.patch")))) (build-system gnu-build-system) @@ -158,12 +166,6 @@ ("cyrus-sasl" ,cyrus-sasl) ("openssl" ,openssl) ("util-linux" ,util-linux))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'generate-configure - (lambda _ - (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") @@ -217,6 +219,68 @@ standard Go idioms.") (home-page "http://labix.org/mgo") (license license:bsd-2))) +(define-public ephemeralpg + (package + (name "ephemeralpg") + (version "2.8") + (source + (origin + (method url-fetch) + (uri (string-append + "http://eradman.com/ephemeralpg/code/ephemeralpg-" + version ".tar.gz")) + (sha256 + (base32 "1dpfxsd8a52psx3zlfbqkw53m35w28qwyb87a8anz143x6gnkkr4")))) + (build-system gnu-build-system) + (arguments + '(#:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + ;; The intention for one test is to test without PostgreSQL on + ;; the $PATH, so replace the test $PATH with just the util-linux + ;; bin, which contains getopt. It will hopefully be possible to + ;; remove this for releases after 2.8. + (substitute* "test.rb" + (("/bin:/usr/bin") + (string-append (assoc-ref inputs "util-linux") + "/bin"))) + ;; Set the LC_ALL=C as some tests use sort, and the locale + ;; affects the order. It will hopefully be possible to remove + ;; this for releases after 2.8. + (setenv "LC_ALL" "C") + (invoke "ruby" "test.rb") + #t)) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/pg_tmp") + `("PATH" ":" prefix + (,(string-append (assoc-ref inputs "util-linux") + "/bin") + ,(string-append (assoc-ref inputs "postgresql") + "/bin") + ;; For getsocket + ,(string-append out "/bin"))))) + #t))))) + (inputs + `(("postgresql" ,postgresql) + ("util-linux" ,util-linux))) + (native-inputs + `(("ruby" ,ruby))) + (home-page "http://eradman.com/ephemeralpg/") + (synopsis "Run temporary PostgreSQL databases") + (description + "@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks +like running software test suites. Temporary databases created with +@code{pg_tmp} have a limited shared memory footprint and are automatically +garbage-collected after a configurable number of seconds (the default is +60).") + (license license:isc))) + (define-public es-dump-restore (package (name "es-dump-restore") @@ -263,7 +327,7 @@ ElasticSearch server") `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DLEVELDB_BUILD_TESTS=ON"))) (inputs `(("snappy" ,snappy))) - (home-page "http://leveldb.org/") + (home-page "https://github.com/google/leveldb") (synopsis "Fast key-value storage library") (description "LevelDB is a fast key-value storage library that provides an ordered @@ -273,14 +337,14 @@ mapping from string keys to string values.") (define-public memcached (package (name "memcached") - (version "1.5.16") + (version "1.5.20") (source (origin (method url-fetch) (uri (string-append "https://memcached.org/files/memcached-" version ".tar.gz")) (sha256 - (base32 "0nnccb697jhdn5gqrh3phibzs6xr4nf4ryv7nmyv5vf11n4jr8j5")))) + (base32 "1r511qr95q0ywdaql3pdjiwzkfqxhhfzb13ilvl7mznfm4iv1myg")))) (build-system gnu-build-system) (inputs `(("libevent" ,libevent) @@ -378,14 +442,13 @@ the API, and provides features such as: (define-public python-pylibmc (package (name "python-pylibmc") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (pypi-uri "pylibmc" version)) (sha256 - (base32 - "1n6nvvhl0g52gpzzwdj1my6049xljkfwyxxygnwda9smrbj7pyay")))) + (base32 "1sg7d9j0v6g3xg3finf4l1hb72c13vcyyi6rqrc9shbx903d93ca")))) (build-system python-build-system) (arguments '(#:phases @@ -401,10 +464,8 @@ the API, and provides features such as: `(("libmemcached" ,libmemcached) ("zlib" ,zlib) ("cyrus-sasl" ,cyrus-sasl))) - (home-page - "http://sendapatch.se/projects/pylibmc/") - (synopsis - "Python client for memcached") + (home-page "http://sendapatch.se/projects/pylibmc/") + (synopsis "Python client for memcached") (description "@code{pylibmc} is a client in Python for memcached. It is a wrapper around TangentOrg’s libmemcached library, and can be used as a drop-in @@ -440,7 +501,7 @@ replacement for the code@{python-memcached} library.") (search-patch "mongodb-support-unknown-linux-distributions.patch"))))) (build-system scons-build-system) (inputs - `(("openssl" ,openssl) + `(("openssl" ,openssl-1.0) ("pcre" ,pcre) ,@(match (%current-system) ((or "x86_64-linux" "aarch64-linux" "mips64el-linux") @@ -480,6 +541,15 @@ replacement for the code@{python-memcached} library.") ,(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 @@ -547,7 +617,7 @@ RDBMS systems (which are deep in functionality).") (define-public mysql (package (name "mysql") - (version "5.7.23") + (version "5.7.27") (source (origin (method url-fetch) (uri (list (string-append @@ -559,7 +629,7 @@ RDBMS systems (which are deep in functionality).") name "-" version ".tar.gz"))) (sha256 (base32 - "0rbc3xsc11lq2dm0ip6gxa16c06hi74scb97x5cw7yhbabaz4c07")))) + "1fhv16zr46pxm1j8vb8x8mh3nwzglg01arz8gnazbmjqldr5idpq")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -596,12 +666,15 @@ RDBMS systems (which are deep in functionality).") #t)))))) (native-inputs `(("bison" ,bison) - ("perl" ,perl))) + ("perl" ,perl) + ("pkg-config" ,pkg-config))) (inputs `(("boost" ,boost-for-mysql) ("libaio" ,libaio) + ("libtirpc" ,libtirpc) ("ncurses" ,ncurses) ("openssl" ,openssl) + ("rpcsvc-proto" ,rpcsvc-proto) ; rpcgen ("zlib" ,zlib))) (home-page "https://www.mysql.com/") (synopsis "Fast, easy to use, and popular database") @@ -614,15 +687,15 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.1.40") + (version "10.1.43") (source (origin (method url-fetch) - (uri (string-append "https://downloads.mariadb.org/f/" - name "-" version "/source/" - name "-" version ".tar.gz")) + (uri (string-append "https://downloads.mariadb.com/MariaDB" + "/mariadb-" version "/source/mariadb-" + version ".tar.gz")) (sha256 (base32 - "19375bnq0yg52kqh6cy00s5rglcxdrs5bb2hy7dqv2xqa9z7lxci")) + "1pxyq37q4p7515by7k8hs3l3css68f3bm3akx99vw4m1rxwwbm63")) (patches (search-patches "mariadb-client-test-32bit.patch")) (modules '((guix build utils))) (snippet @@ -645,9 +718,11 @@ Language.") (find-files "pcre") (find-files "zlib"))) #t)))) (build-system cmake-build-system) + (outputs '("out" "lib" "dev")) (arguments `(#:configure-flags - '("-DBUILD_CONFIG=mysql_release" + (list + "-DBUILD_CONFIG=mysql_release" ;; Linking with libarchive fails, like this: ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o): @@ -657,6 +732,10 @@ Language.") ;; For now, disable the features that that use libarchive (xtrabackup). "-DWITH_LIBARCHIVE=OFF" + ;; Disable the TokuDB engine, because its test suite frequently fails, + ;; and loading it crashes the server: . + "-DTOKUDB_OK=OFF" + ;; Ensure the system libraries are used. "-DWITH_JEMALLOC=yes" "-DWITH_PCRE=system" @@ -667,15 +746,26 @@ Language.") "-DDEFAULT_COLLATION=utf8_general_ci" "-DMYSQL_DATADIR=/var/lib/mysql" "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock" - "-DINSTALL_INFODIR=share/mysql/docs" - "-DINSTALL_MANDIR=share/man" + (string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "lib")) + (string-append "-DCMAKE_INSTALL_RPATH=" (assoc-ref %outputs "lib") + "/lib") + (string-append "-DINSTALL_INFODIR=" (assoc-ref %outputs "out") + "/share/mysql/docs") + (string-append "-DINSTALL_MANDIR=" (assoc-ref %outputs "out") + "/share/man") + (string-append "-DINSTALL_SCRIPTDIR=" (assoc-ref %outputs "out") "/bin") + (string-append "-DINSTALL_BINDIR=" (assoc-ref %outputs "out") "/bin") + "-DCMAKE_INSTALL_LIBDIR=lib" "-DINSTALL_PLUGINDIR=lib/mysql/plugin" - "-DINSTALL_SCRIPTDIR=bin" - "-DINSTALL_INCLUDEDIR=include/mysql" - "-DINSTALL_DOCREADMEDIR=share/mysql/docs" - "-DINSTALL_SUPPORTFILESDIR=share/mysql/support-files" + (string-append "-DINSTALL_INCLUDEDIR=" (assoc-ref %outputs "dev") + "/include/mysql") + (string-append "-DINSTALL_DOCREADMEDIR=" (assoc-ref %outputs "out") + "/share/mysql/docs") + (string-append "-DINSTALL_DOCDIR=" (assoc-ref %outputs "out") + "/share/mysql/docs") + (string-append "-DINSTALL_SUPPORTFILESDIR=" (assoc-ref %outputs "out") + "/share/mysql/support-files") "-DINSTALL_MYSQLSHAREDIR=share/mysql" - "-DINSTALL_DOCDIR=share/mysql/docs" "-DINSTALL_SHAREDIR=share") #:phases (modify-phases %standard-phases @@ -704,9 +794,6 @@ Language.") ;; 2030-12-31. See for details. "main.mysqldump" - ;; XXX: Fails sporadically. - "innodb_fts.crash_recovery" - ;; FIXME: This test fails on i686: ;; -myisampack: Can't create/write to file (Errcode: 17 "File exists") ;; +myisampack: Can't create/write to file (Errcode: 17 "File exists) @@ -729,6 +816,12 @@ Language.") disabled-tests) (close-port unstable-tests) + ;; XXX: This test fails because it expects a latin1 charset and + ;; collation. See . + (substitute* "mysql-test/r/gis_notembedded.result" + (("latin1_swedish_ci") "utf8_general_ci") + (("\tlatin1") "\tutf8")) + (substitute* "mysql-test/mysql-test-run.pl" (("/bin/ls") (which "ls")) (("/bin/sh") (which "sh"))) @@ -759,37 +852,58 @@ Language.") #t)) (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (test (assoc-ref outputs "test"))) + (dev (assoc-ref outputs "dev")) + (lib (assoc-ref outputs "lib")) + (openssl (assoc-ref inputs "openssl"))) (substitute* (string-append out "/bin/mysql_install_db") (("basedir=\"\"") (string-append "basedir=\"" out "\""))) ;; Remove unneeded files for testing. - (with-directory-excursion out + (with-directory-excursion lib (for-each delete-file-recursively - '("data" "mysql-test" "sql-bench" - "share/man/man1/mysql-test-run.pl.1")) - ;; Delete huge and unnecessary executables. - (for-each delete-file (find-files "bin" "(test|embedded)")) + '("data" "mysql-test" "sql-bench")) ;; And static libraries. (for-each delete-file (find-files "lib" "\\.a$"))) + (with-directory-excursion out + (delete-file "share/man/man1/mysql-test-run.pl.1") + ;; Delete huge and unnecessary executables. + (for-each delete-file (find-files "bin" "(test|embedded)"))) + (mkdir-p (string-append dev "/share")) + (mkdir-p (string-append dev "/bin")) + (rename-file (string-append lib "/bin/mysqld") + (string-append out "/bin/mysqld")) + (rename-file (string-append lib "/share/pkgconfig") + (string-append dev "/share/pkgconfig")) + (rename-file (string-append out "/bin/mysql_config") + (string-append dev "/bin/mysql_config")) + + ;; Embed an absolute reference to OpenSSL in mysql_config + ;; and the pkg-config file to avoid propagation. + (substitute* (list (string-append dev "/bin/mysql_config") + (string-append dev "/share/pkgconfig/mariadb.pc")) + (("-lssl -lcrypto" all) + (string-append "-L" openssl "/lib " all))) + #t)))))) (native-inputs `(("bison" ,bison) + ;; XXX: On armhf, use GCC 5 to work around . + ,@(if (string-prefix? "armhf" (%current-system)) + `(("gcc", gcc-5)) + '()) ("perl" ,perl))) (inputs `(("jemalloc" ,jemalloc) ("libaio" ,libaio) ("libxml2" ,libxml2) ("ncurses" ,ncurses) + ("openssl" ,openssl-1.0) + ("pam" ,linux-pam) ("pcre" ,pcre) - ("snappy" ,snappy) ("xz" ,xz) ("zlib" ,zlib))) - (propagated-inputs - ;; mariadb.pc says -lssl -lcrypto, so propagate it. - `(("openssl" ,openssl-1.0))) ;; 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 @@ -800,18 +914,70 @@ Language.") as a drop-in replacement of MySQL.") (license license:gpl2))) +;; TODO: mysql_install_db is broken in MariaDB. This package is here as +;; a workaround for packages that need it. Merge with 'mariadb' in the next +;; rebuild cycle. +(define-public mariadb/fixed-install-db + (hidden-package + (package/inherit + mariadb + (name "mariadb-fixed") + (native-inputs '()) + (inputs + `(("mariadb" ,mariadb) + ("mariadb:lib" ,mariadb "lib"))) + (outputs '("out")) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules ((guix build utils))) + (let ((out (assoc-ref %outputs "out"))) + (copy-recursively (assoc-ref %build-inputs "mariadb") out) + (substitute* (string-append out "/bin/mysql_install_db") + (("\\$basedir/share/mysql") + (string-append (assoc-ref %build-inputs "mariadb:lib") + "/share/mysql"))) + #t))))))) + +(define-public mariadb-connector-c + (package + (name "mariadb-connector-c") + (version "3.1.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://downloads.mariadb.org/f/connector-c-" + version "/mariadb-connector-c-" + version "-src.tar.gz")) + (sha256 + (base32 + "083724f5daaqyzdcx508caz6fk2hs89jff85zg28ih43vxkvnrnj")))) + (inputs + `(("openssl" ,openssl))) + (build-system cmake-build-system) + (arguments + ;; No tests. + '(#:tests? #f)) + (home-page "https://mariadb.com/kb/en/mariadb-connector-c/") + (synopsis "Client library to connect to MySQL or MariaDB") + (description "The MariaDB Connector/C is used to connect applications +developed in C/C++ to MariaDB and MySQL databases.") + (license license:lgpl2.1+))) + ;; Don't forget to update the other postgresql packages when upgrading this one. (define-public postgresql (package (name "postgresql") - (version "10.8") + (version "10.11") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "0pfdmy4w95b49w9rkn8dwvzmi2brpqfvbxd04y0k0s0xvymc565i")) + "02fcmvbh0mhplj3s2jd24s642ysx7bggnf0h8bs5amh7dgzi8p8d")) (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (build-system gnu-build-system) (arguments @@ -851,27 +1017,27 @@ pictures, sounds, or video.") (package (inherit postgresql) (name "postgresql") - (version "11.4") + (version "11.6") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "12ycjlqncijgmd5z078ybwda8ilas96lc7nxxmdq140mzpgjv002")))))) + "0w1iq488kpzfgfnlw4k32lz5by695mpnkq461jrgsr99z5zlz4j9")))))) (define-public postgresql-9.6 (package (inherit postgresql) (name "postgresql") - (version "9.6.13") + (version "9.6.16") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "197964wb5pc5fx81a6mh9hlcrr9sgr3nqlpmljv6asi9aq0d5gpc")))))) + "1rr2dgv4ams8r2lp13w85c77rkmzpb88fjlc28mvlw6zq2fblv2w")))))) (define-public python-pymysql (package @@ -987,7 +1153,7 @@ including field and record folding."))) (define-public rocksdb (package (name "rocksdb") - (version "5.18.3") + (version "6.5.2") (source (origin (method git-fetch) (uri (git-reference @@ -996,7 +1162,7 @@ including field and record folding."))) (file-name (git-file-name name version)) (sha256 (base32 - "1v2slmmr1dsgf8z0qcfg1y9x1al96859rg48b66p9nsawczd5zv9")) + "01f5lcrcr809jhkkvxhv743hwpcxszj4r30hy9qy1i0mvjky02vf")) (modules '((guix build utils))) (snippet '(begin @@ -1150,17 +1316,15 @@ for example from a shell script.") (define-public sqitch (package (name "sqitch") - (version "0.9999") + (version "1.0.0") (source (origin (method url-fetch) (uri (string-append - "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-" - version - ".tar.gz")) + "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v" + version ".tar.gz")) (sha256 - (base32 - "1cvj8grs3bzc4g7dw1zc26g4biv1frav18sq0fkvi2kk0q1aigzm")))) + (base32 "0p4wraqiscvwmmsvfqfy65blgsilwpvd9zj4d2zvm2xdx70ncr7l")))) (build-system perl-build-system) (arguments '(#:phases @@ -1204,7 +1368,6 @@ for example from a shell script.") ("perl-dbi" ,perl-dbi) ("perl-devel-stacktrace" ,perl-devel-stacktrace) ("perl-encode-locale" ,perl-encode-locale) - ("perl-file-homedir" ,perl-file-homedir) ("perl-hash-merge" ,perl-hash-merge) ("perl-ipc-run3" ,perl-ipc-run3) ("perl-ipc-system-simple" ,perl-ipc-system-simple) @@ -1267,14 +1430,14 @@ changes.") (define-public tdb (package (name "tdb") - (version "1.4.0") + (version "1.4.3") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/ftp/tdb/tdb-" version ".tar.gz")) (sha256 (base32 - "0d9d2f1c83gmmq30bkfs50yb8399mr9xjjzscma4kyq0ajf75861")))) + "06waz0k50c7v3chd08mzp2rv7w4k4q9isbxx3vhlfpx1vy9q61f8")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1538,7 +1701,8 @@ columns, primary keys, unique constraints and relationships.") #:tests? #f)) (propagated-inputs `(("perl-dbi" ,perl-dbi) - ("mysql" ,mariadb))) + ("mysql" ,mariadb "lib") + ("mysql-dev" ,mariadb "dev"))) (home-page "https://metacpan.org/release/DBD-mysql") (synopsis "DBI MySQL interface") (description "This package provides a MySQL driver for the Perl5 @@ -1719,14 +1883,14 @@ similar to BerkeleyDB, LevelDB, etc.") (define-public redis (package (name "redis") - (version "4.0.10") + (version "5.0.7") (source (origin (method url-fetch) (uri (string-append "http://download.redis.io/releases/redis-" version".tar.gz")) (sha256 (base32 - "194cydhv3hf4v95ifvjvsqrs4jn3ffrkg5lvxj5d3y04lwsp9dhx")))) + "0ax8sf3vw0yadr41kzc04917scrg5wir1d94zmbz00b8pzm79nv1")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; tests related to master/slave and replication fail @@ -1926,7 +2090,7 @@ database.") (define-public lmdb (package (name "lmdb") - (version "0.9.23") + (version "0.9.24") (source (origin (method git-fetch) @@ -1935,7 +2099,7 @@ database.") (commit (string-append "LMDB_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ag7l5180ajvm73y59m7sn3p52xm8m972d08cshxhpwgwa4v35k6")))) + (base32 "088q6m8fvr12w43s461h7cvpg5hj8csaqj6n9pci150dz7bk5lxm")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -2104,20 +2268,19 @@ for ODBC.") (define-public python-pyodbc (package (name "python-pyodbc") - (version "4.0.26") + (version "4.0.27") (source (origin (method url-fetch) (uri (pypi-uri "pyodbc" version)) (sha256 - (base32 "1qrxnf7ji5hml7z4y669k4wmk3iz2pcsr05bnn1n912asash09z5")) + (base32 "1kd2i7hc1330cli72vawzby17c3039cqn1aba4i0zrjnpghjhmib")) (file-name (string-append name "-" version ".tar.gz")))) (build-system python-build-system) (inputs `(("unixodbc" ,unixodbc))) (arguments - `(;; No unit tests exist. - #:tests? #f)) + `(#:tests? #f)) ; no unit tests exist (home-page "https://github.com/mkleehammer/pyodbc") (synopsis "Python ODBC Library") (description "@code{python-pyodbc} provides a Python DB-API driver @@ -2282,7 +2445,7 @@ implementation for Python.") #:configure-flags '("--without-internal-zlib" "--with-readline"))) (inputs - `(("openssl" ,openssl) + `(("openssl" ,openssl-1.0) ("net-tools" ,net-tools) ("readline" ,readline) ("zlib" ,zlib))) @@ -2434,14 +2597,14 @@ You might also want to install the following optional dependencies: (define-public python-alembic (package (name "python-alembic") - (version "1.0.10") + (version "1.0.11") (source (origin (method url-fetch) (uri (pypi-uri "alembic" version)) (sha256 (base32 - "1dwl0264r6ri2jyrjr68am04x538ab26xwy4crqjnnhm4alwm3c2")))) + "1k5hag0vahd5vrf9abx8fdj2whrwaw2iq2yp736mmxnbsn5xkdyd")))) (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock) @@ -2452,8 +2615,7 @@ You might also want to install the following optional dependencies: ("python-mako" ,python-mako) ("python-editor" ,python-editor))) (home-page "https://bitbucket.org/zzzeek/alembic") - (synopsis - "Database migration tool for SQLAlchemy") + (synopsis "Database migration tool for SQLAlchemy") (description "Alembic is a lightweight database migration tool for usage with the SQLAlchemy Database Toolkit for Python.") @@ -2503,17 +2665,18 @@ PickleShare.") (define-public python-apsw (package (name "python-apsw") - (version "3.20.1-r1") + (version "3.28.0-r1") (source (origin (method url-fetch) - (uri (string-append "https://github.com/rogerbinns/apsw/archive/" - version ".tar.gz")) - (file-name (string-append "apsw-" version ".tar.gz")) + (uri (string-append "https://github.com/rogerbinns/apsw/releases" + "/download/" version "/apsw-" version ".zip")) (sha256 (base32 - "00ai7m2pqi26qaflhz314d8k5i3syw7xzr145fhfl0crhyh6adz2")))) + "0x62534l5hcgwrc4k2gxpdzc1sxlhm6m4nwlay74rnmr77qh8wly")))) (build-system python-build-system) + (native-inputs + `(("unzip" ,unzip))) (inputs `(("sqlite" ,sqlite))) (arguments @@ -2528,8 +2691,7 @@ PickleShare.") (invoke "gcc" "-fPIC" "-shared" "-o" "./testextension.sqlext" "-I." "-Isqlite3" "src/testextension.c") #t)) - (delete 'check) - (add-after 'install 'check + (replace 'check (lambda* (#:key inputs outputs #:allow-other-keys) (add-installed-pythonpath inputs outputs) (invoke "python" "setup.py" "test") @@ -2658,7 +2820,8 @@ database).") ("mock" ,python-mock) ("py.test" ,python-pytest))) (inputs - `(("mysql" ,mariadb) + `(("mysql" ,mariadb "lib") + ("mysql-dev" ,mariadb "dev") ("libz" ,zlib) ("openssl" ,openssl))) (home-page "https://github.com/PyMySQL/mysqlclient-python") @@ -2732,13 +2895,13 @@ reasonable substitute.") (define-public python-redis (package (name "python-redis") - (version "3.2.1") + (version "3.3.8") (source (origin (method url-fetch) (uri (pypi-uri "redis" version)) (sha256 - (base32 "0wwj8il4c3aff15xwwcjfci367zxsakq05ps1a2il6yavp91i94c")))) + (base32 "0fyxzqax7lcwzwhvnz0i0q6v62hxyv1mv52ywx3bpff9a2vjz8lq")))) (build-system python-build-system) ;; Tests require a running Redis server. (arguments '(#:tests? #f)) @@ -2934,7 +3097,7 @@ transforms idiomatic python function calls to well-formed SQL queries.") (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-ssh-terminal" ,go-golang.org-x-crypto-ssh-terminal) + ("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) @@ -3080,3 +3243,117 @@ NumPy, and other traditional Python scientific computing packages.") (define-public python2-pyarrow (package-with-python2 python-pyarrow)) + +(define-public python-crate + (package + (name "python-crate") + (version "0.23.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "crate" version)) + (sha256 + (base32 + "0ngmlvi320c5gsxab0s7qgq0ck4jdlcwvb6lbjhnfprafdp56vvx")))) + (build-system python-build-system) + (propagated-inputs + `(("python-urllib3" ,python-urllib3))) + (home-page "https://github.com/crate/crate-python") + (synopsis "CrateDB Python client") + (description + "This package provides a Python client library for CrateDB. +It implements the Python DB API 2.0 specification and includes support for +SQLAlchemy.") + (license license:asl2.0))) + +(define-public libdbi + (package + (name "libdbi") + (version "0.9.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libdbi/libdbi/libdbi-" + version "/libdbi-" version ".tar.gz")) + (sha256 + (base32 + "00s5ra7hdlq25iv23nwf4h1v3kmbiyzx0v9bhggjiii4lpf6ryys")))) + (build-system gnu-build-system) + (synopsis "Database independent abstraction layer in C") + (description + "This library implements a database independent abstraction layer in C, +similar to the DBI/DBD layer in Perl. Writing one generic set of code, +programmers can leverage the power of multiple databases and multiple +simultaneous database connections by using this framework.") + (home-page "http://libdbi.sourceforge.net/") + (license license:lgpl2.1+))) + +(define-public libdbi-drivers + (package + (name "libdbi-drivers") + (version "0.9.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libdbi-drivers/" + "libdbi-drivers/libdbi-drivers-" version + "/libdbi-drivers-" version ".tar.gz")) + (sha256 + (base32 + "0m680h8cc4428xin4p733azysamzgzcmv4psjvraykrsaz6ymlj3")))) + (build-system gnu-build-system) + (native-inputs + `(;; For tests. + ("inetutils" ,inetutils) + ("glibc-locales" ,glibc-locales) + ("mariadb" ,mariadb/fixed-install-db))) + (inputs + `(("libdbi" ,libdbi) + ("mariadb:dev" ,mariadb "dev") + ("mariadb:lib" ,mariadb "lib") + ("postgresql" ,postgresql) + ("sqlite" ,sqlite))) + (arguments + `(#:configure-flags + (let ((libdbi (assoc-ref %build-inputs "libdbi")) + (mysql:inc (assoc-ref %build-inputs "mariadb:dev")) + (mysql:lib (assoc-ref %build-inputs "mariadb:lib")) + (postgresql (assoc-ref %build-inputs "postgresql")) + (sqlite (assoc-ref %build-inputs "sqlite"))) + (list "--disable-docs" + (string-append "--with-dbi-incdir=" libdbi "/include") + (string-append "--with-dbi-libdir=" libdbi "/lib") + "--with-mysql" + (string-append "--with-mysql-incdir=" mysql:inc "/include/mysql") + (string-append "--with-mysql-libdir=" mysql:lib "/lib") + "--with-pgsql" + (string-append "--with-pgsql-incdir=" postgresql "/include") + (string-append "--with-pgsql-libdir=" postgresql "/lib") + "--with-sqlite3" + (string-append "--with-sqlite-incdir=" sqlite "/include") + (string-append "--with-sqlite-libdir=" sqlite "/lib"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tests/test_mysql.sh" + (("^MYMYSQLD=.*") + (string-append "MYMYSQLD=" + (assoc-ref inputs "mariadb") + "/bin/mysqld"))) + #t)) + (add-after 'install 'remove-empty-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((var (string-append (assoc-ref outputs "out") "/var"))) + (delete-file-recursively var)) + #t))))) + (synopsis "Database drivers for the libdbi framework") + (description + "The @code{libdbi-drivers} library provides the database specific drivers +for the @code{libdbi} framework. + +The drivers officially supported by @code{libdbi} are: +@itemize +@item MySQL, +@item PostgreSQL, +@item SQLite. +@end itemize") + (home-page "http://libdbi-drivers.sourceforge.net/") + (license license:lgpl2.1+)))