diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-01-25 22:07:13 -0500 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-01-25 22:07:13 -0500 |
commit | 1a5302435ff0d2822b823f5a6fe01faa7a85c629 (patch) | |
tree | ac7810c88b560532f22d2bab2e59609cd7305c21 /gnu/packages/databases.scm | |
parent | 3ff2ac4980dacf10087e4b42bd9fbc490591900c (diff) | |
parent | 070b8a893febd6e7d8b2b7c8c4dcebacf7845aa9 (diff) | |
download | guix-1a5302435ff0d2822b823f5a6fe01faa7a85c629.tar.gz |
Merge branch 'master' into staging.
With "conflicts" solved (all in favor of master except git) in: gnu/local.mk gnu/packages/databases.scm gnu/packages/glib.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/gnuzilla.scm gnu/packages/graphics.scm gnu/packages/gstreamer.scm gnu/packages/gtk.scm gnu/packages/linux.scm gnu/packages/machine-learning.scm gnu/packages/networking.scm gnu/packages/polkit.scm gnu/packages/pulseaudio.scm gnu/packages/rpc.scm gnu/packages/rust.scm gnu/packages/version-control.scm gnu/packages/w3m.scm
Diffstat (limited to 'gnu/packages/databases.scm')
-rw-r--r-- | gnu/packages/databases.scm | 1431 |
1 files changed, 827 insertions, 604 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 3487b2cec2..128b349cae 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -17,12 +17,12 @@ ;;; 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, 2020, 2021 Marius Bakke <marius@gnu.org> +;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu> ;;; 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 © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; 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> @@ -53,6 +53,8 @@ ;;; Copyright © 2021 Simon Streit <simon@netpanic.org> ;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2021 jgart <jgart@dismail.de> +;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -113,6 +115,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pantheon) #:use-module (gnu packages parallel) @@ -140,12 +143,15 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tcl) #:use-module (gnu packages terminals) + #:use-module (gnu packages texinfo) #: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) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -183,24 +189,24 @@ "4store-fix-buildsystem.patch")))) (build-system gnu-build-system) (native-inputs - `(("perl" ,perl) - ("python" ,python-2) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("gettext" ,gettext-minimal) - ("libtool" ,libtool) - ("pcre" ,pcre "bin") ;for 'pcre-config' - ("pkg-config" ,pkg-config))) + (list perl + python-2 + autoconf + automake + gettext-minimal + libtool + `(,pcre "bin") ;for 'pcre-config' + pkg-config)) (inputs - `(("glib" ,glib) - ("rasqal" ,rasqal) - ("libxml2" ,libxml2) - ("raptor2" ,raptor2) - ("readline" ,readline) - ("avahi" ,avahi) - ("cyrus-sasl" ,cyrus-sasl) - ("openssl" ,openssl) - ("util-linux" ,util-linux "lib"))) + (list glib + rasqal + libxml2 + raptor2 + readline + avahi + cyrus-sasl + openssl + `(,util-linux "lib"))) ;; 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") @@ -241,12 +247,10 @@ either single machines or networked clusters.") #t))) #:test-target "test")) (inputs - `(("postgresql" ,postgresql) - ("util-linux" ,util-linux))) + (list postgresql util-linux)) (native-inputs ;; For tests. - `(("ruby" ,ruby) - ("which" ,which))) + (list ruby which)) (home-page "https://eradman.com/ephemeralpg/") (synopsis "Run temporary PostgreSQL databases") (description @@ -272,11 +276,8 @@ garbage-collected after a configurable number of seconds (the default is (arguments '(#:tests? #f)) ;; No testsuite. (propagated-inputs - `(("ruby-httpclient" ,ruby-httpclient) - ("ruby-multi-json" ,ruby-multi-json) - ("ruby-progress_bar" ,ruby-progress_bar) - ("ruby-rubyzip" ,ruby-rubyzip) - ("ruby-thor" ,ruby-thor))) + (list ruby-httpclient ruby-multi-json ruby-progress_bar ruby-rubyzip + ruby-thor)) (synopsis "Utility for dumping and restoring ElasticSearch indexes") (description "This package provides a utility for dumping the contents of an @@ -422,12 +423,12 @@ ElasticSearch server") "lib/firebird/plugins/udr")) #t))))))) (inputs - `(("boost" ,boost) - ("editline" ,editline) - ("icu4c" ,icu4c-67) - ("libtommath" ,libtommath) - ("ncurses" ,ncurses) - ("zlib" ,zlib))) + (list boost + editline + icu4c-67 + libtommath + ncurses + zlib)) (home-page "https://www.firebirdsql.org") (synopsis "Relational database with many ANSI SQL standard features") (description @@ -465,7 +466,7 @@ database later.") (define-public leveldb (package (name "leveldb") - (version "1.22") + (version "1.23") (source (origin (method git-fetch) (uri (git-reference @@ -474,12 +475,33 @@ database later.") (file-name (git-file-name name version)) (sha256 (base32 - "0qrnhiyq7r4wa1a4wi82zgns35smj94mcjsc7kfs1k6ia9ys79z7")))) + "1chxkhb6ajdmj4p8535k4472fbmqvcismll6aapkarsr45yrvgs4")))) (build-system cmake-build-system) (arguments - `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DLEVELDB_BUILD_TESTS=ON"))) + (list #:configure-flags + #~(list "-DBUILD_SHARED_LIBS=ON" + "-DLEVELDB_BUILD_TESTS=ON" + + ;; Don't install(!) the third_party test frameworks below. + "-DINSTALL_GTEST=OFF" + "-DBENCHMARK_ENABLE_INSTALL=OFF") + #:phases + #~(modify-phases %standard-phases + ;; Ceph uses leveldb and depends on RTTI. + (add-after 'unpack 'allow-RTTI + (lambda _ + (substitute* "CMakeLists.txt" + (("set\\(CMAKE_CXX_FLAGS \"\\$\\{CMAKE_CXX_FLAGS\\} -fno-rtti\"\\)") + "")))) + (add-after 'unpack 'unpack-third_party-sources + ;; These are only for testing, so copying source is fine. + (lambda _ + (copy-recursively #$(package-source googletest) + "third_party/googletest") + (copy-recursively #$(package-source googlebenchmark) + "third_party/benchmark")))))) (inputs - `(("snappy" ,snappy))) + (list snappy)) (home-page "https://github.com/google/leveldb") (synopsis "Fast key-value storage library") (description @@ -490,18 +512,17 @@ mapping from string keys to string values.") (define-public memcached (package (name "memcached") - (version "1.6.9") + (version "1.6.13") (source (origin (method url-fetch) (uri (string-append "https://memcached.org/files/memcached-" version ".tar.gz")) (sha256 - (base32 "1lcjy1b9krnb2gk72qd1fvivlfiyfvknfi3wngyvyk9ifzijr9nm")))) + (base32 "1m5mhw9ybb8qcyi6hb5kwpqanqmlnz27r54ccabc4y7nhpfvl6mx")))) (build-system gnu-build-system) (inputs - `(("libevent" ,libevent) - ("cyrus-sasl" ,cyrus-sasl))) + (list libevent cyrus-sasl)) (home-page "https://memcached.org/") (synopsis "In-memory caching service") (description "Memcached is an in-memory key-value store. It has a small @@ -528,17 +549,16 @@ applications.") (search-patches "libmemcached-build-with-gcc7.patch")))) (build-system gnu-build-system) (native-inputs - `(("memcached" ,memcached) - ("libtool" ,libtool) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("bison" ,bison) - ("flex" ,flex) - ("perl" ,perl) - ("python-sphinx" ,python-sphinx))) ;to build the HTML doc. + (list memcached + libtool + autoconf + automake + bison + flex + perl + python-sphinx)) ;to build the HTML doc. (inputs - `(("libevent" ,libevent) - ("cyrus-sasl" ,cyrus-sasl))) + (list libevent cyrus-sasl)) (outputs '("out" "doc")) (arguments '(#:tests? #f ;many tests fail and use too much time @@ -598,12 +618,9 @@ the API, and provides features such as: (lambda _ (invoke "memcached" "-d")))))) (native-inputs - `(("memcached" ,memcached) - ("python-nose" ,python-nose))) + (list memcached python-nose)) (inputs - `(("libmemcached" ,libmemcached) - ("zlib" ,zlib) - ("cyrus-sasl" ,cyrus-sasl))) + (list libmemcached zlib cyrus-sasl)) (home-page "http://sendapatch.se/projects/pylibmc/") (synopsis "Python client for memcached") (description @@ -612,36 +629,120 @@ around TangentOrg’s libmemcached library, and can be used as a drop-in replacement for the code@{python-memcached} library.") (license license:bsd-3))) -(define-public python2-pylibmc - (package-with-python2 python-pylibmc)) +(define-public litecli + (package + (name "litecli") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "litecli" version)) + (sha256 + (base32 "1yb706mgzizzijm1k0fbny98jf58qh5q6f2870rbplxlfla4w9sd")))) + (build-system python-build-system) + (propagated-inputs + (list python-cli-helpers + python-click + python-configobj + python-prompt-toolkit + python-pygments + python-sqlparse)) + (native-inputs + (list python-mock python-pytest)) + (home-page "https://litecli.com") + (synopsis "CLI for SQLite databases") + (description + "@code{litecli} is a command-line client for SQLite databases that has +auto-completion and syntax highlighting.") + (license license:bsd-3))) + +(define-public python-pgspecial + (package + (name "python-pgspecial") + (version "1.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pgspecial" version)) + (sha256 + (base32 "00ddkf565rjcxmfml1z4mmkns1aq8x5s5g85xmnz2scln42y4irq")))) + (build-system python-build-system) + (propagated-inputs + (list python-click python-sqlparse python-psycopg2)) + (home-page "https://github.com/dbcli/pgspecial") + (synopsis + "Python implementation of PostgreSQL meta commands (backslash commands)") + (description + "This Python package provides an API to execute meta-commands (AKA +\"special\", or \"backslash commands\") on PostgreSQL.") + (license license:bsd-3))) + +(define-public pgcli + (package + (name "pgcli") + (version "3.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pgcli" version)) + (sha256 + (base32 "1dy6yzak696107pqv83296h0xhc3ahlfaydm80593gwn37krgpkc")))) + (build-system python-build-system) + (propagated-inputs + (list python-cli-helpers + python-click + python-configobj + python-pendulum + python-pgspecial + python-prompt-toolkit + python-psycopg2 + python-pygments + python-setproctitle + python-sqlparse)) + (native-inputs + (list python-ipython-sql)) + (home-page "https://www.pgcli.com") + (synopsis "PostgreSQL CLI with autocompletion and syntax highlighting") + (description + "@code{pgcli} is a command line interface for PostgreSQL with +autocompletion and syntax highlighting.") + (license license:bsd-3))) (define-public mycli (package (name "mycli") - (version "1.22.2") + (version "1.24.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "mycli" version)) - (sha256 - (base32 "1lq2x95553vdmhw13cxcgsd2g2i32izhsb7hxd4m1iwf9b3msbpv")))) + (origin + (method url-fetch) + (uri (pypi-uri "mycli" version)) + (sha256 + (base32 "0rij9nw20zhqr7cqnkm8daw8b1wdc9zb6ny1ji9qz5557nz9i3bl")))) (build-system python-build-system) (arguments - `(#:tests? #f)) ; tests expect a running MySQL + '(#:tests? #f ; tests expect a running MySQL + #:phases (modify-phases %standard-phases + (add-after 'unpack 'loosen-requirements + (lambda _ + ;; Permit newer versions of sqlparse. + (substitute* "setup.py" + (("<0\\.4\\.0") "<0.5.0"))))))) (propagated-inputs - `(("python-cli-helpers" ,python-cli-helpers) - ("python-click" ,python-click) - ("python-configobj" ,python-configobj) - ("python-cryptography" ,python-cryptography) - ("python-prompt-toolkit" ,python-prompt-toolkit) - ("python-pygments" ,python-pygments) - ("python-pymysql" ,python-pymysql) - ("python-sqlparse" ,python-sqlparse))) - (home-page "http://mycli.net") + (list python-cli-helpers + python-click + python-configobj + python-cryptography + python-prompt-toolkit + python-pyaes + python-pygments + python-pymysql + python-pyperclip + python-sqlparse)) + (home-page "https://www.mycli.net") (synopsis - "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting") + "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting") (description - "MyCLI is a command line interface for MySQL, MariaDB, and Percona with + "MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting.") (license license:bsd-3))) @@ -721,22 +822,20 @@ auto-completion and syntax highlighting.") ,(string-append sed "/bin")))) #t)))))) (native-inputs - `(("bison" ,bison) - ("perl" ,perl) - ("pkg-config" ,pkg-config))) + (list bison perl pkg-config)) (inputs - `(("boost" ,boost-for-mysql) - ("coreutils" ,coreutils) - ("gawk" ,gawk) - ("grep" ,grep) - ("libaio" ,libaio) - ("libtirpc" ,libtirpc) - ("ncurses" ,ncurses) - ("openssl" ,openssl) - ("procps" ,procps) - ("rpcsvc-proto" ,rpcsvc-proto) ; rpcgen - ("sed" ,sed) - ("zlib" ,zlib))) + (list boost-for-mysql + coreutils + gawk + grep + libaio + libtirpc + ncurses + openssl + procps + rpcsvc-proto ; rpcgen + sed + zlib)) (home-page "https://www.mysql.com/") (synopsis "Fast, easy to use, and popular database") (description @@ -748,7 +847,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.5.8") + (version "10.5.12") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.com/MariaDB" @@ -756,7 +855,7 @@ Language.") version ".tar.gz")) (sha256 (base32 - "1s3vfm73911cddjhgpcbkya6nz7ag2zygg56qqzwscn5ybv28j7b")) + "1gg4h9ahmk78cx01zyw0fqr6hhd78fsyhs0s34p3gi9hkak1qkxb")) (modules '((guix build utils))) (snippet '(begin @@ -775,9 +874,7 @@ Language.") (unless (string-suffix? "CMakeLists.txt" file) (delete-file file))) (append (find-files "extra/wolfssl") - (find-files "zlib"))) - #t)))) - (replacement mariadb/fixed) + (find-files "zlib"))))))) (build-system cmake-build-system) (outputs '("out" "lib" "dev")) (arguments @@ -832,6 +929,10 @@ Language.") "/share/mysql/support-files") "-DINSTALL_MYSQLSHAREDIR=share/mysql" "-DINSTALL_SHAREDIR=share") + ;; The test suite has spurious failures (mostly timeouts) if run in + ;; parallel on various machines. Only enable parallel tests on + ;; architectures which are likely to not have this issue. + #:parallel-tests? ,(target-x86-64?) #:phases (modify-phases %standard-phases (add-after 'unpack 'adjust-output-references @@ -859,37 +960,32 @@ Language.") "${INSTALL_INCLUDEDIR}")) (substitute* "cmake/mariadb_connector_c.cmake" (("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_BINDIR\\}") - "${INSTALL_BINDIR}")) - #t)) + "${INSTALL_BINDIR}")))) (add-after 'unpack 'adjust-tests (lambda _ (let ((disabled-tests '(;; These fail because root@hostname == root@localhost in ;; the build environment, causing a user count mismatch. ;; See <https://jira.mariadb.org/browse/MDEV-7761>. - "funcs_1.is_columns_mysql" - "main.join_cache" "main.explain_non_select" - "main.stat_tables" - "main.stat_tables_innodb" "main.upgrade_MDEV-19650" "roles.acl_statistics" + ;; Probably same as above, test failure reported upstream: + ;; <https://jira.mariadb.org/browse/MDEV-26320>. + "main.selectivity_no_engine" + ;; 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" + "main.system_mysql_db" ;; 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")) + '()))) ;; This file contains a list of known-flaky tests for this ;; release. Append our own items. @@ -913,8 +1009,7 @@ Language.") (substitute* "mysql-test/mysql-test-run.pl" (("/bin/ls") (which "ls")) - (("/bin/sh") (which "sh"))) - #t))) + (("/bin/sh") (which "sh")))))) (add-before 'configure 'disable-plugins (lambda _ (let ((disable-plugin (lambda (name) @@ -925,24 +1020,25 @@ Language.") (format port "\n"))))) (disabled-plugins '(;; XXX: Causes a test failure. "disks"))) - (for-each disable-plugin disabled-plugins) - #t))) + (for-each disable-plugin disabled-plugins)))) (replace 'check - (lambda* (#:key (tests? #t) #:allow-other-keys) + (lambda* (#:key (tests? #t) parallel-tests? #:allow-other-keys) (if tests? (with-directory-excursion "mysql-test" (invoke "./mtr" "--verbose" "--retry=3" + "--suite=main" "--testcase-timeout=40" "--suite-timeout=600" - "--parallel" (number->string (parallel-job-count)) + "--parallel" (number->string (if parallel-tests? + (parallel-job-count) + 1)) ;; Skip the replication tests: they are very I/O ;; intensive and frequently causes indeterministic ;; failures even on powerful hardware. "--skip-rpl" "--skip-test-list=unstable-tests")) - (format #t "test suite not run~%")) - #t)) + (format #t "test suite not run~%")))) (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) @@ -987,12 +1083,9 @@ Language.") (substitute* (list (string-append dev "/bin/mysql_config") (string-append dev "/lib/pkgconfig/mariadb.pc")) (("-lssl -lcrypto" all) - (string-append "-L" openssl "/lib " all))) - - #t)))))) + (string-append "-L" openssl "/lib " all))))))))) (native-inputs - `(("bison" ,bison) - ("perl" ,perl))) + (list bison perl)) (inputs `(("jemalloc" ,jemalloc) ("libaio" ,libaio) @@ -1013,13 +1106,6 @@ Language.") 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") @@ -1035,7 +1121,7 @@ as a drop-in replacement of MySQL.") (sha256 (base32 "0xb8fiissblxb319y5ifqqp86zblwis789ipb753pcb4zpnsaw82")))) (inputs - `(("openssl" ,openssl))) + (list openssl)) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no tests @@ -1048,21 +1134,19 @@ developed in C/C++ to MariaDB and MySQL databases.") (define-public galera (package (name "galera") - (version "26.4.7") + (version "26.4.10") (source (origin (method git-fetch) (uri (git-reference - (commit "bac8171266cb982fe013ce496d78085438c6f23e") (url "https://github.com/codership/galera") + (commit (string-append "release_" version)) (recursive? #t))) (file-name (git-file-name name version)) (sha256 - (base32 "0h7s670pcasq8wzprhyxqfca2cghi62b8xz2kikb2a86wd453qil")))) + (base32 "1n6zhzwj713ixyqvcjn4ldlq0y9fxqgvmqv3cj3h4207v9lwlxxz")))) (build-system cmake-build-system) (inputs - `(("check" ,check) - ("boost" ,boost) - ("openssl" ,openssl))) + (list check boost openssl)) (home-page "https://github.com/codership/galera/") (synopsis "Extension to the MariaDB database server") (description @@ -1071,17 +1155,17 @@ 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-13 +(define-public postgresql-14 (package (name "postgresql") - (version "13.3") + (version "14.1") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "18dliq7h2l8irffhyyhdmfwx3si515q6gds3cxdjb9n7m17lbn9w")) + "07x45iycqpps0qh3ingc09jgn9rpnmc3gixx0qprhf5flwg10g2d")) (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) (build-system gnu-build-system) (arguments @@ -1100,6 +1184,12 @@ and high-availability (HA).") "src/bin/psql/command.c") (("/bin/sh") (which "sh"))) #t)) + (add-before 'configure 'set-socket-dir + (lambda _ + (substitute* '("src/include/pg_config_manual.h") + (("DEFAULT_PGSOCKET_DIR[^\n]*") + "DEFAULT_PGSOCKET_DIR \"/var/run/postgresql\"")) + #t)) (add-after 'build 'build-contrib (lambda _ (invoke "make" "-C" "contrib"))) @@ -1122,6 +1212,18 @@ TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video.") (license (license:x11-style "file://COPYRIGHT")))) +(define-public postgresql-13 + (package + (inherit postgresql-14) + (version "13.4") + (source (origin + (inherit (package-source postgresql-14)) + (uri (string-append "https://ftp.postgresql.org/pub/source/v" + version "/postgresql-" version ".tar.bz2")) + (sha256 + (base32 + "1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za")))))) + (define-public postgresql-11 (package (inherit postgresql-13) @@ -1164,7 +1266,7 @@ pictures, sounds, or video.") (define-public pgloader (package (name "pgloader") - (version "3.6.2") + (version "3.6.3") (source (origin (method git-fetch) @@ -1172,7 +1274,7 @@ pictures, sounds, or video.") (url "https://github.com/dimitri/pgloader") (commit (string-append "v" version)))) (sha256 - (base32 "06i1jd2za3ih5caj2b4vzlzags5j65vv8dfdbz0ggdrp40wfd5lh")) + (base32 "147dcf0rmi94p95dvifx8qy7602fvs041dv9wlg3q31ly13agwb5")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -1180,63 +1282,59 @@ pictures, sounds, or video.") ;; 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))))) + (list #: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"))) + (add-after 'unpack 'patch-Makefile + (lambda _ + (substitute* "Makefile" + (("--sbcl.*") "--sbcl $(CL) --asdf-path . \\\n")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append #$output "/bin"))) + (mkdir-p bin) + (install-file "build/bin/pgloader" bin))))))) (native-inputs - `(("buildapp" ,buildapp) - ("sbcl" ,sbcl))) + (list buildapp 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))) + (list sbcl-alexandria + sbcl-cl-abnf + sbcl-cl-base64 + sbcl-cl-csv + sbcl-cl-fad + sbcl-cl-log + sbcl-cl-markdown + sbcl-cl-mustache + sbcl-cl-ppcre + sbcl-cl-sqlite + sbcl-closer-mop + sbcl-command-line-arguments + sbcl-db3 + sbcl-drakma + sbcl-esrap + sbcl-flexi-streams + sbcl-ixf + sbcl-local-time + sbcl-lparallel + sbcl-metabang-bind + sbcl-mssql + sbcl-postmodern + sbcl-py-configparser + sbcl-qmynd + sbcl-quri + sbcl-split-sequence + sbcl-trivial-backtrace + sbcl-usocket + sbcl-uuid + sbcl-yason + sbcl-zs3)) (home-page "https://pgloader.io/") (synopsis "Tool to migrate data to PostgreSQL") (description @@ -1256,9 +1354,9 @@ CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.") (base32 "1ry8lxgdc1p3k7gbw20r405jqi5lvhi5wk83kxdbiv8xv3f5kh6q")))) (build-system python-build-system) (native-inputs - `(("python-unittest2" ,python-unittest2))) + (list python-unittest2)) (inputs - `(("python-cryptography" ,python-cryptography))) + (list python-cryptography)) (arguments `(#:tests? #f)) ; tests expect a running MySQL (home-page "https://github.com/PyMySQL/PyMySQL/") @@ -1336,30 +1434,43 @@ types are supported, as is encryption.") (license license:gpl3+) (home-page "https://www.gnu.org/software/recutils/"))) -(define-public emacs-recutils +(define-public emacs-rec-mode (package - (inherit recutils) - (name "emacs-recutils") + (name "emacs-rec-mode") + (version "1.8.2") + (source (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "rec-mode-" version ".tar")) + (sha256 + (base32 + "06mjj1la2v8zdhsflj3mwcp7qnkj7gxzm8wbk2pli1h8vnq2zvd0")) + (snippet '(begin (delete-file "rec-mode.info"))))) (build-system emacs-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'change-directory + (add-before 'install 'make-info (lambda _ - (chdir "etc") - #t))))) - (native-inputs '()) - (inputs '()) + (invoke "makeinfo" "--no-split" + "-o" "rec-mode.info" "rec-mode.texi")))))) + (native-inputs + `(("texinfo" ,texinfo))) + (home-page "https://www.gnu.org/software/recutils/") (synopsis "Emacs mode for working with recutils database files") (description "This package provides an Emacs major mode @code{rec-mode} for working with GNU Recutils text-based, human-editable databases. It supports editing, navigation, and querying of recutils database files -including field and record folding."))) +including field and record folding.") + (license license:gpl3+))) + +(define-public emacs-recutils + (deprecated-package "emacs-recutils" emacs-rec-mode)) (define-public rocksdb (package (name "rocksdb") - (version "6.11.4") + (version "6.26.1") (source (origin (method git-fetch) (uri (git-reference @@ -1368,92 +1479,50 @@ including field and record folding."))) (file-name (git-file-name name version)) (sha256 (base32 - "0n19p9cd13jg0lnibrzwkxs4xlrhyj3knypkd2ic41arbds0bdnl")) + "0mylma106w93kxhj89g9y1ccdq7m9m94wrmv5nyr17yc1zsk87sg")) (modules '((guix build utils))) (snippet '(begin ;; TODO: unbundle gtest. (delete-file "build_tools/gnu_parallel") (substitute* "Makefile" - (("build_tools/gnu_parallel") "parallel")) - #t)))) - (build-system gnu-build-system) + (("build_tools/gnu_parallel") "parallel")))))) + (build-system cmake-build-system) (arguments - `(#:make-flags (list "CC=gcc" "V=1" - ;; Ceph requires that RTTI is enabled. - "USE_RTTI=1" - "date=1970-01-01" ; build reproducibly - (string-append "INSTALL_PATH=" - (assoc-ref %outputs "out")) - - ;; Running the full test suite takes hours and require - ;; a lot of disk space. Instead we only run a subset - ;; (see .travis.yml and Makefile). - "ROCKSDBTESTS_END=db_tailing_iter_test") - #:test-target "check_some" - ;; Many tests fail on 32-bit platforms. There are multiple reports about - ;; this upstream, but it's not going to be supported any time soon. - #:tests? (let ((system ,(or (%current-target-system) - (%current-system)))) - (or (string-prefix? "x86_64-linux" system) - (string-prefix? "aarch64-linux" system))) + `(#:configure-flags + (list "-DROCKSDB_BUILD_SHARED=1" + ;; Ceph requires that RTTI is enabled. + "-DUSE_RTTI=1" + ;; Prevent the build from passing '-march=native' to the compiler. + "-DPORTABLE=1") + + ;; Many tests fail on 32-bit platforms. There are multiple + ;; reports about this upstream, but it's not going to be + ;; supported any time soon. What's worse: Release builds don't + ;; include tests, and overriding the build system to build + ;; tests anyway fails with missing TEST_ symbols. + #:tests? #false #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-Makefile + (add-after 'unpack 'patch-CMakeLists.txt (lambda _ - (substitute* "Makefile" - ;; Don't depend on the static library when installing. - (("install: install-static") - "install: install-shared") - (("#!/bin/sh") (string-append "#!" (which "sh")))) - #t)) - (delete 'configure) - ;; The default target is only needed for tests and built on demand. - (delete 'build) - (add-before 'check 'mount-tmp - ;; Use the provided workspace directory for test files. - ;; Otherwise, /tmp is used which is a mount namespace on /gnu/store. - ;; This speeds up the build when the host /tmp is a proper tmpfs or - ;; other fast filesystem, as opposed to /gnu which may be a HDD. - (lambda _ - (let ((test-dir (string-append (getcwd) "/../test"))) - (mkdir test-dir) - (setenv "TEST_TMPDIR" (canonicalize-path test-dir))))) - (add-before 'check 'disable-optimizations - (lambda _ - ;; Prevent the build from passing '-march=native' to the compiler. - (setenv "PORTABLE" "1") - #t)) - (add-before 'check 'disable-failing-tests + (substitute* "CMakeLists.txt" + ;; build reproducibly + (("set\\(BUILD_DATE \"\\$\\{TS\\}\"") + "set(BUILD_DATE \"1970-01-01\"")))) + (add-after 'unpack 'build-generically (lambda _ - (substitute* "Makefile" - ;; These tests reliably fail due to "Too many open files". - (("^[[:blank:]]+env_test[[:blank:]]+\\\\") "\\") - (("^[[:blank:]]+persistent_cache_test[[:blank:]]+\\\\") "\\")) - #t)) - (add-after 'check 'build - ;; The default build target is a debug build for tests. The - ;; install target depends on the "shared_lib" release target - ;; so we build it here for clarity. - (lambda* (#:key (make-flags '()) parallel-build? #:allow-other-keys) - (apply invoke "make" "shared_lib" - `(,@(if parallel-build? - `("-j" ,(number->string (parallel-job-count))) - '()) - ,@make-flags))))))) + (substitute* "CMakeLists.txt" + (("if\\(HAVE_SSE42\\)") "if(FALSE)"))))))) (native-inputs - `(("parallel" ,parallel) - ("perl" ,perl) - ("procps" ,procps) - ("python" ,python-2) - ("which" ,which))) + (list parallel perl procps python which)) (inputs - `(("bzip2" ,bzip2) - ("gflags" ,gflags) - ("jemalloc" ,jemalloc) - ("lz4" ,lz4) - ("snappy" ,snappy) - ("zlib" ,zlib))) + (list bzip2 + gflags + jemalloc + lz4 + snappy + zlib)) (home-page "https://rocksdb.org/") (synopsis "Persistent key-value store for fast storage") (description @@ -1482,13 +1551,9 @@ data in a single database. RocksDB is partially based on @code{LevelDB}.") (file-name (git-file-name name version)))) (build-system gnu-build-system) (inputs - `(("curl" ,curl) - ("glib" ,glib) - ("libxml2" ,libxml2) - ("ncurses" ,ncurses) - ("readline" ,readline))) + (list curl glib libxml2 ncurses readline)) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (arguments `(#:make-flags '("CC=gcc") #:phases @@ -1562,20 +1627,20 @@ for example from a shell script.") path))))) #t))))) (native-inputs - `(("perl-capture-tiny" ,perl-capture-tiny) - ("perl-io-pager" ,perl-io-pager) - ("perl-module-build" ,perl-module-build) - ("perl-module-runtime" ,perl-module-runtime) - ("perl-path-class" ,perl-path-class) - ("perl-test-deep" ,perl-test-deep) - ("perl-test-dir" ,perl-test-dir) - ("perl-test-exception" ,perl-test-exception) - ("perl-test-file" ,perl-test-file) - ("perl-test-file-contents" ,perl-test-file-contents) - ("perl-test-mockmodule" ,perl-test-mockmodule) - ("perl-test-mockobject" ,perl-test-mockobject) - ("perl-test-nowarnings" ,perl-test-nowarnings) - ("perl-test-warn" ,perl-test-warn))) + (list perl-capture-tiny + perl-io-pager + perl-module-build + perl-module-runtime + perl-path-class + perl-test-deep + perl-test-dir + perl-test-exception + perl-test-file + perl-test-file-contents + perl-test-mockmodule + perl-test-mockobject + perl-test-nowarnings + perl-test-warn)) (inputs `(("perl-class-xsaccessor" ,perl-class-xsaccessor) ("perl-clone" ,perl-clone) @@ -1634,10 +1699,8 @@ which uses SQL to describe changes.") "0x3wy40r93p0jv3nbwj9a77wa4ff697d13r0wffmm7q9h3mzsww8")))) (build-system python-build-system) (inputs - `(("python-cryptography" ,python-cryptography) - ("python-psycopg2" ,python-psycopg2) - ("python-pymysql" ,python-pymysql) - ("python-sqlalchemy" ,python-sqlalchemy))) + (list python-cryptography python-psycopg2 python-pymysql + python-sqlalchemy)) (home-page "https://github.com/coffeeandscripts/sqlcrush") (synopsis "Text console-based database viewer and editor") (description @@ -1670,12 +1733,12 @@ changes.") (invoke "./configure" (string-append "--prefix=" out)))))))) (native-inputs - `(;; TODO: Build the documentation. - ;; ("docbook-xsl" ,docbook-xsl) - ;; ("libxml2" ,libxml2) - ;; ("libxslt" ,libxslt) - ("python" ,python) ;for the Waf build system - ("which" ,which))) + (list ;; TODO: Build the documentation. + ;; ("docbook-xsl" ,docbook-xsl) + ;; ("libxml2" ,libxml2) + ;; ("libxslt" ,libxslt) + python ;for the Waf build system + which)) (home-page "https://tdb.samba.org/") (synopsis "Trivial database") (description @@ -1716,35 +1779,35 @@ extremely small.") (base32 "1rh7idjjbibc1zmiaaarask434lh0lx7f2xyfwmy37k9fa0xcpmh")))) (build-system perl-build-system) (native-inputs - `(("perl-dbd-sqlite" ,perl-dbd-sqlite) - ("perl-file-temp" ,perl-file-temp) - ("perl-module-install" ,perl-module-install) - ("perl-package-stash" ,perl-package-stash) - ("perl-test-deep" ,perl-test-deep) - ("perl-test-exception" ,perl-test-exception) - ("perl-test-warn" ,perl-test-warn))) + (list perl-dbd-sqlite + perl-file-temp + perl-module-install + perl-package-stash + perl-test-deep + perl-test-exception + perl-test-warn)) (propagated-inputs - `(("perl-class-accessor-grouped" ,perl-class-accessor-grouped) - ("perl-class-c3-componentised" ,perl-class-c3-componentised) - ("perl-class-inspector" ,perl-class-inspector) - ("perl-config-any" ,perl-config-any) - ("perl-context-preserve" ,perl-context-preserve) - ("perl-data-dumper-concise" ,perl-data-dumper-concise) - ("perl-data-page" ,perl-data-page) - ("perl-dbi" ,perl-dbi) - ("perl-devel-globaldestruction" ,perl-devel-globaldestruction) - ("perl-hash-merge" ,perl-hash-merge) - ("perl-module-find" ,perl-module-find) - ("perl-moo" ,perl-moo) - ("perl-mro-compat" ,perl-mro-compat) - ("perl-namespace-clean" ,perl-namespace-clean) - ("perl-path-class" ,perl-path-class) - ("perl-scalar-list-utils" ,perl-scalar-list-utils) - ("perl-scope-guard" ,perl-scope-guard) - ("perl-sql-abstract-classic" ,perl-sql-abstract-classic) - ("perl-sub-name" ,perl-sub-name) - ("perl-text-balanced" ,perl-text-balanced) - ("perl-try-tiny" ,perl-try-tiny))) + (list perl-class-accessor-grouped + perl-class-c3-componentised + perl-class-inspector + perl-config-any + perl-context-preserve + perl-data-dumper-concise + perl-data-page + perl-dbi + perl-devel-globaldestruction + perl-hash-merge + perl-module-find + perl-moo + perl-mro-compat + perl-namespace-clean + perl-path-class + perl-scalar-list-utils + perl-scope-guard + perl-sql-abstract-classic + perl-sub-name + perl-text-balanced + perl-try-tiny)) (home-page "https://metacpan.org/release/DBIx-Class") (synopsis "Extensible and flexible object <-> relational mapper") (description "An SQL to OO mapper with an object API inspired by @@ -1771,12 +1834,9 @@ single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\", "09b2jahn2x12qm4f7qm1jzsxbz7qn1czp6a3fnl5l2i3l4r5421p")))) (build-system perl-build-system) (native-inputs - `(("perl-cache-cache" ,perl-cache-cache) - ("perl-dbd-sqlite" ,perl-dbd-sqlite) - ("perl-module-install" ,perl-module-install))) + (list perl-cache-cache perl-dbd-sqlite perl-module-install)) (propagated-inputs - `(("perl-carp-clan" ,perl-carp-clan) - ("perl-dbix-class" ,perl-dbix-class))) + (list perl-carp-clan perl-dbix-class)) (home-page "https://metacpan.org/release/DBIx-Class-Cursor-Cached") (synopsis "Cursor with built-in caching support") (description "DBIx::Class::Cursor::Cached provides a cursor class with @@ -1797,9 +1857,9 @@ built-in caching support.") "1w47rh2241iy5x3a9bqsyd5kdp9sk43dksr99frzv4qn4jsazfn6")))) (build-system perl-build-system) (native-inputs - `(("perl-module-install" ,perl-module-install))) + (list perl-module-install)) (propagated-inputs - `(("perl-dbix-class" ,perl-dbix-class))) + (list perl-dbix-class)) (home-page "https://metacpan.org/release/DBIx-Class-IntrospectableM2M") (synopsis "Introspect many-to-many relationships") (description "Because the many-to-many relationships are not real @@ -1824,40 +1884,40 @@ introspected and examined.") "0r57fv71ypxafb85cpxph1hdqii7ipjwvc19yb6fpkvq2ggcssg8")))) (build-system perl-build-system) (native-inputs - `(("perl-config-any" ,perl-config-any) - ("perl-config-general" ,perl-config-general) - ("perl-dbd-sqlite" ,perl-dbd-sqlite) - ("perl-dbix-class-introspectablem2m" ,perl-dbix-class-introspectablem2m) - ("perl-module-install" ,perl-module-install) - ("perl-moose" ,perl-moose) - ("perl-moosex-markasmethods" ,perl-moosex-markasmethods) - ("perl-moosex-nonmoose" ,perl-moosex-nonmoose) - ("perl-namespace-autoclean" ,perl-namespace-autoclean) - ("perl-test-deep" ,perl-test-deep) - ("perl-test-differences" ,perl-test-differences) - ("perl-test-exception" ,perl-test-exception) - ("perl-test-pod" ,perl-test-pod) - ("perl-test-warn" ,perl-test-warn))) + (list perl-config-any + perl-config-general + perl-dbd-sqlite + perl-dbix-class-introspectablem2m + perl-module-install + perl-moose + perl-moosex-markasmethods + perl-moosex-nonmoose + perl-namespace-autoclean + perl-test-deep + perl-test-differences + perl-test-exception + perl-test-pod + perl-test-warn)) (propagated-inputs - `(("perl-class-unload" ,perl-class-unload) - ("perl-class-inspector" ,perl-class-inspector) - ("perl-class-accessor-grouped" ,perl-class-accessor-grouped) - ("perl-class-c3-componentised" ,perl-class-c3-componentised) - ("perl-carp-clan" ,perl-carp-clan) - ("perl-data-dump" ,perl-data-dump) - ("perl-dbix-class" ,perl-dbix-class) - ("perl-hash-merge" ,perl-hash-merge) - ("perl-list-moreutils" ,perl-list-moreutils) - ("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase) - ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number) - ("perl-lingua-en-tagger" ,perl-lingua-en-tagger) - ("perl-namespace-clean" ,perl-namespace-clean) - ("perl-mro-compat" ,perl-mro-compat) - ("perl-scope-guard" ,perl-scope-guard) - ("perl-string-camelcase" ,perl-string-camelcase) - ("perl-string-toidentifier-en" ,perl-string-toidentifier-en) - ("perl-sub-name" ,perl-sub-name) - ("perl-try-tiny" ,perl-try-tiny))) + (list perl-class-unload + perl-class-inspector + perl-class-accessor-grouped + perl-class-c3-componentised + perl-carp-clan + perl-data-dump + perl-dbix-class + perl-hash-merge + perl-list-moreutils + perl-lingua-en-inflect-phrase + perl-lingua-en-inflect-number + perl-lingua-en-tagger + perl-namespace-clean + perl-mro-compat + perl-scope-guard + perl-string-camelcase + perl-string-toidentifier-en + perl-sub-name + perl-try-tiny)) (arguments `(#:tests? #f)) ;TODO: t/20invocations.t fails (home-page "https://metacpan.org/release/DBIx-Class-Schema-Loader") (synopsis "Create a DBIx::Class::Schema based on a database") @@ -1880,10 +1940,9 @@ columns, primary keys, unique constraints and relationships.") "0kcfqq7g3832wiix0sbyvlc885qghjrp2ah3akn7h2lnb22fjwy9")))) (build-system perl-build-system) (native-inputs - `(("perl-dbi" ,perl-dbi))) + (list perl-dbi)) (propagated-inputs - `(("perl-dbi" ,perl-dbi) - ("postgresql" ,postgresql))) + (list perl-dbi postgresql)) (home-page "https://metacpan.org/release/DBD-Pg") (synopsis "DBI PostgreSQL interface") (description "This package provides a PostgreSQL driver for the Perl5 @@ -1941,8 +2000,8 @@ columns, primary keys, unique constraints and relationships.") (base32 "1zljln5nh61gj3k22a1fv2vhx5l83waizmarwkh77hk6kzzmvrw9")))) (build-system perl-build-system) - (inputs `(("sqlite" ,sqlite))) - (propagated-inputs `(("perl-dbi" ,perl-dbi))) + (inputs (list sqlite)) + (propagated-inputs (list perl-dbi)) (synopsis "SQlite interface for Perl") (description "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire thing in the distribution. So in order to get a fast transaction @@ -1987,15 +2046,10 @@ libmysqlclient. It will fill an array with long options, ready to be parsed by (base32 "0jhw91b23wc9bkfwcgvka4x5ddxk58m9bcp5ay7a3vx77nla09p9")))) (build-system perl-build-system) (native-inputs - `(("perl-module-install" ,perl-module-install) - ("perl-test-deep" ,perl-test-deep) - ("perl-test-exception" ,perl-test-exception) - ("perl-test-warn" ,perl-test-warn))) + (list perl-module-install perl-test-deep perl-test-exception + perl-test-warn)) (propagated-inputs - `(("perl-hash-merge" ,perl-hash-merge) - ("perl-moo" ,perl-moo) - ("perl-mro-compat" ,perl-mro-compat) - ("perl-text-balanced" ,perl-text-balanced))) + (list perl-hash-merge perl-moo perl-mro-compat perl-text-balanced)) (home-page "https://metacpan.org/release/SQL-Abstract") (synopsis "Generate SQL from Perl data structures") (description "This module was inspired by the excellent DBIx::Abstract. @@ -2019,12 +2073,9 @@ time your data changes.") (base32 "0a7g13hs3kdxrjn43sfli09mgsi9d6w0dfw6hlk268av17yisgaf")))) (build-system perl-build-system) (native-inputs - `(("perl-test-deep" ,perl-test-deep) - ("perl-test-exception" ,perl-test-exception) - ("perl-test-warn" ,perl-test-warn))) + (list perl-test-deep perl-test-exception perl-test-warn)) (propagated-inputs - `(("perl-mro-compat" ,perl-mro-compat) - ("perl-sql-abstract" ,perl-sql-abstract))) + (list perl-mro-compat perl-sql-abstract)) (home-page "https://metacpan.org/release/SQL-Abstract-Classic") (synopsis "Generate SQL from Perl data structures") (description @@ -2055,14 +2106,10 @@ your data changes, as this module figures it out.") (base32 "0ppkx46nydzlnsxf9a8pkyb74wggfrdiiwafab143lrarlh88x0s")))) (build-system perl-build-system) (native-inputs - `(("perl-test-differences" ,perl-test-differences) - ("perl-test-exception" ,perl-test-exception) - ("perl-test-script" ,perl-test-script))) + (list perl-test-differences perl-test-exception perl-test-script)) (propagated-inputs - `(("perl-class-accessor" ,perl-class-accessor) - ("perl-list-moreutils" ,perl-list-moreutils) - ("perl-regexp-common" ,perl-regexp-common) - ("perl-sql-tokenizer" ,perl-sql-tokenizer))) + (list perl-class-accessor perl-list-moreutils perl-regexp-common + perl-sql-tokenizer)) (home-page "https://metacpan.org/release/SQL-SplitStatement") (synopsis "Split SQL code into atomic statements") (description "This module tries to split any SQL code, even including @@ -2132,7 +2179,7 @@ Driver.") "-DBUILD_SHARED_LIBS=ON") #:tests? #false)) (inputs - `(("unixodbc" ,unixodbc))) + (list 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 @@ -2199,30 +2246,29 @@ easy, requiring concise and simple code.") "UnQLite is an in-process software library which implements a self-contained, serverless, zero-configuration, transactional NoSQL database engine. UnQLite is a document store database similar to -MongoDB, Redis, CouchDB, etc. as well as a standard Key/Value store +Redis, CouchDB, etc., as well as a standard key/value store similar to BerkeleyDB, LevelDB, etc.") (license license:bsd-2))) (define-public redis (package (name "redis") - (version "6.2.4") + (version "6.2.6") (source (origin (method url-fetch) (uri (string-append "http://download.redis.io/releases/redis-" version".tar.gz")) (sha256 (base32 - "0vp1d9mlfsppry3nsj9f7bmh9wjgsy3jggp24sac1hhgl43c8cms")) + "1ariw5x33hmmm3d5al0j3307l5kf3vhmn78wpyaz67hia1x8nasv")) (modules '((guix build utils))) (snippet ;; Delete bundled jemalloc, as the package will use the libc one - '(begin (delete-file-recursively "deps/jemalloc") - #t)))) + '(begin (delete-file-recursively "deps/jemalloc"))))) (build-system gnu-build-system) (native-inputs - `(("procps" ,procps) ; for tests - ("tcl" ,tcl))) ; for tests + (list procps ; for tests + tcl)) ; for tests (arguments '(#:phases (modify-phases %standard-phases @@ -2233,8 +2279,7 @@ similar to BerkeleyDB, LevelDB, etc.") (("^TCLSH=.*") (string-append "TCLSH=" (assoc-ref inputs "tcl") - "/bin/tclsh"))) - #t)) + "/bin/tclsh"))))) (add-after 'unpack 'adjust-tests (lambda _ ;; Disable failing tests @@ -2242,8 +2287,7 @@ similar to BerkeleyDB, LevelDB, etc.") (("integration/failover") "") (("integration/replication-4") "") (("integration/replication-psync") "") - (("integration/replication[^-]") "")) - #t))) + (("integration/replication[^-]") ""))))) #:make-flags `("CC=gcc" "MALLOC=libc" "LDFLAGS=-ldl" @@ -2295,7 +2339,7 @@ one-to-one, while still providing an idiomatic interface.") "--disable-opt" ;"-march=native". XXX this also turns off -O0. (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")))) - (inputs `(("zlib" ,zlib))) + (inputs (list zlib)) (home-page "https://fallabs.com/kyotocabinet/") (synopsis "Kyoto Cabinet is a modern implementation of the DBM database") @@ -2324,7 +2368,7 @@ database and supports many programming languages. It is a NoSQL database.") (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")))) (inputs - `(("zlib" ,zlib))) + (list zlib)) (home-page "http://fallabs.com/tokyocabinet/") (synopsis "Tokyo Cabinet is a modern implementation of the DBM database") (description @@ -2360,9 +2404,7 @@ organized in hash table, B+ tree, or fixed-length array.") (("test/fops") "")) #t))))) (inputs - `(("lz4" ,lz4) - ("zlib" ,zlib) - ("snappy" ,snappy))) + (list lz4 zlib snappy)) (home-page "http://source.wiredtiger.com/") (synopsis "NoSQL data engine") (description @@ -2409,14 +2451,11 @@ trees (LSM), for sustained throughput under random insert workloads.") (assoc-ref %build-inputs "wiredtiger"))) #:make-flags '("GUILE_AUTO_COMPILE=0"))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) + (list autoconf automake pkg-config)) (inputs - `(("wiredtiger" ,wiredtiger-3) - ("guile" ,guile-2.2))) + (list wiredtiger-3 guile-2.2)) (propagated-inputs - `(("guile-bytestructures" ,guile-bytestructures))) + (list guile-bytestructures)) (synopsis "WiredTiger bindings for GNU Guile") (description "This package provides Guile bindings to the WiredTiger ``NoSQL'' @@ -2436,8 +2475,8 @@ database.") (sha256 (base32 "1ab6rm2b8lz0g3gc8k9y79gkgajyby0zpybkdg9mk4g35y9bmyfd")))) (build-system perl-build-system) - (inputs `(("bdb" ,bdb))) - (native-inputs `(("perl-test-pod" ,perl-test-pod))) + (inputs (list bdb)) + (native-inputs (list perl-test-pod)) (arguments `(#:phases (modify-phases %standard-phases (add-before @@ -2528,7 +2567,7 @@ virtual address space — not physical RAM.") (modify-phases %standard-phases (delete 'configure)))) (build-system gnu-build-system) - (inputs `(("lmdb" ,lmdb))) + (inputs (list lmdb)) (home-page "https://github.com/hoytech/lmdbxx") (synopsis "C++11 wrapper for the LMDB embedded B+ tree database library") (description "@code{lmdbxx} is a comprehensive @code{C++} wrapper for the @@ -2552,7 +2591,7 @@ semantics.") (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) - (inputs `(("postgresql" ,postgresql))) + (inputs (list postgresql)) (arguments `(#:tests? #f ; # FAIL: 1 #:phases @@ -2574,20 +2613,20 @@ on another machine, accessed via TCP/IP.") (define-public python-peewee (package (name "python-peewee") - (version "3.14.0") + (version "3.14.4") (source (origin (method url-fetch) (uri (pypi-uri "peewee" version)) (sha256 - (base32 "1yl49gxrg0c2x3n3r60z3lixw9am8b61s0477l9vjabhhx1yziar")))) + (base32 "18jidir2wid0cp8a61m9vf9mf0pdvm6nzspc8bfwdbifghr6ndcy")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; fails to import test data (inputs - `(("sqlite" ,sqlite))) + (list sqlite)) (native-inputs - `(("python-cython" ,python-cython))) + (list python-cython)) (home-page "https://github.com/coleifer/peewee/") (synopsis "Small object-relational mapping utility") (description @@ -2601,51 +2640,145 @@ can autogenerate peewee models using @code{pwiz}, a model generator.") (define-public python2-peewee (package-with-python2 python-peewee)) +(define-public python-pypika-tortoise + (package + (name "python-pypika-tortoise") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pypika-tortoise" version)) + (sha256 + (base32 "0g4z0lz739nk04b405ynqpd3y1z5nfyxjz9hqgxcw3jydsjx0cb8")))) + (build-system python-build-system) + (home-page "https://github.com/tortoise/pypika-tortoise") + (synopsis "Pypika fork for tortoise-orm") + (description "Pypika-tortoise is a fork of pypika which has been +streamlined for its use in the context of tortoise-orm. It removes support +for many database kinds that tortoise-orm doesn't need, for example.") + (license license:asl2.0))) + +(define-public python-sphinxcontrib-asyncio + (package + (name "python-sphinxcontrib-asyncio") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sphinxcontrib-asyncio" version)) + (sha256 + (base32 "0bkj010ygsr7m769llf2aq4bbjfhdwqrrabi98j8gpvyzvh2dzcr")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ;no test suite + (propagated-inputs (list python-sphinx)) + (home-page "https://github.com/aio-libs/sphinxcontrib-asyncio") + (synopsis "Sphinx extension to support coroutines in markup") + (description "This package is a Sphinx extension providing additional +coroutine-specific markup.") + (license license:asl2.0))) + +(define-public python-asyncpg + (package + (name "python-asyncpg") + (version "0.24.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "asyncpg" version)) + (sha256 + (base32 "1in0q6iffpl8ag6ady4bvwnn40igh10cpp4xgm426j1lqdis0byx")))) + (build-system python-build-system) + (propagated-inputs (list python-typing-extensions)) + (native-inputs + (list postgresql + python-cython + python-flake8 + python-pycodestyle + python-pytest + python-sphinx + python-sphinx-rtd-theme + python-sphinxcontrib-asyncio + python-uvloop)) + (home-page "https://github.com/MagicStack/asyncpg") + (synopsis "Fast PostgreSQL database client library for Python") + (description "@code{asyncpg} is a database interface library designed +specifically for PostgreSQL and Python/asyncio. @code{asyncpg} is an +efficient, clean implementation of PostgreSQL server binary protocol for use +with Python's asyncio framework.") + (license license:asl2.0))) + +(define-public python-asyncmy + (package + (name "python-asyncmy") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "asyncmy" version)) + (sha256 + (base32 "19p81jd4w7m7v2x1jdrwibp67wzqx1a7rdw5n4qqmch3iffp97vn")))) + (build-system python-build-system) + (native-inputs (list python-cython)) + (home-page "https://github.com/long2ice/asyncmy") + (synopsis "Fast MySQL driver for Python") + (description "@code{asyncmy} is a fast @code{asyncio} MySQL driver, which +reuses most of @code{pymysql} and @code{aiomysql} but rewrites the core +protocol with Cython for performance.") + (license license:asl2.0))) + +(define-public python-aiomysql + (package + (name "python-aiomysql") + (version "0.0.21") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiomysql" version)) + (sha256 + (base32 "0b442d0jb82z3lk19ylmm64ix88ppz7gay08bxld538ivg06j5c1")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ;test suite requires docker + (propagated-inputs (list python-pymysql)) + (home-page "https://github.com/aio-libs/aiomysql") + (synopsis "MySQL driver for Python") + (description "@code{aiomysql} is a driver for accessing a MySQL database +from the @code{asyncio} Python framework. It depends on and reuses most parts +of PyMySQL. @code{aiomysql} tries to preserve the same API as the +@code{aiopg} library.") + (license license:expat))) + (define-public python-tortoise-orm (package (name "python-tortoise-orm") - (version "0.16.21") + (version "0.17.8") (source (origin (method url-fetch) (uri (pypi-uri "tortoise-orm" version)) (sha256 - (base32 - "1dallk0q8q4v37klm0v3rppf2w8sjkqmypc1w8r9rraqxg1ylacp")))) + (base32 "1gzgiypln7lck3p95vk3i8rdx1bjbmmlcpb8xpba8cjdjvlj0l0z")))) (build-system python-build-system) - (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))) + ;; The test suite relies on asynctest, which is abandoned and doesn't + ;; support Python >= 3.8. + (arguments '(#:tests? #f)) (propagated-inputs - `(("python-aiosqlite" ,python-aiosqlite) - ("python-pypika" ,python-pypika) - ("python-ciso8601" ,python-ciso8601) - ("python-pytz" ,python-pytz) - ("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.") + (list python-aiomysql + python-aiosqlite + python-asyncmy + python-asyncpg + python-ciso8601 + python-iso8601 + python-pypika-tortoise + python-pytz + python-rapidjson + python-uvloop)) + (home-page "https://github.com/tortoise/tortoise-orm") + (synopsis "Asynchronous Object Relational Mapper (ORM) for Python") + (description "Tortoise ORM is an easy-to-use asyncio ORM (Object +Relational Mapper) inspired by Django. Tortoise ORM was built 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 @@ -2665,7 +2798,7 @@ data.") `(("libcrypto" ,openssl) ("libtcl8.6" ,tcl))) ; required for running the tests (native-inputs - `(("tcl" ,tcl))) + (list tcl)) (arguments '(#:configure-flags '("--enable-tempstore=yes" @@ -2712,7 +2845,7 @@ development.") (file-name (string-append name "-" version ".tar.gz")))) (build-system python-build-system) (inputs - `(("unixodbc" ,unixodbc))) + (list unixodbc)) (arguments `(;; No unit tests exist. #:tests? #f)) @@ -2738,7 +2871,7 @@ for ODBC.") (file-name (string-append name "-" version ".tar.gz")))) (build-system python-build-system) (inputs - `(("unixodbc" ,unixodbc))) + (list unixodbc)) (arguments `(#:tests? #f)) ; no unit tests exist (home-page "https://github.com/mkleehammer/pyodbc") @@ -2766,14 +2899,14 @@ for ODBC.") "0gwcpp9y09xhs21g7my2fs8ncb8i6ahlyixcx8jd3q97jbzj441l")))) (build-system gnu-build-system) (inputs - `(("glib" ,glib))) + (list glib)) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("txt2man" ,txt2man) - ("which" ,which))) + (list autoconf + automake + libtool + pkg-config + txt2man + which)) (home-page "http://mdbtools.sourceforge.net/") (synopsis "Read Microsoft Access databases") (description "MDB Tools is a set of tools and applications to read the @@ -2805,7 +2938,7 @@ etc., and an SQL engine for performing simple SQL queries.") #t)))) (build-system python-build-system) (inputs - `(("lmdb" ,lmdb))) + (list lmdb)) (arguments `(#:phases (modify-phases %standard-phases @@ -2845,19 +2978,19 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.") ;; does not contain setup.py. How to test? (arguments '(#:tests? #f)) (propagated-inputs - `(("python-backpack" ,python-backpack) - ("python-blinker" ,python-blinker) - ("python-cleo" ,python-cleo) - ("python-faker" ,python-faker) - ("python-inflection" ,python-inflection) - ("python-lazy-object-proxy" ,python-lazy-object-proxy) - ("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))) + (list python-backpack + python-blinker + python-cleo + python-faker + python-inflection + python-lazy-object-proxy + python-pendulum + python-pyaml + python-pygments + python-pyyaml + python-simplejson + python-six + python-wrapt)) (home-page "https://orator-orm.com/") (synopsis "ActiveRecord ORM for Python") (description @@ -2896,10 +3029,7 @@ implementation for Python.") '("libvirtuoso-t.a" "libvirtuoso-t.la")))))))) (inputs - `(("openssl" ,openssl) - ("net-tools" ,net-tools) - ("readline" ,readline) - ("zlib" ,zlib))) + (list openssl net-tools readline zlib)) (home-page "http://vos.openlinksw.com/owiki/wiki/VOS/") (synopsis "Multi-model database system") (description "Virtuoso is a scalable cross-platform server that combines @@ -2922,11 +3052,10 @@ and web services platform functionality.") "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n")))) (build-system python-build-system) (propagated-inputs - `(("python-pyyaml" ,python-pyyaml) - ;; Not listed in setup.py, but used in ccmlib/node.py for full - ;; functionality - ("python-psutil" ,python-psutil) - ("python-six" ,python-six))) + (list python-pyyaml + ;; Not listed in setup.py, but used in ccmlib/node.py for full + ;; functionality + python-psutil python-six)) (home-page "https://github.com/pcmanus/ccm") (synopsis "Cassandra Cluster Manager for Apache Cassandra clusters on localhost") @@ -2951,7 +3080,7 @@ on localhost.") "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp")))) (build-system python-build-system) (inputs - `(("sqlite" ,sqlite))) + (list sqlite)) (arguments `(#:python ,python-2 ; incompatible with Python 3 #:tests? #f)) ; no test target @@ -2965,25 +3094,26 @@ Database API 2.0T.") (define-public python-sqlalchemy (package (name "python-sqlalchemy") - (version "1.4.23") + (version "1.4.31") (source (origin (method url-fetch) (uri (pypi-uri "SQLAlchemy" version)) (sha256 - (base32 "10vm8hm8w4yfsab076ak8r4vp5v1jqdi71cky6dhha7mh5l29zvn")))) + (base32 "06448s883bb8fgca33bn0pfaj15la0g4cax2mmx482kqwp8mjasq")))) (build-system python-build-system) (native-inputs - `(("python-cython" ,python-cython) ; for C extensions - ("python-pytest" ,python-pytest) - ("python-mock" ,python-mock))) ; for tests + (list python-cython ; for C extensions + python-pytest python-mock)) ; for tests (propagated-inputs - `(("python-greenlet" ,python-greenlet))) + (list python-greenlet)) (arguments `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ (invoke "py.test")))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "py.test"))))))) (home-page "https://www.sqlalchemy.org") (synopsis "Database abstraction library") (description @@ -3010,8 +3140,7 @@ simple and Pythonic domain language.") "1bppjmv7v7m0q8gwg791pgxbx4ay7mna0zq204pn9vw28kfxcrf6")))) (build-system python-build-system) (propagated-inputs - `(("python-mypy" ,python-mypy) - ("python-typing-extensions" ,python-typing-extensions))) + (list python-mypy python-typing-extensions)) (home-page "https://github.com/dropbox/sqlalchemy-stubs") (synopsis "SQLAlchemy stubs and mypy plugin") (description "This package contains type stubs and a mypy plugin to @@ -3022,14 +3151,14 @@ framework.") (define-public python-sqlalchemy-utils (package (name "python-sqlalchemy-utils") - (version "0.32.21") + (version "0.38.2") (source (origin (method url-fetch) (uri (pypi-uri "SQLAlchemy-Utils" version)) (sha256 (base32 - "1myn71dn8j74xglyh46f12sh8ywb7j0j732rzwq70kvwwnq32m73")))) + "1d6fq81489kqzxmk3l6f39sinw206lzs392frmpr5lsjzg9xc0cy")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; FIXME: Many tests require a running database server. @@ -3039,14 +3168,10 @@ framework.") ;; (lambda _ ;; (zero? (system* "py.test" "sqlalchemy_utils" "tests"))))) (propagated-inputs - `(("python-six" ,python-six) - ("python-sqlalchemy" ,python-sqlalchemy))) + (list python-six python-sqlalchemy)) (native-inputs - `(("python-dateutil" ,python-dateutil) - ("python-flexmock" ,python-flexmock) - ("python-psycopg2" ,python-psycopg2) - ("python-pytest" ,python-pytest) - ("python-pytz" ,python-pytz))) + (list python-dateutil python-flexmock python-psycopg2 python-pytest + python-pytz)) (home-page "https://github.com/kvesteri/sqlalchemy-utils") (synopsis "Various utility functions for SQLAlchemy") (description @@ -3066,9 +3191,6 @@ You might also want to install the following optional dependencies: ") (license license:bsd-3))) -(define-public python2-sqlalchemy-utils - (package-with-python2 python-sqlalchemy-utils)) - (define-public python-alchemy-mock (package (name "python-alchemy-mock") @@ -3095,11 +3217,9 @@ doctest_optionflags=IGNORE_EXCEPTION_DETAIL (invoke "pytest" "-vv" "--doctest-modules" "alchemy_mock/")))))) (native-inputs - `(("python-mock" ,python-mock) - ("python-pytest" ,python-pytest))) + (list python-mock python-pytest)) (propagated-inputs - `(("python-six" ,python-six) - ("python-sqlalchemy" ,python-sqlalchemy))) + (list python-six python-sqlalchemy)) (synopsis "Mock helpers for SQLAlchemy") (description "This package provides mock helpers for SQLAlchemy that makes it easy @@ -3113,13 +3233,13 @@ this library provides functions to facilitate such comparisons.") (define-public python-alembic (package (name "python-alembic") - (version "1.7.1") + (version "1.7.5") (source (origin (method url-fetch) (uri (pypi-uri "alembic" version)) (sha256 - (base32 "1ys0a44gh544xpbzz6r5xvz3msim74f9qklyfnw0bhn9vk9n9adf")))) + (base32 "0lxi2g2025lz5k7k5dd5fc1lfijqi2yw6qqyjzp073z6laa8cckw")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -3127,14 +3247,9 @@ this library provides functions to facilitate such comparisons.") (lambda _ (invoke "pytest" "-vv")))))) (native-inputs - `(("python-mock" ,python-mock) - ("python-pytest-cov" ,python-pytest-cov))) + (list python-mock python-pytest-cov)) (propagated-inputs - `(("python-dateutil" ,python-dateutil) - ("python-importlib-resources" ,python-importlib-resources) ;Python < 3.9 - ("python-sqlalchemy" ,python-sqlalchemy) - ("python-mako" ,python-mako) - ("python-editor" ,python-editor))) + (list python-dateutil python-sqlalchemy python-mako python-editor)) (home-page "https://bitbucket.org/zzzeek/alembic") (synopsis "Database migration tool for SQLAlchemy") (description @@ -3159,7 +3274,7 @@ SQLAlchemy Database Toolkit for Python.") (lambda _ (invoke "pytest")))))) (native-inputs - `(("python-pytest" ,python-pytest))) + (list python-pytest)) (home-page "https://github.com/vivainio/pickleshare") (synopsis "Tiny key value database with concurrency support") (description @@ -3177,13 +3292,14 @@ PickleShare.") (let ((pickleshare (package-with-python2 (strip-python2-variant python-pickleshare)))) (package (inherit pickleshare) - (propagated-inputs `(("python2-pathlib2" ,python2-pathlib2) - ,@(package-propagated-inputs pickleshare)))))) + (propagated-inputs (modify-inputs (package-propagated-inputs + pickleshare) + (prepend python2-pathlib2)))))) (define-public python-apsw (package (name "python-apsw") - (version "3.31.1-r1") + (version "3.36.0-r1") (source (origin (method url-fetch) @@ -3191,12 +3307,12 @@ PickleShare.") "/download/" version "/apsw-" version ".zip")) (sha256 (base32 - "1gap5lr6c7bp134nzvfwr693i6d0fqyaysg3ms2cayjldv616yfx")))) + "0w8q73147hv77dlpqrx6h1gx03acc8xqhvdpfp6vkffdm0wmqd8p")))) (build-system python-build-system) (native-inputs - `(("unzip" ,unzip))) + (list unzip)) (inputs - `(("sqlite" ,sqlite))) + (list sqlite)) (arguments `(#:phases (modify-phases %standard-phases @@ -3246,9 +3362,9 @@ translate the complete SQLite API into Python.") (format #t "test suite not run~%")) #t))))) (propagated-inputs - `(("python-typing-extensions" ,python-typing-extensions))) + (list python-typing-extensions)) (native-inputs - `(("python-aiounittest" ,python-aiounittest))) + (list python-aiounittest)) (home-page "https://github.com/jreese/aiosqlite") (synopsis "Asyncio bridge for sqlite3") @@ -3303,29 +3419,127 @@ designed to be easy and intuitive to use.") (define-public python-psycopg2 (package (name "python-psycopg2") - (version "2.8.6") + (version "2.9.3") (source (origin (method url-fetch) (uri (pypi-uri "psycopg2" version)) (sha256 - (base32 "0hzmk6b1hb5riqkljr5xics6p4zbvmis6knbczb7zhq7273zc8zv")))) + (base32 "1099as8ind9kpz30rmqzc3nir668fmpkxwayrj2sjka3ycdiv14f")))) (build-system python-build-system) (arguments ;; Tests would require a postgresql database "psycopg2_test" ;; and a running postgresql database management service. - `(#:tests? #f)) ; TODO re-enable after providing a test-db. + '(#:tests? #f)) ; TODO re-enable after providing a test-db. (inputs - `(("postgresql" ,postgresql))) ; libpq - (home-page "http://initd.org/psycopg/") + (list postgresql)) ; libpq + (home-page "https://www.psycopg.org/") (synopsis "Python PostgreSQL adapter") (description "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0.") (license license:lgpl3+))) -(define-public python2-psycopg2 - (package-with-python2 python-psycopg2)) +(define-public python-psycopg-pool + (package + (name "python-psycopg-pool") + ;; The connection pooling code is on a different release cadence + ;; from the driver code, so fetch the latest PyPI release. + (version "3.0.3") + (source (origin + (method url-fetch) + (uri (pypi-uri "psycopg-pool" version)) + (sha256 + (base32 + "1nx139pwzsgrz253zjxw2sf8h713s79h4cp1falmpc39j08djb46")))) + (build-system python-build-system) + (arguments + (list #:tests? #f ;run for psycopg below + #:phases + #~(modify-phases %standard-phases + ;; This module requires 'psycopg', however psycopg needs this + ;; for its tests. Disable sanity check to break the cycle. + (delete 'sanity-check)))) + (home-page "https://www.psycopg.org/") + (synopsis "Connection pooler for psycopg") + (description + "This module provides connection pool implementations that can be used +with the @code{psycopg} PostgreSQL driver.") + (license license:lgpl3+))) + +(define-public python-psycopg + (package + (name "python-psycopg") + (version "3.0.8") + (source (origin + ;; Fetch from git because PyPI contains only cythonized sources. + (method git-fetch) + (uri (git-reference + (url "https://github.com/psycopg/psycopg") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "16i19jqd9lg9r7bc63ssh527cccrpf49g1nlayikk5qlswpzp75y")))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-before 'build 'change-directory + (lambda _ + (chdir "psycopg"))) + (add-after 'build 'build-c-extensions + (lambda _ + (with-directory-excursion "../psycopg_c" + ((assoc-ref %standard-phases 'build))))) + (add-after 'install 'install-c-extensions + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For some reason setup.py refuses to install if the + ;; installation directory is not on PYTHONPATH. + (setenv "PYTHONPATH" (site-packages inputs outputs)) + (with-directory-excursion "../psycopg_c" + ((assoc-ref %standard-phases 'install) + #:inputs inputs + #:outputs outputs)))) + (add-before 'check 'start-postgresql + (lambda _ + (let ((dbdir (string-append (getcwd) "/../pgdir"))) + (invoke "initdb" "-D" dbdir) + (invoke "pg_ctl" "-D" dbdir + "-o" (string-append "-k " dbdir) + "-l" (string-append dbdir "/db.log") + "start") + + (invoke "psql" "-h" dbdir "-d" "postgres" + "-c" "CREATE DATABASE nixbld;")))) + (replace 'check + (lambda* (#:key inputs tests? #:allow-other-keys) + (when tests? + (setenv "TZDIR" (search-input-directory inputs + "share/zoneinfo")) + (with-directory-excursion ".." + (invoke "pytest" "-vv" + "-o" "asyncio_mode=auto" + ;; FIXME: Many of the typing tests are failing, + ;; conveniently tagged as slow... + "-k" "not slow")))))))) + (native-inputs + (list python-cython-3 + python-mypy + python-psycopg-pool + python-pytest + python-pytest-asyncio + python-tenacity + pproxy + tzdata-for-tests)) + (inputs + (list postgresql)) + (home-page "https://www.psycopg.org/") + (synopsis "PostgreSQL driver for Python") + (description + "Psycopg 3 is a new implementation of the popular @code{psycopg2} +database adapter for Python.") + (license license:lgpl3+))) (define-public python-sadisplay (package @@ -3351,10 +3565,10 @@ designed to be easy and intuitive to use.") (invoke "pytest" "-vv")) (format #t "test suite not run~%"))))))) (propagated-inputs - `(("python-sqlalchemy" ,python-sqlalchemy))) + (list python-sqlalchemy)) (native-inputs ;; For tests. - `(("python-pytest" ,python-pytest))) + (list python-pytest)) (home-page "https://bitbucket.org/estin/sadisplay") (synopsis "SQLAlchemy schema displayer") (description "This package provides a program to build Entity @@ -3362,9 +3576,6 @@ Relationship diagrams from a SQLAlchemy model (or directly from the database).") (license license:bsd-3))) -(define-public python2-sadisplay - (package-with-python2 python-sadisplay)) - (define-public yoyo-migrations (package (name "yoyo-migrations") @@ -3386,8 +3597,7 @@ database).") ;; fails to connect to it. '(#:tests? #f)) (propagated-inputs - `(("python-sqlparse" ,python-sqlparse) - ("python-tabulate" ,python-tabulate))) + (list python-sqlparse python-tabulate)) (home-page "https://ollycope.com/software/yoyo/latest/") (synopsis "Database migrations with SQL") (description @@ -3448,20 +3658,20 @@ parsing code in hiredis. It primarily speeds up parsing of multi bulk replies." (define-public python-fakeredis (package (name "python-fakeredis") - (version "1.2.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (pypi-uri "fakeredis" version)) (sha256 (base32 - "1s12mn4q4hz7402139khn9fx56kibj7nn0d6w81hn0zs07b90wpc")))) + "0wacd3f558vzsrpdvgvdwy9pp6crxf8hxblz30zbsv1k63j15gf9")))) (build-system python-build-system) (arguments ;; no tests `(#:tests? #f)) (propagated-inputs - `(("python-sortedcontainers" ,python-sortedcontainers))) + (list python-packaging python-redis python-sortedcontainers)) (home-page "https://github.com/jamesls/fakeredis") (synopsis "Fake implementation of redis API for testing purposes") (description @@ -3474,9 +3684,6 @@ talk to an external server such as redis. This module can be used as a reasonable substitute.") (license license:bsd-3))) -(define-public python2-fakeredis - (package-with-python2 python-fakeredis)) - (define-public python-redis (package (name "python-redis") @@ -3531,12 +3738,9 @@ reasonable substitute.") (getenv "PATH"))) (invoke "pytest" "-vv"))))))) (native-inputs - `(("python-mock" ,python-mock) - ("python-pytest" ,python-pytest) - ("redis" ,redis))) + (list python-mock python-pytest redis)) (propagated-inputs - `(("python-click" ,python-click) - ("python-redis" ,python-redis))) + (list python-click python-redis)) (home-page "https://python-rq.org/") (synopsis "Simple job queues for Python") (description @@ -3572,11 +3776,9 @@ is designed to have a low barrier to entry.") (which "env"))) (invoke "./run_tests.py")))))) (native-inputs - `(("redis" ,redis) - ("which" ,which))) + (list redis which)) (propagated-inputs - `(("python-croniter" ,python-croniter) - ("python-rq" ,python-rq))) + (list python-croniter python-rq)) (synopsis "Job scheduling capabilities for RQ (Redis Queue)") (description "This package provides job scheduling capabilities to @code{python-rq} @@ -3610,13 +3812,13 @@ is designed to have a low barrier to entry.") (define-public python-sqlparse (package (name "python-sqlparse") - (version "0.4.1") + (version "0.4.2") (source (origin (method url-fetch) (uri (pypi-uri "sqlparse" version)) (sha256 (base32 - "1s2l0jgi1v7rk7smzb99iamasaz22apfkczsphn3ci4wh8pgv48g")))) + "1bkx52c2jh28c528b69qfk2ijfzw1laxx6lim7jr8fi6fh67600c")))) (build-system python-build-system) (arguments `(#:phases @@ -3639,12 +3841,13 @@ is designed to have a low barrier to entry.") (string-append output sitedir)) (list python out)))))))))) (native-inputs - `(("python-pytest" ,python-pytest))) + (list python-pytest)) (home-page "https://github.com/andialbrecht/sqlparse") (synopsis "Non-validating SQL parser") (description "Sqlparse is a non-validating SQL parser for Python. It provides support for parsing, splitting and formatting SQL statements.") - (license license:bsd-3))) + (license license:bsd-3) + (properties '((cpe-name . "sqlparse"))))) (define-public python-sql (package @@ -3663,9 +3866,6 @@ provides support for parsing, splitting and formatting SQL statements.") transforms idiomatic python function calls to well-formed SQL queries.") (license license:bsd-3))) -(define-public python2-sql - (package-with-python2 python-sql)) - (define-public python-pypika (package (name "python-pypika") @@ -3681,7 +3881,7 @@ transforms idiomatic python function calls to well-formed SQL queries.") "001pg36sw9a36zdd1kccbymcxndphjcjbbrsy6ri7ng8h4dgz549")))) (build-system python-build-system) (native-inputs - `(("python-parameterized" ,python-parameterized))) + (list python-parameterized)) (home-page "https://github.com/kayak/pypika") (synopsis "SQL query builder API for Python") (description @@ -3694,7 +3894,7 @@ the SQL language using a syntax that reflects the resulting query.") (define-public apache-arrow (package (name "apache-arrow") - (version "5.0.0") + (version "6.0.1") (source (origin (method git-fetch) @@ -3704,7 +3904,7 @@ the SQL language using a syntax that reflects the resulting query.") (file-name (git-file-name name version)) (sha256 (base32 - "0275aayzy78nbxzbj93w5152sv5q2c7020ijxnf8b58v9qwfxzz0")))) + "0mcw361akqw4sxnnpnr9c9v1zk4hphk6gcq763pcb19yzljh88ig")))) (build-system cmake-build-system) (arguments `(#:tests? #f @@ -3743,6 +3943,10 @@ the SQL language using a syntax that reflects the resulting query.") "-DARROW_DEPENDENCY_SOURCE=SYSTEM" "-Dxsimd_SOURCE=SYSTEM" + "-DARROW_RUNTIME_SIMD_LEVEL=NONE" + "-DARROW_SIMD_LEVEL=NONE" + "-DARROW_PACKAGE_KIND=Guix" + ;; Split output into its component packages. (string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "lib")) @@ -3784,27 +3988,26 @@ the SQL language using a syntax that reflects the resulting query.") ;;"-DBENCHMARK_ENABLE_TESTING=OFF" "-DARROW_BUILD_STATIC=OFF"))) (inputs - `(("apache-thrift" ,apache-thrift "lib") - ("boost" ,boost) - ("brotli" ,google-brotli) + `(("boost" ,boost) + ("brotli" ,brotli) ("bzip2" ,bzip2) ("double-conversion" ,double-conversion) ("gflags" ,gflags) ("glog" ,glog) ("grpc" ,grpc) - ("lz4" ,lz4) ("protobuf" ,protobuf) ("python-3" ,python) ("python-numpy" ,python-numpy) ("rapidjson" ,rapidjson) ("re2" ,re2) ("snappy" ,snappy) - ("utf8proc" ,utf8proc) - ("xsimd" ,xsimd) - ("zlib" ,zlib) - ("zstd" ,zstd "lib"))) + ("xsimd" ,xsimd))) + ;; These are all listed under Requires.private in arrow.pc + (propagated-inputs + (list `(,apache-thrift "lib") lz4 utf8proc zlib + `(,zstd "lib"))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (outputs '("out" "lib" "include")) (home-page "https://arrow.apache.org/") (synopsis "Columnar in-memory analytics") @@ -3885,7 +4088,7 @@ other traditional Python scientific computing packages.") "0ngmlvi320c5gsxab0s7qgq0ck4jdlcwvb6lbjhnfprafdp56vvx")))) (build-system python-build-system) (propagated-inputs - `(("python-urllib3" ,python-urllib3))) + (list python-urllib3)) (home-page "https://github.com/crate/crate-python") (synopsis "CrateDB Python client") (description @@ -3929,10 +4132,8 @@ simultaneous database connections by using this framework.") "0m680h8cc4428xin4p733azysamzgzcmv4psjvraykrsaz6ymlj3")))) (build-system gnu-build-system) (native-inputs - `(;; For tests. - ("inetutils" ,inetutils) - ("glibc-locales" ,glibc-locales) - ("mariadb" ,mariadb))) + (list ;; For tests. + inetutils glibc-locales mariadb)) (inputs `(("libdbi" ,libdbi) ("mariadb:dev" ,mariadb "dev") @@ -4046,10 +4247,33 @@ PostreSQL, SQLite, ODBC and MySQL.") connecting to MS SQL and Sybase servers over TCP/IP.") (license license:lgpl2.0+))) +(define-public python-tinydb + (package + (name "python-tinydb") + (version "4.5.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "tinydb" version)) + (sha256 + (base32 "1x9c4s42930wwal3ds0plwb57kg5c3gj7kbpy64c29vq478b463x")))) + (build-system python-build-system) + ;; PyPi tarball does not contain tests and github repository does not + ;; have a setup.py file (only pyproject). + (arguments `(#:tests? #f)) + (propagated-inputs + (list python-typing-extensions)) + (home-page "https://github.com/msiemens/tinydb") + (synopsis "TinyDB is a lightweight document oriented database") + (description + "TinyDB is a small document oriented database written in pure Python +with no external dependencies. The targets are small apps that would +be blown away by a SQL-DB or an external database server.") + (license license:expat))) + (define-public sequeler (package (name "sequeler") - (version "0.8.1") + (version "0.8.2") (source (origin (method git-fetch) (uri (git-reference @@ -4058,7 +4282,7 @@ connecting to MS SQL and Sybase servers over TCP/IP.") (file-name (git-file-name name version)) (sha256 (base32 - "1q1vzc3likpiwfh6blkyiz0wr0aarj9xrm8gbi7m3p1wslkpah7c")))) + "0biggmsn8k7j6pdrwk29whl56qlfgvf5d9vjpgz4nyqih56wgh9j")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t @@ -4069,8 +4293,7 @@ connecting to MS SQL and Sybase servers over TCP/IP.") (lambda _ (substitute* "build-aux/meson_post_install.py" (("gtk-update-icon-cache") "true") - (("update-desktop-database") "true")) - #t))))) + (("update-desktop-database") "true"))))))) (native-inputs `(;("appstream-glib" ,appstream-glib) ; validation fails for lack of network ("gettext-minimal" ,gettext-minimal) |