diff options
Diffstat (limited to 'gnu/packages/databases.scm')
-rw-r--r-- | gnu/packages/databases.scm | 646 |
1 files changed, 361 insertions, 285 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index f262aaf95b..9dda410a59 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012-2016, 2018, 2022 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2025 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2017 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org> @@ -32,7 +32,7 @@ ;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com> ;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> -;;; Copyright © 2018, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2018, 2021, 2022, 2023 Maxim Cournoyer <maxim@guixotic.coop> ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com> @@ -66,6 +66,7 @@ ;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2025 Ashvith Shetty <ashvithshetty0010@zohomail.in> ;;; Copyright © 2025 Philippe Swartvagher <phil.swart@gmx.fr> +;;; Copyright © 2025 Simen Endsjø <contact@simendsjo.me> ;;; ;;; This file is part of GNU Guix. ;;; @@ -92,7 +93,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) - #:use-module (gnu packages certs) + #:use-module (gnu packages nss) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -115,6 +116,7 @@ #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) + #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) @@ -147,6 +149,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pretty-print) + #:use-module (gnu packages prometheus) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-build) @@ -481,6 +484,113 @@ database later.") license:mpl1.1 ; examples/interfaces/0{6,8}*.cpp license:public-domain)))) ; including files without explicit licence +(define-public go-github-com-cockroachdb-pebble + ;; TODO: As inherited package can't be placed in separate module, keeping + ;; this Golang source library here. + (package + (name "go-github-com-cockroachdb-pebble") + (version "1.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cockroachdb/pebble") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15px3m8fid7fwh0xfyia75aak6a5sx5q3r01n79fr6mnyiaix18a")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:build-flags #~(list "-tags" "external_libzstd") + #:test-flags #~(list "-tags" "external_libzstd" + ;; Skip tests requiring git in PATH. + "-skip" "TestLint") + ;; XXX: Maybe run more tests if possible. + #:test-subdirs #~(list "internal/...") + #:import-path "github.com/cockroachdb/pebble")) + (native-inputs + (list go-github-com-stretchr-testify + go-golang-org-x-perf + pkg-config)) + (inputs + (list (list zstd "lib"))) + (propagated-inputs + (list go-github-com-cespare-xxhash-v2 + go-github-com-cockroachdb-datadriven + go-github-com-cockroachdb-errors + go-github-com-cockroachdb-fifo + go-github-com-cockroachdb-redact + go-github-com-cockroachdb-tokenbucket + go-github-com-datadog-zstd + go-github-com-ghemawat-stream + go-github-com-golang-snappy + go-github-com-guptarohit-asciigraph + go-github-com-hdrhistogram-hdrhistogram-go + go-github-com-klauspost-compress + go-github-com-kr-pretty + go-github-com-pkg-errors + go-github-com-pmezard-go-difflib + go-github-com-prometheus-client-golang + go-github-com-prometheus-client-model + go-github-com-spf13-cobra + go-golang-org-x-exp + go-golang-org-x-perf + go-golang-org-x-sync + go-golang-org-x-sys)) + (home-page "https://github.com/cockroachdb/pebble") + (synopsis "RocksDB/LevelDB inspired key-value database in Golang") + (description + "Pebble is a LevelDB/RocksDB inspired key-value store focused on +performance and internal usage by CockroachDB. Pebble inherits the RocksDB +file formats and a few extensions such as range deletion tombstones, +table-level bloom filters, and updates to the MANIFEST format.") + (license license:bsd-3))) + +(define-public go-github-com-cockroachdb-pebble-v2 + (package + (inherit go-github-com-cockroachdb-pebble) + (name "go-github-com-cockroachdb-pebble-v2") + (version "2.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cockroachdb/pebble") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jglnsabg7y0y5agazvvmsa0r0ddn0j3c204cdpv7qsvi90pnr0d")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-cockroachdb-pebble) + ((#:tests? _ #t) #f) ; TODO: Find out why some tests fails to build + ((#:import-path _) "github.com/cockroachdb/pebble/v2"))) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-cockroachdb-pebble) + (append go-github-com-cockroachdb-crlib + go-github-com-cockroachdb-swiss))))) + +(define-public pebble + (package/inherit go-github-com-cockroachdb-pebble + (name "pebble") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-cockroachdb-pebble) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _) "github.com/cockroachdb/pebble/cmd/pebble") + ((#:unpack-path _ "") "github.com/cockroachdb/pebble"))) + (native-inputs + (append (package-propagated-inputs go-github-com-cockroachdb-pebble) + (package-native-inputs go-github-com-cockroachdb-pebble))) + (propagated-inputs '()) + (description + (string-append (package-description + go-github-com-cockroachdb-pebble) + "\nThis package provides command line interface (CLI).")))) + (define-public dicedb (package (name "dicedb") @@ -498,7 +608,6 @@ database later.") (build-system go-build-system) (arguments (list - #:go go-1.23 #:install-source? #f #:import-path "github.com/dicedb/dice" #:build-flags @@ -735,29 +844,32 @@ this package in a more convenient interface, and should be preferred where they exist.") (license license:asl2.0))) +;; XXX: This project was archived by the owner on Apr 15, 2025. It is now +;; read-only. (define-public python-prisma (package (name "python-prisma") - (version "0.12.0") + (version "0.15.0") (source (origin (method url-fetch) (uri (pypi-uri "prisma" version)) (sha256 - (base32 "1y9m3bailnvid59dl4vx31vysaqbcg6gsppskyymaxg3m96808pc")))) + (base32 "01x1ki99k2ps2jis73vzzrqw8zsf810205f17zdja9ijm0m41mjw")))) (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;no tests in PyPI + (native-inputs + (list python-setuptools)) (propagated-inputs - (list python-cached-property - python-click + (list python-click python-dotenv python-httpx python-jinja2 python-nodeenv python-pydantic-2 - python-strenum python-tomlkit python-typing-extensions)) - (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/RobertCraigie/prisma-client-py") (synopsis "Fully type-safe database client") (description @@ -775,7 +887,7 @@ client.") (uri (pypi-uri "pylibmc" version)) (sha256 (base32 "1q06696lxpqn155sydg3z6dksimks6n35q72zdjsvarpal8ldypf")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -784,7 +896,7 @@ client.") (lambda _ (invoke "memcached" "-d")))))) (native-inputs - (list memcached python-pytest)) + (list memcached python-pytest python-setuptools)) (inputs (list libmemcached zlib cyrus-sasl)) (home-page "https://sendapatch.se/projects/pylibmc/") @@ -870,27 +982,21 @@ auto-completion and syntax highlighting.") (define-public python-sqlitedict (package (name "python-sqlitedict") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) (uri (pypi-uri "sqlitedict" version)) (sha256 (base32 - "05sxy016k3p5sjjhdg0ad9z15i6vm3rq4cr9m8nrc7jfdx0p18r3")))) - (build-system python-build-system) + "134y1ya74ah3g1pd3g9iqjlrcjr2y5b2iny2skqrcab0dnwwzn83")))) + (build-system pyproject-build-system) (arguments (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv" - "-k" - ;; No idea why these fail. - (string-append "not test_py24_error" - " and not test_tablenames")))))))) - (native-inputs (list python-pytest)) + #:test-flags + ;; assert os.system('env PYTHONPATH=. %s tests/autocommit.py' % + ;; sys.executable) == 0 + #~(list "--deselect=tests/test_autocommit.py::test"))) + (native-inputs (list python-pytest python-setuptools)) (home-page "https://github.com/piskvorky/sqlitedict") (synopsis "Persistent dict backed up by sqlite3 and pickle") (description @@ -1065,7 +1171,7 @@ Language.") (define-public mariadb (package (name "mariadb") - (version "10.11.10") + (version "10.11.14") (source (origin (method url-fetch) (uri (string-append "https://downloads.mariadb.com/MariaDB" @@ -1073,7 +1179,7 @@ Language.") version ".tar.gz")) (sha256 (base32 - "08phlqcwcwl753zi2jv702q7b3h25d489289mflnm8c31djp8smh")) + "0bq5gn5yl3c6jnsamam4nb42y10c43ag764f7mkf7m5i9yqiqmwa")) (modules '((guix build utils))) (snippet '(begin @@ -1132,14 +1238,6 @@ Language.") #:parallel-tests? ,(target-x86-64?) #:phases (modify-phases %standard-phases - ;; TODO: Move this patch to the source field. - ,@(if (target-riscv64?) - `((add-after 'unpack 'patch-source - (lambda* (#:key inputs native-inputs #:allow-other-keys) - (invoke "patch" "-p1" "--force" "--input" - (assoc-ref (or native-inputs inputs) - "patch-file"))))) - '()) (add-after 'unpack 'adjust-output-references (lambda _ ;; The build system invariably prepends $CMAKE_INSTALL_PREFIX @@ -1246,7 +1344,8 @@ Language.") (("basedir=\"\"") (string-append "basedir=\"" out "\"")) (("\\$basedir/share/mysql") - (string-append lib "/share/mysql"))) + (string-append lib "/share/mysql")) + (("bindir=\"\\$basedir//") "bindir=\"/")) (with-directory-excursion lib ;; Remove tests. @@ -1280,12 +1379,8 @@ Language.") (("-lssl -lcrypto" all) (string-append "-L" openssl " " all))))))))) (native-inputs - `(,@(if (target-riscv64?) - `(("patch" ,patch) - ("patch-file" ,(search-patch "mariadb-rocksdb-atomic-linking.patch"))) - `()) - ("bison" ,bison) - ("perl" ,perl))) + `(("bison" ,bison) + ("perl" ,perl))) (inputs (list fmt jemalloc @@ -1307,6 +1402,13 @@ Language.") as a drop-in replacement of MySQL.") (license license:gpl2))) +(define-public mariadb-embedded + (package/inherit mariadb + (arguments + (substitute-keyword-arguments (package-arguments mariadb) + ((#:configure-flags flags) + #~(append '("-DWITH_EMBEDDED_SERVER=ON") #$flags)))))) + (define-public mariadb-connector-c (package (name "mariadb-connector-c") @@ -2943,43 +3045,6 @@ a simpler and less verbose API for working with ODBC. Common tasks should be easy, requiring concise and simple code.") (license license:expat))) -(define-public nanodbc-for-irods - (package - (inherit nanodbc) - (arguments - `(#:tests? #false - #:configure-flags - '("-DBUILD_SHARED_LIBS=ON" - ;; The tests require ODBC backends to be installed. - "-DNANODBC_DISABLE_TESTS=ON" - "-DCMAKE_CXX_COMPILER=clang++" - "-DCMAKE_CXX_FLAGS=-stdlib=libc++" - "-DCMAKE_EXE_LINKER_FLAGS=-lc++abi") - #:phases - (modify-phases %standard-phases - (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH - (lambda* (#:key inputs #:allow-other-keys) - (let ((gcc (assoc-ref inputs "gcc"))) - (setenv "CPLUS_INCLUDE_PATH" - (string-join - (cons (string-append (assoc-ref inputs "libcxx") - "/include/c++/v1") - ;; Hide GCC's C++ headers so that they do not interfere with - ;; the Clang headers. - (delete (string-append gcc "/include/c++") - (string-split (getenv "CPLUS_INCLUDE_PATH") - #\:))) - ":")) - (format #true - "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" - (getenv "CPLUS_INCLUDE_PATH")))))))) - (properties `((hidden? . #true))) - (inputs - `(("unixodbc" ,unixodbc) - ("libcxx" ,libcxx+libcxxabi-6) - ("libcxxabi" ,libcxxabi-6) - ("clang" ,clang-6))))) - (define-public unqlite (package (name "unqlite") @@ -3071,7 +3136,7 @@ sets, bitmaps and hyperloglogs.") (package (name "valkey") ;; For compatibility, keep in sync with redis version. - (version "7.2.6") + (version "7.2.11") (source (origin (method git-fetch) @@ -3080,7 +3145,7 @@ sets, bitmaps and hyperloglogs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "01pbaprl6nwrwv9382i033w8sslqainws0b22b3l1lzladdawrwx")) + (base32 "099523fqbya1xc87spwdxi5nld48r1di31q6zpn252nny0xbrdcb")) (modules '((guix build utils))) (snippet ;; Delete bundled jemalloc, as the package will use the libc one @@ -3132,7 +3197,7 @@ database.") (package (inherit valkey-7) (name "valkey") - (version "8.1.1") + (version "8.1.4") (source (origin (inherit (package-source valkey-7)) @@ -3142,7 +3207,7 @@ database.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1n5ckpa1h87h1llnm4khyf6060gqd4pj43d93vlrvn3hxpdyji8b")))) + (base32 "1p7jr5048syd9ln0bsh2n5ba6fd7x9wfa1x67b7wychv7a46dfx1")))) (arguments (substitute-keyword-arguments (package-arguments valkey-7) ((#:phases phases '%standard-phases) @@ -3569,7 +3634,7 @@ semantics.") (define-public libpqxx (package (name "libpqxx") - (version "7.7.4") + (version "7.10.1") (source (origin (method git-fetch) (uri (git-reference @@ -3578,9 +3643,9 @@ semantics.") (file-name (git-file-name name version)) (sha256 (base32 - "1qwpfba8g55jjv0xnsk4hhf2cmhk7mdirxx115cvnjjw97ppy0z0")))) + "0x81igwfk7nwc8vvggsnlz806kfzvc7bz0yrqadki01rj348hn85")))) (build-system gnu-build-system) - (native-inputs (list gcc-11 python-wrapper)) + (native-inputs (list python-wrapper)) (inputs (list postgresql)) (arguments '(#:tests? #f)) ;tests require a running PostgreSQL server (synopsis "C++ connector for PostgreSQL") @@ -3594,22 +3659,25 @@ on another machine, accessed via TCP/IP.") (define-public python-peewee (package (name "python-peewee") - (version "3.17.9") + (version "3.18.2") (source (origin - (method url-fetch) - (uri (pypi-uri "peewee" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/coleifer/peewee") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "1a67kdmyd0y3xzhqj5r90wlpqfg703cqx36awg429qsq2w0cs5gy")))) + (base32 "1qd57cd33mf48q0xfmnld58xn5jpbgqrj1bnqlkjmk87y3g9i0q4")))) (build-system pyproject-build-system) (arguments - `(#:tests? #f)) ; fails to import test data + (list + #:test-backend #~'custom + #:test-flags #~(list "runtests.py"))) (inputs (list sqlite)) (native-inputs - (list python-cython - python-setuptools - python-wheel)) + (list python-setuptools)) (home-page "https://github.com/coleifer/peewee/") (synopsis "Small object-relational mapping utility") (description @@ -3694,15 +3762,66 @@ with Python's asyncio framework.") (define-public python-asyncmy (package (name "python-asyncmy") - (version "0.2.5") + (version "0.2.10") (source - (origin - (method url-fetch) - (uri (pypi-uri "asyncmy" version)) - (sha256 - (base32 "0i18zxy6xvzv6dk791xifn2sw2q4zvqwpzrzy8qx51d3mp8z6gng")))) - (build-system python-build-system) - (native-inputs (list python-cython)) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/long2ice/asyncmy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10sqihiwx7vsdaavgl418hhk7d5rl6d1i60y5bjr76mdfny18q55")))) + (build-system pyproject-build-system) + (arguments + (list + ;; XXX: Most tests fail, probably because + ;; of pytest-asyncio version mismatch. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'cleanup + (lambda* (#:key inputs outputs #:allow-other-keys) + (for-each delete-file + (find-files (site-packages inputs outputs) + "\\.(c|pyx)$")))) + + (replace 'check + (lambda* (#:key tests? #:allow-other-keys #:rest rest) + (when tests? + ;; XXX: Else pytest picks up the wrong __init__.py + (delete-file-recursively "asyncmy") + ;; The tests rely on a MySQL or MariaDB test server + ;; being available. + (let ((datadir "/tmp/mysql") + (socket "/tmp/mysql/mysqld.sock") + (username "root") + (password "123456")) ;default in conftest.py + (invoke "mysqld" "--initialize-insecure" + (string-append "--datadir=" datadir)) + (spawn "mysqld" + (list + "mysqld" + ;; Respect '--datadir'. + "--no-defaults" + (string-append "--datadir=" datadir) + (string-append "--socket=" socket))) + (sleep 1) + (invoke "mysql" + (string-append "--socket=" socket) + "-u" "root" + "-e" (string-append + "ALTER USER 'root'@'localhost' IDENTIFIED BY '" + password "';")) + (apply (assoc-ref %standard-phases 'check) + `(#:tests? ,tests? ,@rest))))))))) + (native-inputs + (list mysql + python-cython + python-poetry-core + python-pytest + python-pytest-asyncio + python-setuptools)) (home-page "https://github.com/long2ice/asyncmy") (synopsis "Fast MySQL driver for Python") (description "@code{asyncmy} is a fast @code{asyncio} MySQL driver, which @@ -3817,35 +3936,30 @@ with relational data.") (define-public aerich (package (name "aerich") - (version "0.7.2") + (version "0.8.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/tortoise/aerich") - (commit (string-append "v" version)))) + (url "https://github.com/tortoise/aerich") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "0pcy945bg890p12s7cyw0mg7hxwsxyy570j600sbf7kwj2d3lilg")))) + (base32 "1cln1ik7519n6k4lnh06w956lp8xjb0khkkpsmaj8wqlm0jbvdbi")))) (build-system pyproject-build-system) (native-inputs - (list poetry - python-bandit - python-cryptography - python-isort - python-pydantic + (list python-cryptography python-pytest + python-poetry-core python-pytest-asyncio - python-pytest-mock - python-pytest-xdist)) + python-pytest-mock)) (propagated-inputs - (list python-asyncmy + (list python-asyncclick + python-asyncmy python-asyncpg - python-click - python-ddlparse python-dictdiffer - python-tomlkit + python-pydantic + python-tomli-w python-tortoise-orm)) (home-page "https://github.com/tortoise/aerich") (synopsis "Database migrations tool for Tortoise @acronym{ORM, Object Relational @@ -3971,75 +4085,58 @@ etc., and an SQL engine for performing simple SQL queries.") (package (name "python-lmdb") (version "1.0.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "lmdb" version)) - (sha256 - (base32 - "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1")) - (modules '((guix build utils))) - (snippet - ;; Delete bundled lmdb source files. - '(begin - (for-each delete-file (list "lib/lmdb.h" - "lib/mdb.c" - "lib/midl.c" - "lib/midl.h")) - #t)))) - (build-system python-build-system) - (inputs - (list lmdb)) + (source + (origin + (method url-fetch) + (uri (pypi-uri "lmdb" version)) + (sha256 + (base32 "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1")) + (snippet + ;; Delete bundled lmdb source files. + #~(for-each delete-file + '("lib/lmdb.h" "lib/mdb.c" "lib/midl.c" "lib/midl.h"))))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'build 'use-system-lmdb - (lambda* (#:key inputs #:allow-other-keys) - (let ((lmdb (assoc-ref inputs "lmdb"))) - (setenv "LMDB_PURE" "set") ; don't apply env-copy-txn.patch - (setenv "LMDB_FORCE_SYSTEM" "set") - (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include")) - (setenv "LMDB_LIBDIR" (string-append lmdb "/lib")) - #t)))) - ;; Tests fail with: ‘lmdb.tool: Please specify environment (--env)’. - #:tests? #f)) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'use-system-lmdb + (lambda* (#:key inputs #:allow-other-keys) + (let ((lmdb (assoc-ref inputs "lmdb"))) + (setenv "LMDB_PURE" "set") ;don't apply env-copy-txn.patch + (setenv "LMDB_FORCE_SYSTEM" "set") + (setenv "LMDB_INCLUDEDIR" + (string-append lmdb "/include")) + (setenv "LMDB_LIBDIR" + (string-append lmdb "/lib")))))))) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (inputs (list lmdb)) (home-page "https://github.com/dw/py-lmdb") (synopsis "Python binding for the ‘Lightning’ database (LMDB)") (description "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning Memory-Mapped Database} (LMDB), a high-performance key-value store.") - (license - (list license:openldap2.8 - ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3, - ;; but not actually needed on platforms currently supported by Guix. - license:bsd-3)))) + (license (list license:openldap2.8 + ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3, + ;; but not actually needed on platforms currently supported by Guix. + license:bsd-3)))) (define-public virtuoso-ose (package (name "virtuoso-ose") - (version "7.2.11") + (version "7.2.15") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/virtuoso/virtuoso/" version "/" "virtuoso-opensource-" version ".tar.gz")) (sha256 - (base32 "0mk25gr1pafmps4nsydjprwswbzwch8b583nlwh7x2031sz7ald1")) - (patches (search-patches "virtuoso-ose-remove-pre-built-jar-files.patch")) + (base32 "1nz6kddwxz5k79g3skj7y45f0l20m8fh8haw42j313xm177xpdp0")) (modules '((guix build utils))) ;; This snippet removes pre-built Java archives. (snippet #~(for-each delete-file-recursively - (list "binsrc/hibernate" - "binsrc/jena" - "binsrc/jena2" - "binsrc/jena3" - "binsrc/jena4" - "binsrc/rdf4j" - "binsrc/sesame" - "binsrc/sesame2" - "binsrc/sesame3" - "binsrc/sesame4" - "libsrc/JDBCDriverType4"))))) + (find-files "." "\\.jar$"))))) (build-system gnu-build-system) (arguments (list @@ -4052,9 +4149,6 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.") "--enable-static=no") #:phases #~(modify-phases %standard-phases - (replace 'bootstrap - (lambda _ - (invoke "sh" "autogen.sh"))) (add-after 'unpack 'avoid-embedding-kernel-and-timestamps ;; For a reproducible build, avoid embedding the kernel version and ;; timestamps. @@ -4073,15 +4167,9 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.") "appsrc/ODS-FeedManager/make_vad.sh" "appsrc/ODS-Bookmark/make_vad.sh" "appsrc/ODS-Addressbook/make_vad.sh" - "binsrc/dbpedia/make_vad.sh" "binsrc/samples/demo/make_vad.sh" "binsrc/samples/demo/mkdoc.sh" - "binsrc/samples/sparql_demo/make_vad.sh" - "binsrc/bpel/make_vad.sh" - "binsrc/fct/make_vad.sh" - "binsrc/rdf_mappers/make_vad.sh" - "binsrc/isparql/make_vad.sh" - "binsrc/conductor/mkvad.sh") + "binsrc/rdf_mappers/make_vad.sh") (("^UNAME_SYSTEM=.*") "UNAME_SYSTEM=unknown\n") (("^UNAME_RELEASE=.*") "UNAME_RELEASE=unknown\n") (("^PACKDATE=.*") "PACKDATE=2012-04-18\n") @@ -4096,7 +4184,7 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.") '("libvirtuoso-t.a" "libvirtuoso-t.la"))))))) (native-inputs - (list autoconf automake bison flex gperf libtool)) + (list autoconf automake bison flex gperf libtool python)) (inputs (list openssl net-tools readline which zlib)) (home-page "https://vos.openlinksw.com/owiki/wiki/VOS/") @@ -4111,20 +4199,24 @@ and web services platform functionality.") (define-public python-ccm (package (name "python-ccm") - (version "2.1.6") + (version "3.1.5") (source (origin (method url-fetch) (uri (pypi-uri "ccm" version)) (sha256 (base32 - "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n")))) - (build-system python-build-system) + "0v1jahchm9czcdhynfy76mca52k6jbvngm60jqdwxlhnf6iw0z7h")))) + (build-system pyproject-build-system) + (arguments + ;; TODO: tests require a complex setup, see <.github/workflows/main.yml>. + (list #:tests? #f)) + (native-inputs + (list python-pbr)) (propagated-inputs (list python-pyyaml - ;; Not listed in setup.py, but used in ccmlib/node.py for full - ;; functionality - python-psutil python-six)) + python-psutil + python-six)) ;XXX: hard dependency (home-page "https://github.com/pcmanus/ccm") (synopsis "Cassandra Cluster Manager for Apache Cassandra clusters on localhost") @@ -4272,34 +4364,28 @@ You might also want to install the following optional dependencies: (name "python-alchemy-mock") (version "0.4.3") (home-page "https://github.com/miki725/alchemy-mock") - (source (origin - (method url-fetch) - (uri (pypi-uri "alchemy-mock" version)) - (sha256 - (base32 - "0ylxygl3bcdapzz529n8wgk7vx9gjwb3ism564ypkpd7dbsw653r")) - (snippet - #~(begin (use-modules (guix build utils)) - (substitute* "alchemy_mock/comparison.py" - (("collections\\.Mapping") "collections.abc.Mapping")))))) - (build-system python-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/miki725/alchemy-mock") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "053gj8d8ca5kpp7v61wd7lcm9mqp9xqz3d8pp9spdbcjsaqz9nk9")) + (snippet #~(begin + (use-modules (guix build utils)) + (substitute* "alchemy_mock/comparison.py" + (("collections\\.Mapping") + "collections.abc.Mapping")))))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Create pytest.ini that adds doctest options to - ;; prevent test failure. Taken from tox.ini. - (call-with-output-file "pytest.ini" - (lambda (port) - (format port "[pytest] -doctest_optionflags=IGNORE_EXCEPTION_DETAIL -"))) - (invoke "pytest" "-vv" "--doctest-modules" - "alchemy_mock/")))))) - (native-inputs - (list python-mock python-pytest)) - (propagated-inputs - (list python-six python-sqlalchemy)) + (list + #:test-flags + #~(list "--doctest-modules" "alchemy_mock"))) + (native-inputs (list python-mock python-pytest python-setuptools + python-wheel)) + (propagated-inputs (list python-sqlalchemy)) (synopsis "Mock helpers for SQLAlchemy") (description "This package provides mock helpers for SQLAlchemy that makes it easy @@ -4731,13 +4817,13 @@ files or Python scripts that define a list of migration steps.") (define-public python-mysqlclient (package (name "python-mysqlclient") - (version "2.2.4") + (version "2.2.7") (source (origin (method url-fetch) (uri (pypi-uri "mysqlclient" version)) (sha256 - (base32 "0hdznfz9095d2qhl7awbp39s7wpqbxn37xzan487qzaf8srrzg1k")))) + (base32 "0i9q2vj6rb4w2iggk0mcp9jla2rm91sx7jcrgv7grm8njjsj5bi4")))) (build-system pyproject-build-system) (arguments (list #:test-flags @@ -4784,39 +4870,43 @@ parsing code in hiredis. It primarily speeds up parsing of multi bulk replies." (define-public python-fakeredis (package (name "python-fakeredis") - (version "2.26.1") - (source (origin - (method git-fetch) ;for tests - (uri (git-reference - (url "https://github.com/cunla/fakeredis-py") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10f9qwpc9vlcd2411c398n9kwjsk399vk1pjd9dbczlhvsn9s5bq")))) + (version "2.31.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cunla/fakeredis-py") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ccywkm42drm2l1l2a1r6v5y5sycsbfbdlgvrrlr5a9ns9s1sb7s")))) (build-system pyproject-build-system) (arguments (list - #:test-flags '(list "-m" "not slow") + #:test-flags + #~(list "-m" "not slow" + ;; XXX: Requires additional valkey package, + ;; but not the one in this module. + "--ignore-glob=test/test_valkey/*" + ;; XXX: Unclear why these tests fail. Wrong Redis version? + "-k" (string-join + (list "not test_acl_cat" + "test_acl_log_auth_exist" + "test_acl_log_invalid_key" + "test_acl_log_invalid_channel" + "test_client_list" + "test_client_info" + "test_client_id") + " and not ")) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'poetry-compatibility - (lambda _ - ;; Our version of poetry does not understand "to". - (substitute* "pyproject.toml" - ((", to = \"fakeredis\" ") "")))) - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "pyproject.toml" - (("sortedcontainers = \"\\^2\\.4\"") - "sortedcontainers = \"^2.1\"")))) ;; Tests require a running Redis server. (add-before 'check 'start-redis (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "redis-server" "--daemonize" "yes" "--port" "6390"))))))) - (native-inputs (list python-poetry-core python-pytest + (native-inputs (list python-hatchling python-pytest python-pytest-asyncio python-pytest-mock redis)) (propagated-inputs @@ -4997,36 +5087,17 @@ is designed to have a low barrier to entry.") (define-public python-sqlparse (package (name "python-sqlparse") - (version "0.4.3") - (source (origin - (method url-fetch) - (uri (pypi-uri "sqlparse" version)) - (sha256 - (base32 - "0s3jyllg0ka0n7pgqfng1hzvh39li853dr40qcp4s4dv8r481jk9")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "py.test"))) - ;; XXX: The regular wrap phase ends up storing pytest as a runtime - ;; dependency. See <https://bugs.gnu.org/25235>. - (replace 'wrap - (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (python (assoc-ref (or native-inputs inputs) "python")) - (sitedir (string-append "/lib/python" - (python-version python) - "/site-packages"))) - (wrap-program (string-append out "/bin/sqlformat") - `("PYTHONPATH" ":" prefix - ,(map (lambda (output) - (string-append output sitedir)) - (list python out)))))))))) - (native-inputs (list python-pytest)) - (inputs (list bash-minimal)) + (version "0.5.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sqlparse" version)) + (sha256 + (base32 "0wljxh3lh2zndy7amziwd3572cwwbmzzq6yyvgn1c2vayn3pgxh9")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-hatchling)) (home-page "https://github.com/andialbrecht/sqlparse") (synopsis "Non-validating SQL parser") (description "Sqlparse is a non-validating SQL parser for Python. It @@ -5037,15 +5108,15 @@ provides support for parsing, splitting and formatting SQL statements.") (define-public python-sql (package (name "python-sql") - (version "1.5.2") + (version "1.6.0") (source (origin (method url-fetch) (uri (pypi-uri "python_sql" version)) (sha256 - (base32 "0dnd0vai9z1fjkppv2xv2f4vlwwz0dqa137f39mrbjw744vm4pvk")))) + (base32 "0v637qc2g8w155k7crlg70w4bfxznn28c94prlxcax5dx0ja2d2v")))) (build-system pyproject-build-system) - (native-inputs (list python-setuptools python-wheel)) + (native-inputs (list python-pytest python-setuptools)) (home-page "https://python-sql.tryton.org/") (synopsis "Library to write SQL queries in a pythonic way") (description "@code{python-sql} is a library to write SQL queries, that @@ -5693,24 +5764,26 @@ The drivers officially supported by @code{libdbi} are: (file-name (git-file-name name version)) (sha256 (base32 - "12aq7pama96l2c1kmfkclb4bvrsxs9a8ppgk5gmzw45w2lg35i0y")))) + "12aq7pama96l2c1kmfkclb4bvrsxs9a8ppgk5gmzw45w2lg35i0y")) + (patches (search-patches "soci-mysql-ddl-types.patch")))) (build-system cmake-build-system) (propagated-inputs ;; Headers of soci has include-references to headers of these inputs. - `(("firebird" ,firebird) - ("postgresql" ,postgresql) - ("sqlite" ,sqlite) - ("odbc" ,unixodbc) - ("boost" ,boost) - ("mariadb:dev" ,mariadb "dev"))) + (list firebird + postgresql + sqlite + unixodbc + boost + `(,mariadb "dev"))) (arguments - `(#:configure-flags - ;; C++11 (-DSOCI_CXX11) is OFF by default. hyperledger-iroha needs it. - (list "-DCMAKE_CXX_STANDARD=17" - "-DSOCI_LIBDIR=lib" - ;; This is for relocation when linking statically - "-DCMAKE_CXX_FLAGS=-fPIE") - #:tests? #f)) ; may require running database management systems + (list #:configure-flags + ;; C++11 (-DSOCI_CXX11) is OFF by default. hyperledger-iroha needs + ;; it. + #~(list "-DCMAKE_CXX_STANDARD=17" + "-DSOCI_LIBDIR=lib" + ;; This is for relocation when linking statically + "-DCMAKE_CXX_FLAGS=-fPIE") + #:tests? #f)) ; may require running database management systems (synopsis "C++ Database Access Library") (description "SOCI is an abstraction layer for several database backends, including @@ -5730,10 +5803,13 @@ PostreSQL, SQLite, ODBC and MySQL.") (sha256 (base32 "11fzwcahc1bc8npxbif0448v9cwyf7k04167i7fcspmfw7a0hj0d")))) (build-system gnu-build-system) + (inputs (list unixodbc)) (arguments ;; NOTE: (Sharlatan-20210110213908+0000) some tests require DB connection, ;; disabled for now. - `(#:tests? #f)) + `(#:tests? #f + #:configure-flags + (list (string-append "--with-unixodbc=" (assoc-ref %build-inputs "unixodbc"))))) (home-page "https://www.freetds.org/") (synopsis "Client libraries for MS SQL and Sybase servers") (description @@ -5992,7 +6068,7 @@ relational databases are in general.") go-github-com-lib-pq go-github-com-mattn-go-runewidth go-github-com-mattn-go-sqlite3 - go-github-com-olekukonko-tablewriter + go-github-com-olekukonko-tablewriter-0.0.5 go-github-com-pkg-errors go-github-com-sourcegraph-jsonrpc2 go-golang-org-x-crypto |