;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
+;;; Copyright © 2017, 2020 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 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 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;;
;;; This file is part of GNU Guix.
;;;
"@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 "http://labix.org/mgo")
+ (home-page "https://labix.org/mgo")
(license license:bsd-2)))
(define-public ephemeralpg
(package
(name "ephemeralpg")
- (version "2.8")
+ (version "3.0")
(source
(origin
(method url-fetch)
(uri (string-append
- "http://eradman.com/ephemeralpg/code/ephemeralpg-"
+ "https://eradman.com/ephemeralpg/code/ephemeralpg-"
version ".tar.gz"))
(sha256
- (base32 "1dpfxsd8a52psx3zlfbqkw53m35w28qwyb87a8anz143x6gnkkr4"))))
+ (base32 "1j0g7g114ma7y7sadbng5p1ss1zsm9zpicm77qspym6565733vvh"))))
(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))
+ (delete 'configure) ; no configure script
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
"/bin")
,(string-append (assoc-ref inputs "postgresql")
"/bin")
- ;; For getsocket
+ ;; For getsocket.
,(string-append out "/bin")))))
- #t)))))
+ #t)))
+ #:test-target "test"))
(inputs
`(("postgresql" ,postgresql)
("util-linux" ,util-linux)))
(native-inputs
- `(("ruby" ,ruby)))
- (home-page "http://eradman.com/ephemeralpg/")
+ ;; For tests.
+ `(("ruby" ,ruby)
+ ("which" ,which)))
+ (home-page "https://eradman.com/ephemeralpg/")
(synopsis "Run temporary PostgreSQL databases")
(description
"@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks
(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)
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1842s4dxdh21gdr46q4dgxigidcs6dkqnbnqjwb9l8r0bqx5nb10"))))
+ "1842s4dxdh21gdr46q4dgxigidcs6dkqnbnqjwb9l8r0bqx5nb10"))
+ (patches
+ (search-patches "libmemcached-build-with-gcc7.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("memcached" ,memcached)
("python" ,python-2)
("python2-pymongo" ,python2-pymongo)
("python2-pyyaml" ,python2-pyyaml)
- ("tzdata" ,tzdata)))
+ ("tzdata" ,tzdata-for-tests)))
(arguments
`(#:scons ,scons-python2
#:phases
(define-public mariadb
(package
(name "mariadb")
- (version "10.1.43")
+ (version "10.1.44")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.com/MariaDB"
version ".tar.gz"))
(sha256
(base32
- "1pxyq37q4p7515by7k8hs3l3css68f3bm3akx99vw4m1rxwwbm63"))
+ "0fah6d50hldq0farxwr8mj3jnniwdz0d1wsha07nx37fc79h7wi1"))
(patches (search-patches "mariadb-client-test-32bit.patch"))
(modules '((guix build utils)))
(snippet
;; See <https://jira.mariadb.org/browse/MDEV-7761>.
"main.join_cache"
"main.explain_non_select"
+ "main.stat_tables"
"main.stat_tables_innodb"
"roles.acl_statistics"
(("latin1_swedish_ci") "utf8_general_ci")
(("\tlatin1") "\tutf8"))
+ (substitute* "mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test"
+ (("/bin/bash")
+ (which "bash")))
+
(substitute* "mysql-test/mysql-test-run.pl"
(("/bin/ls") (which "ls"))
(("/bin/sh") (which "sh")))
(rename-file (string-append out "/bin/mysql_config")
(string-append dev "/bin/mysql_config"))
+
+ (substitute* (string-append out "/bin/mysql_install_db")
+ (("\\$basedir/share/mysql")
+ (string-append lib "/share/mysql")))
+
;; 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")
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")
(define-public postgresql
(package
(name "postgresql")
- (version "10.11")
+ (version "10.12")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
- "02fcmvbh0mhplj3s2jd24s642ysx7bggnf0h8bs5amh7dgzi8p8d"))
+ "1rsab4zf4rx7pvvhlwhb04kb95aiad9cwazc4ksbvg2gij47z3rq"))
(patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
(build-system gnu-build-system)
(arguments
"0gmpvhn02pkq280ffmn4da1g4mdr1xxz7l80b7y4n7km1mrzwrml"))))
(build-system gnu-build-system)
(arguments
- `( #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
- (assoc-ref %outputs "out")
- "/lib"))))
- (home-page "http://fallabs.com/qdbm")
+ `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out")
+ "/lib"))
+ #:make-flags (list "CFLAGS=-fPIC")))
+ (home-page "https://fallabs.com/qdbm/")
(synopsis "Key-value database")
(description "QDBM is a library of routines for managing a
database. The database is a simple data file containing key-value
(define-public rocksdb
(package
(name "rocksdb")
- (version "6.5.2")
+ (version "6.7.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "01f5lcrcr809jhkkvxhv743hwpcxszj4r30hy9qy1i0mvjky02vf"))
+ "19nacd7fb98i97ir07jjsk3l1vf7zzq04c4nqywizq8wakcx99s9"))
(modules '((guix build utils)))
(snippet
'(begin
("lz4" ,lz4)
("snappy" ,snappy)
("zlib" ,zlib)))
- (home-page "http://rocksdb.org/")
+ (home-page "https://rocksdb.org/")
(synopsis "Persistent key-value store for fast storage")
(description
"RocksDB is a library that forms the core building block for a fast
(name "sparql-query")
(version "1.1")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/tialaramex/"
- name "/archive/" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tialaramex/sparql-query")
+ (commit version)))
(sha256
- (base32 "0yq3k20472rv8npcc420q9ab6idy584g5y0q501d360k5q0ggr8w"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ (base32 "0a84a89idpjhj9w2y3fmvzv7ldps1cva1kxvfmh897k02kaniwxk"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
- `(("readline" ,readline)
- ("ncurses" ,ncurses)
+ `(("curl" ,curl)
("glib" ,glib)
("libxml2" ,libxml2)
- ("curl" ,curl)))
+ ("ncurses" ,ncurses)
+ ("readline" ,readline)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(arguments
"1sbpvhg15gadq0mpcy16q7k3rkg4b4dicpnn5xifpkpn02sqik3s"))))
(build-system gnu-build-system)
(arguments `(#:tests? #f)) ;No check target
- (home-page "http://www.unqlite.org")
+ (home-page "https://www.unqlite.org")
(synopsis "In-memory key/value and document store")
(description
"UnQLite is an in-process software library which implements a
(description "Redis is an advanced key-value cache and store. Redis
supports many data structures including strings, hashes, lists, sets, sorted
sets, bitmaps and hyperloglogs.")
- (home-page "http://redis.io/")
+ (home-page "https://redis.io/")
(license license:bsd-3)))
(define-public kyotocabinet
virtual address space — not physical RAM.")
(license license:openldap2.8)))
+(define-public lmdbxx
+ (package
+ (name "lmdbxx")
+ (version "0.9.14.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/drycpp/lmdbxx.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6"))))
+ (arguments
+ `(#:make-flags
+ (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (build-system gnu-build-system)
+ (inputs `(("lmdb" ,lmdb)))
+ (home-page "http://lmdbxx.sourceforge.net")
+ (synopsis "C++11 wrapper for the LMDB embedded B+ tree database library")
+ (description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the
+@code{LMDB} embedded database library, offering both an error-checked
+procedural interface and an object-oriented resource interface with RAII
+semantics.")
+ (license license:unlicense)))
+
(define-public libpqxx
(package
(name "libpqxx")
(define-public python2-peewee
(package-with-python2 python-peewee))
+(define-public python-tortoise-orm
+ (package
+ (name "python-tortoise-orm")
+ (version "0.16.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tortoise-orm" version))
+ (sha256
+ (base32
+ "0wr7p4v0b16ypm9fcpwpl99kf491m6w3jkd13xcsgq13fy73fbqc"))))
+ (build-system python-build-system)
+ ;; Disable tests for now. They pull in a lot of dependencies.
+ (arguments `(#:tests? #f))
+ (native-inputs
+ `(("python-asynctest" ,python-asynctest)
+ ("python-nose2" ,python-nose2)))
+ (propagated-inputs
+ `(("python-aiosqlite" ,python-aiosqlite)
+ ("python-pypika" ,python-pypika)
+ ("python-ciso8601" ,python-ciso8601)
+ ("python-typing-extensions"
+ ,python-typing-extensions)))
+ (home-page
+ "https://github.com/tortoise/tortoise-orm")
+ (synopsis
+ "Easy async ORM for python, built with relations in mind")
+ (description
+ "Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper)
+inspired by Django. Tortoise ORM was build with relations in mind and
+admiration for the excellent and popular Django ORM. It’s engraved in its
+design that you are working not with just tables, you work with relational
+data.")
+ (license license:asl2.0)))
+
(define-public sqlcipher
(package
(name "sqlcipher")
(define-public python-pyodbc
(package
(name "python-pyodbc")
- (version "4.0.27")
+ (version "4.0.30")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyodbc" version))
(sha256
- (base32 "1kd2i7hc1330cli72vawzby17c3039cqn1aba4i0zrjnpghjhmib"))
+ (base32 "0skjpraar6hcwsy82612bpj8nw016ncyvvq88j5syrikxgp5saw5"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system python-build-system)
(inputs
(define-public python-orator
(package
(name "python-orator")
- (version "0.9.7")
+ (version "0.9.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "orator" version))
(sha256
(base32
- "14r58z64fdp76ixnvmi4lni762b405ynmsx6chr1qihs3yl9zn6c"))))
+ "0mbgybz63ryhr9p1f4glnls5c57jp6il3dw0kf97f3pj80687rvg"))))
(build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'loosen-dependencies
- ;; Tests are not actually run since they are not included with the
- ;; distributed package, but dependencies are checked.
- (lambda _
- (substitute* "setup.py"
- ((",<.*'") "'")
- (("flexmock==0.9.7") "flexmock")
- ;; The pytest-mock package is out of date, so we remove minimum
- ;; version requirement.
- (("pytest-mock.*'") "pytest-mock'"))
- #t)))))
- (native-inputs
- `(("python-pytest-mock" ,python-pytest-mock)
- ("python-pytest" ,python-pytest)
- ("python-flexmock" ,python-flexmock)))
+ ;; FIXME: Tests are not distributed with PyPI, and the repository
+ ;; does not contain setup.py. How to test?
+ (arguments '(#:tests? #f))
(propagated-inputs
`(("python-backpack" ,python-backpack)
("python-blinker" ,python-blinker)
("python-pendulum" ,python-pendulum)
("python-pyaml" ,python-pyaml)
("python-pygments" ,python-pygments)
+ ("python-pyyaml" ,python-pyyaml)
("python-simplejson" ,python-simplejson)
("python-six" ,python-six)
("python-wrapt" ,python-wrapt)))
(define-public python-sqlalchemy
(package
(name "python-sqlalchemy")
- (version "1.3.3")
+ (version "1.3.15")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy" version))
(sha256
- (base32 "06c3lcv7nijsgqsjaaa4djrwlzgh9f910zlqxkmgq22h6jl4rici"))))
+ (base32 "0iglkvymfp35zm5pxy5kzqvcv96kkas0chqdx7xpla86sspa9k64"))))
(build-system python-build-system)
(native-inputs
`(("python-cython" ,python-cython) ; for C extensions
(define-public python-alembic
(package
(name "python-alembic")
- (version "1.0.11")
+ (version "1.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "alembic" version))
+ (patches (search-patches "python-alembic-exceptions-cause.patch"))
(sha256
(base32
- "1k5hag0vahd5vrf9abx8fdj2whrwaw2iq2yp736mmxnbsn5xkdyd"))))
+ "0a4hzn76csgbf1px4f5vfm256byvjrqkgi9869nkcjrwjn35c6kr"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv"))))))
(native-inputs
`(("python-mock" ,python-mock)
("python-pytest-cov" ,python-pytest-cov)))
(define-public python2-apsw
(package-with-python2 python-apsw))
+(define-public python-aiosqlite
+ (package
+ (name "python-aiosqlite")
+ (version "0.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "aiosqlite" version))
+ (sha256
+ (base32
+ "1w8248yz85xyzvvh4jaxnc59fqil45aka6h82kn1rcih4rjxbnn1"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-aiounittest" ,python-aiounittest)))
+ (home-page "https://github.com/jreese/aiosqlite")
+ (synopsis
+ "Asyncio bridge for sqlite3")
+ (description
+ "The package aiosqlite replicates the standard sqlite3 module, but with
+async versions of all the standard connection and cursor methods, and context
+managers for automatically closing connections.")
+ (license license:expat)))
+
(define-public python2-neo4j-driver
(package
(name "python2-neo4j-driver")
(build-system python-build-system)
(arguments
`(#:python ,python-2))
- (home-page "http://py2neo.org")
+ (home-page "https://py2neo.org")
(synopsis "Library and toolkit for working with Neo4j in Python")
(description "This package provides a client library and toolkit for
working with Neo4j from within Python applications and from the command
(define-public python-psycopg2
(package
(name "python-psycopg2")
- (version "2.7.7")
+ (version "2.8.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psycopg2" version))
(sha256
- (base32 "0zjbabb4qjx9dm07imhf8y5a9rpa06d5zah80myiimgdi83nslpl"))))
+ (base32 "1djvh98pi4hjd8rxbq8qzc63bg8v78k33yg6pl99wak61b6fb67q"))))
(build-system python-build-system)
(arguments
;; Tests would require a postgresql database "psycopg2_test"
(define-public python-fakeredis
(package
(name "python-fakeredis")
- (version "0.8.2")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fakeredis" version))
(sha256
(base32
- "0zncahj3byyasyfx9i7k991ph0n0lq8v3a21pqri5qxn9564bk9r"))))
+ "1s12mn4q4hz7402139khn9fx56kibj7nn0d6w81hn0zs07b90wpc"))))
(build-system python-build-system)
(arguments
;; no tests
`(#:tests? #f))
+ (propagated-inputs
+ `(("python-sortedcontainers" ,python-sortedcontainers)))
(home-page "https://github.com/jamesls/fakeredis")
(synopsis "Fake implementation of redis API for testing purposes")
(description
(propagated-inputs
`(("python-click" ,python-click)
("python-redis" ,python-redis)))
- (home-page "http://python-rq.org/")
+ (home-page "https://python-rq.org/")
(synopsis "Simple job queues for Python")
(description
"RQ (Redis Queue) is a simple Python library for queueing jobs and
(define-public python2-sql
(package-with-python2 python-sql))
+(define-public python-pypika
+ (package
+ (name "python-pypika")
+ (version "0.37.2")
+ (source
+ (origin (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kayak/pypika.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "089z1c778q1fwhzsc88ws8j5gm2hgxknibabn4wpax8rz2bfs3ck"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-parameterized" ,python-parameterized)))
+ (home-page "https://github.com/kayak/pypika")
+ (synopsis "SQL query builder API for Python")
+ (description
+ "PyPika is a python SQL query builder that exposes the full richness of
+the SQL language using a syntax that reflects the resulting query.")
+ (license license:asl2.0)))
+
(define-public mongo-tools
(package
(name "mongo-tools")
`(;; For tests.
("inetutils" ,inetutils)
("glibc-locales" ,glibc-locales)
- ("mariadb" ,mariadb/fixed-install-db)))
+ ("mariadb" ,mariadb)))
(inputs
`(("libdbi" ,libdbi)
("mariadb:dev" ,mariadb "dev")
@end itemize")
(home-page "http://libdbi-drivers.sourceforge.net/")
(license license:lgpl2.1+)))
+
+(define-public soci
+ (package
+ (name "soci")
+ (version "4.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/SOCI/soci/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "06faswdxd2frqr9xnx6bxc7zwarlzsbdi3bqpz7kwdxsjvq41rnb"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("postgresql" ,postgresql)
+ ("sqlite" ,sqlite)
+ ("odbc" ,unixodbc)
+ ("boost" ,boost)
+ ("mariadb:dev" ,mariadb "dev")
+ ("mariadb:lib" ,mariadb "lib")))
+ (arguments
+ `(#:tests? #f ; Tests may require running database management systems.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-lib-path
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("set\\(SOCI_LIBDIR \"lib64\"\\)") ""))
+ #t)))))
+ (synopsis "C++ Database Access Library")
+ (description
+ "SOCI is an abstraction layer for several database backends, including
+PostreSQL, SQLite, ODBC and MySQL.")
+ (home-page "http://soci.sourceforge.net/")
+ (license license:boost1.0)))