diff options
Diffstat (limited to 'gnu/packages/databases.scm')
-rw-r--r-- | gnu/packages/databases.scm | 216 |
1 files changed, 147 insertions, 69 deletions
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 06158f19e7..4ed9b11647 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -214,6 +214,9 @@ (substitute* "CMakeLists.txt" (("set\\(DUCKDB_VERSION \"[^\"]*\"") (string-append "set(DUCKDB_VERSION \"v" #$version "-dev0\""))))))) + (arguments + `(#:configure-flags + (list "-DBUILD_EXTENSIONS=autocomplete;fts;icu;json;parquet;tpch;"))) (build-system cmake-build-system) (home-page "https://duckdb.org") (synopsis "In-process SQL OLAP database management system") @@ -630,11 +633,12 @@ the API, and provides features such as: ;; TODO: Pack arrow-adbc/c/driver/sqlite for tests. #:tests? #f #:build-backend "setuptools.build_meta")) - (propagated-inputs - (list python-typing-extensions)) (native-inputs (list python-cython-3 - python-pytest)) + python-setuptools + python-wheel)) + (propagated-inputs + (list python-typing-extensions)) (home-page "https://arrow.apache.org/adbc/") (synopsis "Generic entrypoint for ADBC drivers in Python") (description @@ -668,6 +672,7 @@ they exist.") 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 @@ -1289,18 +1294,19 @@ 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-15 +(define-public postgresql-16 (package (name "postgresql") - (version "15.7") + (version "16.4") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "1xwq1592k1r64ki9bmkcyw39416kymabdfxbkpiqaqxbhnaf8vx4")) - (patches (search-patches "postgresql-disable-resolve_symlinks.patch")))) + "0vvd73rzj0sl294v15bh8yslakqv412bxqzlkqxyjwxa8pb6c5wp")) + (patches (search-patches + "postgresql-disable-normalize_exec_path.patch")))) (build-system gnu-build-system) (arguments (list @@ -1338,8 +1344,10 @@ and high-availability (HA).") (invoke "make" "postgres.info") (install-file "postgres.info" (string-append #$output "/share/info")))))))) - (native-inputs (list docbook-xml-4.5 docbook2x libxml2 perl texinfo)) - (inputs (list readline `(,util-linux "lib") openssl zlib)) + (native-inputs + (list docbook-xml-4.5 docbook2x libxml2 perl pkg-config texinfo)) + (inputs + (list icu4c readline `(,util-linux "lib") openssl zlib)) (home-page "https://www.postgresql.org/") (synopsis "Powerful object-relational database system") (description @@ -1351,30 +1359,49 @@ TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video.") (license (license:x11-style "file://COPYRIGHT")))) +(define-public postgresql-15 + (package + (inherit postgresql-16) + (name "postgresql") + (version "15.8") + (source (origin + (inherit (package-source postgresql-16)) + (uri (string-append "https://ftp.postgresql.org/pub/source/v" + version "/postgresql-" version ".tar.bz2")) + (sha256 + (base32 + "0snbxmlygf7m4cxjpscmz3yjn4lnqsw313y9xgpv7vk9k9gm20s4")) + (patches (search-patches + "postgresql-disable-resolve_symlinks.patch")))) + (native-inputs (modify-inputs (package-native-inputs postgresql-16) + (delete "pkg-config"))) + (inputs (modify-inputs (package-inputs postgresql-16) + (delete "icu4c"))))) + (define-public postgresql-14 (package (inherit postgresql-15) (name "postgresql") - (version "14.6") + (version "14.13") (source (origin (inherit (package-source postgresql-15)) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "08nzkq321fzfi8ba8gck9zxxg7xvv8vz3mbl4avrmlq933y4122h")))))) + "0misc5yiklflz96n7wxcdzzg0lcc4ahd0flzqsg6mcjs955krajr")))))) (define-public postgresql-13 (package (inherit postgresql-14) - (version "13.15") + (version "13.16") (source (origin (inherit (package-source postgresql-14)) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "09f99rp5q1xp769r71if9ckb4cbm0nnx2xmy8b1bhcvd8hax9va2")))))) + "0rc8rpsw2lwa5af35zd8iifah02wg2rnn1i890h2h8zh55hvpjy9")))))) (define-deprecated/public postgresql-11 #f (package @@ -1394,17 +1421,17 @@ pictures, sounds, or video.") (define-deprecated/public postgresql-10 #f (package - (inherit postgresql-11) + (inherit postgresql-13) (version "10.23") (source (origin - (inherit (package-source postgresql-11)) + (inherit (package-source postgresql-13)) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 "1sgfssjc9lnzijhn108r6z26fri655k413f1c9b8wibjhd9b594l")))) (native-inputs - (modify-inputs (package-native-inputs postgresql-11) + (modify-inputs (package-native-inputs postgresql-13) (append opensp docbook-sgml-4.2) (delete "docbook-xml"))))) @@ -1664,6 +1691,8 @@ CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.") (sha256 (base32 "1l2cj0ps96g3bblvhdszgyjv9bi405bxrx0bqq1p8h9bmwd629z1")))) (build-system pyproject-build-system) + (native-inputs + (list python-setuptools python-wheel)) (propagated-inputs (list python-cryptography python-pynacl)) (arguments @@ -2575,17 +2604,19 @@ Redis, CouchDB, etc., as well as a standard key/value store similar to BerkeleyDB, LevelDB, etc.") (license license:bsd-2))) +;; NOTE: When upgrading redis, make sure that redis is still released +;; under a Free Software license. (define-public redis (package (name "redis") - (version "7.0.12") + (version "7.2.6") (source (origin (method url-fetch) (uri (string-append "https://download.redis.io/releases/redis-" version".tar.gz")) (sha256 (base32 - "1dwayif99cipf0xs26zipbnj800px31pbsxz747bzclb4xdkvn4x")) + "03ixkzdc43lr4q3my0yax1f1gqz6sr6hch5qdipmbd725xxdc47v")) (modules '((guix build utils))) (snippet ;; Delete bundled jemalloc, as the package will use the libc one @@ -2616,15 +2647,13 @@ similar to BerkeleyDB, LevelDB, etc.") ;; "background AOF rewrite to finish", perhaps because dead ;; processes persist as zombies in the build environment. (("unit/aofrw") "") + (("integration/aof([^-]|-multi-part)") "") ;; The OOM score tests try to raise the current OOM score, but ;; our build environment already sets it for all children to ;; the highest possible one (1000). We can't lower it because ;; we don't have CAP_SYS_RESOURCE. (("unit/oom-score-adj") "") - (("integration/aof(-multi-part)?") "") (("integration/failover") "") - (("integration/replication-4") "") - (("integration/replication-psync") "") (("integration/replication[^-]") ""))))))) (native-inputs (list pkg-config procps tcl which)) (synopsis "Key-value cache and store") @@ -3204,6 +3233,7 @@ protocol with Cython for performance.") (build-system pyproject-build-system) (arguments '(#:tests? #f)) ;test suite requires docker (propagated-inputs (list python-pymysql)) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/aio-libs/aiomysql") (synopsis "MySQL driver for Python") (description "@code{aiomysql} is a driver for accessing a MySQL database @@ -3645,7 +3675,8 @@ on localhost.") (build-system pyproject-build-system) (native-inputs (list python-cython ; for C extensions - python-pytest python-mock python-pytest-xdist)) ; for tests + python-pytest python-mock python-pytest-xdist ; for tests + python-setuptools python-wheel)) (propagated-inputs (list python-greenlet)) (arguments @@ -3687,7 +3718,8 @@ simple and Pythonic domain language.") (native-inputs (list python-cython python-pytest - python-setuptools)) + python-setuptools + python-wheel)) (propagated-inputs (list python-greenlet python-typing-extensions)) @@ -3810,23 +3842,37 @@ this library provides functions to facilitate such comparisons.") (define-public python-alembic (package (name "python-alembic") - (version "1.7.5") + (version "1.14.0") (source (origin (method url-fetch) (uri (pypi-uri "alembic" version)) (sha256 - (base32 "0lxi2g2025lz5k7k5dd5fc1lfijqi2yw6qqyjzp073z6laa8cckw")))) - (build-system python-build-system) + (base32 "0jrh9q4h2jv2bafpd6isx2dvc90rpx6j7fpdvfwd0hin7fsr425h")))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest" "-vv")))))) + (list + #:test-flags + #~(list "--ignore=tests/integration" + "-k" (string-join + ;; XXX: Tests require fresh python-pytz timezones, remove + ;; when updated. + (list "not test_custom_tz" + "test_custom_tz_lowercase" + "test_custom_tz_utc" + "test_custom_tzdata_tz") + " and not ")))) (native-inputs - (list python-mock python-pytest-cov)) + (list python-mock + python-pytest + python-setuptools + python-wheel)) (propagated-inputs - (list python-dateutil python-sqlalchemy python-mako python-editor)) + (list python-dateutil + python-editor + python-mako + python-sqlalchemy + python-typing-extensions)) (home-page "https://bitbucket.org/zzzeek/alembic") (synopsis "Database migration tool for SQLAlchemy") (description @@ -3880,7 +3926,7 @@ text search extension.") (propagated-inputs (list python-click python-click-default-group python-dateutil python-sqlite-fts4 python-tabulate)) - (native-inputs (list python-pytest)) + (native-inputs (list python-pytest python-setuptools python-wheel)) (home-page "https://github.com/simonw/sqlite-utils") (synopsis "CLI tool and Python utility functions for manipulating SQLite databases") @@ -3917,14 +3963,11 @@ data. (uri (pypi-uri "pickleshare" version)) (sha256 (base32 "1jmghg3c53yp1i8cm6pcrm280ayi8621rwyav9fac7awjr3kss47")))) - (build-system python-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest")))))) + (build-system pyproject-build-system) (native-inputs - (list python-pytest)) + (list python-pytest + python-setuptools + python-wheel)) (home-page "https://github.com/vivainio/pickleshare") (synopsis "Tiny key value database with concurrency support") (description @@ -3953,7 +3996,7 @@ PickleShare.") "10yfbasi4mq63g0svyl1h49ylwn9znjylq78id16dzxzk9q9ipdx")))) (build-system pyproject-build-system) (native-inputs - (list unzip)) + (list unzip python-setuptools python-wheel)) (inputs (list sqlite-next)) ;SQLite 3.45.1 required. (arguments (list @@ -4271,7 +4314,8 @@ files or Python scripts that define a list of migration steps.") (list #:test-flags #~'("tests/test__mysql.py" ;tests not needing a live db "tests/test_MySQLdb_times.py"))) - (native-inputs (list pkg-config python-pytest)) + (native-inputs + (list pkg-config python-pytest python-setuptools python-wheel)) (inputs (list mariadb-connector-c)) (home-page "https://github.com/PyMySQL/mysqlclient") (synopsis "MySQLdb is an interface to the popular MySQL database server for Python") @@ -4308,7 +4352,7 @@ for Python. The design goals are: ;; The fix was forwarded upstream, see: ;; https://github.com/redis/hiredis-py/pull/160. (delete-file "tests/__init__.py")))))) - (native-inputs (list python-pytest)) + (native-inputs (list python-pytest python-setuptools python-wheel)) (inputs (list hiredis)) (home-page "https://github.com/redis/hiredis-py") (synopsis "Python extension that wraps protocol parsing code in hiredis") @@ -4319,7 +4363,7 @@ parsing code in hiredis. It primarily speeds up parsing of multi bulk replies." (define-public python-fakeredis (package (name "python-fakeredis") - (version "2.10.1") + (version "2.26.1") (source (origin (method git-fetch) ;for tests (uri (git-reference @@ -4328,18 +4372,36 @@ parsing code in hiredis. It primarily speeds up parsing of multi bulk replies." (file-name (git-file-name name version)) (sha256 (base32 - "1imsi9dswvkda894sm53lfzdsna0qlrgxszczlq2sam68zn4hfz6")))) + "10f9qwpc9vlcd2411c398n9kwjsk399vk1pjd9dbczlhvsn9s5bq")))) (build-system pyproject-build-system) (arguments - (list #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "pyproject.toml" - (("sortedcontainers = \"\\^2\\.4\"") - "sortedcontainers = \"^2.1\""))))))) + (list + #:test-flags '(list "-m" "not slow") + #: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 - python-pytest-asyncio python-pytest-mock)) - (propagated-inputs (list python-redis python-sortedcontainers)) + python-pytest-asyncio python-pytest-mock + redis)) + (propagated-inputs + (list python-redis + python-sortedcontainers + python-typing-extensions)) (home-page "https://github.com/cunla/fakeredis-py") (synopsis "Fake implementation of redis API for testing purposes") (description @@ -4355,7 +4417,7 @@ reasonable substitute.") (define-public python-redis (package (name "python-redis") - (version "4.5.4") + (version "5.2.0") (source (origin ;; The PyPI archive lacks some test resources such as the TLS ;; certificates under docker/stunnel/keys. @@ -4366,7 +4428,7 @@ reasonable substitute.") (file-name (git-file-name name version)) (sha256 (base32 - "0s5pswykjcyqbx471ib3gwy29xxa5ckgch9hy476x2s4pvhkbgmr")))) + "0f38s704gpm8ra6vdrqhicfq7m77in60kbgcmhvmviq9qj6v3505")))) (build-system pyproject-build-system) (arguments (list @@ -4377,16 +4439,26 @@ reasonable substitute.") ;; .github/workflows/install_and_test.sh). (string-append "not onlycluster " "and not redismod " - "and not ssl") - "-k" (string-append - ;; The autoclaim test fails with "AssertionError: assert - ;; [b'0-0', [], []] == [b'0-0', []]". - "not test_xautoclaim " - ;; These tests cause the following error: "Error 111 - ;; connecting to localhost:6380. Connection refused." - ;; (see: https://github.com/redis/redis-py/issues/2109). - "and not test_sync " - "and not test_psync")) + "and not ssl " + "and not graph") + "-k" (string-join + (list + ;; The autoclaim test fails with "AssertionError: assert + ;; [b'0-0', [], []] == [b'0-0', []]". + "not test_xautoclaim " + ;; These tests cause the following error: "Error 111 + ;; connecting to localhost:6380. Connection refused." + ;; (see: https://github.com/redis/redis-py/issues/2109). + "test_sync" + "test_psync" + ;; Same with: "Error 111 connecting to + ;; localhost:6479. Connection refused." + "test_tfcall" + "test_tfunction_load_delete" + "test_tfunction_list" + ;; AssertionError: assert 3 == 2 + "test_acl_list") + " and not ")) #:phases #~(modify-phases %standard-phases ;; Tests require a running Redis server. @@ -4397,9 +4469,13 @@ reasonable substitute.") "--enable-debug-command" "yes" "--enable-module-command" "local"))))))) (native-inputs - (list python-pytest - python-pytest-asyncio + (list python-numpy + python-pytest + python-pytest-asyncio-0.23 + python-pytest-cov python-pytest-timeout + python-setuptools + python-wheel redis)) (propagated-inputs (list python-async-timeout)) @@ -5181,7 +5257,7 @@ other traditional Python scientific computing packages.") (arguments (list #:test-flags - #~(list "-n" "auto") + #~(list "--numprocesses" (number->string (parallel-job-count))) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'relax-requirements @@ -5655,13 +5731,15 @@ mechanism of @code{dogpile}.") (list python-beautifulsoup4 python-black python-cogapp + python-pip python-pytest python-pytest-asyncio python-pytest-runner python-pytest-timeout python-pytest-xdist python-setuptools - python-trustme)) + python-trustme + python-wheel)) (home-page "https://datasette.io/") (synopsis "Multi-tool for exploring and publishing data") (description "Datasette is a tool for exploring and publishing data. |