;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; 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>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
- #:use-module (gnu packages guile)
- #:use-module (gnu packages time)
#:use-module (gnu packages golang)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages language)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages lisp)
+ #:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages logging)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages protobuf)
#: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-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
#:use-module (gnu packages textutils)
+ #:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages web)
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")
(define-public memcached
(package
(name "memcached")
- (version "1.5.20")
+ (version "1.6.9")
(source
(origin
(method url-fetch)
(uri (string-append
"https://memcached.org/files/memcached-" version ".tar.gz"))
(sha256
- (base32 "1r511qr95q0ywdaql3pdjiwzkfqxhhfzb13ilvl7mznfm4iv1myg"))))
+ (base32 "1lcjy1b9krnb2gk72qd1fvivlfiyfvknfi3wngyvyk9ifzijr9nm"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)
("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
(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/")))
;; 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
(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")
(define-public mysql
(package
(name "mysql")
- (version "5.7.27")
+ (version "5.7.33")
(source (origin
(method url-fetch)
(uri (list (string-append
name "-" version ".tar.gz")))
(sha256
(base32
- "1fhv16zr46pxm1j8vb8x8mh3nwzglg01arz8gnazbmjqldr5idpq"))))
+ "1bb343mf7n0qg2qz497gxjsqprygrjz1q1pbz76hgqxnsy08sfxd"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(define-public mariadb
(package
(name "mariadb")
- (version "10.5.6")
+ (version "10.5.8")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.com/MariaDB"
version ".tar.gz"))
(sha256
(base32
- "1i257h0zdypdfj5wkg6ck9pxlkph0jvjs92k22pjr6gnx5lxs1gz"))
+ "1s3vfm73911cddjhgpcbkya6nz7ag2zygg56qqzwscn5ybv28j7b"))
(modules '((guix build utils)))
(snippet
'(begin
(append (find-files "extra/wolfssl")
(find-files "zlib")))
#t))))
+ (replacement mariadb/fixed)
(build-system cmake-build-system)
(outputs '("out" "lib" "dev"))
(arguments
"-DDEFAULT_COLLATION=utf8_general_ci"
"-DMYSQL_DATADIR=/var/lib/mysql"
"-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
+
+ ;; Do not install the benchmark suite.
+ "-DINSTALL_SQLBENCHDIR=false"
+
(string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "lib"))
(string-append "-DCMAKE_INSTALL_RPATH=" (assoc-ref %outputs "lib")
"/lib")
;; to other variables such as $INSTALL_INCLUDEDIR, which does
;; not work when the latter uses an absolute file name.
(substitute* "libmariadb/mariadb_config/mariadb_config.c.in"
- (("@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@")
- "@INSTALL_INCLUDEDIR@"))
+ (("%s/@INSTALL_INCLUDEDIR@")
+ (string-append "@INSTALL_INCLUDEDIR@"))
+ ;; As of 10.5.8, the mariadb_config program tries to be
+ ;; clever and computes the installation directory relative
+ ;; to /proc/self/exe when running on Linux. Make it fall
+ ;; back to the old behaviour.
+ (("defined\\(__linux__\\)")
+ "0"))
(substitute* "libmariadb/mariadb_config/libmariadb.pc.in"
(("\\$\\{prefix\\}/@INSTALL_INCLUDEDIR@")
"@INSTALL_INCLUDEDIR@"))
+ (substitute* "support-files/mariadb.pc.in"
+ (("^(include|bin|script|doc|man)dir=\\$\\{prefix\\}/" _ dir)
+ (string-append dir "dir=")))
(substitute* "include/CMakeLists.txt"
(("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}")
"${INSTALL_INCLUDEDIR}"))
+ (substitute* "cmake/mariadb_connector_c.cmake"
+ (("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_BINDIR\\}")
+ "${INSTALL_BINDIR}"))
#t))
(add-after 'unpack 'adjust-tests
(lambda _
"main.explain_non_select"
"main.stat_tables"
"main.stat_tables_innodb"
+ "main.upgrade_MDEV-19650"
"roles.acl_statistics"
+ ;; FIXME: This test checks various table encodings and
+ ;; fails because Guix defaults to UTF8 instead of the
+ ;; upstream default latin1_swedish_ci. It's not easily
+ ;; substitutable because several encodings are tested.
+ "main.sp2"
+
+ ;; XXX: This test occasionally fails on i686-linux:
+ ;; <https://jira.mariadb.org/browse/MDEV-24458>
+ ,@(if (string-prefix? "i686" (%current-system))
+ '("main.myisampack")
+ '())
+
;; This file contains a time bomb which makes it fail after
;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
"main.mysqldump"))
(("\\$basedir/share/mysql")
(string-append lib "/share/mysql")))
- ;; Remove unneeded files for testing.
(with-directory-excursion lib
- (for-each delete-file-recursively
- '("mysql-test" "sql-bench"))
- ;; And static libraries.
+ ;; Remove tests.
+ (delete-file-recursively "mysql-test")
+ ;; Remove 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.
as a drop-in replacement of MySQL.")
(license license:gpl2)))
+(define mariadb/fixed
+ (package
+ (inherit mariadb)
+ (source (origin
+ (inherit (package-source mariadb))
+ (patches (search-patches "mariadb-CVE-2021-27928.patch"))))))
+
(define-public mariadb-connector-c
(package
(name "mariadb-connector-c")
- (version "3.1.11")
+ (version "3.1.12")
(source
(origin
(method url-fetch)
"https://downloads.mariadb.org/f/connector-c-" version
"/mariadb-connector-c-" version "-src.tar.gz"
"/from/https%3A//mirrors.ukfast.co.uk/sites/mariadb/?serve"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "03svzahdf7czjlm695c11r4bfd04qdqgx8r1vkpr1zlkjhwnqvry"))))
+ (base32 "0qzyahr8x9l1xz0l79wz3iahxz7648n1azc5yr7kx0dl113y2nig"))))
(inputs
`(("openssl" ,openssl)))
(build-system cmake-build-system)
developed in C/C++ to MariaDB and MySQL databases.")
(license license:lgpl2.1+)))
+(define-public galera
+ (package
+ (name "galera")
+ (version "26.4.7")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (commit "bac8171266cb982fe013ce496d78085438c6f23e")
+ (url "https://github.com/codership/galera")
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0h7s670pcasq8wzprhyxqfca2cghi62b8xz2kikb2a86wd453qil"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("check" ,check)
+ ("boost" ,boost)
+ ("openssl" ,openssl)))
+ (home-page "https://github.com/codership/galera/")
+ (synopsis "Extension to the MariaDB database server")
+ (description
+ "Galera is a wsrep-provider that is used with MariaDB for load-balancing
+and high-availability (HA).")
+ (license license:gpl2))) ;'COPYING' says "version 2" only
+
;; Don't forget to update the other postgresql packages when upgrading this one.
-(define-public postgresql
+(define-public postgresql-13
(package
(name "postgresql")
- (version "10.13")
+ (replacement postgresql-13.2)
+ (version "13.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1qal0yp7a90yzya7hl56gsmw5fvacplrdhpn7h9gnbyr1i2iyw2d"))
+ "07z6zwr58dckaa97yl9ml240z83d1lhgaxw9aq49i8lsp21mqd0j"))
(patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl")
+ `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl"
+ ;; PostgreSQL installs its own Makefile (should it?).
+ ;; Prevent it from retaining needless references to
+ ;; the build tools in order to save size.
+ "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c"
+ "LD=ld" "TAR=tar")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-/bin/sh
pictures, sounds, or video.")
(license (license:x11-style "file://COPYRIGHT"))))
-(define-public postgresql-10 postgresql)
-
-(define-public postgresql-13
+(define-public postgresql-13.2
(package
- (inherit postgresql)
- (version "13.1")
+ (inherit postgresql-13)
+ (name "postgresql")
+ (version "13.2")
(source (origin
- (inherit (package-source postgresql))
+ (method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "07z6zwr58dckaa97yl9ml240z83d1lhgaxw9aq49i8lsp21mqd0j"))))))
+ "1z5d847jnajcfr3wa6jn52a8xjhamvwzmz18xlm5nvxqip8grmsz"))
+ (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))))
(define-public postgresql-11
(package
- (inherit postgresql)
+ (inherit postgresql-13)
(name "postgresql")
- (version "11.6")
+ (version "11.11")
(source (origin
- (method url-fetch)
+ (inherit (package-source postgresql-13))
+ (uri (string-append "https://ftp.postgresql.org/pub/source/v"
+ version "/postgresql-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0v0qk298nxmpzpgsxcsxma328hdkyzd7fwjs0zsn6zavl5zpnq20"))))))
+
+(define-public postgresql-10
+ (package
+ (inherit postgresql-11)
+ (version "10.16")
+ (source (origin
+ (inherit (package-source postgresql-11))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "0w1iq488kpzfgfnlw4k32lz5by695mpnkq461jrgsr99z5zlz4j9"))))))
+ "1cvv8qw0gkkczqhiwx6ns7w88dwkvdz4cvb2d4ff14363f5p2p53"))))))
(define-public postgresql-9.6
(package
- (inherit postgresql)
- (name "postgresql")
- (version "9.6.16")
+ (inherit postgresql-10)
+ (version "9.6.21")
(source (origin
- (method url-fetch)
+ (inherit (package-source postgresql-10))
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "1rr2dgv4ams8r2lp13w85c77rkmzpb88fjlc28mvlw6zq2fblv2w"))))))
+ "0d0ngpadf1i7c0i2psaxcbmiwx8334ibcsn283n9fp4853pyl3wk"))))))
+
+(define-public postgresql postgresql-13)
+
+(define-public pgloader
+ (package
+ (name "pgloader")
+ (version "3.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dimitri/pgloader")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "06i1jd2za3ih5caj2b4vzlzags5j65vv8dfdbz0ggdrp40wfd5lh"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; NOTE: (Sharlatan-20210119T211511+0000) Tests are disabled due to being
+ ;; dependent on Quicklisp, main build target is `pgloader-standalone' which
+ ;; does not require Quicklisp workarounds. There is no `install' target
+ ;; configured in Makefile.
+ `(#:tests? #f
+ #:strip-binaries? #f
+ #:make-flags
+ (list "pgloader-standalone" "BUILDAPP_SBCL=buildapp")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'set-home
+ (lambda _
+ (setenv "HOME" "/tmp")
+ #t))
+ (add-after 'unpack 'patch-Makefile
+ (lambda _
+ (substitute* "Makefile"
+ (("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n"))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+ (mkdir-p bin)
+ (install-file "build/bin/pgloader" bin))
+ #t)))))
+ (native-inputs
+ `(("buildapp" ,buildapp)
+ ("sbcl" ,sbcl)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-abnf" ,sbcl-cl-abnf)
+ ("cl-base64" ,sbcl-cl-base64)
+ ("cl-csv" ,sbcl-cl-csv)
+ ("cl-fad" ,sbcl-cl-fad)
+ ("cl-log" ,sbcl-cl-log)
+ ("cl-markdown" ,sbcl-cl-markdown)
+ ("cl-mustache" ,sbcl-cl-mustache)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("cl-sqlite" ,sbcl-cl-sqlite)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("command-line-arguments" ,sbcl-command-line-arguments)
+ ("db3" ,sbcl-db3)
+ ("drakma" ,sbcl-drakma)
+ ("esrap" ,sbcl-esrap)
+ ("flexi-streams" ,sbcl-flexi-streams)
+ ("ixf" ,sbcl-ixf)
+ ("local-time" ,sbcl-local-time)
+ ("lparallel" ,sbcl-lparallel)
+ ("metabang-bind" ,sbcl-metabang-bind)
+ ("mssql" ,sbcl-mssql)
+ ("postmodern" ,sbcl-postmodern)
+ ("py-configparser" ,sbcl-py-configparser)
+ ("qmynd" ,sbcl-qmynd)
+ ("quri" ,sbcl-quri)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("trivial-backtrace" ,sbcl-trivial-backtrace)
+ ("usocket" ,sbcl-usocket)
+ ("uuid" ,sbcl-uuid)
+ ("yason" ,sbcl-yason)
+ ("zs3" ,sbcl-zs3)))
+ (home-page "https://pgloader.io/")
+ (synopsis "Tool to migrate data to PostgreSQL")
+ (description
+ "@code{pgloader} is a program that can load data or migrate databases from
+CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.")
+ (license (license:x11-style "file://LICENSE"))))
(define-public python-pymysql
(package
;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
(home-page "http://www.unixodbc.org")))
+(define-public nanodbc
+ (package
+ (name "nanodbc")
+ (version "2.13.0")
+ (source (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/nanodbc/nanodbc")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1q80p7yv9mcl4hyvnvcjdr70y8nc940ypf368lp97vpqn5yckkgm"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ ;; The tests require ODBC backends to be installed.
+ (list "-DNANODBC_DISABLE_TESTS=ON")
+ #:tests? #false))
+ (inputs
+ `(("unixodbc" ,unixodbc)))
+ (home-page "https://nanodbc.io/")
+ (synopsis "C++ wrapper for the native C ODBC API")
+ (description "The goal for nanodbc is to make developers happy by providing
+a simpler and less verbose API for working with ODBC. Common tasks should be
+easy, requiring concise and simple code.")
+ (license license:expat)))
+
(define-public unqlite
(package
(name "unqlite")
(define-public redis
(package
(name "redis")
- (version "5.0.7")
+ (version "6.0.11")
(source (origin
(method url-fetch)
(uri (string-append "http://download.redis.io/releases/redis-"
version".tar.gz"))
(sha256
(base32
- "0ax8sf3vw0yadr41kzc04917scrg5wir1d94zmbz00b8pzm79nv1"))))
+ "0prwqap452m581nyc3cz642d1z3x9nd81896hlqdm3z8238z49y9"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Delete bundled jemalloc, as the package will use the libc one
+ '(begin (delete-file-recursively "deps/jemalloc")
+ #t))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("procps" ,procps) ; for tests
+ ("tcl" ,tcl))) ; for tests
(arguments
- '(#:tests? #f ; tests related to master/slave and replication fail
- #:phases (modify-phases %standard-phases
- (delete 'configure))
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'use-correct-tclsh
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "runtest"
+ (("^TCLSH=.*")
+ (string-append "TCLSH="
+ (assoc-ref inputs "tcl")
+ "/bin/tclsh")))
+ #t))
+ (add-after 'unpack 'adjust-tests
+ (lambda _
+ ;; Disable failing tests
+ (substitute* "tests/test_helper.tcl"
+ ((" integration/replication[^-]") "")
+ ((" integration/replication-4") "")
+ ((" integration/replication-psync") ""))
+ #t)))
#:make-flags `("CC=gcc"
"MALLOC=libc"
"LDFLAGS=-ldl"
(define-public kyotocabinet
(package
(name "kyotocabinet")
- (version "1.2.78")
+ (version "1.2.79")
(source (origin
(method url-fetch)
(uri (string-append "https://fallabs.com/kyotocabinet/pkg/"
"kyotocabinet-" version ".tar.gz"))
(sha256
(base32
- "1bxkf9kmcavq9rqridb8mvmrk3hj4447ffi24m2admsbm61n6k29"))))
+ "079ymsahlrijswgwfr2la9yw5h57l752cprhp5dz31iamsj1vyv7"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(define-public lmdb
(package
(name "lmdb")
- (version "0.9.27")
+ (version "0.9.28")
(source
(origin
(method git-fetch)
(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"
(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")
+ (("pytz>=2020\\.4,<2021\\.0") "pytz")
+ ;; Not required, since ciso8601 is used.
+ (("'iso8601>=0\\.1\\.13,<0\\.2\\.0',") ""))
+ #t)))))
(native-inputs
`(("python-asynctest" ,python-asynctest)
("python-nose2" ,python-nose2)))
`(("python-aiosqlite" ,python-aiosqlite)
("python-pypika" ,python-pypika)
("python-ciso8601" ,python-ciso8601)
+ ("python-pytz" ,python-pytz)
("python-typing-extensions"
,python-typing-extensions)))
(home-page
(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")
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")
(define-public python-pypika
(package
(name "python-pypika")
- (version "0.44.0")
+ (version "0.47.6")
(source
(origin (method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0mpddrw9z1pzcc40j3pzhd583hlgjx96aa8ak6m9zzhpm4bv3ard"))))
+ "001pg36sw9a36zdd1kccbymcxndphjcjbbrsy6ri7ng8h4dgz549"))))
(build-system python-build-system)
(native-inputs
`(("python-parameterized" ,python-parameterized)))
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
(package
(name "apache-arrow")
- (version "0.17.1")
+ (version "3.0.0")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "02r6yx3yhywzikd3b0vfkjgddhfiriyx2vpm3jf5880wq59x798a"))))
+ "03ngddh3r1g6f9aja2jlfksgvgyzmxmfy4bxvzjrcv5fvl5x8ii0"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f
;;"-DBENCHMARK_ENABLE_TESTING=OFF"
"-DARROW_BUILD_STATIC=OFF")))
(inputs
- `(("boost" ,boost)
+ `(("apache-thrift" ,apache-thrift "lib")
+ ("boost" ,boost)
("brotli" ,google-brotli)
+ ("bzip2" ,bzip2)
("double-conversion" ,double-conversion)
- ("snappy" ,snappy)
("gflags" ,gflags)
("glog" ,glog)
- ("apache-thrift" ,apache-thrift "lib")
+ ("grpc" ,grpc)
+ ("lz4" ,lz4)
("protobuf" ,protobuf)
+ ("python-3" ,python)
+ ("python-numpy" ,python-numpy)
("rapidjson" ,rapidjson)
- ("zlib" ,zlib)
- ("bzip2" ,bzip2)
- ("lz4" ,lz4)
- ("zstd" ,zstd "lib")
("re2" ,re2)
- ("grpc" ,grpc)
- ("python-3" ,python)
- ("python-numpy" ,python-numpy)))
+ ("snappy" ,snappy)
+ ("utf8proc" ,utf8proc)
+ ("zlib" ,zlib)
+ ("zstd" ,zstd "lib")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(outputs '("out" "lib" "include"))
other traditional Python scientific computing packages.")
(license license:asl2.0)))
-(define-public python2-pyarrow
- (package-with-python2 python-pyarrow))
-
(define-public python-crate
(package
(name "python-crate")
"--with-sqlite3"
(string-append "--with-sqlite-incdir=" sqlite "/include")
(string-append "--with-sqlite-libdir=" sqlite "/lib")))
+ #:tests? #f ; FIXME: Find why the tests get stuck forever.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(base32
"14x2gjblkgpflv75wl144cyjp1sis5rbxnr9r2gj3yw16v2av0bp"))))
(build-system cmake-build-system)
- (inputs
+ (propagated-inputs
+ ;; Headers of soci has include-references to headers of these inputs.
`(("firebird" ,firebird)
("postgresql" ,postgresql)
("sqlite" ,sqlite)
PostreSQL, SQLite, ODBC and MySQL.")
(home-page "http://soci.sourceforge.net/")
(license license:boost1.0)))
+
+(define-public freetds
+ (package
+ (name "freetds")
+ (version "1.2.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.freetds.org/files/stable/"
+ "freetds-" version ".tar.gz"))
+ (sha256
+ (base32 "11fzwcahc1bc8npxbif0448v9cwyf7k04167i7fcspmfw7a0hj0d"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; NOTE: (Sharlatan-20210110213908+0000) some tests require DB connection,
+ ;; disabled for now.
+ `(#:tests? #f))
+ (home-page "https://www.freetds.org/")
+ (synopsis "Client libraries for MS SQL and Sybase servers")
+ (description
+ "FreeTDS is an implementation of the Tabular DataStream protocol, used for
+connecting to MS SQL and Sybase servers over TCP/IP.")
+ (license license:lgpl2.0+)))