diff options
Diffstat (limited to 'gnu')
61 files changed, 3646 insertions, 2578 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 2d059f3535..598fc123f4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1305,6 +1305,7 @@ dist_patch_DATA = \ %D%/packages/patches/fp16-system-libraries.patch \ %D%/packages/patches/fpc-reproducibility.patch \ %D%/packages/patches/fpc-glibc-2.34-compat.patch \ + %D%/packages/patches/fritzing-0.9.6-fix-types.patch \ %D%/packages/patches/freedict-tools-fix-determinism.patch \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freeimage-libtiff-compat.patch \ @@ -2459,6 +2460,7 @@ dist_patch_DATA = \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xgboost-use-system-dmlc-core.patch \ %D%/packages/patches/xiphos-glib.patch \ + %D%/packages/patches/xlispstat-fix-compilation-with-modern-gcc.patch \ %D%/packages/patches/xmonad-dynamic-linking.patch \ %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 4ee152d1e7..7f033fcc97 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -237,7 +237,7 @@ the real span of the lattice.") (inputs (list fplll gmp mpfr pari-gp)) (propagated-inputs - (list python-cysignals python-cython-3 python-flake8 python-numpy)) + (list python-cysignals python-cython python-flake8 python-numpy)) (home-page "https://github.com/fplll/fpylll") (synopsis "Python interface for fplll") (description "fpylll is a Python wrapper for fplll.") @@ -550,7 +550,7 @@ fast arithmetic.") (native-inputs (list meson-python pkg-config - python-cython-3 + python-cython python-pytest)) (inputs (list gmp diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 2d3d005227..7f68b110aa 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -2893,7 +2893,7 @@ constraints (i.e., altitude, airmass, moon separation/illumination, etc.) (native-inputs (list nss-certs-for-test pkg-config - python-cython-3 + python-cython python-extension-helpers python-objgraph python-pytest @@ -3051,7 +3051,7 @@ celestial-to-terrestrial coordinate transformations.") (native-inputs (list nss-certs-for-test pkg-config - python-cython-3 + python-cython python-extension-helpers python-setuptools-scm)) (propagated-inputs @@ -3155,7 +3155,7 @@ online Astronomical data. Each web service has its own sub-package.") (make-file-writable "astroscrappy/_compiler.c") (invoke "python" "setup.py" "build_ext" "--inplace")))))) (native-inputs - (list python-cython-3 + (list python-cython python-extension-helpers python-pytest-astropy python-scipy @@ -4798,7 +4798,7 @@ default) to world coordinates.") (setenv "HOME" "/tmp") (apply invoke "pytest" "-vv" test-flags)))))))) (native-inputs - (list python-cython-3 + (list python-cython python-extension-helpers python-pytest python-pytest-astropy @@ -4884,7 +4884,7 @@ sensitivity or energy density (native-inputs (list nss-certs-for-test pkg-config - python-cython-3 + python-cython python-pytest python-pytest-astropy-header python-pytest-cython @@ -5538,7 +5538,7 @@ quantification of galaxies, quasar-host galaxy decomposition and much more.") (setenv "TEMPO2_PREFIX" tempo2) (setenv "TEMPO2" tempo2-runtime))))))) (native-inputs - (list python-cython-3 + (list python-cython python-numpy python-pytest python-setuptools @@ -5607,7 +5607,7 @@ emission lines in 1-D spectra, especially galaxy and quasar spectra.") (arguments (list #:tests? #f)) ; no tests provided (native-inputs - (list python-cython-3 + (list python-cython python-setuptools python-wheel)) (propagated-inputs @@ -5649,7 +5649,7 @@ solutions generated by NDPPP.") ;; <.github/workflows/python.yml>. (invoke "python" "tools/losoto_test.py"))))))) (native-inputs - (list python-cython-3 + (list python-cython python-setuptools python-wheel)) (propagated-inputs @@ -5962,7 +5962,7 @@ photometry, segmentations, Petrosian profiling, and Sérsic fitting.") (with-directory-excursion "/tmp" (apply invoke "pytest" "-vv" test-flags)))))))) (native-inputs - (list python-cython-3 + (list python-cython python-extension-helpers python-pytest-astropy python-pytest-xdist @@ -7082,7 +7082,7 @@ Virtual observatory (VO) using Python.") python-unyt python-yt)) (native-inputs - (list python-cython-3 + (list python-cython python-setuptools python-setuptools-scm python-wheel)) @@ -7302,7 +7302,7 @@ solar physics.") python-scipy python-shapely)) (native-inputs - (list python-cython-3 + (list python-cython python-extension-helpers python-pytest-arraydiff python-pytest-astropy @@ -7404,7 +7404,7 @@ setup(ext_modules=get_extensions())"))))) python-shapely python-zarr)) (native-inputs - (list python-cython-3 + (list python-cython python-extension-helpers python-asdf python-gwcs @@ -7889,7 +7889,7 @@ framework of lens modelling software lenstronomy.") (invoke "python" "setup.py" "build_ext" "--inplace")))))) (native-inputs (list ;; python-iminuit ; not packed, optional - python-cython-3 + python-cython python-pytest python-pytest-astropy python-setuptools @@ -7950,7 +7950,7 @@ to make such analysis both as flexible and clear as possible.") " and not ")))) (native-inputs (list nss-certs-for-test - python-cython-3 + python-cython python-poetry-core python-pytest)) (propagated-inputs @@ -8497,7 +8497,7 @@ and CAS statistics), as well as fitting 2D Sérsic profiles.") ;; might not set the version correctly. ((".*opencv-python-headless.*") ""))))))) (native-inputs - (list python-cython-3 + (list python-cython python-psutil python-pytest python-pytest-xdist @@ -9565,7 +9565,7 @@ using (multivariate) polynomials.") (invoke "python" "setup.py" "build_ext" "--inplace")))))) (native-inputs (list nss-certs-for-test - python-cython-3 + python-cython python-pyaml python-pytest python-pytest-mpl diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 634ca92990..ee15f82098 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -7247,7 +7247,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.") (propagated-inputs ;; This is because include/ableton/platforms/asio/AsioWrapper.hpp ;; contains '#include <asio.hpp>'. - (list asio)) + (list asio-1.28)) (arguments `(#:configure-flags '("-DLINK_BUILD_QT_EXAMPLES=ON" diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index 91e3f32837..735ba60b24 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -902,3 +902,31 @@ user-provided Lua scripts. aspects of Vulkan performance. The way in which each scene is rendered is configurable through a set of options.") (license license:lgpl2.1+)))) + +(define-public osu-micro-benchmarks + (package + (name "osu-micro-benchmarks") + (version "7.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://mvapich.cse.ohio-state.edu/download/mvapich/" name "-" + version ".tar.gz")) + (sha256 + (base32 "08ifql3q8kv22xncvp6asfqp62dvfnc7w96b1r925c1w7ig0s38n")))) + (build-system gnu-build-system) + (inputs (list openmpi)) + (arguments + (list + #:configure-flags + #~(list (string-append + "CC=" #$(this-package-input "openmpi") "/bin/mpicc") + (string-append + "CXX=" #$(this-package-input "openmpi") "/bin/mpicxx")))) + (home-page "https://mvapich.cse.ohio-state.edu/benchmarks/") + (synopsis "Benchmarking suite from the MVAPICH project") + (description + "Microbenchmarks suite to evaluate MPI and PGAS (OpenSHMEM, UPC, and +UPC++) libraries for CPUs and GPUs.") + (license license:bsd-3))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index b82ec38157..9f0fbd0135 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9989,7 +9989,7 @@ sequencing tag position and orientation.") python-scikit-learn python-scipy)) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-setuptools python-wheel @@ -20056,7 +20056,7 @@ bgzipped text file that contains a pair of genomic coordinates per line.") (propagated-inputs (list python-archspec)) (native-inputs (list cmake-minimal - python-cython-3 + python-cython python-scikit-build-core)) (home-page "https://github.com/althonos/pyrodigal") (synopsis "Cython bindings and Python interface for Prodigal") diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 15a072849b..957cd5dc56 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -371,7 +371,7 @@ resembles Python.") (list meson ninja/pinned python-colorama - python-cython-3 + python-cython python-pyproject-metadata python-tomli python-typing-extensions @@ -381,7 +381,7 @@ resembles Python.") git-minimal/pinned patchelf pkg-config - python-cython-3 + python-cython python-gitpython python-pytest python-pytest-cov diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 5bc6db0632..822a3da219 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -3093,30 +3093,29 @@ backported from Python 2.7 for Python 2.4+.") (define-public behave (package (name "behave") - ;; The 1.2.6 release from 2018 has several problems with newer Python - ;; versions, so we package a recent snapshot. - (version "1.2.7.dev5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/behave/behave") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "14162pclfvy4wy2az4v9gkgb3v0b338zxrb2ikqcqifckrmk8nhv")))) + (version "1.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/behave/behave") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fxj51kailsdakqi7qbw700k258n7r3lv75mgxs45ld5xh2jfyxh")))) (build-system pyproject-build-system) (native-inputs - (list python-mock - python-assertpy - python-pathpy + (list python-assertpy + python-chardet + python-mock + python-path python-pyhamcrest python-pytest python-pytest-html - python-setuptools - python-wheel)) + python-setuptools)) (propagated-inputs (list python-colorama + python-cucumber-expressions python-cucumber-tag-expressions python-parse python-parse-type)) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 27b6df3b86..ff1ef5ad9e 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -828,7 +828,7 @@ the API, and provides features such as: #:tests? #f #:build-backend "setuptools.build_meta")) (native-inputs - (list python-cython-3 + (list python-cython python-setuptools python-wheel)) (propagated-inputs @@ -1042,25 +1042,32 @@ autocompletion and syntax highlighting.") (define-public mycli (package (name "mycli") - (version "1.25.0") + (version "1.37.1") (source (origin (method url-fetch) (uri (pypi-uri "mycli" version)) (sha256 - (base32 "0231v7f6q84mjmi1h0ni3s55m2g8p5d7x5q49bgkxlaz2bc2xwgy")))) - (build-system python-build-system) + (base32 "03kvw0n6s3f06whr7prjfwp1arl66mahlxizv27i9dkm5ibv1qrz")))) + (build-system pyproject-build-system) (arguments '(#:tests? #f)) ; tests expect a running MySQL + (native-inputs + (list python-setuptools + python-setuptools-scm)) (propagated-inputs (list python-cli-helpers - python-click + python-click-7 python-configobj + python-cryptography python-prompt-toolkit python-pyaes + python-pyfzf python-pygments python-pymysql python-pyperclip + python-sqlglot + python-sqlglotrs python-sqlparse)) (home-page "https://www.mycli.net") (synopsis @@ -4772,7 +4779,7 @@ with the @code{psycopg} PostgreSQL driver.") (invoke "psql" "-h" dbdir "-d" "postgres" "-c" "CREATE DATABASE nixbld;")))))))) (native-inputs - (list python-cython-3 + (list python-cython python-mypy python-psycopg-pool python-pytest @@ -5582,7 +5589,7 @@ __version_tuple__ = version_tuple = (~a)~%" version version-tuple)))))) (native-inputs (list cmake ;needs 3.25 pkg-config - python-cython-3 + python-cython python-pytest python-pytest-runner python-setuptools-scm)) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 8deb82aa40..ddb2ec3a55 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages language) #:use-module (gnu packages libreoffice) #:use-module (gnu packages libusb) + #:use-module (gnu packages machine-learning) #:use-module (gnu packages music) #:use-module (gnu packages pantheon) #:use-module (gnu packages pdf) @@ -136,14 +137,14 @@ with Microsoft Compiled HTML (CHM) files") (define-public calibre (package (name "calibre") - (version "8.4.0") + (version "8.13.0") (source (origin (method url-fetch) (uri (string-append "http://download.calibre-ebook.com/" version "/calibre-" version ".tar.xz")) (sha256 - (base32 "1s9m80nakclxvsw0lax9bak23qipnia74xpy9sv061jvidqb3rz6")) + (base32 "092zv9s0w87vwb5n54ps7lawjmwjqpmk93yp6lslnphpb6hqal6z")) (modules '((guix build utils))) (snippet '(begin @@ -164,29 +165,30 @@ with Microsoft Compiled HTML (CHM) files") (build-system python-build-system) (native-inputs (list bash-minimal + cmake pkg-config python-flake8 python-pyqt-builder qtbase ; for qmake - xdg-utils - cmake)) + xdg-utils)) (inputs - (list libxkbcommon + (list bash-minimal + espeak-ng ffmpeg - uchardet - bash-minimal - fontconfig font-liberation + fontconfig glib hunspell hyphen icu4c - libmtp - libpng libjpeg-turbo libjxr + libmtp + libpng libstemmer libusb + libxkbcommon + onnxruntime openssl optipng podofo @@ -217,15 +219,16 @@ with Microsoft Compiled HTML (CHM) files") python-pychm python-pycryptodome python-pygments + python-pykakasi python-pyqt-6 python-pyqtwebengine-6 - python-pykakasi python-regex python-xxhash - speech-dispatcher python-zeroconf qtwebengine - sqlite)) + speech-dispatcher + sqlite + uchardet)) (arguments (list ;; Calibre is using setuptools by itself, but the setup.py is not @@ -255,6 +258,11 @@ with Microsoft Compiled HTML (CHM) files") (substitute* "setup/plugins_mirror.py" (("href=\"//calibre-ebook.com/favicon.ico\"") "href=\"favicon.ico\"")))) + (add-after 'unpack 'skip-7z-test ;FIXME: require py7zr >= 1.0 + (lambda _ + (substitute* "src/calibre/utils/seven_zip.py" + (("(def test_basic\\(\\).*)" line) + (string-append line "\n return True\n"))))) (add-before 'build 'configure (lambda* (#:key inputs #:allow-other-keys) (substitute* "setup/build.py" diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index df4b188519..66864176df 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017-2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2018-2025 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> @@ -560,7 +560,7 @@ a pen-tablet display and a beamer.") (define-public fet (package (name "fet") - (version "6.28.4") + (version "7.5.4") (source (origin (method url-fetch) @@ -569,7 +569,7 @@ a pen-tablet display and a beamer.") (list (string-append directory base) (string-append directory "old/" base)))) (sha256 - (base32 "11mcbgi8lima4fng78lqdkd5km212drkk5l4bkzz1pz1k7wcykfn")))) + (base32 "0vjjvr9vs3vxncrikchmk60qa99d5wyxja6b3p46vgfaziv1nj31")))) (build-system gnu-build-system) (arguments (list @@ -596,7 +596,7 @@ algorithm. Usually, FET is able to solve a complicated timetable in maximum 5-20 minutes. For extremely difficult timetables, it may take a longer time, a matter of hours.") - (license license:agpl3+))) + (license license:agpl3))) (define-public klavaro (package diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index cf62fe433f..d61b5ce288 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -722,12 +722,21 @@ multipole-accelerated algorithm.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs")))) + (base32 "083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs")) + (patches (search-patches "fritzing-0.9.6-fix-types.patch")))) (build-system gnu-build-system) (arguments (list #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-files + (lambda _ + ;; Trick the internal mechanism to load the parts + (substitute* "src/version/partschecker.cpp" + ((".*git_libgit2_init.*") + "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";")) + (substitute* "src/utils/textutils.cpp" + (("QUuid::createUuid\\(\\)") "QUuid()")))) (replace 'configure (lambda _ ;; Integrate parts library @@ -744,17 +753,22 @@ multipole-accelerated algorithm.") "INCLUDEPATH += $$LIBGIT2INCLUDE\n" "LIBS += -L$$LIBGIT2LIB -lgit2\n")) (("^.*pri/libgit2detect.pri.") "")) - ;; Trick the internal mechanism to load the parts - (substitute* "src/version/partschecker.cpp" - ((".*git_libgit2_init.*") - "return \"083nz7vj7a334575smjry6257535h68gglh8a381xxa36dw96aqs\";")) - ;; XXX: NixOS and Gento have a phase where they generate part - ;; SQLite library, have proper investigation if it's required in - ;; Guix as well. (invoke "qmake" (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," #$output "/lib") (string-append "PREFIX=" #$output) - "phoenix.pro")))))) + "phoenix.pro"))) + (add-after 'install 'generate-parts-db + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (env-qt-qpa-platform (getenv "QT_QPA_PLATFORM")) + (env-qt-hash-seed (getenv "QT_HASH_SEED"))) + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "QT_HASH_SEED" "0") + (invoke (string-append out "/bin/Fritzing") + "-db" (string-append out "/share/fritzing/parts/parts.db") + "-folder" (string-append out "/share/fritzing")) + (setenv "QT_QPA_PLATFORM" env-qt-qpa-platform) + (setenv "QT_HASH_SEED" env-qt-hash-seed))))))) (native-inputs (list fritzing-parts)) (inputs @@ -2297,43 +2311,43 @@ high-performance parallel differential evolution (DE) optimization algorithm.") "1smz3wlpfyjn0czmpl8bj4hw33p1zi9nnfygpsx7jl1523nypa1n")))) (build-system cmake-build-system) (arguments - `(#:out-of-source? #t - #:phases - (modify-phases %standard-phases - ;; Delete unneeded tribits(build system) directory which makes validate-runpath - ;; phase to fail. - (add-before 'validate-runpath 'delete-tribits - (lambda* (#:key outputs #:allow-other-keys) - (delete-file-recursively - (string-append (assoc-ref outputs "out") - "/lib/cmake/tribits"))))) - #:configure-flags - (list "-DCMAKE_CXX_FLAGS=-O3 -fPIC" - "-DCMAKE_C_FLAGS=-O3 -fPIC" - "-DCMAKE_Fortran_FLAGS=-O3 -fPIC" - "-DTrilinos_ENABLE_NOX=ON" - "-DNOX_ENABLE_LOCA=ON" - "-DTrilinos_ENABLE_EpetraExt=ON" - "-DEpetraExt_BUILD_BTF=ON" - "-DEpetraExt_BUILD_EXPERIMENTAL=ON" - "-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON" - "-DTrilinos_ENABLE_TrilinosCouplings=ON" - "-DTrilinos_ENABLE_Ifpack=ON" - "-DTrilinos_ENABLE_Isorropia=ON" - "-DTrilinos_ENABLE_AztecOO=ON" - "-DTrilinos_ENABLE_Belos=ON" - "-DTrilinos_ENABLE_Teuchos=ON" - "-DTeuchos_ENABLE_COMPLEX=ON" - "-DTrilinos_ENABLE_Amesos=ON" - "-DAmesos_ENABLE_KLU=ON" - "-DAmesos_ENABLE_UMFPACK=ON" - "-DTrilinos_ENABLE_Sacado=ON" - "-DTrilinos_ENABLE_Kokkos=OFF" - "-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF" - "-DTPL_ENABLE_AMD=ON" - "-DTPL_ENABLE_UMFPACK=ON" - "-DTPL_ENABLE_BLAS=ON" - "-DTPL_ENABLE_LAPACK=ON"))) + (list + #:tests? #f ;no tests + #:phases + #~(modify-phases %standard-phases + ;; Delete unneeded tribits(build system) directory which makes + ;; validate-runpath phase to fail. + (add-before 'validate-runpath 'delete-tribits + (lambda _ + (delete-file-recursively + (string-append #$output "/lib/cmake/tribits"))))) + #:configure-flags + #~(list "-DCMAKE_CXX_FLAGS=-O3 -fPIC" + "-DCMAKE_C_FLAGS=-O3 -fPIC" + "-DCMAKE_Fortran_FLAGS=-O3 -fPIC" + "-DTrilinos_ENABLE_NOX=ON" + "-DNOX_ENABLE_LOCA=ON" + "-DTrilinos_ENABLE_EpetraExt=ON" + "-DEpetraExt_BUILD_BTF=ON" + "-DEpetraExt_BUILD_EXPERIMENTAL=ON" + "-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON" + "-DTrilinos_ENABLE_TrilinosCouplings=ON" + "-DTrilinos_ENABLE_Ifpack=ON" + "-DTrilinos_ENABLE_Isorropia=ON" + "-DTrilinos_ENABLE_AztecOO=ON" + "-DTrilinos_ENABLE_Belos=ON" + "-DTrilinos_ENABLE_Teuchos=ON" + "-DTeuchos_ENABLE_COMPLEX=ON" + "-DTrilinos_ENABLE_Amesos=ON" + "-DAmesos_ENABLE_KLU=ON" + "-DAmesos_ENABLE_UMFPACK=ON" + "-DTrilinos_ENABLE_Sacado=ON" + "-DTrilinos_ENABLE_Kokkos=OFF" + "-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF" + "-DTPL_ENABLE_AMD=ON" + "-DTPL_ENABLE_UMFPACK=ON" + "-DTPL_ENABLE_BLAS=ON" + "-DTPL_ENABLE_LAPACK=ON"))) (native-inputs (list gfortran swig)) (inputs (list boost lapack suitesparse)) (home-page "https://trilinos.org") @@ -2359,21 +2373,22 @@ unique design feature of Trilinos is its focus on packages.") "09flp1xywbb2laayd9rg8vd0fjsh115y6k1p71jacy0nrbdvvlcg")))) (build-system gnu-build-system) (arguments - `(#:tests? #f - #:configure-flags - (list - "CXXFLAGS=-O3" - (string-append "ARCHDIR=" - (assoc-ref %build-inputs "trilinos"))))) + (list + #:tests? #f + #:configure-flags + #~(list + "CXXFLAGS=-O3" + (string-append "CFLAGS=" + " -Wno-error=builtin-declaration-mismatch" + " -Wno-error=implicit-function-declaration" + " -Wno-error=implicit-int") + (string-append "ARCHDIR=" #$trilinos-serial-xyce)))) (native-inputs - `(("bison" ,bison-3.0) ;'configure' fails with Bison 3.4 - ("flex" ,flex) - ("fortran" ,gfortran))) + (list bison-3.0 ;'configure' fails with Bison 3.4 + flex + gfortran)) (inputs - `(("fftw" ,fftw) - ("suitesparse" ,suitesparse) - ("lapack" ,lapack) - ("trilinos" ,trilinos-serial-xyce))) + (list fftw lapack suitesparse trilinos-serial-xyce)) (home-page "https://xyce.sandia.gov/") (synopsis "High-performance analog circuit simulator") (description @@ -2383,39 +2398,45 @@ parallel computing platforms. It also supports serial execution.") (license license:gpl3+))) (define trilinos-parallel-xyce - (package (inherit trilinos-serial-xyce) + (package + (inherit trilinos-serial-xyce) (name "trilinos-parallel-xyce") (arguments - `(,@(substitute-keyword-arguments (package-arguments trilinos-serial-xyce) - ((#:configure-flags flags) - `(append (list "-DTrilinos_ENABLE_ShyLU=ON" - "-DTrilinos_ENABLE_Zoltan=ON" - "-DTPL_ENABLE_MPI=ON") - ,flags))))) + (substitute-keyword-arguments + (package-arguments trilinos-serial-xyce) + ((#:configure-flags flags) + #~(cons* "-DTrilinos_ENABLE_ShyLU=ON" + "-DTrilinos_ENABLE_Zoltan=ON" + "-DTPL_ENABLE_MPI=ON" + #$flags)))) (inputs - `(("mpi" ,openmpi) - ,@(package-inputs trilinos-serial-xyce))))) + (modify-inputs (package-inputs trilinos-serial-xyce) + (prepend openmpi))))) (define-public xyce-parallel - (package (inherit xyce-serial) + (package + (inherit xyce-serial) (name "xyce-parallel") (arguments - `(,@(substitute-keyword-arguments (package-arguments xyce-serial) - ((#:configure-flags flags) - `(list "CXXFLAGS=-O3" - "CXX=mpiCC" - "CC=mpicc" - "F77=mpif77" - "--enable-mpi" - (string-append - "ARCHDIR=" - (assoc-ref %build-inputs "trilinos"))))))) - (propagated-inputs - `(("mpi" ,openmpi))) + (substitute-keyword-arguments + (package-arguments xyce-serial) + ((#:configure-flags flags) + #~(list "CXXFLAGS=-O3" + "CXX=mpiCC" + "CC=mpicc" + "F77=mpif77" + "--enable-mpi" + (string-append + "CFLAGS=" + " -Wno-error=builtin-declaration-mismatch" + " -Wno-error=implicit-function-declaration" + " -Wno-error=implicit-int") + (string-append "ARCHDIR=" #$trilinos-parallel-xyce))))) + (propagated-inputs (list openmpi)) (inputs - `(("trilinos" ,trilinos-parallel-xyce) - ,@(alist-delete "trilinos" - (package-inputs xyce-serial)))))) + (modify-inputs (package-inputs xyce-serial) + (append zlib) + (replace "trilinos-serial-xyce" trilinos-parallel-xyce))))) (define-public librepcb (package diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index bad0b75f60..ceca427bb2 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -49,6 +49,7 @@ #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system pyproject) + #:use-module (guix build-system qt) #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (gnu packages) @@ -2441,7 +2442,7 @@ filtering and ordering functionality. (define-public sirikali (package (name "sirikali") - (version "1.6.0") + (version "1.8.4") (source (origin (method git-fetch) (uri (git-reference @@ -2449,19 +2450,21 @@ filtering and ordering functionality. (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "06cl7srxaqpzv7gcd17cl78qhrpqhdvpfcj4pr73fr5hhackrf52")))) - (build-system cmake-build-system) + (base32 "0z144ki7664aclnv3p0bpjlzknlsgldl85v76hs2bhnk1jjlgf5y")))) + (build-system qt-build-system) (arguments - '(#:tests? #f ;No tests - #:configure-flags '("-DQT5=true" "-DCMAKE_BUILD_TYPE=RELEASE"))) - (inputs (list xdg-utils libpwquality libgcrypt libsecret qtbase-5)) + (list + #:tests? #f ;No tests + #:qtbase qtbase + #:configure-flags #~(list "-DBUILD_WITH_QT6=true"))) + (inputs (list xdg-utils libpwquality libgcrypt libsecret qtwayland)) (native-inputs (list pkg-config)) (home-page "https://mhogomchungu.github.io/sirikali/") - (synopsis "GUI front end to sshfs, ecryptfs, cryfs, gocryptfs, securefs, fscrypt and encfs") - (description "@dfn{SiriKali} is a Qt/C++ GUI application that manages -+ecryptfs, cryfs, encfs, gocryptfs, fscrypt and securefs -+based encrypted folders.") + (synopsis "GUI front end to file system encryption utilities") + (description + "SiriKali is a Qt/C++ GUI application for managing encrypted folders. It +supports various backends, including eCryptfs, CryFS, EncFS, gocryptfs, fscrypt, +securefs, SSHFS, and Cryptomator.") (license license:gpl3+))) (define-public watcher diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index b39747fccb..ef2bff1f7d 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -2060,11 +2060,16 @@ that allows you to run services and through them access the Bitcoin Cash network (arguments (list #:test-flags - #~(list "-k" (string-append - ;; ModuleNotFoundError: No module named 'pytest' - "not test_parse_stdin" - ;; AssertionError: 5 not greater than 20 - " and not test_setup")) + #~(list + ;; These tests require network. + "--ignore=beancount/web/web_test.py" + "-k" (string-join + (list "not test_parse_stdin" ; ModuleNotFoundError: 'pytest' + "test_setup" ; AssertionError: 5 not greater than 20 + ;; Require network + "test_bake_archive__known" + "test_bake_directory") + " and not ")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'relax-requirements @@ -2380,7 +2385,7 @@ trading, and risk management in real-life.") (define-public optionmatrix (package (name "optionmatrix") - (version "1.4.3") + (version "1.4.4") (source (origin (method url-fetch) @@ -2388,7 +2393,7 @@ trading, and risk management in real-life.") "mirror://sourceforge/optionmatrix/optionmatrix-" version ".tar.xz")) (sha256 - (base32 "1zd0pfiphnijh1l94swb3mjrpmjsn37z11mklamd7zw6h2d4zh4d")))) + (base32 "0ijwj798jli5rw1dj8dkz6sqbsa4hia407imicrk3djqmhn1ky3z")))) (build-system gnu-build-system) (inputs (list gsl gtk+ ncurses)) @@ -2432,7 +2437,7 @@ interactive controls. This package provides a GTK+ graphical user interface (invoke "make" "cython")))))) (inputs (list ta-lib)) (propagated-inputs (list python-numpy)) - (native-inputs (list python-cython-3 + (native-inputs (list python-cython python-pandas python-pytest python-setuptools diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 394903ee2a..656df34789 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -1684,7 +1684,7 @@ developed mainly for Ren'py.") (setenv "SDL_AUDIODRIVER" "disk")))))) (native-inputs (list meson-python pkg-config - python-cython-3 + python-cython python-numpy python-pytest python-setuptools)) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 96488318ee..08e920ef3d 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1187,14 +1187,14 @@ popular puzzle games for one player.") (define-public bzflag (package (name "bzflag") - (version "2.4.26") + (version "2.4.30") (source (origin (method url-fetch) (uri (string-append "https://download.bzflag.org/bzflag/source/" version "/bzflag-" version ".tar.bz2")) (sha256 - (base32 "050h933lmcdf4bw9z3c6g3k8c9sch9f6kq57jp2ivb96zw2h90q1")))) + (base32 "0kc9ag8yq3iqmwlrdwhbqp3sqjcan1mr0ddx25yamrxwwx8bfy5v")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 36d1ec1d49..02152d6719 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -1094,7 +1094,7 @@ for seismology.") (invoke "python" "setup.py" "build_ext" "--inplace")))))) (propagated-inputs (list python-certifi python-numpy python-packaging)) (inputs (list gdal)) - (native-inputs (list python-cython-3 + (native-inputs (list python-cython python-pytest python-pytest-cov python-setuptools @@ -2043,7 +2043,7 @@ extension.") (with-directory-excursion #$output (apply invoke "pytest" "-vv" test-flags))))))) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-setuptools python-setuptools-scm diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 1f746e71c1..8a7ce10138 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -36,7 +36,7 @@ ;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2022-2023 Bruno Victal <mirai@makinata.eu> ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> -;;; Copyright © 2023-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2023-2025 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2023, 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2024 chris <chris@bumblehead.com> ;;; Copyright © 2025 Josep Bigorra <jjbigorra@gmail.com> @@ -130,7 +130,7 @@ (define-public converseen (package (name "converseen") - (version "0.12.2.5") + (version "0.15.1.0") (source (origin (method git-fetch) (uri (git-reference @@ -139,7 +139,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "03jsf5418kk1j8mk0gjzxb79lv44yy1wsycn6g6fmvg4zhl2cls3")))) + "05nm6h4d2rq0kcf2maz95zvx8hd811wdqxxbzwahq1m2az1b11cn")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/kde-education.scm b/gnu/packages/kde-education.scm index 0e4a0a10db..caf93f68d6 100644 --- a/gnu/packages/kde-education.scm +++ b/gnu/packages/kde-education.scm @@ -89,16 +89,14 @@ charts.") (define-public analitza (package (name "analitza") - (version "25.08.1") + (version "25.08.2") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://invent.kde.org/education/analitza") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "mirror://kde/stable/release-service/" + version "/src/analitza-" version ".tar.xz")) (sha256 - (base32 "0q9jfkvs1xyxl7fmw0jzh7fh7rd278825i5w61cikqpwnjmp5jzf")))) + (base32 "0sbhmgv5fm7g6gzpwmsybkhx9wxlyv6b84j60pr0769w36i0qvnp")))) (native-inputs (list extra-cmake-modules qttools)) (inputs (list eigen qtbase qtdeclarative qtsvg)) (build-system qt-build-system) @@ -174,16 +172,14 @@ Currently available boards include: (define-public kalgebra (package (name "kalgebra") - (version "25.08.1") + (version "25.08.2") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://invent.kde.org/education/kalgebra") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "mirror://kde/stable/release-service/" + version "/src/kalgebra-" version ".tar.xz")) (sha256 - (base32 "00cryk135104pdid6sai763yxh6ghlzgg9rfi5qxlb0nidia0mgl")))) + (base32 "042gf5d9fb1gryx9lp94bdrz0zrndxnf1aifyjrv8vl7cpwv8212")))) (build-system qt-build-system) (arguments (list diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm index 07bfbef772..328953df36 100644 --- a/gnu/packages/kde-multimedia.scm +++ b/gnu/packages/kde-multimedia.scm @@ -369,13 +369,13 @@ This package is part of the KDE multimedia module.") (define-public haruna (package (name "haruna") - (version "1.5.0") + (version "1.6.0") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/haruna/" version "/haruna-" version ".tar.xz")) (sha256 - (base32 "0pgg90z8jykzndmgb32j0avlwrw0n0x3n9gmbs58c238ydi4xryk")))) + (base32 "1nlzilqajdiwf6daa9g7kiw6s0lc10q1zb23icq5ckc61492cwhq")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase @@ -1232,3 +1232,33 @@ CDs.") (description "This package provides YouTube video player based on QtMultimedia and @command{yt-dlp}.") (license license:gpl3+))) + +(define-public rattlesnake + (let ((commit "2f0631f201f16e1c17bcf82af24087370b799562") ;no tags + (revision "0")) + (package + (name "rattlesnake") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://invent.kde.org/multimedia/rattlesnake") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0iaandlbv2v4a6wsdxk19ynj77axd3kc72nw28bvbsfb0kqc0mai")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase + #:tests? #f)) ;no tests + (native-inputs + (list extra-cmake-modules)) + (inputs + (list kirigami qtdeclarative qtmultimedia qtwayland)) + (propagated-inputs + (list gstreamer gst-plugins-base gst-plugins-good)) + (home-page "https://invent.kde.org/multimedia/rattlesnake") + (synopsis "Metronome") + (description "Rattlesnake is a metronome app.") + (license license:gpl3+)))) diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm index b351a02b0a..b08900a117 100644 --- a/gnu/packages/kde-pim.scm +++ b/gnu/packages/kde-pim.scm @@ -2836,3 +2836,52 @@ on KMime. The goal is given a MIME tree to extract a list of parts and a list of attachments, check the validity of the signatures and decrypt any encrypted part.") (license license:lgpl2.0+))) + +(define-public zanshin + (package + (name "zanshin") + (version "25.08.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/release-service/" version + "/src/zanshin-" version ".tar.xz")) + (sha256 + (base32 "140km4ma9lzyky8c2ywj4bgf83pjj33zmxx0n36lys1irivjg4jb")))) + (build-system qt-build-system) + (arguments + (list ;; TODO: Do not exclude this test when + ;; AkonadiSerializerTest::shouldNotBreakRecurrenceDuringSerialization + ;; passes. + #:test-exclude "tests-units-akonadi-akonadiserializertest" + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'check-setup + (lambda _ + (setenv "HOME" (getcwd)))) + (replace 'check + (lambda* (#:key tests? (test-exclude "") #:allow-other-keys) + (when tests? + (invoke "dbus-launch" "ctest" "-E" test-exclude))))))) + (native-inputs + (list dbus extra-cmake-modules)) + ;; TODO: Unbundle mockitopp, which is needed for tests. + (inputs + (list boost + akonadi + akonadi-calendar + kcalendarcore + kcrash + ki18n + kitemmodels + kontactinterface + kparts + krunner + kwindowsystem)) + (home-page "https://apps.kde.org/zanshin/") + (synopsis "TO-do management application") + (description "Zanshin is a powerful yet simple application for managing +your day to day actions. It helps you organize and reduce the cognitive +pressure of what one has to do in his job and personal life.") + (license (list license:gpl3+ + license:expat)))) ;for mockitopp diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm index 9309279ea6..3ec68605f1 100644 --- a/gnu/packages/kde-plasma.scm +++ b/gnu/packages/kde-plasma.scm @@ -89,6 +89,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages package-management) ; flatpak #:use-module (gnu packages rdesktop) + #:use-module (gnu packages sdl) #:use-module (gnu packages unicode) #:use-module (gnu packages video) #:use-module (gnu packages vpn) @@ -171,6 +172,42 @@ script engines.") ;; dual licensed (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public aurorae + (package + (name "aurorae") + (version "6.5.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/plasma/" version "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0nzvn21fx0d6mj6sci40cgpw338m7rdbb52f7cjhfg2dvzrfclcf")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase + #:tests? #f)) + (native-inputs + (list extra-cmake-modules qttools)) + (inputs + (list kcmutils + kcolorscheme + kconfig + kdecoration + ki18n + knewstuff + kpackage + ksvg + qtdeclarative)) + (synopsis "Themeable window decoration for KWin") + (description + "Aurorae is a themeable window decoration for KWin. It supports theme +files consisting of several SVG files for decoration and buttons. Themes can +be installed and selected directly in the configuration module of KWin +decorations.") + (home-page "https://invent.kde.org/plasma/aurorae") + (license license:gpl2+))) + (define-public bluedevil (package (name "bluedevil") @@ -463,6 +500,43 @@ games, and tools.") (home-page "https://invent.kde.org/plasma/drkonqi") (license license:gpl2+))) +(define-public flatpak-kcm + (package + (name "flatpak-kcm") + (version "6.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/plasma/" version + "/flatpak-kcm-" version ".tar.xz")) + (sha256 + (base32 "0i8qlmvf33c48khyw50dfgkbj9c5idzbqf7n2bxzv9jvrx8snfnk")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase)) + (native-inputs + (list extra-cmake-modules pkg-config)) + (inputs + (list flatpak + kcmutils + kconfig + kcoreaddons + ki18n + kitemmodels + kservice + libostree ;required by flatpak + qtdeclarative + qtsvg)) + (home-page "https://invent.kde.org/plasma/flatpak-kcm") + (synopsis "Flatpak permission management KCM") + (description "This package provides a KCModule to configure permissions for +portal interactions. It also allows changing @code{flatpak} settings via the +subsumed Flatpak KCM. + +Note: Some permissions don't make sense to show for non-sandboxed apps as they +are only roxying @code{dbus}.") + (license license:gpl3+))) + (define-public kactivitymanagerd (package (name "kactivitymanagerd") @@ -747,6 +821,7 @@ KDE Frameworks 5 to better interact with the system.") knotifications krunner kservice + ksvg kunitconversion knewstuff libplasma @@ -977,6 +1052,34 @@ computer's hardware.") (home-page "https://invent.kde.org/plasma/kmenuedit") (license license:gpl2+))) +(define-public knighttime + (package + (name "knighttime") + (version "6.5.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/plasma/" + version "/" name "-" version + ".tar.xz")) + (sha256 + (base32 + "1bxss7ail0ini8y7nk7y3hgirn1xf9cdfjf8f7y9p88wl1lg2ymc")))) + (build-system qt-build-system) + (arguments (list #:qtbase qtbase)) + (native-inputs (list extra-cmake-modules qttools)) + (inputs (list kconfig + kcoreaddons + kdbusaddons + kholidays + ki18n + qtpositioning)) + (synopsis "Helpers for scheduling the dark-light cycle") + (description "KNightTime provides helpers for scheduling the dark-light +cycle. It can be used to implement features such as adjusting the screen color +temperature based on time of day, etc.") + (home-page "https://invent.kde.org/plasma/knighttime") + (license license:lgpl3+))) + (define-public koi (package (name "koi") @@ -1310,6 +1413,7 @@ the running system.") (arguments (list #:qtbase qtbase + #:test-exclude "kscreen-testqscreenbackend" #:phases #~(modify-phases %standard-phases (add-before 'check 'check-env-setup @@ -1329,8 +1433,7 @@ the running system.") "testPreferredBackend" "testFallback" "testModeSwitching" - "verifyConfig" - "verifyScreen")))))))))) + "verifyConfig")))))))))) (native-inputs (list extra-cmake-modules pkg-config @@ -1526,8 +1629,16 @@ KDE Frameworks components.") "kwin-testLibinputDevice" "kwin-testX11Window" "kwin-testXwaylandInput" - "kwin-testWindowRules") - "|")) + "kwin-testWindowRules" + + "kwin-testXdgShellWindowRules" + "kwin-testStickyKeys" + "kwin-testFractionalRepaint" + "kwin-testDrmLegacy" + "kwin-testInputCapture" + "kwin-testMockDrm") + "|") + ")") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch @@ -1585,13 +1696,13 @@ KDE Frameworks components.") python-minimal ;; for QtWaylandScanner qtwayland)) - (inputs (list breeze + (inputs (list aurorae + breeze eudev fontconfig freetype - hwdata - plasma-activities + kauth kcmutils kcompletion kconfig @@ -1602,12 +1713,14 @@ KDE Frameworks components.") kdecoration kglobalaccel kglobalacceld + kguiaddons ki18n kiconthemes kidletime kio kirigami knewstuff + knighttime knotifications kpackage kpipewire @@ -1618,17 +1731,18 @@ KDE Frameworks components.") kwindowsystem kxmlgui ksvg - kauth - kguiaddons - libqaccessibilityclient lcms libcanberra libcap + libdisplay-info + libei libepoxy libinput + libplasma + libqaccessibilityclient libxkbcommon pipewire - libplasma + plasma-activities plasma-wayland-protocols qt5compat qtdeclarative @@ -1638,12 +1752,12 @@ KDE Frameworks components.") qtsvg wayland xcb-util ;fails at build time without this + xcb-util-cursor xcb-util-keysyms xcb-util-wm xcmsdb xinput ;XXX: Says disabled in configure phase xorg-server-xwayland - libdisplay-info zlib)) ;; Runtime-only dependency needed for mapping monitor hardware vendor IDs to full names ;; * QtQuick.Controls-QMLModule, QML module 'QtQuick.Controls' is a runtime dependency. @@ -2126,6 +2240,7 @@ the KDE Plasma 6 desktop.") knotifyconfig kpackage kpeople + kpipewire krunner kscreenlocker ktexteditor @@ -2162,7 +2277,9 @@ the KDE Plasma 6 desktop.") qqc2-desktop-style qt5compat qtdeclarative + qtshadertools qtwayland + sdl2 wayland wayland-protocols xcb-util @@ -2179,7 +2296,12 @@ the KDE Plasma 6 desktop.") libxkbfile libxcursor libxkbcommon)) - (propagated-inputs (list iso-codes/pinned kirigami kcmutils plasma-workspace)) + (propagated-inputs (list font-google-noto-emoji + iso-codes/pinned + kirigami + kirigami-addons + kcmutils + plasma-workspace)) (arguments (list #:qtbase qtbase #:test-exclude @@ -2436,6 +2558,7 @@ connections.") (native-inputs (list extra-cmake-modules pkg-config qttools)) (inputs (list bash-minimal eudev + kauth kcmutils kdbusaddons kdeclarative @@ -2456,6 +2579,7 @@ connections.") modemmanager-qt networkmanager-qt plasma-activities + plasma-wayland-protocols plasma-workspace qcoro-qt6 qtbase @@ -2531,39 +2655,34 @@ PulseAudio.") (license (list license:lgpl2.1 license:lgpl3)))) (define-public plasma-pass - ;; Port to Plasma 6. - (let ((commit "74c011b634f3bdbdcd80a74b252e6499774756f2") - (revision "0")) - (package - (name "plasma-pass") - (version (git-version "1.2.2" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://invent.kde.org/plasma/plasma-pass") - (commit commit))) - (sha256 - (base32 - "1hfwpnyijkmm05rq9yyq0bzh0ls1d3wcg68ssy69qm3xf6b0g1qf")) - (file-name (git-file-name name version)))) - (build-system qt-build-system) - (native-inputs (list extra-cmake-modules)) - (inputs (list ki18n kitemmodels kwindowsystem kio - oath-toolkit - plasma5support - qgpgme-qt6)) - (propagated-inputs - ;; QML modules need to be propagated so that QML files can find them in - ;; $QML_IMPORT_PATH. - (list kirigami libplasma qtdeclarative)) - (arguments (list #:qtbase qtbase - #:tests? #f - #:configure-flags #~(list "-DQT_MAJOR_VERSION=6"))) - (home-page "https://invent.kde.org/plasma/plasma-pass") - (synopsis "Plasma applet for the Pass password manager") - (description - "This package provides a Plasma applet for the Pass password manager.") - (license license:lgpl2.1+)))) + (package + (name "plasma-pass") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/plasma-pass/" + "plasma-pass-" version ".tar.xz")) + (sha256 + (base32 + "03ydwkk7qvw8hlr3phh5gzy6zf3rmh872a0n703h5dlacc4jbcwi")))) + (build-system qt-build-system) + (native-inputs (list extra-cmake-modules)) + (inputs (list ki18n kitemmodels kwindowsystem kio + oath-toolkit + plasma5support + qgpgme-qt6)) + (propagated-inputs + ;; QML modules need to be propagated so that QML files can find them in + ;; $QML_IMPORT_PATH. + (list kirigami libplasma qtdeclarative)) + (arguments (list #:qtbase qtbase + #:tests? #f + #:configure-flags #~(list "-DQT_MAJOR_VERSION=6"))) + (home-page "https://invent.kde.org/plasma/plasma-pass") + (synopsis "Plasma applet for the Pass password manager") + (description + "This package provides a Plasma applet for the Pass password manager.") + (license license:lgpl2.1+))) (define-public plasma-phonebook (package @@ -2771,15 +2890,14 @@ sensors, process information and other system resources.") breeze breeze-icons dbus + eudev fontconfig + gmp + gpsd icu4c iso-codes/pinned - plasma-activities - plasma-activities-stats karchive kauth - ksvg - kstatusnotifieritem kcmutils kcoreaddons kcrash @@ -2795,25 +2913,25 @@ sensors, process information and other system resources.") kiconthemes kidletime kio - lsof - xdotool ;for X11 - qqc2-desktop-style - qcoro-qt6 - kirigami-addons kio-extras - kitemmodels kirigami kirigami-addons + kirigami-addons + kitemmodels knewstuff + knighttime knotifications knotifyconfig - kquickcharts kpackage kpeople kpipewire kquickcharts + kquickcharts krunner + kscreen ;qml dependency kscreenlocker + kstatusnotifieritem + ksvg ktexteditor ktextwidgets kuserfeedback @@ -2821,55 +2939,55 @@ sensors, process information and other system resources.") kwayland kwin layer-shell-qt + libkexiv2 libkscreen libksysguard + libplasma libqalculate - gmp - mpfr - eudev libsm libxcrypt + libxcursor libxft libxkbcommon libxrender libxtst + lsof + mpfr networkmanager-qt + packagekit-qt6 phonon pipewire - libplasma - plasma5support - plasma-workspace-wallpapers + plasma-activities + plasma-activities-stats + plasma-nm ;qml dependency + plasma-pa ;qml dependency plasma-wayland-protocols + plasma-workspace-wallpapers + plasma5support + polkit-qt6 prison - qtlocation + qcoro-qt6 + qqc2-desktop-style qt5compat - qtsvg - qtshadertools qtdeclarative - qttools + qtlocation qtpositioning + qtshadertools + qtsvg + qttools qtwayland + ucd wayland wayland-protocols xcb-util + xcb-util-cursor xcb-util-image xcb-util-keysyms - xrdb + xdotool ;for X11 xmessage + xrdb xsetroot - polkit-qt6 - ucd - - xcb-util-cursor - libxcursor - libkexiv2 - gpsd - zlib - - ;; qml dependency - plasma-nm - plasma-pa - kscreen)) + zlib)) (arguments (list #:qtbase qtbase #:configure-flags @@ -2882,23 +3000,9 @@ sensors, process information and other system resources.") "/libexec/kglobalacceld")) #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'patch-workspace-bins + (add-after 'unpack 'patch-qttools-path (lambda* (#:key inputs #:allow-other-keys) - (let ((xmessage (search-input-file inputs "/bin/xmessage")) - (xsetroot (search-input-file inputs "/bin/xsetroot")) - (xrdb (search-input-file inputs "/bin/xrdb")) - (qttools #$(this-package-input "qttools"))) - (substitute* "applets/devicenotifier/plugin/\ -deviceerrormonitor_p.cpp" - (("lsof") (search-input-file inputs "/bin/lsof"))) - (substitute* "startkde/startplasma.cpp" - (("xmessage") xmessage)) - (substitute* "kcms/krdb/krdb.cpp" - (("xsetroot") xsetroot)) - (substitute* (list "kcms/fonts/fontinit.cpp" - "kcms/fonts/fonts.cpp" - "kcms/krdb/krdb.cpp") - (("xrdb") xrdb)) + (let ((qttools #$(this-package-input "qttools"))) ;; QT_INSTALL_BINS refers to qtbase, but qdbus is in ;; qttools. (substitute* "CMakeLists.txt" diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm index eb65d0bb85..e219716909 100644 --- a/gnu/packages/kde-utils.scm +++ b/gnu/packages/kde-utils.scm @@ -802,6 +802,51 @@ with support for QR scanning.") (license ;GPL for programs, LGPL for libraries (list license:gpl2+ license:lgpl2.0))))) +(define-public komodo + (package + (name "komodo") + (version "1.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/komodo/" version + "/komodo-" version ".tar.xz")) + (sha256 + (base32 "1xdn3k71a5s801p2cpddyvjbpb8ki8i4y2mig15am0v1r2ag16mi")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase)) + (native-inputs + (list extra-cmake-modules kdoctools)) + (inputs + (list kcolorscheme + kconfig + kcoreaddons + kdbusaddons + kguiaddons + ki18n + kiconthemes + kirigami + kirigami-addons + kitemmodels + qqc2-desktop-style + qtdeclarative)) + (home-page "https://apps.kde.org/komodo/") + (synopsis "To-do manager that uses todo.txt") + (description "KomoDo is a to-do manager that uses +@uref{https://github.com/todotxt/todo.txt/blob/master/README.md, todo.txt +specification}. It parses any compliant @uref{https://todotxt.org/, todo.txt} +files and turns them into easy to use list of tasks. It also has built-in help +for the todo.txt specification. + +It's features include: +@itemize +@item Open and create new todo.txt files +@item Add, delete and edit tasks +@item Filter and search tasks +@end itemize") + (license license:gpl2+))) + (define-public kongress (package (name "kongress") @@ -1322,49 +1367,44 @@ redone.") (list license:gpl2+ license:lgpl2.0+ license:fdl1.2+)))) (define-public rsibreak - (let ((commit "6795af6339e5e7c0fdf469290eafdb0f9365a96b") - (revision "0")) - (package - (name "rsibreak") - (version (git-version "0.12.15" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://invent.kde.org/utilities/rsibreak.git/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0p3xxbiwdmbp1cxagl1bnqicr8wv2mlzb5d5f4x6l7m7qzkicga4")))) - (build-system qt-build-system) - (native-inputs - (list extra-cmake-modules kdoctools)) - (inputs - (list breeze-icons ;; default icon set - kcolorscheme - kconfig - kconfigwidgets - kcoreaddons - kcrash - kdbusaddons - ki18n - kidletime - knotifications - knotifyconfig - kstatusnotifieritem - ktextwidgets - kwindowsystem - kxmlgui - qtwayland)) - (arguments (list #:qtbase qtbase)) - (home-page "https://apps.kde.org/rsibreak/") - (synopsis "Assists in the Recovery and Prevention of Repetitive Strain -Injury") - (description "Repetitive Strain Injury is an illness which can occur as a + (package + (name "rsibreak") + (version "0.13.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://kde/stable/rsibreak/" version + "/rsibreak-" version ".tar.xz")) + (sha256 + (base32 + "086ipa9jbpiaj8j79cygk2p5bgpbgpw9bsh8hcbya3vxql4wxcka")))) + (build-system qt-build-system) + (native-inputs + (list extra-cmake-modules kdoctools)) + (inputs + (list breeze-icons ;; default icon set + kcolorscheme + kconfig + kconfigwidgets + kcoreaddons + kcrash + kdbusaddons + ki18n + kidletime + knotifications + knotifyconfig + kstatusnotifieritem + ktextwidgets + kwindowsystem + kxmlgui + qtwayland)) + (arguments (list #:qtbase qtbase)) + (home-page "https://apps.kde.org/rsibreak/") + (synopsis "Recovery and Repetitive Strain Injury prevention assistsant") + (description "Repetitive Strain Injury is an illness which can occur as a result of working with a mouse and keyboard. This utility can be used to remind you to take a break now and then.") - (license ;; GPL for programs, FDL for documentation - (list license:gpl2+ license:fdl1.2+))))) + (license ;; GPL for programs, FDL for documentation + (list license:gpl2+ license:fdl1.2+)))) (define-public sweeper (package diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2c19cac6e0..461382d617 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -8066,7 +8066,7 @@ from the ntfs-3g package. It is meant to be used in initrds.") (define-public rdma-core (package (name "rdma-core") - (version "54.0") + (version "59.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/linux-rdma/rdma-core" @@ -8074,7 +8074,7 @@ from the ntfs-3g package. It is meant to be used in initrds.") version ".tar.gz")) (sha256 (base32 - "0q1gd4wrn7sb1l6qj6mqqlf8k4pk865b96cfnbgfxbgfs9q4jjm5")))) + "1rbw0nxn7h9984r44pcwvnbdz2ycdn5wsmzrbwxxr31i7fqnkhg2")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no tests @@ -10055,63 +10055,62 @@ Currently the Linux driver itself is missing from this package.") (license license:gpl2+)))) (define-public libcxi - (let ((commit "5b6f8b5d57017c7963debb379d5693c59aca63ed") - (revision "0")) - (package - (name "libcxi") - (version (git-version "1.0.1" revision commit)) - (home-page "https://github.com/HewlettPackard/shs-libcxi") - (source - (origin - (method git-fetch) - (uri (git-reference (url home-page) (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1h3dhird8p11q4ziaxzg1hr5gxcgwx1limzdcyildyaw50dy549g")))) - (build-system gnu-build-system) - (arguments - (list #:configure-flags - #~(list "--disable-static" - (string-append "--with-udevrulesdir=" - #$output "/lib/udev/rules.d")) + (package + (name "libcxi") + (version "12.0.1") + (home-page "https://github.com/HewlettPackard/shs-libcxi") + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "release/shs-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pk2mdkkgiic7nnmhx3iwvgrnxva3qqk2wyni0yhxjciln0hq7s7")))) + (build-system gnu-build-system) + (arguments + (list #:configure-flags + #~(list "--disable-static" + (string-append "--with-udevrulesdir=" + #$output "/lib/udev/rules.d")) - #:phases - #~(modify-phases %standard-phases - (add-before 'configure 'set-cassini-file-names - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "utils/cxi_dump_csrs.py" - (("/usr/share/cassini-headers/csr_defs.json") - (search-input-file - inputs - "/share/cassini-headers/csr_defs.json")))))))) - (native-inputs (list autoconf - automake - libtool - pkg-config - python-wrapper)) - (inputs (list libconfig - libuv - fuse-2 - libyaml - libnl - numactl - eudev - (list lm-sensors "lib"))) - (propagated-inputs (list cassini-headers cxi-driver)) - (synopsis "Interface to the Cassini/Slingshot high-speed interconnect") - (description - "Libcxi provides applications with a low-level interface to the + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'set-cassini-file-names + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "utils/cxi_dump_csrs.py" + (("/usr/share/cassini-headers/csr_defs.json") + (search-input-file + inputs + "/share/cassini-headers/csr_defs.json")))))))) + (native-inputs (list autoconf + automake + libtool + pkg-config + python-wrapper)) + (inputs (list libconfig + libuv + fuse-2 + libyaml + libnl + numactl + eudev + (list lm-sensors "lib"))) + (propagated-inputs (list cassini-headers cxi-driver)) + (synopsis "Interface to the Cassini/Slingshot high-speed interconnect") + (description + "Libcxi provides applications with a low-level interface to the Cray/HPE Cassini high-speed @acronym{NIC, network interface controller}, also known as Slingshot.") - ;; License is spelled out in 'cray-libcxi.spec' and in source file - ;; headers. - (license (list license:lgpl2.1+ license:bsd-3))))) ;dual-licensed + ;; License is spelled out in 'cray-libcxi.spec' and in source file + ;; headers. + (license (list license:lgpl2.1+ license:bsd-3)))) ;dual-licensed (define-public libfabric (package (name "libfabric") - (version "1.22.0") + (version "2.3.0") (source (origin (method url-fetch) @@ -10119,7 +10118,7 @@ known as Slingshot.") (string-append "https://github.com/ofiwg/libfabric/releases/download/v" version "/libfabric-" version ".tar.bz2")) (sha256 - (base32 "1znmw83rmippv0fwz0x7lgylfk17dr9ckll8lrm4z7kclspnqpj8")))) + (base32 "02gb12ijj19aad4c3dwckrrnjlsmy9fizkgw8a5zdzpqd3lgq60x")))) (build-system gnu-build-system) (inputs (let ((if-supported ;XXX: modified from openmpi @@ -10169,6 +10168,19 @@ applications deal with directly. It works in conjunction with provider libraries, which are often integrated directly into libfabric.") (license (list license:bsd-2 license:gpl2)))) ;dual +(define-public libfabric-1 ;needed by Open MPI 4.x + (package + (inherit libfabric) + (version "1.22.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://github.com/ofiwg/libfabric/releases/download/v" + version "/libfabric-" version ".tar.bz2")) + (sha256 + (base32 "1znmw83rmippv0fwz0x7lgylfk17dr9ckll8lrm4z7kclspnqpj8")))))) + (define-public psm (package (name "psm") diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 8d918338ef..13890adfb3 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -2117,7 +2117,7 @@ computing environments.") (native-inputs (list gfortran meson-python - python-cython-3 + python-cython python-pandas python-pytest python-pytest-xdist)) @@ -2360,7 +2360,7 @@ for k-neighbor-graph construction and approximate nearest neighbor search.") (setenv "NUMBA_CACHE_DIR" "/tmp") ;; Rebuild extensions to run tests. (invoke "python" "setup.py" "build_ext" "--inplace")))))) - (native-inputs (list python-cython-3 python-pytest python-setuptools + (native-inputs (list python-cython python-pytest python-setuptools python-wheel)) (inputs (list fftw)) (propagated-inputs (list python-numpy python-pynndescent diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1d36ed00d5..b190b74b47 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3017,7 +3017,7 @@ and quadratic objectives using the Simplex algorithm.") (propagated-inputs (list python-numpy python-pytest python-scipy)) (inputs (list cbc)) (native-inputs (list pkg-config - python-cython-3 + python-cython python-hypothesis python-numpy python-pytest @@ -4651,7 +4651,7 @@ can return results in exact arithmetic.") (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "python" "test/runtests.py"))))))) - (native-inputs (list python-cython-3)) + (native-inputs (list python-cython)) (inputs (list petsc-openmpi python-numpy)) (home-page "https://bitbucket.org/petsc/petsc4py/") (synopsis "Python bindings for PETSc") @@ -4681,7 +4681,7 @@ bindings to almost all functions of PETSc.") (list #:tests? #f)) ; there are no tests (native-inputs (list python-cysignals - python-cython-3 + python-cython python-setuptools python-wheel)) (inputs @@ -4948,7 +4948,7 @@ arising after the discretization of partial differential equations.") (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "python" "test/runtests.py"))))))) - (native-inputs (list python-cython-3)) + (native-inputs (list python-cython)) (inputs (list python-numpy python-petsc4py petsc-openmpi slepc-openmpi)) (home-page "https://bitbucket.org/slepc/slepc4py/") (synopsis "Python bindings for SLEPc") diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index ea5cc62b39..77e650e4ed 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2025 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017 Dave Love <fx@gnu.org> @@ -231,7 +231,7 @@ bind processes, and much more.") '())))) (append (list `(,hwloc-2 "lib") gfortran - libfabric + libfabric-1 ;fails to build with 2.3 libevent opensm openssh-sans-x) @@ -376,6 +376,8 @@ software vendors, application developers and computer science researchers.") ;; As of Open MPI 5.0.X, PMIx is used to communicate ;; with SLURM, so SLURM'S PMI is no longer needed. (delete "slurm") + ;; Replace libfabric 1.x with a newer version. + (replace "libfabric" libfabric) (append openpmix) ;for PMI support (launching via "srun") (append prrte))) ;for PMI support (launching via "srun") (native-inputs (modify-inputs (package-native-inputs openmpi) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index b64ef53138..ff9df16ab3 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1034,7 +1034,7 @@ settings (aliasing, linear interpolation and cubic interpolation).") (define-public hydrogen (package (name "hydrogen") - (version "1.2.4") + (version "1.2.6") (source (origin (method git-fetch) @@ -1043,22 +1043,23 @@ settings (aliasing, linear interpolation and cubic interpolation).") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1i5gz5zck8s0kskjgnx9c75gh7zx0kbjsqzl2765f99p9svprirq")))) + (base32 "0fwyabkvrh1q30sqyhylly0c28cryq39lnqzgsv69jqvcc001bi4")))) (build-system qt-build-system) (arguments - `(#:tests? #f ; require audio subsystem - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-data-directory - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("/usr/share/pixmaps") - (string-append (assoc-ref outputs "out") - "/share/pixmaps")))))))) + (list + #:tests? #f ; require audio subsystem + #:configure-flags #~(list "-DWANT_QT6=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-data-directory + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("/usr/share/pixmaps") + (string-append #$output "/share/pixmaps")))))))) (native-inputs (list cppunit pkg-config - qttools-5)) + qttools)) (inputs (list alsa-lib jack-1 @@ -1068,10 +1069,9 @@ settings (aliasing, linear interpolation and cubic interpolation).") libsndfile lrdf pulseaudio - qtbase-5 - qtsvg-5 - qtxmlpatterns-5 - qtwayland-5 + qtbase + qtsvg + qtwayland zlib)) (home-page "http://hydrogen-music.org/") (synopsis "Drum machine") @@ -3262,18 +3262,51 @@ MIDI files, based on libsmf.") (build-system pyproject-build-system) (arguments (list - #:tests? #f)) ;no tests included + #:tests? #f ;no tests included + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'generate-xdg-files + ;; Steps are taken from .github/workflows/release.yml. + (lambda _ + (invoke "python" "i18n/mo-gen.py") + (invoke "msgfmt" "--desktop" + "-d" "i18n/frescobaldi" + "--template" "linux/org.frescobaldi.Frescobaldi.desktop.in" + "-o" "linux/org.frescobaldi.Frescobaldi.desktop") + (invoke "msgfmt" "--xml" + "-d" "i18n/frescobaldi" + "--template" "linux/org.frescobaldi.Frescobaldi.metainfo.xml.in" + "-o" "linux/org.frescobaldi.Frescobaldi.metainfo.xml"))) + (add-after 'wrap 'wrap-executable + (lambda _ + ;; Ensure that icons are found at runtime. + (wrap-program (string-append #$output "/bin/frescobaldi") + `("QT_PLUGIN_PATH" prefix + ,(list (string-append + (string-join + (list #$(this-package-input "qtbase") + #$(this-package-input "qtsvg") + #$(this-package-input "qtwayland")) + "/lib/qt6/plugins:") + "/lib/qt6/plugins"))))))))) (native-inputs - (list python-hatchling)) - (inputs (list bash-minimal - lilypond - poppler - portmidi-2 - python-ly - python-pyqt-6 - python-pyqt6-sip - python-pyqtwebengine-6 - qpageview)) + (list appstream ;for appstreamctl + desktop-file-utils ;for desktop-file-validate + gettext-minimal ;for msgfmt + python-hatchling)) + (inputs + (list bash-minimal + lilypond + poppler + portmidi-2 + python-ly + python-pyqt-6 + python-pyqt6-sip + python-pyqtwebengine-6 + qpageview + qtbase + qtsvg + qtwayland)) (home-page "https://www.frescobaldi.org/") (synopsis "LilyPond sheet music text editor") (description diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1ac5a9b99c..48cf8fd27f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -2232,8 +2232,8 @@ in an isolated environment, in separate namespaces.") (license license:gpl3+))) (define-public nar-herder - (let ((commit "f9862fd42d4c7a307cfd092086c327f5c2c6b594") - (revision "42")) + (let ((commit "22037b5ebd48d182bf5a13ed48e745a74efad143") + (revision "43")) (package (name "nar-herder") (version (git-version "0" revision commit)) @@ -2244,7 +2244,7 @@ in an isolated environment, in separate namespaces.") (commit commit))) (sha256 (base32 - "1n8apwpfly9605pp2liy80imv3w6q5h750p697sdn2prnw5ifph3")) + "0bfhn5ryqkrhgqp7sjy5jziw3inl50samvh898znhgfryw38jb6p")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/fritzing-0.9.6-fix-types.patch b/gnu/packages/patches/fritzing-0.9.6-fix-types.patch new file mode 100644 index 0000000000..4984f7e94b --- /dev/null +++ b/gnu/packages/patches/fritzing-0.9.6-fix-types.patch @@ -0,0 +1,80 @@ +From d2f68e7d2f1c5b02e7236e1e4c35b1f37981500e Mon Sep 17 00:00:00 2001 +From: Jonathan Lin <jonathanylin1111@gmail.com> +Date: Wed, 22 Oct 2025 11:48:46 -0700 +Subject: [PATCH] Fix quazip using wrong types + +--- + src/lib/quazip/crypt.h | 8 ++++---- + src/lib/quazip/unzip.c | 2 +- + src/lib/quazip/zip.c | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/lib/quazip/crypt.h b/src/lib/quazip/crypt.h +index 2ae6fd5..d47260c 100644 +--- a/src/lib/quazip/crypt.h ++++ b/src/lib/quazip/crypt.h +@@ -32,7 +32,7 @@ + /*********************************************************************** + * Return the next byte in the pseudo-random sequence + */ +-static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab) ++static int decrypt_byte(unsigned long* pkeys, const z_crc_t FAR * pcrc_32_tab) + { + #ifndef _WINDOWS + (void) pcrc_32_tab; /* avoid "unused parameter" warning */ +@@ -49,7 +49,7 @@ static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab) + /*********************************************************************** + * Update the encryption keys with the next byte of plain text + */ +-static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int c) ++static int update_keys(unsigned long* pkeys,const z_crc_t FAR * pcrc_32_tab,int c) + { + (*(pkeys+0)) = CRC32((*(pkeys+0)), c); + (*(pkeys+1)) += (*(pkeys+0)) & 0xff; +@@ -66,7 +66,7 @@ static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int + * Initialize the encryption keys and the random header according to + * the given password. + */ +-static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned long* pcrc_32_tab) ++static void init_keys(const char* passwd,unsigned long* pkeys,const z_crc_t FAR * pcrc_32_tab) + { + *(pkeys+0) = 305419896L; + *(pkeys+1) = 591751049L; +@@ -96,7 +96,7 @@ const char *passwd; /* password string */ + unsigned char *buf; /* where to write header */ + int bufSize; + unsigned long* pkeys; +-const unsigned long* pcrc_32_tab; ++const z_crc_t FAR * pcrc_32_tab; + unsigned long crcForCrypting; + { + int n; /* index in random header */ +diff --git a/src/lib/quazip/unzip.c b/src/lib/quazip/unzip.c +index dde4c34..9526964 100644 +--- a/src/lib/quazip/unzip.c ++++ b/src/lib/quazip/unzip.c +@@ -150,7 +150,7 @@ typedef struct + int encrypted; + # ifndef NOUNCRYPT + unsigned long keys[3]; /* keys defining the pseudo-random sequence */ +- const unsigned long* pcrc_32_tab; ++ const z_crc_t FAR * pcrc_32_tab; + # endif + } unz_s; + +diff --git a/src/lib/quazip/zip.c b/src/lib/quazip/zip.c +index 99f29ce..eb640fe 100644 +--- a/src/lib/quazip/zip.c ++++ b/src/lib/quazip/zip.c +@@ -134,7 +134,7 @@ typedef struct + int encrypt; + #ifndef NOCRYPT + unsigned long keys[3]; /* keys defining the pseudo-random sequence */ +- const unsigned long* pcrc_32_tab; ++ const z_crc_t FAR * pcrc_32_tab; + int crypt_header_size; + #endif + } curfile_info; +-- +2.51.0 + diff --git a/gnu/packages/patches/xlispstat-fix-compilation-with-modern-gcc.patch b/gnu/packages/patches/xlispstat-fix-compilation-with-modern-gcc.patch new file mode 100644 index 0000000000..46825d1132 --- /dev/null +++ b/gnu/packages/patches/xlispstat-fix-compilation-with-modern-gcc.patch @@ -0,0 +1,213 @@ +From 29d14d78a17f2d85bc9e37f380e71221c2055dd8 Mon Sep 17 00:00:00 2001 +From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com> +Date: Thu, 23 Oct 2025 22:13:53 +0300 +Subject: [PATCH] src: Fix compilation with GCC version 14 or newer + +GCC version 14 now treats some deprecation warnings as errors, namely +it is not allowed to use implicit "int" types, implicit function +declarations (see <https://gcc.gnu.org/gcc-14/porting_to.html>.) In +this patch, deprecated code updated to match the new requirements of +GCC. + +* src/c/ddists.c, src/c/objects.c, src/include/sysvr4-foreign.h, +src/c/iviewdat.c, src/c/postscript.c: Explicitly specify variable +types and procedure return value types to satisfy requirements of +GCC version 14 or newer. +* src/c/X11graph.c: Likewise. +(StBlockForInput): Modernize "select" call. +* src/c/X11BSDstuff.c (line_available): Modernize "select" call. +--- + src/c/X11BSDstuff.c | 4 +++- + src/c/X11graph.c | 10 +++++++--- + src/c/ddists.c | 4 +++- + src/c/iviewdat.c | 2 +- + src/c/objects.c | 6 ++++-- + src/c/postscript.c | 7 ++++--- + src/include/sysvr4-foreign.h | 2 +- + 7 files changed, 23 insertions(+), 12 deletions(-) + +diff --git a/src/c/X11BSDstuff.c b/src/c/X11BSDstuff.c +index 5bb7144..4a9b91b 100644 +--- a/src/c/X11BSDstuff.c ++++ b/src/c/X11BSDstuff.c +@@ -3,6 +3,8 @@ + /* Additions to Xlisp 2.1, Copyright (c) 1989 by David Michael Betz */ + /* You may give out copies of this software; for conditions see the */ + /* file COPYING included with this distribution. */ ++/* Additions to XLISP-STAT 2.1, Copyright (c) 2025, */ ++/* by Artyom V. Poptsov <poptsov.artyom@gmail.com> */ + /* */ + /* Some modifications included from WINTERP */ + /* WINTERP 1.0 Copyright 1989 Hewlett-Packard Company (by Niels Mayer).*/ +@@ -549,7 +551,7 @@ LOCAL int line_available() + FD_ZERO(&readmask); + FD_SET(fileno(stdin), &readmask); + +- result = select(ndfs, (int *) &readmask, NULL, NULL, &tv); ++ result = select(ndfs, &readmask, NULL, NULL, &tv); + if (result > 0) return(TRUE); + /* *** should merge the select here with the one for blocking ***/ + else return(StBlockForInput()); +diff --git a/src/c/X11graph.c b/src/c/X11graph.c +index 70dff08..920957c 100644 +--- a/src/c/X11graph.c ++++ b/src/c/X11graph.c +@@ -1,6 +1,8 @@ + /* X11graph - X11 support for XLISP-STAT */ + /* XLISP-STAT 2.1 Copyright (c) 1990, by Luke Tierney */ + /* Additions to Xlisp 2.1, Copyright (c) 1989 by David Michael Betz */ ++/* Additions to XLISP-STAT 2.1, Copyright (c) 2025, */ ++/* by Artyom V. Poptsov <poptsov.artyom@gmail.com> */ + /* You may give out copies of this software; for conditions see the */ + /* file COPYING included with this distribution. */ + +@@ -23,8 +25,8 @@ extern VOID InstallMenuButton P2H(Window, LVAL); + extern VOID DeleteMenuButton P1H(Window); + extern VOID StX11FinishMenus(V); + extern VOID StX11FinishDialogs(V); +-extern StX11InitMenus(V); +-extern StX11InitDialogs(V); ++extern void StX11InitMenus(V); ++extern void StX11InitDialogs(V); + + extern char *getenv(); + +@@ -316,7 +318,7 @@ int StBlockForInput() + if (tmp > maxfd) maxfd = tmp; + FD_SET(maxfd, &readmask); + } +- result = select(maxfd+1, (int *) &readmask, NULL, NULL, NULL); ++ result = select(maxfd+1, &readmask, NULL, NULL, NULL); + return((FD_ISSET(fileno(stdin), &readmask)) ? TRUE : FALSE); + } + else return(FALSE); +@@ -1221,6 +1223,7 @@ VOID StWGetLocation(w, left, top, frame) + VOID StWSetSize(w, width, height, frame) + Window w; + int width, height; ++ int frame; + { + Display *dpy = StX11Display(); + StGWWinInfo *gwinfo; +@@ -1286,6 +1289,7 @@ VOID StWGetSize(w, pwidth, pheight, frame) + VOID StGWSetSize(gwinfo, width, height, frame) + StGWWinInfo *gwinfo; + int width, height; ++ int frame; + { + Window w; + if (gwinfo == NULL || (w = gwinfo->window) == NullWindow) return; +diff --git a/src/c/ddists.c b/src/c/ddists.c +index e6abeaa..dcefa23 100644 +--- a/src/c/ddists.c ++++ b/src/c/ddists.c +@@ -3,6 +3,8 @@ + /* Additions to Xlisp 2.1, Copyright (c) 1989 by David Michael Betz */ + /* You may give out copies of this software; for conditions see the */ + /* file COPYING included with this distribution. */ ++/* Additions to XLISP-STAT 2.1, Copyright (c) 2025, */ ++/* by Artyom V. Poptsov <poptsov.artyom@gmail.com> */ + + #include "xlisp.h" + #include "xlstat.h" +@@ -29,7 +31,7 @@ LOCAL VOID getpoisarg P1H(double *); + LOCAL double poisson_cdf P2H(int, double); + LOCAL int binomial_quant P3H(double, int, double); + LOCAL int poisson_quant P2H(double, double); +-LOCAL poisson_rand P1H(double); ++LOCAL int poisson_rand P1H(double); + LOCAL int binomial_rand P2H(int, double); + + /* numerical distribution function */ +diff --git a/src/c/iviewdat.c b/src/c/iviewdat.c +index 0b35e05..28fd2df 100644 +--- a/src/c/iviewdat.c ++++ b/src/c/iviewdat.c +@@ -237,7 +237,7 @@ static VOID IViewBasicPointsSetTransformation P2C(IViewBasicPoints, p, double ** + static VOID IViewBasicPointsApplyTransformation P3C(IViewBasicPoints, p, + double **, a, int *, inbasis) + { +- static maxvars = 0; ++ static int maxvars = 0; + static Fixed **b, *x, **screen_data, *screen_location; + int vars, n, i, j; + double *scale = p->scale, *location = p->location; +diff --git a/src/c/objects.c b/src/c/objects.c +index d9c61f2..1084b47 100644 +--- a/src/c/objects.c ++++ b/src/c/objects.c +@@ -3,7 +3,9 @@ + /* Additions to Xlisp 2.1, Copyright (c) 1989 by David Michael Betz */ + /* You may give out copies of this software; for conditions see the */ + /* file COPYING included with this distribution. */ +- ++/* Additions to XLISP-STAT 2.1, Copyright (c) 2025, */ ++/* by Artyom V. Poptsov <poptsov.artyom@gmail.com> */ ++ + #include "xlisp.h" + #include "xlstat.h" + +@@ -1260,7 +1262,7 @@ LVAL xsobject_isnew(V) + VOID xsaddmsg P2C(LVAL, object, char *, str) + { + LVAL fcn; +- static offset = FIRST_METHOD_OFFSET; ++ static int offset = FIRST_METHOD_OFFSET; + + xlsave1(fcn); + fcn = cvsubr(funtab[offset].fd_subr,funtab[offset].fd_type,offset); +diff --git a/src/c/postscript.c b/src/c/postscript.c +index 6ddbfb9..ea57351 100644 +--- a/src/c/postscript.c ++++ b/src/c/postscript.c +@@ -9,6 +9,7 @@ + /* pbmtops.c - read a portable bitmap and produce a PostScript bitmap file + ** + ** Copyright (C) 1988 by Jef Poskanzer. ++** Copyright (C) 2025 by Artyom V. Poptsov <poptsov.artyom@gmail.com> + ** + ** Permission to use, copy, modify, and distribute this software and its + ** documentation for any purpose and without fee is hereby granted, provided +@@ -60,7 +61,7 @@ static FILE *fp; + /**************************************************************************/ + + /* set up global variables and print the postscript preamble */ +-psputinit(file, cols, rows, scale ) ++void psputinit(file, cols, rows, scale ) + FILEP file; + int cols, rows; + double scale; +@@ -120,7 +121,7 @@ psputinit(file, cols, rows, scale ) + } + + /* enter a bit into the image */ +-psputbit(b) ++void psputbit(b) + int b; + { + if ( bitsperitem == 8 ) { +@@ -133,7 +134,7 @@ psputbit(b) + } + + /* clean up and print the showpage command */ +-psputrest( ) ++void psputrest( ) + { + if ( bitsperitem > 0 ) + putitem( ); +diff --git a/src/include/sysvr4-foreign.h b/src/include/sysvr4-foreign.h +index f40acc8..709fc6c 100644 +--- a/src/include/sysvr4-foreign.h ++++ b/src/include/sysvr4-foreign.h +@@ -16,7 +16,7 @@ LOCAL VOID link_and_load(fname, libs, fort) + char *fname, *libs; + int fort; + { +- static initialized = FALSE; ++ static int initialized = FALSE; + void *handle; + + if (! initialized) { +-- +2.51.0 + diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index cda9858777..c959541597 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3203,7 +3203,7 @@ The maths behind this is unfortunately fiddly, hence this module.") (define-public perl-data-printer (package (name "perl-data-printer") - (version "0.40") + (version "1.002001") (source (origin (method url-fetch) @@ -3211,11 +3211,9 @@ The maths behind this is unfortunately fiddly, hence this module.") version ".tar.gz")) (sha256 (base32 - "0njjh8zp5afc4602jrnmg89icj7gfsil6i955ypcqxc2gl830sb0")))) + "0x1vdydmj0yp681w0f2nkdxv2h4wa2py002af88clppqxlljsacn")))) (build-system perl-build-system) - (propagated-inputs - (list perl-clone-pp perl-file-homedir perl-package-stash - perl-sort-naturally)) + (native-inputs (list perl-capture-tiny)) (home-page "https://metacpan.org/release/Data-Printer") (synopsis "Colored pretty-print of Perl data structures and objects") (description "Display Perl variables and objects on screen, properly diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm index 6a11852bc7..2d604c201f 100644 --- a/gnu/packages/prolog.scm +++ b/gnu/packages/prolog.scm @@ -189,7 +189,7 @@ it.") (define-public trealla (package (name "trealla") - (version "2.83.23") + (version "2.84.1") (source (origin (method git-fetch) @@ -198,7 +198,7 @@ it.") (url "https://github.com/trealla-prolog/trealla") (commit (string-append "v" version)))) (sha256 - (base32 "18j824bvypk4z36xd59gafwb3ssl5fh6jlfrrzskpcllbpslcajl")) + (base32 "183xwjk3ivh1j1wdjz5180yxc48zsnwffz1iagqafndas1yk9dfd")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 57b723c811..1dd28d5de4 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -604,6 +604,38 @@ Satisfiability modulo theories} solver explore viable execution paths and find counterexamples for you.") (license (list license:asl2.0 license:expat license:psfl)))) +(define-public python-cucumber-expressions + (package + (name "python-cucumber-expressions") + (version "18.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cucumber/cucumber-expressions") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1syxa142v9sajy7n2az7d0jc6lsjg93kw659pxfs3g6ddrngpdri")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; Project's repository contains go, java, javascript, perl, python + ;; and ruby implementations. + (add-after 'unpack 'chdir-python + (lambda _ + (chdir "python")))))) + (native-inputs + (list python-poetry-core python-pytest python-pyyaml)) + (home-page "https://github.com/cucumber/cucumber-expressions") + (synopsis "A simpler alternative to Regular Expressions") + (description + "This package provides an alternative to Regular Expressions with a more +intuitive syntax.") + (license license:expat))) + (define-public python-cucumber-tag-expressions (package (name "python-cucumber-tag-expressions") @@ -629,13 +661,12 @@ counterexamples for you.") (lambda _ (chdir "python")))))) (native-inputs - (list python-pathpy + (list python-path python-pytest python-pytest-html python-pyyaml python-setuptools - python-setuptools-scm - python-wheel)) + python-setuptools-scm)) (home-page "https://github.com/cucumber/tag-expressions") (synopsis "Tag-expression parser for cucumber/behave") (description @@ -1339,7 +1370,7 @@ result documents that can be read by tools such as Jenkins or Bamboo.") ;; sync. kernprof.line_profiler = . kernprof.__version__ = 4.2.0. #~(list "--deselect=tests/test_cli.py::test_version_agreement"))) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-setuptools python-ubelt diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index c4efd30ea5..c02993eded 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -138,7 +138,7 @@ This Python package wraps the Blosc library.") (native-inputs (list cmake-minimal pkg-config - python-cython-3 + python-cython python-pytest python-scikit-build python-setuptools)) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 7edbd71784..63b25bd913 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -1233,6 +1233,34 @@ passwords. It can be used to implement two-factor (2FA) or multi-factor require users to log in.") (license license:expat))) +;; XXX: This project was archived by the owner on Apr 20, 2025. It is now +;; read-only. Consider to remove when starts failing to build and nothing +;; depends on it. +(define-public python-rsa + (package + (name "python-rsa") + (version "4.9.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rsa" version)) + (sha256 + (base32 "0xdfs3mhdb9wjpckj7i4zyv9sr82m7hk0mfkvw3lrnlpakdvzgg7")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;tests are not included in PyPI archive + (native-inputs + (list python-poetry-core)) + (propagated-inputs + (list python-pyasn1)) + (home-page "https://stuvel.eu/rsa") + (synopsis "Pure-Python RSA implementation") + (description "Python-RSA is a pure-Python RSA implementation. It supports +encryption and decryption, signing and verifying signatures, and key +generation according to PKCS#1 version 1.5. It can be used as a Python +library as well as on the command line.") + (license license:asl2.0))) + (define-public python-scrypt (package (name "python-scrypt") diff --git a/gnu/packages/python-graphics.scm b/gnu/packages/python-graphics.scm index ae87001340..d75f0edd2e 100644 --- a/gnu/packages/python-graphics.scm +++ b/gnu/packages/python-graphics.scm @@ -819,7 +819,7 @@ wrappers for common SDL2 functionality.") (setenv "HOME" "/tmp") (invoke "python" "setup.py" "build_ext" "--inplace")))))) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-setuptools python-setuptools-scm diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 12a0dc7d20..cb701a0c7d 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -2406,7 +2406,7 @@ Evapotranspiration using various standard methods.") (with-directory-excursion (site-packages inputs outputs) (for-each delete-file (find-files "." "test*")))))))) (native-inputs - (list python-cython-3 python-pytest python-setuptools python-wheel)) + (list python-cython python-pytest python-setuptools python-wheel)) (propagated-inputs (list python-numpy)) (home-page "https://github.com/storpipfugl/pykdtree") @@ -2591,7 +2591,7 @@ factorization routine for quasi-definite linear system.") (with-directory-excursion #$output (apply invoke "pytest" "-vv" test-flags)))))))) (propagated-inputs (list python-numpy python-packaging python-scipy)) - (native-inputs (list python-cython-3 + (native-inputs (list python-cython python-numpy python-packaging python-pytest @@ -2975,7 +2975,7 @@ logic, also known as grey logic.") python-spin)) (native-inputs (list gfortran pkg-config - python-cython-3 + python-cython python-meson-python python-numpy python-pytest @@ -3106,7 +3106,7 @@ be accessible and easy to use in many contexts.") ;; permission. (setenv "HOME" "/tmp")))))) (native-inputs - (list python-cython-3 + (list python-cython python-pandas python-pytest python-setuptools @@ -3839,7 +3839,7 @@ tissue-specificity metrics for gene expression.") (native-inputs (list meson-python python-beautifulsoup4 - python-cython-3 + python-cython python-html5lib python-lxml python-matplotlib @@ -4590,7 +4590,7 @@ readable.") python-six python-tabulate)) (native-inputs - (list python-pytest python-cython-3 python-setuptools python-wheel)) + (list python-pytest python-cython python-setuptools python-wheel)) (home-page "https://www.github.com/maartenbreddels/vaex") (synopsis "Core of Vaex library for exploring tabular datasets") (description "Vaex is a high performance Python library for lazy diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 016ac6a1da..a92c6440fe 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2017 Mark Meyer <mark@ofosos.org> +;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2018, 2019, 2021, 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> @@ -1828,7 +1829,7 @@ for adding, removing and dropping callbacks.") python-yarl)) (native-inputs (list gunicorn-bootstrap - python-cython-3 + python-cython python-freezegun python-pytest python-pytest-cov @@ -2790,7 +2791,7 @@ AWS S3 Service using boto3 S3 resource as a driver.") (native-inputs (list python-aiofiles python-cbor2 - python-cython-3 ;for faster binaries + python-cython ;for faster binaries python-fakeredis python-httpx python-mujson @@ -3930,6 +3931,65 @@ high-speed transfers via libcurl and frequently outperforms alternatives.") ;; under the terms of LGPLv2.1+ or Expat. (license (list license:lgpl2.1+ license:expat)))) +(define-public python-tldextract + (package + (name "python-tldextract") + (version "5.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tldextract" version)) + (sha256 + (base32 "02c6cyh8f3dagcw786m9nl5y0n3xa98p5mb7d7xfr84l2l5bglmk")))) + (build-system pyproject-build-system) + (native-inputs + (list nss-certs-for-test + python-pytest + python-pytest-mock + python-responses + python-setuptools + python-setuptools-scm + python-syrupy)) + (propagated-inputs + (list python-filelock + python-idna + python-requests + python-requests-file)) + (home-page "https://github.com/john-kurkowski/tldextract") + (synopsis + "Separate the TLD from the registered domain and subdomains of a URL") + (description + "TLDExtract accurately separates the TLD from the registered domain and +subdomains of a URL, using the Public Suffix List. By default, this includes +the public ICANN TLDs and their exceptions. It can optionally support the +Public Suffix List's private domains as well.") + (license license:bsd-3))) + +(define-public python-tracerite + (package + (name "python-tracerite") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tracerite" version)) + (sha256 + (base32 "07mkg0sl0h335kj6yjvxki2c19gxhb7rkks1zgzh7aj0y83c17qi")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;no tests in PyPI or Git + (native-inputs + (list python-setuptools + python-setuptools-scm)) + (propagated-inputs + (list python-html5tagger)) + (home-page "https://github.com/sanic-org/tracerite") + (synopsis "Human-readable HTML tracebacks") + (description + "@code{tracerite} converts Python tracebacks into useful error messages +in human-readable HTML format.") + (license license:unlicense))) + (define-public python-trio-websocket (package (name "python-trio-websocket") @@ -8297,7 +8357,7 @@ name resolutions asynchronously.") (("build_inplace=False") "build_inplace=True"))))))) (native-inputs (list python-covdefaults - python-cython-3 + python-cython python-expandvars python-pytest python-pytest-cov @@ -8936,7 +8996,7 @@ hard or impossible to fix in cssselect.") (delete-file-recursively "uvloop"))))))) (native-inputs (list python-aiohttp - python-cython-3 + python-cython python-psutil python-pyopenssl python-pytest @@ -11691,8 +11751,8 @@ as Flask.") python-pytest-sugar python-pytest-trio)) (propagated-inputs - (list python-exceptiongroup - python-hypercorn + (list hypercorn + python-exceptiongroup python-quart python-trio)) (home-page "https://github.com/pgjones/quart-trio") @@ -11787,30 +11847,28 @@ regular expressions.") (define-public python-scrapy (package (name "python-scrapy") - (version "2.13.1") + (version "2.13.3") (source (origin (method url-fetch) (uri (pypi-uri "scrapy" version)) (sha256 - (base32 "18anr8jjjqyv6pfzdm4fr5hx4vddb8qclyja0y874f5slcnsfsrx")))) + (base32 "0k90pni6vkj7axx3cji0b2x7yg4yfh5kh1csqiq9ssp42265h5xz")))) (build-system pyproject-build-system) (arguments (list #:test-flags #~(list "--numprocesses" (number->string (parallel-job-count)) - ;; Tests requiring a display. - "-k" (string-append - "not " (string-join - (list "test_pformat" - "test_pformat_old_windows" - "test_pformat_windows" - ;; AssertionError. - "test_start_deprecated_super" - ;; Connection refused. - "test_persist") - " and not ")) - ;; Connection refused to some local FTP server. - "--ignore=tests/test_feedexport.py" + "-k" (string-join + ;; ConnectionRefusedError: [Errno 111] Connection + ;; refused + (list "not test_append" + "test_append_active_mode" + "test_overwrite" + "test_overwrite_active_mode" + "test_persist" + ;; AssertionError + "test_start_deprecated_super") + " and not ") ;; Skip documentation testing. "--ignore=docs") #:phases @@ -11830,24 +11888,22 @@ regular expressions.") python-protego python-pydispatcher python-pyopenssl + python-pypydispatcher python-queuelib python-service-identity python-tldextract - python-typing-extensions python-twisted python-w3lib python-zope-interface)) (native-inputs (list nss-certs-for-test python-hatchling - python-mypy python-pexpect python-pytest python-pytest-xdist python-setuptools python-sybil - python-testfixtures - python-wheel)) + python-testfixtures)) (home-page "https://scrapy.org") (synopsis "High-level Web crawling and Web scraping framework") (description "Scrapy is a fast high-level web crawling and web diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index b9962fc569..3ec7d6b280 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -1472,6 +1472,29 @@ cache directory, to avoid modifying the host's environment, and further activated using a set of environment variables.") (license (list license:expat license:asl2.0)))) +(define-public python-pypydispatcher + (package + (name "python-pypydispatcher") + (version "2.1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyPyDispatcher" version)) + (sha256 + (base32 "1wihj7xgq5fk91li0id6a311lyrnmq7ch8rbr9dm7lprrzgwbgmn")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools + python-setuptools-scm)) + (home-page "https://github.com/scrapy/pypydispatcher") + (synopsis "Multi-producer-multi-consumer signal dispatching mechanism") + (description + "This package implements a functionality of pulti-producer-multi-consumer +signal dispatching mechanism. It's a fork of +http://pydispatcher.sourceforge.net/ with PyPy support.") + (license license:bsd-3))) + (define-public python-pyte (package (name "python-pyte") @@ -1766,6 +1789,77 @@ Snake with a message.") be displayed terminal.") (license license:expat))) +(define-public python-sqlglot + (package + (name "python-sqlglot") + (version "26.33.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sqlglot" version)) + (sha256 + (base32 "0wqdpix71bzx61qwk3mi7v42afmrj03dg81sykgdclgsg63jf5r8")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-backend #~'unittest + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "SQLGLOTRS_TOKENIZER" "0")))))) + (native-inputs + (list python-duckdb + python-pytz + python-pandas + python-setuptools + python-setuptools-scm + python-tzdata)) + (home-page "https://sqlglot.com/") + (synopsis "Python SQL Parser and Transpiler") + (description + "SQLGlot is a no-dependency SQL parser, transpiler, optimizer, and +engine. It can be used to format SQL or translate between 31 different +dialects like DuckDB, Presto / Trino, Spark / Databricks, Snowflake, and +BigQuery. It aims to read a wide variety of SQL inputs and output +syntactically and semantically correct SQL in the targeted dialects.") + (license license:expat))) + +(define-public python-sqlglotrs + (package + (inherit python-sqlglot) + (name "python-sqlglotrs") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sqlglotrs" version)) + (sha256 + (base32 "1q8ii7fbgl2b2smi80bn5ifbs5xfzrkqqb4r1j5xx2k98jjsff7n")))) + (build-system cargo-build-system) + (arguments + (list + #:install-source? #false + #:tests? #f ;no tests + #:imported-modules `(,@%cargo-build-system-modules + ,@%pyproject-build-system-modules) + #:modules '((guix build cargo-build-system) + ((guix build pyproject-build-system) #:prefix py:) + (guix build utils)) + #:phases + #~(modify-phases %standard-phases + (add-after 'build 'build-python-module + (assoc-ref py:%standard-phases 'build)) + (add-after 'build-python-module 'install-python-module + (assoc-ref py:%standard-phases 'install)) + (add-after 'install-python-module 'add-install-to-pythonpath + (assoc-ref py:%standard-phases 'add-install-to-pythonpath))))) + (native-inputs + (list maturin + python-wrapper)) + (inputs + (cargo-inputs 'python-sqlglotrs)))) + (define-public python-streamtracer (package (name "python-streamtracer") @@ -1815,150 +1909,6 @@ regularly spaced grids. The actual streamline tracing is done at a low level in Rust, with a nice Python API provided on top.") (license license:gpl3+))) -(define-public python-takethetime - (package - (name "python-takethetime") - (version "0.3.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "TakeTheTime" version)) - (sha256 - (base32 "1y9gzqb9l1f2smx8783ccjzjvby5mphshgrfks7s75mml59h9qyv")))) - (build-system pyproject-build-system) - (arguments - (list #:tests? #f)) ; tests are time dependent and not provided in PyPI - (native-inputs - (list python-setuptools - python-wheel)) - (home-page "https://github.com/ErikBjare/TakeTheTime") - (synopsis "Timing chunks of code") - (description - "This package implements a functionality for time taking using context -managers.") - (license license:expat))) - -(define-public python-tatsu - (package - (name "python-tatsu") - (version "5.13.1") - (source - (origin - (method git-fetch) ; no tests in PyPI releasefor tests - (uri (git-reference - (url "https://github.com/neogeny/TatSu") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0pdq9d45vbp7j600ig4k21mv2wipvmz05dji91x7kifhzfl5i6w9")))) - (build-system pyproject-build-system) - (native-inputs - (list python-pytest - python-setuptools - python-wheel)) - (home-page "https://tatsu.readthedocs.io/en/stable/") - (synopsis "PEG/Packrat Parser generator for Python") - (description - "TatSu (竜) takes a grammar in a variation of Extended Backus-Naur -Form (EBNF) as input, and outputs a memoizing Parsing Expression Grammar (PEG) -or Packrat parser in Python.") - (license license:bsd-2))) - -(define-public python-term-image - (package - (name "python-term-image") - (version "0.7.2") - (source - (origin - ;; We need the full repo to run the tests. - (method git-fetch) - (uri (git-reference - (url "https://github.com/AnonymouX47/term-image") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lsd5m0k5m99arkca2rzrrlln10c8ax6xfawqwjnspcbf8l3h3dq")))) - (build-system pyproject-build-system) - (arguments - (list #:test-flags - #~(list "tests" - ;; These tests require network access. - "-k" (string-append "not test_from_url" - " and not test_source" - " and not test_close")) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'adjust-dependencies - (lambda _ - (substitute* "setup.py" - (("pillow>=9.1,<11") "pillow>=9.1,<12"))))))) - (propagated-inputs (list python-pillow python-requests)) - (native-inputs - (list python-pytest - python-setuptools - python-urwid)) - (home-page "https://github.com/AnonymouX47/term-image") - (synopsis "Display images in the terminal") - (description "term-image is a library and program to display images on -compatible terminals. - -Features: -@enumerate -@item Multiple image formats (basically all formats supported by -@code{PIL.Image.open()}) -@item Multiple image source types: PIL image instance, local file, URL -@item Multiple image render styles (with automatic support detection) -@item Support for multiple terminal graphics protocols, including Kitty -@item Transparency support (with multiple options) -@item Animated image support (including transparent ones) -@item Integration into various TUI / terminal-based output libraries -@item Terminal size awareness -@item Automatic and manual image sizing -@item Horizontal and vertical alignment -@item Automatic and manual font ratio adjustment (to preserve image aspect -ratio) -@end enumerate") - (license license:expat))) - -(define-public python-trubar - (package - (name "python-trubar") - (version "0.3.4") - (source - (origin - (method url-fetch) - (uri (pypi-uri "trubar" version)) - (sha256 - (base32 "149l5wid1b41gmfzsrhapcigcbcsflviz8p1pfa937443fxw1dkd")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "-k" (string-join - ;; AttributeError: module 'libcst' has no attribute - ;; 'FlattenSentinel'. Did you mean: 'MaybeSentinel'? - (list "not test_import_from_future" - "test_inport_after_docstring" - ;; AssertionError: Items in the second set but not - ;; the first - "test_walk_files") - " and not ")))) - (native-inputs - (list python-pytest - python-setuptools - python-wheel)) - (propagated-inputs - (list python-libcst - python-pyyaml)) - (home-page "https://github.com/janezd/trubar") - (synopsis "Utility for translation of Python sources") - (description - "This package provides a tool for translation and localization of Python -programs via modification of source files. Trubar supports f-strings and does -not require any changes to the original source code, such as marking strings -for translation.") - (license license:expat))) - (define-public python-jaconv (package (name "python-jaconv") @@ -2184,7 +2134,7 @@ easy logging and rotating to a console or a file.") (build-system pyproject-build-system) (native-inputs (list python-brotli - python-cython-3 + python-cython python-pytest python-setuptools python-wheel)) @@ -3542,31 +3492,6 @@ library.") of it like a generator that is \"reusable\" and has a length.") (license license:bsd-3))) -(define-public python-tenacity - (package - (name "python-tenacity") - (version "9.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tenacity" version)) - (sha256 - (base32 "0fyp421r038naskvyhj90hkq0az96477njad4rhs6annjz53fzw0")))) - (build-system pyproject-build-system) - (native-inputs - (list python-pytest - python-setuptools - python-setuptools-scm - python-tornado-6 - python-typeguard - python-wheel)) - (home-page "https://github.com/jd/tenacity") - (synopsis "Retrying library for python") - (description - "Tenacity is a general-purpose python library to simplify the task of -adding retry behavior to just about anything.") - (license license:asl2.0))) - (define-public python-pytelegrambotapi (package (name "python-pytelegrambotapi") @@ -5035,7 +4960,7 @@ of the netcdf4 package before.") (setenv "NO_CDL" "1") (invoke "python" "run_all.py")))))))) (native-inputs - (list python-cython-3 + (list python-cython python-setuptools python-wheel)) (propagated-inputs @@ -5390,24 +5315,6 @@ to allow the user to choose from a list of options, and terminal interaction helpers.") (license license:expat))) -(define-public python-textparser - (package - (name "python-textparser") - (version "0.23.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "textparser" version)) - (sha256 - (base32 - "0w5lyhrsvzs5a9q1l3sjgxgljrvd3ybf796w93kc39wayzvd02gh")))) - (build-system python-build-system) - (home-page "https://github.com/eerimoq/textparser") - (synopsis "Fast text parser for Python") - (description "This library provides a text parser written in the Python -language. It aims to be fast.") - (license license:expat))) - ;; XXX: The project might be abandoned and this package has no users in Guix, ;; consider to remove if it keeps failing. ;; See: <https://github.com/ethanfurman/aenum/issues/45>, @@ -7373,18 +7280,20 @@ files.") (define-public python-cli-helpers (package (name "python-cli-helpers") - (version "2.4.0") + (version "2.7.0") (source (origin (method url-fetch) (uri (pypi-uri "cli_helpers" version)) (sha256 - (base32 "0kbs5106kh4yr49wp6cb0xaf6mc6ylkgl86v64vlfai1b9q3p42m")))) + (base32 "1h4b0ka9nh9qidl6s1ard1ixh9c3d0ai5ph3013grhpbvc81glb2")))) (build-system pyproject-build-system) (native-inputs - (list python-pytest python-setuptools python-wheel)) + (list python-pytest + python-setuptools)) (propagated-inputs - (list python-configobj python-tabulate python-wcwidth)) + (list python-configobj + python-tabulate)) (home-page "https://github.com/dbcli/cli_helpers") (synopsis "Helpers for building command-line apps") (description @@ -7906,34 +7815,6 @@ Capabilities include: @end itemize") (license license:expat))) -(define-public python-text-unidecode - (package - (name "python-text-unidecode") - (version "1.3") - (source (origin - (method url-fetch) - (uri (pypi-uri "text-unidecode" version)) - (sha256 - (base32 - "14xb99fdv52j21dsljgsbmbaqv10ps4b453p229r29sdn4xn1mms")))) - (build-system python-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest" "-vv")))))) - (native-inputs - (list python-pytest)) - (home-page "https://github.com/kmike/text-unidecode/") - (synopsis "Decode Unicode data") - (description - "@code{text-unidecode} is a basic Python port of the @code{Text::Unidecode} -Perl library. It can create ASCII representations of Unicode data. In general -users should prefer the @code{python-unidecode} package which offers better -memory usage and transliteration quality.") - ;; The user can choose either license. - (license (list license:clarified-artistic license:gpl2+)))) - (define-public python-pyjwt (package (name "python-pyjwt") @@ -8072,7 +7953,7 @@ environments and back.") (base32 "0gmwggzm0j0iprx074g5hah91y2f68sfhhldq0f8crddj7ndk16m")))) (build-system pyproject-build-system) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-setuptools python-wheel)) @@ -10418,7 +10299,8 @@ writing C extensions for Python as easy as Python itself.") ;; time of the test suite. (setenv "CFLAGS" "-O0")))))))) -(define-public python-cython-3 python-cython) +;; It may be removed after 2026-01-24. +(define-deprecated/public-alias python-cython-3 python-cython) ;; NOTE: when upgrading numpy please make sure that python-numba, ;; python-pandas and python-scipy still build, as these three packages are @@ -11438,7 +11320,7 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. (("build_inplace=False") "build_inplace=True"))))))) (native-inputs (list python-covdefaults - python-cython-3 + python-cython python-expandvars python-pytest python-pytest-cov @@ -12480,27 +12362,23 @@ a general image processing tool.") (define-public python-pillow-heif (package (name "python-pillow-heif") - (version "0.22.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (pypi-uri "pillow_heif" version)) (sha256 - (base32 "16mkap63d14f69105b3bm8pi64fvpdznncgn48vhgls0jf977m31")))) + (base32 "1pkbkg88jg6f24xvbg95aq8dm8fa8ffz7zy4rq262m98i658q3pn")))) (build-system pyproject-build-system) (inputs (list libheif)) (propagated-inputs (list python-pillow)) (native-inputs (list opencv ; for opencv-python - python-coverage python-defusedxml python-numpy python-packaging - python-pre-commit - python-pylint python-pympler python-pytest - python-setuptools - python-wheel)) + python-setuptools)) (home-page "https://github.com/bigcat88/pillow_heif") (synopsis "Python interface for libheif library") (description "This package provides Python bindings for the libheif library @@ -12735,96 +12613,6 @@ ImageJ ROIs, an undocumented and ImageJ application specific format to store regions of interest, geometric shapes, paths, text, etc for image overlays.") (license license:bsd-3))) -(define-public python-tifffile - (package - (name "python-tifffile") - (version "2025.10.4") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tifffile" version)) - (sha256 - (base32 "0f1ybmr2jz19gjg92p9vz3qib49m0x4ipxvrvjyfa6r1mcb7qhrf")))) - (build-system pyproject-build-system) - ;; Tests require lfdfiles, which depends on tifffile - (arguments (list #:tests? #f)) - (propagated-inputs - (list python-numpy)) - (native-inputs - (list python-setuptools)) - (home-page "https://www.lfd.uci.edu/~gohlke/") - (synopsis "Read and write TIFF(r) files") - (description - "This package lets you read image and metadata from many bio-scientific -formats such as plain TIFF, BigTIFF, OME-TIFF, STK, LSM, SGI,NIH, ImageJ, -MicroManager, MD GEL, and FluoView files. It also lets you write numpy arrays -to TIFF, BigTIFF, and ImageJ hyperstack compatible files.") - (license license:bsd-3))) - -(define-public python-tifffile-for-dask-image - ;; It's for python-dask-image@2024.5.3, remove when no longer required. - (hidden-package - (package - (inherit python-tifffile) - (name "python-tifffile") - (version "2023.12.9") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tifffile" version)) - (sha256 - (base32 "1f6d8qdlq0zlksfdhp1mhj9icpwhw4cz47r4i80m6r0a328xmlcx"))))))) - -(define-public python-tiktoken - (package - (name "python-tiktoken") - (version "0.9.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tiktoken" version)) - (sha256 - (base32 "0p9cg6n8mzdi4lbbwxrrp26chy5hr14bqmzr3w74kq1qm6k5qanh")))) - (build-system cargo-build-system) - (arguments - (list - #:install-source? #false - #:imported-modules - (append %pyproject-build-system-modules - %cargo-build-system-modules) - #:modules - '((guix build cargo-build-system) - ((guix build pyproject-build-system) #:prefix py:) - (guix build utils)) - #:phases - #~(modify-phases %standard-phases - (replace 'build - (assoc-ref py:%standard-phases 'build)) - (add-after 'install 'wrap - (lambda _ - ;; Collection of python- and pyproject-build-system phases - ;; between 'install and 'check. - (assoc-ref py:%standard-phases 'add-install-to-pythonpath) - (assoc-ref py:%standard-phases 'add-install-to-path) - (assoc-ref py:%standard-phases 'wrap) - (assoc-ref py:%standard-phases 'create-entrypoints) - (assoc-ref py:%standard-phases 'compile-bytecode))) - (replace 'install - (assoc-ref py:%standard-phases 'install))))) - (propagated-inputs (list python-regex python-requests)) - (inputs (cargo-inputs 'python-tiktoken)) - (native-inputs - (list python-setuptools - python-setuptools-rust - python-wheel - python-wrapper)) - (home-page "https://github.com/openai/tiktoken/") - (synopsis "Fast BPE tokeniser for use with OpenAI's models") - (description - "Tiktoken is a fast @dfn{byte pair encoding} (BPE) tokeniser for use with -@code{OpenAI's} models.") - (license license:expat))) - (define-public python-lfdfiles (package (name "python-lfdfiles") @@ -13250,7 +13038,7 @@ a front-end for C compilers or analysis tools.") (list meson ninja pkg-config - python-cython-3 + python-cython python-meson-python python-numpy python-pytest)) @@ -14585,63 +14373,6 @@ cluster down and deletes the throwaway profile.") connect strings, then issue SQL commands within IPython or IPython Notebook.") (license license:expat))) -(define-public python-traitlets - (package - (name "python-traitlets") - (version "5.14.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "traitlets" version)) - (sha256 - (base32 - "0zjj8ha4z5lbhhmvcl3q8wp5qmwqq0lwxma3d8qvh10s6xdi11c5")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - '(list "-k" "not mypy_list_typing and not mypy_dict_typing"))) - (native-inputs - (list python-argcomplete - python-hatchling - python-mypy - python-pytest - python-pytest-mock - python-pytest-mypy-testing)) - (home-page "https://ipython.org") - (synopsis "Configuration system for Python applications") - (description - "Traitlets is a framework that lets Python classes have attributes with -type checking, dynamically calculated default values, and ‘on change’ -callbacks. The package also includes a mechanism to use traitlets for -configuration, loading values from files or from command line arguments. This -is a distinct layer on top of traitlets, so you can use traitlets in your code -without using the configuration machinery.") - (license license:bsd-3))) - -(define-public python-treelib - (package - (name "python-treelib") - (version "1.8.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/caesar0301/treelib") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0jd3rdaq8v7ykb626cm1gxa03higqnn2pmnv46fc0lc55xbrkxlf")) - (patches - (search-patches "python-treelib-remove-python2-compat.patch")))) - (build-system pyproject-build-system) - (native-inputs (list python-poetry-core python-pytest)) - (home-page "https://github.com/caesar0301/treelib") - (synopsis "Implementation of a tree structure in Python") - (description - "This package provides a Python implementation of a tree structure.") - (license license:asl2.0))) - (define-public python-optree (package (name "python-optree") @@ -15226,44 +14957,6 @@ computing.") code.") (license license:bsd-3))) -(define-public python-textdistance - (package - (name "python-textdistance") - (version "4.6.3") - (source - (origin - ;; There are no tests in the PyPI tarball. - (method git-fetch) - (uri (git-reference - (url "https://github.com/life4/textdistance") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1qaplikab46p38jqr93bxd26vvxcnvib15fjxmmp4cbsiy5196sg")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "--numprocesses" (number->string (min 4 (parallel-job-count)))))) - (native-inputs - (list python-numpy - python-pytest - python-pytest-xdist - python-setuptools - python-wheel)) - (propagated-inputs - (list python-jellyfish - python-distance - python-levenshtein - python-pylev - python-pyxdameraulevenshtein - python-rapidfuzz)) - (home-page "https://github.com/life4/textdistance") - (synopsis "Compute distance between the two texts") - (description "@code{textdistance} is a pure Python library for comparing -distance between two or more sequences by many algorithms.") - (license license:expat))) - (define-public python-pydbus (package (name "python-pydbus") @@ -15614,33 +15307,6 @@ language, in Python.") GA4GH Task Execution API.") (license license:expat))) -(define-public python-toposort - (package - (name "python-toposort") - (version "1.10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "toposort" version)) - (sha256 - (base32 - "1gd66z5dy6j7qs5qkj1pg0vb15rwd571yq02fkm9d9nhaff4gfxz")))) - (build-system pyproject-build-system) - (arguments - (list - #:phases - '(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (invoke "python3" "-m" "test.test_toposort")))))) - (native-inputs (list python-setuptools python-wheel)) - (home-page "https://gitlab.com/ericvsmith/toposort") - (synopsis "Topological sort algorithm") - (description - "This package provides an implementation of a topological sort -algorithm.") - (license license:asl2.0))) - (define-public python-altgraph (package (name "python-altgraph") @@ -15661,61 +15327,6 @@ traversals, topological sort, shortest paths, and more with graphviz output.") (license license:expat))) -(define-public python-three-merge - (package - (name "python-three-merge") - (version "0.1.1") - (source - (origin - ;; There are no tests in the PyPI tarball. - (method git-fetch) - (uri (git-reference - (url "https://github.com/spyder-ide/three-merge") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1fw28swh6jq4myr09j7gv68l241b8vwg470ak5xv0x4xwh2a1m86")))) - (build-system pyproject-build-system) - (propagated-inputs - (list python-diff-match-patch)) - (native-inputs - (list python-pytest python-setuptools python-wheel)) - (home-page "https://github.com/spyder-ide/three-merge") - (synopsis "Library for merging two strings with respect to a base one") - (description - "This package provides a Python library to perform a 3-way merge between -strings, based on @code{diff-match-patch}. This library performs merges at a -character level, as opposed to most VCS systems, which opt for a line-based -approach.") - (license license:expat))) - -(define-public python-throttler - (package - (name "python-throttler") - (version "1.2.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/uburuntu/throttler") - (commit (string-append "v" version)))) - (sha256 - (base32 "1gn21x0zkm7rr7qijlz7nvw7z0mm1j2r0r2lslg7wln1z36gjkbw")))) - (build-system pyproject-build-system) - (native-inputs (list python-aiohttp - python-codecov - python-flake8 - python-pytest - python-pytest-asyncio - python-pytest-cov - python-setuptools - python-wheel)) - (home-page "https://github.com/uburuntu/throttler") - (synopsis "Throttling with asyncio support") - (description - "This is a Python package for easy throttling with asyncio support.") - (license license:expat))) - (define-public python-pyqrcode (package (name "python-pyqrcode") @@ -17072,8 +16683,9 @@ stdin/stdout/stderr.") (uri (pypi-uri "stopit" version)) (sha256 (base32 "0vcrcvky249q4rbgmwf18mwmnypfk8jpn4h6knyjf86r7xc9rwzp")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ;there are none + (build-system pyproject-build-system) + (arguments (list #:tests? #f)) ;there are none + (native-inputs (list python-setuptools)) (home-page "https://pypi.python.org/pypi/stopit") (synopsis "Timeout control decorator and context managers") (description @@ -17081,27 +16693,6 @@ stdin/stdout/stderr.") blocks or callables with two context managers and two decorators.") (license license:expat))) -(define-public python-timeout-decorator - ;; TODO: Remove when python-requests-caches releses a fresh version dropping - ;; it, see, <https://github.com/requests-cache/requests-cache/pull/1111>. - (package - (name "python-timeout-decorator") - (version "0.5.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "timeout-decorator" version)) - (sha256 - (base32 "1mxk2qyydhzncm93z08kvj5ssxq3fr2n7pkrrji28nqwvdc2ybva")))) - (build-system pyproject-build-system) - (arguments (list #:tests? #f)) - (native-inputs (list python-setuptools python-wheel)) - (home-page "https://github.com/pnpnpn/timeout-decorator") - (synopsis "Timeout decorator") - (description "This package provides a decorator that raises an error -when an operation takes longer than expected.") - (license license:expat))) - (define-public python-straight-plugin (package (name "python-straight-plugin") @@ -17363,22 +16954,44 @@ from an XML-based format.") (define-public python-ly (package (name "python-ly") - (version "0.9.5") + (version "0.9.9") (source (origin - (method url-fetch) - (uri (pypi-uri name version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/frescobaldi/python-ly") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0x98dv7p8mg26p4816yy8hz4f34zf6hpnnfmr56msgh9jnsm2qfl")))) - (build-system python-build-system) + (base32 "1q9jdvc4mrv3xkp7jm4g4kisq1k1d05b5d3wfvhpd85a9yqjrhq8")))) + (build-system pyproject-build-system) (arguments - ;; FIXME: Some tests need network access. - '(#:tests? #f)) + (list + #:phases + (let ((namespace-url "http://www.w3.org/2001/03/xml.xsd") + (xlink-url "http://www.w3.org/XML/2008/06/xlink.xsd")) + #~(modify-phases %standard-phases + (add-after 'unpack 'inject-data + (lambda _ + (substitute* "tests/musicxml.xsd" + (((string-join (string-split #$namespace-url #\.) "\\.")) + #$(origin + (method url-fetch) + (uri namespace-url) + (sha256 (base32 "\ +1j6h0sp0pcqi5dv9m6sxwr8brrb59fyx091ld1x6wlh28js4vn8f")))) + (((string-join (string-split #$xlink-url #\.) "\\.")) + #$(origin + (method url-fetch) + (uri xlink-url) + (sha256 (base32 "\ +0jpjha5iiq4rf4hx3qfnmyya9cf17ysxz0rbhsffn5nwgxnghgf8"))))))))))) + (native-inputs (list python-hatchling python-lxml python-pytest)) (synopsis "Tool and library for manipulating LilyPond files") - (description "This package provides a Python library to parse, manipulate -or create documents in LilyPond format. A command line program ly is also -provided that can be used to do various manipulations with LilyPond files.") + (description + "This package provides a Python library to parse, manipulate or create +documents in LilyPond format. A command line program ly is also provided that +can be used to do various manipulations with LilyPond files.") (home-page "https://pypi.org/project/python-ly/") (license license:gpl2+))) @@ -17425,13 +17038,18 @@ refactoring library.") (package (name "python-gorilla") (version "0.3.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "gorilla" version)) - (sha256 - (base32 - "0b40blcp6fih4nvqbilra4qw1dfccv1ahjmr41ac4d9rjadqkcpy")))) - (build-system python-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/christophercrouzet/gorilla") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hm5ynswhz6i763s6cjlh8lv5ai0f3x17mjvlihqs8idlk4vbrn0")))) + (build-system pyproject-build-system) + (arguments (list #:test-backend #~'unittest)) + (native-inputs (list python-setuptools)) (home-page "https://github.com/christophercrouzet/gorilla") (synopsis "Convenient monkey patching with Python") (description @@ -17444,22 +17062,33 @@ third-party code.") (define-public python-llfuse (package (name "python-llfuse") - (version "1.4.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "llfuse" version)) - (sha256 - (base32 - "1jb4c9avvb0v3830xlbj1r9kj05i98vv6nq05105ppg57y7lq14j")))) - (build-system python-build-system) - (inputs - (list fuse-2 attr)) + (version "1.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/python-llfuse/python-llfuse") + (commit (string-append "release-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16wsrg1py4gvcxfgsfkll73lfq62psc0hcqvs73az7s4b1pvyy62")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" "not test_listdir") ; requires /usr/bin access. + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'build-cython + (lambda _ + (invoke "python" "setup.py" "build_cython")))))) + (inputs (list fuse-2 attr)) (native-inputs - (list pkg-config python-pytest)) + (list pkg-config python-cython python-pytest python-setuptools)) (synopsis "Python bindings for FUSE") (description "Python-LLFUSE is a set of Python bindings for the low level FUSE API.") - (home-page "https://bitbucket.org/nikratio/python-llfuse/") + (home-page "https://github.com/python-llfuse/python-llfuse") (license license:lgpl2.0+))) (define-public python-msgpack @@ -17683,110 +17312,6 @@ programming. It provides standard programming abstractions such as as tasks, sockets, files, locks, and queues.") (license license:bsd-3))) -(define-public python-tables - (package - (name "python-tables") - (version "3.10.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tables" version)) - (sha256 - (base32 - "0469jrkmp0qv8cmlqkizm3b8imyc97mk9pfn66ldpyl6f4m82i15")) - (snippet '(begin - (use-modules (guix build utils)) - ;; TODO: Unbundle. - ;; (delete-file-recursively "hdf5-blosc") - (delete-file-recursively "c-blosc"))))) - (build-system pyproject-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-tuning - (lambda _ - (substitute* "setup.py" - (("cpu_flags = .*") - "cpu_flags = ['sse2']\n")))) - (add-after 'unpack 'fix-reference-to-blosc2 - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "tables/__init__.py" - (("( +)os.path.join\\(current_dir, blosc2_lib_hardcoded\\)," - m indent) - (string-append indent - "\"" - (search-input-file inputs "/lib/libblosc2.so") - "\",\n" m))))) - (add-before 'build 'pre-build - (lambda _ - (invoke "make" "distclean") ;Regenerate C code with Cython - (setenv "BLOSC2_DIR" #$(this-package-input "cblosc2")) - (setenv "BLOSC_DIR" #$(this-package-input "c-blosc")) - (setenv "BZIP2_DIR" #$(this-package-input "bzip2")) - (setenv "HDF5_DIR" #$(this-package-input "hdf5")) - (setenv "LZO_DIR" #$(this-package-input "lzo")))) - (add-before 'check 'pre-check - (lambda _ - (setenv "HOME" "/tmp"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (with-directory-excursion "/tmp" - ;; Performing only a light (yet comprehensive) subset of the - ;; test suite. If you want a more complete test, try - ;; passing the --heavy flag to this script (or set the - ;; 'heavy' parameter in case you are using tables.test() - ;; call). The whole suite will take more than 4 hours to - ;; complete on a relatively modern CPU and around 512 MB of - ;; main memory. - (invoke "python" "-m" "tables.tests.test_all")))))))) - (native-inputs - (list pkg-config - python-cython - python-pytest - python-setuptools - python-sphinx)) - (inputs - (list bzip2 - c-blosc - c-blosc2 - hdf5 - lzo)) - (propagated-inputs - (list python-blosc2 - python-numexpr - python-numpy - python-packaging - python-py-cpuinfo - python-typing-extensions)) - (home-page "https://www.pytables.org/") - (synopsis "Hierarchical datasets for Python") - (description "PyTables is a package for managing hierarchical datasets and -designed to efficiently cope with extremely large amounts of data.") - (license license:bsd-3))) - -(define-public python-tasklogger - (package - (name "python-tasklogger") - (version "1.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tasklogger" version)) - (sha256 - (base32 "1901mibcp6aiyjy8afnybrxnb0dkbdxlbvjqbr3gginlw7dr18xh")))) - (build-system pyproject-build-system) - (propagated-inputs (list python-deprecated)) - (native-inputs (list python-coverage python-coveralls python-nose2 - python-numpy python-setuptools python-wheel)) - (home-page "https://github.com/scottgigante/tasklogger") - (synopsis "Extension to the core Python logging library") - (description "This package provides an extension to the core Python -logging library for logging the beginning and completion of tasks and -subtasks.") - (license license:gpl2))) - (define-public python-sniffio (package (name "python-sniffio") @@ -18014,19 +17539,19 @@ provides a collection of cache libraries in the same API interface.") (version "1.2.0") (source (origin - (method url-fetch) - (uri (pypi-uri "pylru" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/jlhutch/pylru") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "15yj46307sw703vjfkgnr04dqvaicmfcj0hc6yrciildp55r6bs9")))) - (build-system python-build-system) + (base32 "0sqai530d7fpjzny476f3zqq9mv05xqbyw500jmbhrpj9yy1l9xp")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs outputs tests? #:allow-other-keys) - (when tests? - (add-installed-pythonpath inputs outputs) - (invoke "python" "test.py"))))))) + (list + #:test-backend #~'custom + #:test-flags #~(list "test.py"))) + (native-inputs (list python-pytest python-setuptools)) (home-page "https://github.com/jlhutch/pylru") (synopsis "Least recently used (LRU) cache implementation") (description @@ -18267,74 +17792,64 @@ is binding LibSass.") (version "1.0.1") (source (origin - (method url-fetch) - (uri (pypi-uri "idna-ssl" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/aio-libs/idna-ssl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0ydrc8hpg9mdr5hqq1lqfsfbn6sjq69slwpfrnlrm3k0phqg14qj")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) ;circular dependency with python-aiohttp + (base32 "1fj4zkcnx3mk7kbnf4d6pjgv331n17wzpphpwdnmr498ghbsph9k")))) + (build-system pyproject-build-system) + (arguments (list #:tests? #f)) ;circular dependency with python-aiohttp + (native-inputs (list python-setuptools)) (propagated-inputs (list python-idna)) (home-page "https://github.com/aio-libs/idna-ssl") - (synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support") - (description "Patch @code{ssl.match_hostname} for Unicode(idna) -domains support.") + (synopsis "Support Unicode(idna) domains for Python's @code{ssl} module") + (description + "This package provides Unicode(idna) domains support for Python's +@code{ssl} module. It patches @code{ssl.match_hostname} for that purpose.") (license license:expat))) -;;; Variant used to break a cycle with python-pip-run-bootstrap. -(define-public python-path-bootstrap - (hidden-package - (package - (name "python-path-bootstrap") - (version "17.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "path" version)) - (sha256 - (base32 "1scqbwgcbisx8mb28hw789a7np953851wg6z0bbzdm519znha7nl")))) - (build-system pyproject-build-system) - (arguments - (list #:tests? #f)) - (native-inputs (list python-setuptools python-setuptools-scm python-wheel)) - (home-page "https://github.com/jaraco/path") - (synopsis "Object-oriented file system path manipulation library") - (description "@code{path} (formerly @code{path.py}) implements path -objects as first-class entities, allowing common operations on files to be -invoked on those path objects directly.") - (license license:expat)))) - (define-public python-path - (package/inherit python-path-bootstrap + (package (name "python-path") + (version "17.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "path" version)) + (sha256 + (base32 "1scqbwgcbisx8mb28hw789a7np953851wg6z0bbzdm519znha7nl")))) + (build-system pyproject-build-system) (arguments - (substitute-keyword-arguments - (package-arguments python-path-bootstrap) - ((#:tests? _ #f) - (not (%current-target-system))) - ((#:test-flags flags #~'()) - #~(append (list "-k" - (string-append - ;; Do not test the myproject.toml build as it tries - ;; to pull dependencies from the Internet. - "not project " - ;; This tests assumes a root user exists. - "and not test_get_owner")) - #$flags)))) + (list + #:tests? (not (%current-target-system)) + #:test-flags + #~(list "-k" + (string-append + ;; Do not test the myproject.toml build as it tries + ;; to pull dependencies from the Internet. + "not project " + ;; This tests assumes a root user exists. + "and not test_get_owner")))) (native-inputs - (modify-inputs (package-native-inputs python-path-bootstrap) - (append python-appdirs - python-more-itertools - python-packaging - python-pygments - python-pytest))) - (properties (alist-delete 'hidden? - (package-properties - python-path-bootstrap))))) + (list python-appdirs + python-more-itertools + python-packaging + python-pygments + python-pytest + python-setuptools + python-setuptools-scm)) + (home-page "https://github.com/jaraco/path") + (synopsis "Object-oriented file system path manipulation library") + (description "@code{path} (formerly @code{path.py}) implements path +objects as first-class entities, allowing common operations on files to be +invoked on those path objects directly.") + (license license:expat))) -(define-deprecated-package python-pathpy - python-path) +;; It may be removed after 2026-01-24. +(define-deprecated/public-alias python-path-bootstrap python-path) +(define-deprecated/public-alias python-pathpy python-path) (define-public python-pretend (package @@ -18362,216 +17877,64 @@ or doubles. Basically, a stub is an object that returns pre-canned responses, rather than doing any computation.") (license license:bsd-3))) -;;; Variant used to break a dependency cycle with -;;; python-pytest-perf-bootstrap. -(define-public python-pip-run-bootstrap - (hidden-package - (package - (name "python-pip-run-bootstrap") - (version "8.8.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jaraco/pip-run") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0ycrjj3jgqcr9c2k7y8vprq65iblg0q0hvwz8zwi13gmb0ffds0c")))) - (build-system python-build-system) - (arguments - (list - #:tests? #f - #:phases - #~(modify-phases %standard-phases - (add-before 'build 'pretend-version - ;; The version string is usually derived via setuptools-scm, but - ;; without the git metadata available this fails. - (lambda _ - (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))))) - (native-inputs (list python-setuptools-scm)) - (propagated-inputs (list python-autocommand python-path-bootstrap - python-packaging)) - (home-page "https://github.com/jaraco/pip-run") - (synopsis "Dynamic dependency loader for Python") - (description "The @command{pip-run} command provides on-demand temporary -package installation for a single interpreter run. It replaces this series of -commands: -@example -$ virtualenv --python pythonX.X --system-site-packages /tmp/env -$ /tmp/env/bin/pip install pkg1 pkg2 -r reqs.txt -$ /tmp/env/bin/python ... -$ rm -rf /tmp/env -@end example") - (license license:expat)))) - (define-public python-pip-run - (package/inherit python-pip-run-bootstrap - (name "python-pip-run") - (arguments - (substitute-keyword-arguments (package-arguments python-pip-run-bootstrap) - ((#:tests? _ #f) - (not (%current-target-system))) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-k" - (string-append - ;; Do not test the myproject.toml build as it tries - ;; to pull dependencies from the internet. - "not project " - ;; These tests attempt to install dependencies from - ;; the network and fail. - "and not test_pkg_imported " - "and not test_pkg_loaded_from_alternate_index "))))))))) - (propagated-inputs - (modify-inputs (package-propagated-inputs python-pip-run-bootstrap) - (replace "python-path-bootstrap" python-path))) - (native-inputs - (modify-inputs (package-native-inputs python-pip-run-bootstrap) - (append python-nbformat - python-pygments - python-pytest))) - (properties (alist-delete 'hidden? (package-properties - python-pip-run-bootstrap))))) - -(define-public python-tlsh (package - (name "python-tlsh") - (version "4.11.2") - (home-page "https://github.com/trendmicro/tlsh") + (name "python-pip-run") + (version "8.8.0") (source (origin (method git-fetch) - (uri (git-reference (url home-page) (commit version))) + (uri (git-reference + (url "https://github.com/jaraco/pip-run") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1gb5j73nw3nmx030rf8pm75rns5syxhv44zxr6i74kjicyly1i9w")))) + (base32 "0ycrjj3jgqcr9c2k7y8vprq65iblg0q0hvwz8zwi13gmb0ffds0c")))) (build-system pyproject-build-system) (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-before 'build 'configure - (lambda _ - (invoke "cmake" "."))) ;to generate tlsh_version.h - (add-after 'configure 'chdir - (lambda _ - (chdir "py_ext"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (with-directory-excursion "../Testing" - (invoke "./python_test.sh")))))))) - (native-inputs (list cmake-minimal python-setuptools)) - (synopsis "Fuzzy matching library for Python") - (description - "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library. -Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash -value which can be used for similarity comparisons. Similar objects have -similar hash values, which allows for the detection of similar objects by -comparing their hash values. The byte stream should have a sufficient amount -of complexity; for example, a byte stream of identical bytes will not generate -a hash value.") - (license license:asl2.0))) - -(define-public python-termcolor - (package - (name "python-termcolor") - (version "2.5.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "termcolor" version)) - (sha256 - (base32 "0vwaxyr2vk8gi7s1slq74nb0ssbb0wcn208ziqp48j3dv8kqv3cr")))) - (build-system pyproject-build-system) - (native-inputs - (list python-hatch-vcs - python-hatchling - python-pytest - python-pytest-cov)) - (home-page "https://pypi.org/project/termcolor/") - (synopsis "ANSII Color formatting for terminal output") - (description - "This package provides ANSII Color formatting for output in terminals.") - (license license:expat))) - -(define-public python-termcolor-1 - (package - (inherit python-termcolor) - (version "1.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "termcolor" version)) - (sha256 - (base32 - "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x")))) - ;; There are no tests - (arguments (list #:tests? #false)) - (native-inputs - (list python-setuptools - python-wheel)))) - -(define-public python-terminaltables - (package - (name "python-terminaltables") - (version "3.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Robpol86/terminaltables") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 (base32 "1jlm7n6kxypbr8mvwpd7hf9hbfk0a002ad03wqgxlri4aw8pk39a")))) - (build-system pyproject-build-system) - ;; XXX: A lot of test fail with flaky behavior. - (arguments (list #:tests? #f)) + (list + #:tests? (not (%current-target-system)) + #:test-flags + #~(list "-k" (string-append + ;; Do not test the myproject.toml build as it tries + ;; to pull dependencies from the internet. + "not project " + ;; These tests attempt to install dependencies from + ;; the network and fail. + "and not test_pkg_imported " + "and not test_pkg_loaded_from_alternate_index " + "and not test_pkg_loaded_from_url ")) + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'pretend-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))))) (native-inputs - (list python-colorclass - python-colorama + (list python-nbformat + python-pygments python-pytest python-setuptools - python-termcolor)) - (home-page "https://github.com/Robpol86/terminaltables") - (synopsis - "Generate simple tables in terminals from a nested list of strings") - (description - "This package makes it easy to draw tables in terminal/console -applications from a list of lists of strings. It supports multi-line rows.") + python-setuptools-scm)) + (propagated-inputs + (list python-autocommand + python-packaging + python-path + python-pip)) + (home-page "https://github.com/jaraco/pip-run") + (synopsis "Dynamic dependency loader for Python") + (description "The @command{pip-run} command provides on-demand temporary +package installation for a single interpreter run. It replaces this series of +commands: +@example +$ virtualenv --python pythonX.X --system-site-packages /tmp/env +$ /tmp/env/bin/pip install pkg1 pkg2 -r reqs.txt +$ /tmp/env/bin/python ... +$ rm -rf /tmp/env +@end example") (license license:expat))) -(define-public python-term-background - (package - (name "python-term-background") - (version "1.0.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "term_background" version)) - (sha256 - (base32 "0p674silrwc3jncncmdnj1lr6pl2q5qbx0xi3mzjq9sgcs5vmp4n")))) - (arguments - (list - #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'fix-build - (lambda _ (delete-file "setup.py")))))) - (build-system pyproject-build-system) - (native-inputs - (list python-pytest - python-setuptools - python-setuptools-scm - python-wrapper - python-wheel)) - (home-page "http://github.com/rocky/shell-term-background") - (synopsis "Determine if shell has a light or dark background") - (description "This package determines if shell has a light or dark -background.") - (license license:gpl2+))) +;; It may be removed after 2026-01-24. +(define-deprecated/public-alias python-pip-run-bootstrap python-pip-run) (define-public python-libarchive-c (package @@ -19874,29 +19237,6 @@ and dataclasses.") @code{ArgumentParser} object.") (license license:asl2.0))) -(define-public python-texttable - (package - (name "python-texttable") - (version "1.6.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/foutaise/texttable/") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1lcn76wx6fsj8d79gs985irkqz5qbwq1v9ji9jxsra6dbb643v5j")))) - (build-system pyproject-build-system) - (arguments (list #:test-flags #~(list "tests.py"))) - (native-inputs (list python-pytest python-setuptools)) - (home-page "https://github.com/foutaise/texttable/") - (synopsis "Create simple ASCII tables in Python") - (description - "This package provides a Python module for creating simple ASCII -tables.") - (license license:expat))) - (define-public python-atomicwrites (package (name "python-atomicwrites") @@ -20619,28 +19959,6 @@ text.") @code{boto} library.") (license license:asl2.0))) -(define-public python-rsa - (package - (name "python-rsa") - (version "3.4.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "rsa" version)) - (sha256 - (base32 - "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5")))) - (build-system python-build-system) - (propagated-inputs - (list python-pyasn1)) - (synopsis "Pure-Python RSA implementation") - (description "Python-RSA is a pure-Python RSA implementation. It supports -encryption and decryption, signing and verifying signatures, and key -generation according to PKCS#1 version 1.5. It can be used as a Python -library as well as on the command line.") - (home-page "https://stuvel.eu/rsa") - (license license:asl2.0))) - (define-public python-plumbum (package (name "python-plumbum") @@ -20768,7 +20086,7 @@ document.") (invoke "nose2" "-v" "symengine.tests")) (format #t "test suite not run~%"))))))) (native-inputs (list cmake-minimal - python-cython-3 + python-cython python-nose2 python-setuptools python-wheel)) @@ -21380,29 +20698,6 @@ Eventlet, or gevent. Tasks can execute asynchronously (in the background) or synchronously (wait until ready).") (license license:bsd-3))) -(define-public python-translitcodec - (package - (name "python-translitcodec") - (version "0.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/claudep/translitcodec") - (commit (string-append "version-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1cj11sa5hy8ga7p0dgwi4g4gv0qx6c1yi2csgnvxiir16ywslhpw")))) - (build-system pyproject-build-system) - (native-inputs (list python-pytest python-setuptools)) - (home-page "https://github.com/claudep/translitcodec") - (synopsis "Unicode to 8-bit charset transliteration codec") - (description - "This package contains codecs for transliterating ISO 10646 texts into -best-effort representations using smaller coded character sets (ASCII, -ISO 8859, etc.).") - (license license:expat))) - (define-public python-anyqt (package (name "python-anyqt") @@ -21663,37 +20958,39 @@ can also be used to get the exact location, font or color of the text.") (define-public python-rarfile (package (name "python-rarfile") - (version "4.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "rarfile" version)) - (sha256 - (base32 - "1882wv9szcm29mnyhjmspyflyr2l7z73srn14w4dlnww49lqfm37")))) - (build-system python-build-system) + (version "4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/markokr/rarfile") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lm4vz4w0hrnzln7w10ijhdiwxy7gz45m44zw4fz7rdnn7c06b36")))) + (build-system pyproject-build-system) (arguments - `(#:tests? #f ;; The bsdtar utility is very limited and most tests fail. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "rarfile.py" - ;; Disable unrar and unar, which are unavailable on Guix. - (("(unrar|unar)=True" all tool) (string-append tool "=False")) - ;; Hardcode path to bsdtar - (("\"bsdtar\"") - (string-append "\"" (assoc-ref inputs "libarchive") "/bin/bsdtar\""))) - #t)) - (replace 'check - (lambda* (#:key inputs tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv"))))))) - (native-inputs (list python-pytest)) + (list + #:tests? #f ;The bsdtar utility is very limited and most tests fail. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "rarfile.py" + ;; Disable unrar and unar, which are unavailable on Guix. + (("(unrar|unar)=True" all tool) + (string-append tool "=False")) + ;; Hardcode path to bsdtar + (("\"bsdtar\"") + (format #f "~s" + (search-input-file inputs "bin/bsdtar"))))))))) + (native-inputs (list python-pytest python-setuptools)) (inputs (list libarchive)) (home-page "https://github.com/markokr/rarfile") (synopsis "RAR archive reader for Python") - (description "This is Python module for RAR archive reading. The interface -is made as zipfile like as possible.") + (description + "This is Python module for RAR archive reading. The interface is made as +zipfile like as possible.") (license license:isc))) (define-public python-slugid @@ -21709,21 +21006,14 @@ is made as zipfile like as possible.") (file-name (git-file-name name version)) (sha256 (base32 "1h64p2jlqv6lsmw8h2j203kx3bhv72cwzpk5gdhsaamw30cp3h1i")))) - (build-system python-build-system) - (native-inputs (list python-nose)) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key inputs tests? #:allow-other-keys) - (when tests? - ;; The project uses tox to run the tests via nose. - (invoke "nosetests" "-v" "test.py"))))))) + (build-system pyproject-build-system) + (arguments (list #:test-backend #~'nose)) + (native-inputs (list python-pynose python-setuptools)) (home-page "http://taskcluster.github.io/slugid.py") (synopsis "Module for Base64 encoded UUID v4 slugs") - (description "This package provides a module for generating v4 -UUIDs and encoding them into 22 character URL-safe base64 slug -representation.") + (description + "This package provides a module for generating v4 UUIDs and encoding them +into 22 character URL-safe base64 slug representation.") (license license:mpl2.0))) (define-public python-rich @@ -21799,58 +21089,6 @@ attractive help output from click, formatted with rich, with minimal customization required.") (license license:expat))) -(define-public python-textual - (package - (name "python-textual") - (version "3.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Textualize/textual") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1sldkhy8phk9c7pln70dyb6aya7qpxb5niym9s91z144dv6ykgws")))) - (build-system pyproject-build-system) - (arguments - (list #:test-flags - ;; Snapshot tests require python-pytest-textual-snapshot which - ;; in turn depends on python-textual. - '(list "--ignore=tests/snapshot_tests/test_snapshots.py" - "-k" (string-append - ;; Broken for unknown reason. - "not test_textual_env_var" - ;; Tests that require python-treesitter-languages. - " and not test_widget_construct" - " and not test_setting_builtin_language_via_constructor" - " and not test_setting_builtin_language_via_attribute" - " and not test_setting_language_to_none" - " and not test_setting_unknown_language" - " and not test_register_language" - " and not test_update_highlight_query" - " and not test_default_theme" - " and not test_setting_builtin_themes" - " and not test_setting_unknown_theme_raises_exception" - " and not test_registering_and_setting_theme")))) - (propagated-inputs - (list python-markdown-it-py - python-platformdirs - python-rich - python-tree-sitter - ;; python-tree-sitter-languages ; optional, not packed yet - python-typing-extensions)) - (native-inputs - (list python-poetry-core - python-pytest - python-pytest-asyncio - python-pytest-xdist)) - (home-page "https://github.com/Textualize/textual") - (synopsis "Build text user interfaces in Python") - (description "Textual is a @acronym{TUI, Text User Interface} framework -for Python inspired by modern web development.") - (license license:expat))) - (define-public python-magic (package (name "python-magic") @@ -21862,49 +21100,40 @@ for Python inspired by modern web development.") (uri (git-reference (url home-page) (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1x11kfn4g244fia9a7y4ly8dqv5zsxfg3l5azc54dl6gkp2bk7vx")) - (modules '((guix build utils))) - ;; Adjust expected output for file@5.45. - (snippet #~(substitute* "test/libmagic_test.py" - (("PDF document, version 1\\.2, 2 pages") - "PDF document, version 1.2, 2 page(s)"))))) - (build-system python-build-system) + (base32 "1x11kfn4g244fia9a7y4ly8dqv5zsxfg3l5azc54dl6gkp2bk7vx")))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - ;; Replace a specific method call with a hard-coded - ;; path to the necessary libmagic.so file in the - ;; store. If we don't do this, then the method call - ;; will fail to find the libmagic.so file, which in - ;; turn will cause any application using - ;; python-magic to fail. - (add-before 'build 'hard-code-path-to-libmagic - (lambda* (#:key inputs #:allow-other-keys) - (let ((magic (search-input-file inputs "/lib/libmagic.so"))) - (substitute* "magic/loader.py" - (("find_library\\('magic'\\)") - (string-append "'" magic "'")))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - ;; The test suite mandates this variable. - (setenv "LC_ALL" "C.UTF-8") - (if tests? - (with-directory-excursion "test" - (invoke "python" "./libmagic_test.py")) - (format #t "test suite not run~%"))))))) - (native-inputs - (list which)) + (list + #:test-backend #~'custom + #:test-flags #~(list "test/libmagic_test.py") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; Adjust expected output for file@5.45. + (substitute* "test/libmagic_test.py" + (("PDF document, version 1\\.2, 2 pages") + "PDF document, version 1.2, 2 page(s)")))) + ;; Replace a specific method call with a hard-coded path to the + ;; necessary libmagic.so file in the store. + (add-before 'build 'hard-code-path-to-libmagic + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "magic/loader.py" + (("find_library\\('magic'\\)") + (format #f "~s" + (search-input-file inputs "lib/libmagic.so"))))))))) + (native-inputs (list which python-setuptools)) (inputs ;; python-magic needs to be able to find libmagic.so. (list file)) (synopsis "File type identification using libmagic") (description - "This module uses ctypes to access the libmagic file type -identification library. It makes use of the local magic database and -supports both textual and MIME-type output. Note that this module and -the python-file module both provide a \"magic.py\" file; these two -modules, which are different and were developed separately, both serve -the same purpose: to provide Python bindings for libmagic.") + "This module uses ctypes to access the libmagic file type identification +library. It makes use of the local magic database and supports both textual +and MIME-type output. Note that this module and the python-file module both +provide a \"magic.py\" file; these two modules, which are different and were +developed separately, both serve the same purpose: to provide Python bindings +for libmagic.") (license license:expat))) (define-public s3cmd @@ -22006,6 +21235,7 @@ check if a package meets certain version requirements, query CFLAGS and LDFLAGS and parse the output to build extensions with setup.py.") (license license:expat))) +;; This package is unmaintained since 2014, but still used in `khmer'. (define-public python-bz2file (package (name "python-bz2file") @@ -22015,11 +21245,10 @@ LDFLAGS and parse the output to build extensions with setup.py.") (method url-fetch) (uri (pypi-uri "bz2file" version)) (sha256 - (base32 - "126s53fkpx04f33a829yqqk8fj4png3qwg4m66cvlmhmwc8zihb4")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) ; Tests use deprecated python modules. + (base32 "126s53fkpx04f33a829yqqk8fj4png3qwg4m66cvlmhmwc8zihb4")))) + (build-system pyproject-build-system) + (arguments (list #:tests? #f)) ; Tests use deprecated python modules. + (native-inputs (list python-setuptools)) (home-page "https://github.com/nvawda/bz2file") (synopsis "Read and write bzip2-compressed files") (description @@ -22083,7 +21312,7 @@ codebase to support both Python 2 and Python 3 with minimal overhead.") (build-system pyproject-build-system) (native-inputs (list meson-python pkg-config - python-cython-3 + python-cython python-pytest python-sphinx)) (home-page "https://github.com/sagemath/cysignals") @@ -22126,105 +21355,37 @@ in strings and comments.") (define-public python-py3status (package (name "python-py3status") - (version "3.50") + (version "3.62") (source (origin - (method url-fetch) - (uri (pypi-uri "py3status" version)) - (sha256 - (base32 "0j2dx9lzpic15r8p0r0s3jmcskxpacahxl640b4864ldn5rlnh9d")))) - (build-system python-build-system) - (inputs - (list file)) - (arguments - '(#:phases - (modify-phases %standard-phases - ;; 'file' is used for detection of configuration file encoding - ;; let's make link the dependency to particular input - (add-before 'build 'patch-file-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((file-path (assoc-ref inputs "file"))) - (substitute* "py3status/parse_config.py" - (("\\[\"file\", \"-b\"") - (string-append "['" file-path "/bin/file', '-b'"))) - #t)))) - #:tests? #f)) ; TODO: Requires many libraries not in Guix. - (home-page "https://github.com/ultrabug/py3status") - (synopsis "Extensible i3status wrapper written in Python") - (description "py3status is an i3status wrapper which extends i3status -functionality in a modular way, allowing you to extend your panel with your -own code, responding to click events and updating clock every second.") - (license license:bsd-3))) - -(define-public python-tblib - (package - (name "python-tblib") - (version "3.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tblib" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/ultrabug/py3status") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0lnnbicpxx774s29nkbic4rrqvy4rhxd8skx5pp6zxh7kwn4qh06")))) + (base32 "13ggwr35w5isylrg1n7akhycm18r03bxin95hdpcmqg7fvqyfppz")))) (build-system pyproject-build-system) (arguments (list - ;; Don't run benchmark tests. - #:test-flags #~(list "--ignore=tests/test_perf.py") #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-pytest-config - (lambda _ - (substitute* "pytest.ini" - (("--benchmark-disable") ""))))))) - (native-inputs - (list python-pytest - python-setuptools)) - (home-page "https://github.com/ionelmc/python-tblib") - (synopsis "Traceback serialization library") + (add-before 'build 'hardcode-file-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "py3status/parse_config.py" + (("\\[\"file\", \"-b\"") + (format #f "[~s, \"-b\"" + (search-input-file inputs "bin/file"))))))))) + (native-inputs (list python-hatchling python-pytest)) + (inputs (list file)) + (home-page "https://github.com/ultrabug/py3status") + (synopsis "Extensible i3status wrapper written in Python") (description - "Traceback serialization allows you to: - -@enumerate -@item Pickle tracebacks and raise exceptions with pickled tracebacks in -different processes. This allows better error handling when running code over -multiple processes (imagine multiprocessing, billiard, futures, celery etc). - -@item Parse traceback strings and raise with the parsed tracebacks. -@end enumerate\n") + "py3status is an i3status wrapper which extends i3status functionality in +a modular way, allowing you to extend your panel with your own code, +responding to click events and updating clock every second.") (license license:bsd-3))) -(define-public python-tftpy - (package - (name "python-tftpy") - (version "0.8.2") - (source - (origin - (method git-fetch) ;no tests in PyPI archive - (uri (git-reference - (url "https://github.com/msoulier/tftpy") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1gl04ps8h8r7av3h0zbm8gwmkqs9rkk5vf7n8mv2bzrkwvy9hacc")))) - (build-system python-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? inputs outputs #:allow-other-keys) - (when tests? - ;; The default DEBUG logging level is way too verbose. - (substitute* "t/test.py" - (("logging\\.DEBUG") - "logging.INFO")) - (invoke "python" "-m" "unittest" "t/test.py"))))))) - (home-page "https://tftpy.sourceforge.net/") - (synopsis "Python trivial file transfer protocol (TFTP) library") - (description "TFTPy is a trivial file transfer protocol (TFTP) Python -library. It can be used to act both as a TFTP client or TFTP server.") - (license license:expat))) - (define-public python-greenlet (package (name "python-greenlet") @@ -22439,147 +21600,57 @@ graphviz.") (define-public python-fastimport (package (name "python-fastimport") - (version "0.9.9") + (version "0.9.16") (source - (origin - (method url-fetch) - (uri (pypi-uri "fastimport" version)) - (sha256 - (base32 "06gk14qgm9dxx3pzjn0ckdbywc8ial2bjfzddqwlr4bn1nnqkbll")))) - (build-system python-build-system) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jelmer/python-fastimport") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pbnp9ffjs09ngva9qcizpscxl9s47rmd4dhxl62f5iwl6c46798")))) + (build-system pyproject-build-system) + (arguments (list #:test-backend #~'unittest)) + (native-inputs (list python-setuptools)) (home-page "https://github.com/jelmer/python-fastimport") (synopsis "VCS fastimport parser and generator in Python") - (description "This package provides a parser for and generator of the Git + (description + "This package provides a parser for and generator of the Git @url{https://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html,fastimport} format.") (license license:gpl2+))) -(define-public python-twisted +(define-public python-pika (package - (name "python-twisted") - (version "24.11.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/twisted/twisted") - (commit (string-append "twisted-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0k4rd5bpx40j1k0mgbhzqa35dyni0kk7pxjr8x3pm1iaka1718rh")))) + (name "python-pika") + (version "1.3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pika/pika") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bmp79lds26y2976xrpf53r3acqzpf3wpkprhlh3asqpfv5pwipb")))) (build-system pyproject-build-system) (arguments (list - ;; tests: skips=638, successes=9759 - #:test-backend #~'custom #:test-flags - #~(list "-m" "twisted.trial" - "--temp-directory=/tmp/_trial_temp" - (string-append "-j" (number->string (min 8 (parallel-job-count)))) - "twisted") + ;; XXX: These test most likely require a running RabbitMQ server. + #~(list "--ignore=tests/acceptance/blocking_adapter_test.py") #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'disable-broken-tests - (lambda _ - (for-each delete-file - (list - ;; No idea why they fail - "src/twisted/test/test_log.py" - ;; Network tests - "src/twisted/conch/test/test_cftp.py" - "src/twisted/internet/test/test_endpoints.py" - "src/twisted/protocols/test/test_tls.py" - "src/twisted/test/test_sslverify.py" - "src/twisted/web/test/test_agent.py" - "src/twisted/web/test/test_tap.py" - ;; These need a git executable - "src/twisted/python/test/test_release.py" - ;; These leave behind a socket file, which breaks the - ;; build with "...has an unsupported type" - "src/twisted/internet/test/test_unix.py" - "src/twisted/test/test_unix.py" - ;; These complain about missing test modules. - "src/twisted/test/test_failure.py" - "src/twisted/web/test/test_http2.py" - "src/twisted/conch/test/test_forwarding.py"))))))) - (propagated-inputs - (list python-attrs - python-automat - python-bcrypt - python-constantly - python-hyperlink - python-incremental - python-typing-extensions - python-zope-interface - ;; [conch] - python-appdirs - python-bcrypt - python-cryptography - ;; [http2] - python-h2 - python-priority - ;; [tls] - python-idna - python-pyopenssl - python-service-identity - ;; [serial] - python-pyserial)) - (native-inputs - (list glibc-utf8-locales ;for OpenTestLogTests.test_utf8 - python-hatch-fancy-pypi-readme - python-hatchling - python-httpx - python-hypothesis - python-incremental - python-pyhamcrest - python-pytest)) - (home-page "https://twistedmatrix.com/") - (synopsis "Asynchronous networking framework written in Python") - (description - "Twisted is an extensible framework for Python programming, with special -focus on event-based network programming and multiprotocol integration.") - (license license:expat))) - -(define-public python-pika - (package - (name "python-pika") - (version "1.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pika/pika") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0sqj3bg6jwign8vwvn337fbwy69sm684ns1vh5kbfnskq4him9i2")))) - (build-system python-build-system) - (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-live-tests - (lambda _ - ;; Disable tests that require RabbitMQ, which is not - ;; yet available in Guix. - (substitute* "nose2.cfg" - (("tests=tests/unit,tests/acceptance") - "start-dir=tests/unit")) - (with-directory-excursion "tests" - (for-each delete-file - '("unit/base_connection_tests.py" - "unit/threaded_test_wrapper_test.py"))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (setenv "PYTHONPATH" (getcwd)) - (invoke "nose2" "-v"))))))) - (native-inputs - (list python-mock - python-nose2 - ;; These are optional at runtime, and provided here for tests. - python-gevent - python-tornado - python-twisted)) + (add-before 'check 'configure-tests + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "PYTHONPATH" (getcwd)))))))) + (native-inputs (list python-pytest + python-gevent + python-tornado + python-twisted + python-setuptools)) (home-page "https://pika.readthedocs.org") (synopsis "Pure Python AMQP Client Library") (description @@ -22610,29 +21681,6 @@ network support library.") It uses LR parsing and does extensive error checking.") (license license:bsd-3))) -(define-public python-tabulate - (package - (name "python-tabulate") - (version "0.9.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "tabulate" version)) - (sha256 - (base32 - "0g4b0qnbw55igbpxfxzciqvb6w8ncw4gmcgyq0lyavcnylmv3580")))) - (build-system pyproject-build-system) - (native-inputs - (list python-pytest - python-setuptools-scm - python-setuptools - python-wheel)) - (home-page "https://bitbucket.org/astanin/python-tabulate") - (synopsis "Pretty-print tabular data") - (description - "Tabulate is a library and command-line utility to pretty-print tabular -data in Python.") - (license license:expat))) - (define-public python-kazoo (package (name "python-kazoo") @@ -22824,31 +21872,6 @@ Wikipedia code samples at docstring and colored output.") (license license:expat))) -(define-public python-tomlkit - (package - (name "python-tomlkit") - (version "0.13.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tomlkit" version)) - (sha256 - (base32 "18fjmmhiv5jkkg1dwidmxd0sjqnkf675igizxsa2ppspxr3z4323")))) - (build-system pyproject-build-system) - (native-inputs - (list python-poetry-core - python-pytest - python-pyyaml)) - (home-page "https://github.com/sdispater/tomlkit") - (synopsis "Style-preserving TOML library") - (description - "TOML Kit is a 1.0.0rc1-compliant TOML library. It includes a parser that -preserves all comments, indentations, whitespace and internal element ordering, -and makes them accessible and editable via an intuitive API. It can also -create new TOML documents from scratch using the provided helpers. Part of the -implementation has been adapted, improved, and fixed from Molten.") - (license license:expat))) - (define-public python-shellingham (package (name "python-shellingham") @@ -24787,7 +23810,7 @@ from the header, as well as section details and data available.") (build-system pyproject-build-system) (propagated-inputs (list python-numpy)) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-setuptools python-setuptools-scm @@ -24822,29 +23845,6 @@ Werman's implementation of the Earth Mover's Distance.") JPEG2000 and GIF files in pure Python.") (license license:expat))) -(define-public python-termstyle - (package - (name "python-termstyle") - (version "0.1.11") - (source - (origin - (method url-fetch) - (uri (pypi-uri "termstyle" version)) - (sha256 - (base32 - "17wzkkcqy5zc0g68xlad3kcv66iw14d2pwqc0h9420gak0vbhx7g")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "python" "test3.py")))))) - (home-page "https://github.com/gfxmonk/termstyle") - (synopsis "Console text coloring for Python") - (description "This package provides console text coloring for Python.") - (license license:bsd-3))) - (define-public python-argcomplete (package (name "python-argcomplete") @@ -27029,37 +26029,6 @@ version of @code{SocksiPy} with bug fixes and extra features.") @code{ffmpeg} to open various audio formats.") (license license:expat))) ; MIT license -(define-public python-tqdm - (package - (name "python-tqdm") - (version "4.67.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tqdm" version)) - (sha256 - (base32 "1wi7cql2fc76b5z9v1sr96ix2gxcb974z8qfydjkmh885k2zkbpq")))) - (build-system pyproject-build-system) - (arguments - (list #:test-flags - '(list "-o" "asyncio_mode=auto" - "-k" "not perf and not test_rlock_creation"))) - (native-inputs - (list python-pytest - python-pytest-asyncio - python-pytest-timeout - python-setuptools - python-setuptools-scm - python-toml - python-wheel)) - (home-page "https://github.com/tqdm/tqdm") - (synopsis "Fast, extensible progress meter") - (description - "Make loops show a progress bar on the console by just wrapping any -iterable with @code{|tqdm(iterable)|}. Offers many options to define -design and layout.") - (license (list license:mpl2.0 license:expat)))) - (define-public python-pkginfo (package (name "python-pkginfo") @@ -27089,69 +26058,6 @@ distribution, and the *.egg-info stored in a \"development checkout\" (e.g, created by running @code{python setup.py develop}).") (license license:expat))) -(define-public python-twine - (package - (name "python-twine") - (version "6.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "twine" version)) - (sha256 - (base32 "1kvm9cdvbnh232wafww1w5scaic9kkrwhlff1mvmk68cswphvvg5")))) - (build-system pyproject-build-system) - (arguments - (list - ;; tests: 228 passed, 1 deselected - #:test-flags - ;; Assertion is not equal for one tests. - #~(list "--deselect=tests/test_check.py::test_fails_rst_syntax_error"))) - (native-inputs - (list python-pretend - python-pytest - python-pytest-socket - python-setuptools - python-setuptools-scm)) - (propagated-inputs - (list python-id - python-keyring - python-packaging - python-readme-renderer - python-requests - python-requests-toolbelt - python-rfc3986 - python-rich - python-urllib3)) - (home-page "https://github.com/pypa/twine") - (synopsis "Collection of utilities for interacting with PyPI") - (description - "@code{twine} currently supports registering projects and uploading -distributions. It authenticates the user over HTTPS, allows them to pre-sign -their files and supports any packaging format (including wheels).") - (license license:asl2.0))) - -(define-public python-tracerite - (package - (name "python-tracerite") - (version "1.1.3") - (source (origin - (method url-fetch) - (uri (pypi-uri "tracerite" version)) - (sha256 - (base32 - "07mkg0sl0h335kj6yjvxki2c19gxhb7rkks1zgzh7aj0y83c17qi")))) - (build-system pyproject-build-system) - (arguments - (list #:tests? #f)) ;no tests in PyPI or Git - (native-inputs (list python-setuptools python-setuptools-scm)) - (propagated-inputs (list python-html5tagger)) - (home-page "https://github.com/sanic-org/tracerite") - (synopsis "Human-readable HTML tracebacks") - (description - "@code{tracerite} converts Python tracebacks into useful error messages -in human-readable HTML format.") - (license license:unlicense))) - ;; XXX: This project was archived by the owner on Oct 4, 2023. It is now ;; read-only. Consider to remvoe when nothing depends on it. (define-public python-ratelimiter @@ -27211,7 +26117,7 @@ executed more than a given number of times during a given period.") (substitute* "pyproject.toml" ((".*addopts.*") ""))))))) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-pytest-asyncio python-pytest-timeout @@ -27424,59 +26330,6 @@ definitions to simplify the use of C bindings.") Angus Johnson's polygon clipping Clipper library (ver. 6.4.2).") (license license:expat))) -(define-public python-tempdir - (package - (name "python-tempdir") - (version "0.7.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tempdir" version)) - (sha256 - (base32 "13msyyxqbicr111a294x7fsqbkl6a31fyrqflx3q7k547gnq15k8")))) - (build-system pyproject-build-system) - (arguments (list #:tests? #f)) ; No tests. - (native-inputs (list python-setuptools)) - (home-page "https://pypi.org/project/tempdir/") - (synopsis "Python library for managing temporary directories") - (description - "This library manages temporary directories that are automatically -deleted with all their contents when they are no longer needed. It is -particularly convenient for use in tests.") - (license license:expat))) - -(define-public python-tempora - (package - (name "python-tempora") - (version "5.8.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tempora" version)) - (sha256 - (base32 "1k9d6qmlp0i4v3d0dcqcsndvmng3lfdh4y0p8gwy9i8cg7ndkddb")))) - (build-system pyproject-build-system) - (arguments - (list - ;; Do not test the myproject.toml build as it tries to pull dependencies - ;; from the Internet. - #:test-flags #~(list "-k" "not project" - "tests"))) - (native-inputs - (list python-freezegun - python-pytest - python-setuptools - python-setuptools-scm - python-tzdata)) - (propagated-inputs (list python-dateutil python-jaraco-functools)) - (home-page "https://github.com/jaraco/tempora") - (synopsis "Python date and time objects and routines") - (description "The @code{tempora} Python library contains miscellaneous -date and time related utilities and constants, routines for measuring, -profiling, and getting datetime-aware @acronym{UTC, Coordinated Universal -Time} values as well as an event scheduler.") - (license license:expat))) - (define-public python-semver (package (name "python-semver") @@ -27838,64 +26691,6 @@ a notation for identifying weeks; yyyyWww (where the W is a literal). Week instances stringify to this form.") (license license:bsd-3))) -(define-public python-tokenize-rt - (package - (name "python-tokenize-rt") - (version "6.2.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/asottile/tokenize-rt") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1maa9sifma0a6v7kl7mmyqzj0jdclzlp4wjr0vkdx95raihxx4fv")))) - (build-system pyproject-build-system) - (native-inputs (list python-pytest python-setuptools)) - (home-page "https://github.com/asottile/tokenize-rt") - (synopsis "Wrapper around the stdlib tokenize which roundtrips") - (description - "This Python library is a wrapper around @code{tokenize} from the Python -standard library. It provides two additional tokens @code{ESCAPED_NL} and -@code{UNIMPORTANT_WS}, and a @code{Token} data type. Use @code{src_to_tokens} -and @code{tokens_to_src} to roundtrip.") - (license license:expat))) - -(define-public python-towncrier - (package - (name "python-towncrier") - (version "23.6.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "towncrier" version)) - (sha256 - (base32 - "1hbhzxcn30qlnab1rnk2bf09jfy5bpxzfdp6zfn8sz3jnidbsagw")))) - (build-system pyproject-build-system) - (arguments - (list #:test-flags - ;; TODO: Why is this failing? - #~'("-k" "not test_version"))) - (propagated-inputs - (list python-click - python-click-default-group - python-incremental - python-jinja2 - python-tomli)) - (native-inputs - (list git-minimal/pinned ;tests create git repositories - python-hatchling - python-packaging - python-pytest - python-twisted)) - (home-page "https://towncrier.readthedocs.io/en/stable/") - (synopsis "Manage release notes") - (description - "@code{towncrier} is a utility to produce useful, summarized news -files (also known as changelogs) for a project.") - (license license:expat))) - (define-public python-future-fstrings (package (name "python-future-fstrings") @@ -28902,49 +27697,19 @@ a file (or some information about a file), return a set of standardized tags identifying what the file is.") (license license:expat))) -(define-public python-tldextract +(define-public tldr (package - (name "python-tldextract") - (version "3.3.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tldextract" version)) - (sha256 - (base32 "1wac4yvcpgqjvls770mfx165amvy7gr00nnd2w24bqqwyamj9kdd")))) - (build-system pyproject-build-system) - (native-inputs (list nss-certs-for-test - python-pytest - python-pytest-mock - python-responses - python-setuptools - python-setuptools-scm - python-wheel)) - (propagated-inputs (list python-filelock python-idna python-requests - python-requests-file)) - (home-page "https://github.com/john-kurkowski/tldextract") - (synopsis - "Separate the TLD from the registered domain and subdomains of a URL") - (description - "TLDExtract accurately separates the TLD from the registered domain and -subdomains of a URL, using the Public Suffix List. By default, this includes -the public ICANN TLDs and their exceptions. It can optionally support the -Public Suffix List's private domains as well.") - (license license:bsd-3))) - -(define-public python-tldr - (package - (name "python-tldr") - (version "3.3.0") + (name "tldr") + (version "3.4.3") (source (origin - (method git-fetch) ; there's no test in PyPI + (method git-fetch) (uri (git-reference - (url "https://github.com/tldr-pages/tldr-python-client") - (commit version))) + (url "https://github.com/tldr-pages/tldr-python-client") + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "15mab6a7ph2rviy5f2ypid6qdbb583fvaf5zhd6q0nrggxx0kkcm")))) + (base32 "06rhpywaypqwakw8v187cdf52yl5c7fm19f1q7nbbsydbs0ndmb1")))) (build-system pyproject-build-system) (arguments (list @@ -28956,12 +27721,10 @@ Public Suffix List's private domains as well.") (lambda _ (invoke "make" "-C" "docs")))))) (native-inputs - (list python-pytest - python-pytest-runner - python-setuptools - python-sphinx-argparse - python-wheel)) - (propagated-inputs + (list python-hatchling + python-pytest + python-sphinx-argparse)) + (inputs (list python-colorama python-termcolor python-shtab)) @@ -28970,7 +27733,10 @@ Public Suffix List's private domains as well.") (description "This package provides the @code{tldr} command allowing users to view @code{tldr} pages from a shell. The @code{tldr} pages are a community effort to simplify the man pages with practical examples.") - (license license:expat))) ; MIT license + (license license:expat))) + +(define-public python-tldr + (deprecated-package "python-tldr" tldr)) (define-public python-nodeenv (package @@ -29445,63 +28211,6 @@ library's @code{threading} module.") instead of pickle.") (license license:psfl))) -(define-public python-toolrack - (package - (name "python-toolrack") - (version "4.0.3") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/albertodonato/toolrack") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1aglfj7j25fiwx9jh1rl34mlhfpdhn8yrkn30vhkz9yw7zrx42h0")))) - (build-system pyproject-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-/bin/sh - (lambda _ - (substitute* "tests/aio/process_test.py" - (("/bin/sh") - (which "sh")))))))) - (native-inputs (list python-pytest - python-pytest-asyncio - python-pytest-mock - python-setuptools)) - (home-page "https://github.com/albertodonato/toolrack") - (synopsis "Collection of Python utility functions and classes") - (description "This package provides a collection of miscellaneous utility -functions and classes.") - (license license:lgpl3+))) - -(define-public python-toolz - (package - (name "python-toolz") - (version "1.0.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "toolz" version)) - (sha256 - (base32 - "00ks0jhl1jwm9576c5sh10pnla8ni21yvg4kcxasr627l3cy71ic")))) - (build-system pyproject-build-system) - (native-inputs - (list python-pytest - python-setuptools - python-wheel)) - (home-page "https://github.com/pytoolz/toolz/") - (synopsis "List processing tools and functional utilities") - (description - "This package provides a set of utility functions for iterators, -functions, and dictionaries.") - (license license:bsd-3))) - (define-public python-cytoolz (package (name "python-cytoolz") @@ -30014,140 +28723,6 @@ project.") ;; Either license applies. (license (list license:expat license:asl2.0)))) -(define-public python-trio - (package - (name "python-trio") - (version "0.28.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "trio" version)) - (sha256 - (base32 "019wqwlbj185skknbjd7paxqqx6vl5gpqk2fwmc5d2lyzsb7hm2f")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - `(list "-k" - (string-append - ;; This tests times out. - "not test_ki_protection_works" - " and not test_KI_interrupts" - ;; This fails with: signal only works in main thread of the main interpreter - " and not test_catch_signals_race_condition_on_exit" - ;; Assertion errors. - " and not test_named_thread_os" - " and not test_has_pthread_setname_np" - " and not test_guest_mode_ki" - " and not test_run_in_trio_thread_ki" - " and not test_simple_cancel_scope_usage_doesnt_create\ -_cyclic_garbage" - " and not test_nursery_cancel_doesnt_create_cyclic_garbage" - " and not test_cancel_scope_exit_doesnt_create_cyclic_garbage" - " and not test_locals_destroyed_promptly_on_cancel" - " and not test_ipython_exc_handler" - " and not test_for_leaking_fds" - ;; Signals don’t work in the build sandbox. - " and not test_open_signal_receiver" - ;; These try to raise KeyboardInterrupt which does not work - ;; in the build environment. - " and not test_ki_self" - " and not test_ki_wakes_us_up" - ;; Failure in name resolution. - " and not test_getnameinfo" - " and not test_SocketType_resolve" - ;; OSError: protocol not found. - " and not test_getprotobyname" - ;; EOFError: Ran out of input. - " and not test_static_tool_sees_all_symbols") - ,@(if (package? (this-package-native-input "python-trustme")) - '() - `("--ignore=src/trio/_tests/test_dtls.py" - "--ignore=src/trio/_tests/test_highlevel_ssl_helpers.py" - "--ignore=src/trio/_tests/test_ssl.py")) - ;; It rerquires black and ruff to generate a final report. - "--ignore=src/trio/_tests/tools/test_gen_exports.py" - "src/trio/_tests") - #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'ignore-deprecations - (lambda _ - (substitute* "pyproject.toml" - ((" \"error\",") " \"ignore\",")))) - (add-before 'check 'set-env - (lambda _ - ;; Tests require a writable home. - (setenv "HOME" "/tmp") - ;; #$output is first in path which causes "import file mismatch" - (setenv "PYTHONPATH" (string-append (getcwd) "/src:$PYTHONPATH"))))))) - (native-inputs - (append - (if (supported-package? python-pyopenssl) - (list python-pyopenssl) - '()) - (list python-pytest - python-setuptools) - (if (supported-package? python-trustme) - (list python-trustme) - '()) - (list python-wheel))) - (propagated-inputs - (list python-attrs - python-cffi - python-exceptiongroup - python-idna - python-outcome - python-sniffio - python-sortedcontainers)) - (home-page "https://github.com/python-trio/trio") - (synopsis "Friendly Python library for async concurrency and I/O") - (description - "Trio strives to be a production-quality, async/await-native I/O library -for Python. Like all async libraries, its main purpose is to help you write -programs that do multiple things at the same time with parallelized I/O.") - ;; Either license applies. - (license (list license:expat license:asl2.0)))) - -(define-public python-trio-typing - (package - (name "python-trio-typing") - (version "0.10.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "trio-typing" version)) - (sha256 - (base32 "1hvsj3w500i33ykfgh3sfkjnxhxf05incx131smshlkd562fcph6")))) - (build-system pyproject-build-system) - (native-inputs (list python-pytest python-setuptools python-wheel)) - (propagated-inputs - (list python-async-generator - python-importlib-metadata - python-mypy-extensions - python-packaging - python-trio - python-typing-extensions)) - (home-page "https://github.com/python-trio/trio-typing") - (synopsis "Static type checking support for Trio and related projects") - (description - "This package provides: - -@itemize -@item PEP 561 typing stubs packages for the Trio project packages: - -@itemize -@item trio (@code{trio-stubs}) -@item outcome (@code{outcome-stubs}) -@item async_generator (@code{async_generator-stubs}) -@end itemize - -@item A package @code{trio_typing} containing types that Trio programs often -want to refer to (@code{AsyncGenerator[Y, S]} and @code{TaskStatus[T])} and -a mypy plugin that smooths over some limitations in the basic type hints. -@end itemize") - ;; Either license applies. - (license (list license:expat license:asl2.0)))) - (define-public python-humanize (package (name "python-humanize") @@ -30169,26 +28744,6 @@ and dates in \"human readable\" forms. For example, it would display \"12345591313\" as \"12.3 billion\".") (license license:expat))) -(define-public python-toolshed - (package - (name "python-toolshed") - (version "0.4.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "toolshed" version)) - (sha256 - (base32 - "14zvz51gzf9i1i3d1sj363ba4rksl6lcf4lz1arl8hpqgcbir8r3")))) - (build-system python-build-system) - (native-inputs - (list python-nose)) - (home-page "https://github.com/brentp/toolshed/") - (synopsis "Collection of modules and functions for working with data") - (description "This is a collection of well-tested, simple modules and -functions that aim to reduce boilerplate when working with data.") - (license license:bsd-2))) - (define-public python-annoy (package (name "python-annoy") @@ -31454,37 +30009,6 @@ dedicated platform. The tool proposes a unified interface for any format and an upload option to send your work back to the platform.") (license license:gpl3+))) -(define-public python-titlecase - (package - (name "python-titlecase") - (version "2.4.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "titlecase" version)) - (sha256 - (base32 - "1x9myq3rlbw6wh946ncch8px7wyabhzacy2fjji13nmvrivs50vx")))) - (build-system pyproject-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? test-flags #:allow-other-keys) - (when tests? - (apply invoke "python" "-m" "unittest" test-flags))))))) - (native-inputs - (list python-setuptools)) - (home-page "https://github.com/ppannuto/python-titlecase") - (synopsis "Capitalize strings similar to book titles") - (description - "Python-Titlecase is a Python port of John Gruber's titlecase.pl. -It capitalizes (predominantly English) strings in a way that is similar to -book titles, using the New York Times Manual of Style to leave certain words -lowercase.") - (license license:expat))) - (define-public python-pypng (package (name "python-pypng") @@ -33026,33 +31550,6 @@ a Python library to convert RELAX NG schemata in Compact syntax (rnc) to equivalent schemata in the XML-based default RELAX NG syntax.") (license license:expat))) -(define-public python-telethon - (package - (name "python-telethon") - (version "1.41.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/LonamiWebs/Telethon") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0rbzqbxsihqm2w1zrvaaafvzwyqqyjx49wfffxrnsr9m32giwzsp")))) - (build-system pyproject-build-system) - (native-inputs - (list python-pytest - python-pytest-asyncio-0.26 - python-pytest-trio - python-setuptools)) - (propagated-inputs - (list python-rsa python-pyaes)) - (home-page "https://docs.telethon.dev") - (synopsis "Full-featured Telegram client library for Python 3") - (description "This library is designed to make it easy to write Python -programs that can interact with Telegram.") - (license license:expat))) - (define-public python-citeproc-py (package (name "python-citeproc-py") @@ -35302,67 +33799,6 @@ HTML/XML from a Python program in an intuitive, lightweight, customizable and pythonic way.") (license license:expat))) -(define-public python-tablib - (package - (name "python-tablib") - (version "3.8.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "tablib" version)) - (sha256 - (base32 "0ayv93q7kpii6z3n57i6b78mpr1ibwd70nvd981a05d7cpfbrn4l")))) - (build-system pyproject-build-system) - (native-inputs - (list python-pandas - python-pytest - python-pytest-cov - python-setuptools - python-setuptools-scm - python-wheel)) - (propagated-inputs - (list python-markuppy - python-odfpy - python-openpyxl - python-pyyaml - python-tabulate - python-xlrd - python-xlwt)) - (home-page "https://tablib.readthedocs.io") - (synopsis "Format agnostic tabular data library") - (description - "@code{tablib} is a format-agnostic tabular dataset library, -written in Python. Supported output formats are Excel (Sets + Books), -JSON (Sets + Books), YAML (Sets + Books), HTML (Sets), Jira (Sets), -TSV (Sets), ODS (Sets), CSV (Sets), and DBF (Sets). - -@code{tablib} also supports Pandas DataFrames (Sets). Anyhow, since pandas is -quite huge, this Guix package doesn't depend on pandas. In case, just also -install @code{python-pandas}.") - (license license:expat))) - -(define-public python-taskgroup - (package - (name "python-taskgroup") - (version "0.0.0a4") - (source - (origin - (method url-fetch) - (uri (pypi-uri "taskgroup" version)) - (sha256 - (base32 "170m7b59nxrhzs0nz6brj9brz4rzvw6k587ja0cnc9qy48nr027b")))) - (build-system pyproject-build-system) - (arguments - (list #:tests? #f)) ; no tests in PyPI and Git checkout - (native-inputs - (list python-flit-core)) - (home-page "https://github.com/graingert/taskgroup") - (synopsis "Backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout") - (description - "This package provides a backport of @code{asyncio.TaskGroup}, -@code{asyncio.Runner} and @code{asyncio.timeout}.") - (license license:expat))) - (define-public python-csb43 (package (name "python-csb43") @@ -38156,6 +36592,1572 @@ instance in spelling correction, predictive typing, to help disabled people write text fast, and for various text generation, statistics, and modeling tasks.") (license license:expat))) +(define-public python-tables + (package + (name "python-tables") + (version "3.10.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tables" version)) + (sha256 + (base32 + "0469jrkmp0qv8cmlqkizm3b8imyc97mk9pfn66ldpyl6f4m82i15")) + (snippet '(begin + (use-modules (guix build utils)) + ;; TODO: Unbundle. + ;; (delete-file-recursively "hdf5-blosc") + (delete-file-recursively "c-blosc"))))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-tuning + (lambda _ + (substitute* "setup.py" + (("cpu_flags = .*") + "cpu_flags = ['sse2']\n")))) + (add-after 'unpack 'fix-reference-to-blosc2 + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tables/__init__.py" + (("( +)os.path.join\\(current_dir, blosc2_lib_hardcoded\\)," + m indent) + (string-append indent + "\"" + (search-input-file inputs "/lib/libblosc2.so") + "\",\n" m))))) + (add-before 'build 'pre-build + (lambda _ + (invoke "make" "distclean") ;Regenerate C code with Cython + (setenv "BLOSC2_DIR" #$(this-package-input "cblosc2")) + (setenv "BLOSC_DIR" #$(this-package-input "c-blosc")) + (setenv "BZIP2_DIR" #$(this-package-input "bzip2")) + (setenv "HDF5_DIR" #$(this-package-input "hdf5")) + (setenv "LZO_DIR" #$(this-package-input "lzo")))) + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" "/tmp"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "/tmp" + ;; Performing only a light (yet comprehensive) subset of the + ;; test suite. If you want a more complete test, try + ;; passing the --heavy flag to this script (or set the + ;; 'heavy' parameter in case you are using tables.test() + ;; call). The whole suite will take more than 4 hours to + ;; complete on a relatively modern CPU and around 512 MB of + ;; main memory. + (invoke "python" "-m" "tables.tests.test_all")))))))) + (native-inputs + (list pkg-config + python-cython + python-pytest + python-setuptools + python-sphinx)) + (inputs + (list bzip2 + c-blosc + c-blosc2 + hdf5 + lzo)) + (propagated-inputs + (list python-blosc2 + python-numexpr + python-numpy + python-packaging + python-py-cpuinfo + python-typing-extensions)) + (home-page "https://www.pytables.org/") + (synopsis "Hierarchical datasets for Python") + (description "PyTables is a package for managing hierarchical datasets and +designed to efficiently cope with extremely large amounts of data.") + (license license:bsd-3))) + +(define-public python-tablib + (package + (name "python-tablib") + (version "3.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tablib" version)) + (sha256 + (base32 "1qjzbpaln1grr5ngcm2apd5dxp0gcrwis5n60hg60d8gvf7bsshv")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-pytest-cov + python-setuptools + python-setuptools-scm)) + (inputs ;; [cli] + (list python-tabulate)) + (propagated-inputs + (list python-markuppy + python-odfpy + python-openpyxl + python-pyyaml + python-xlrd + python-xlwt)) + (home-page "https://tablib.readthedocs.io") + (synopsis "Format agnostic tabular data library") + (description + "@code{tablib} is a format-agnostic tabular dataset library, +written in Python. Supported output formats are Excel (Sets + Books), +JSON (Sets + Books), YAML (Sets + Books), HTML (Sets), Jira (Sets), +TSV (Sets), ODS (Sets), CSV (Sets), and DBF (Sets). + +@code{tablib} also supports Pandas DataFrames (Sets). Anyhow, since pandas is +quite huge, this Guix package doesn't depend on pandas. In case, just also +install @code{python-pandas}.") + (license license:expat))) + +(define-public python-tabulate + (package + (name "python-tabulate") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tabulate" version)) + (sha256 + (base32 "0g4b0qnbw55igbpxfxzciqvb6w8ncw4gmcgyq0lyavcnylmv3580")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools-scm + python-setuptools)) + (propagated-inputs + (list python-wcwidth)) + (home-page "https://github.com/astanin/python-tabulate") + (synopsis "Pretty-print tabular data") + (description + "Tabulate is a library and command-line utility to pretty-print tabular +data in Python.") + (license license:expat))) + +(define-public python-takethetime + (package + (name "python-takethetime") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "TakeTheTime" version)) + (sha256 + (base32 "1y9gzqb9l1f2smx8783ccjzjvby5mphshgrfks7s75mml59h9qyv")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ; tests are time dependent and not provided in PyPI + (native-inputs + (list python-setuptools + python-wheel)) + (home-page "https://github.com/ErikBjare/TakeTheTime") + (synopsis "Timing chunks of code") + (description + "This package implements a functionality for time taking using context +managers.") + (license license:expat))) + +(define-public python-taskgroup + (package + (name "python-taskgroup") + (version "0.0.0a4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "taskgroup" version)) + (sha256 + (base32 "170m7b59nxrhzs0nz6brj9brz4rzvw6k587ja0cnc9qy48nr027b")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ; no tests in PyPI and Git checkout + (native-inputs + (list python-flit-core)) + (home-page "https://github.com/graingert/taskgroup") + (synopsis "Backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout") + (description + "This package provides a backport of @code{asyncio.TaskGroup}, +@code{asyncio.Runner} and @code{asyncio.timeout}.") + (license license:expat))) + +(define-public python-tasklogger + (package + (name "python-tasklogger") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tasklogger" version)) + (sha256 + (base32 "1901mibcp6aiyjy8afnybrxnb0dkbdxlbvjqbr3gginlw7dr18xh")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-numpy + python-setuptools)) + (propagated-inputs + (list python-deprecated)) + (home-page "https://github.com/scottgigante/tasklogger") + (synopsis "Extension to the core Python logging library") + (description "This package provides an extension to the core Python +logging library for logging the beginning and completion of tasks and +subtasks.") + (license license:gpl2))) + +(define-public python-tatsu + (package + (name "python-tatsu") + (version "5.13.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/neogeny/TatSu") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ppgi5r55iirzhnf988b32yvh8ly8lzxbg59y0zgqfaxbma50650")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools)) + (home-page "https://tatsu.readthedocs.io/en/stable/") + (synopsis "PEG/Packrat Parser generator for Python") + (description + "TatSu (竜) takes a grammar in a variation of Extended Backus-Naur +Form (EBNF) as input, and outputs a memoizing Parsing Expression Grammar (PEG) +or Packrat parser in Python.") + (license license:bsd-2))) + +(define-public python-tblib + (package + (name "python-tblib") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tblib" version)) + (sha256 + (base32 "0lnnbicpxx774s29nkbic4rrqvy4rhxd8skx5pp6zxh7kwn4qh06")))) + (build-system pyproject-build-system) + (arguments + (list + ;; Don't run benchmark tests. + #:test-flags #~(list "--ignore=tests/test_perf.py") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-pytest-config + (lambda _ + (substitute* "pytest.ini" + (("--benchmark-disable") ""))))))) + (native-inputs + (list python-pytest + python-setuptools)) + (home-page "https://github.com/ionelmc/python-tblib") + (synopsis "Traceback serialization library") + (description + "Traceback serialization allows you to: + +@enumerate +@item Pickle tracebacks and raise exceptions with pickled tracebacks in +different processes. This allows better error handling when running code over +multiple processes (imagine multiprocessing, billiard, futures, celery etc). + +@item Parse traceback strings and raise with the parsed tracebacks. +@end enumerate\n") + (license license:bsd-3))) + +(define-public python-telethon + (package + (name "python-telethon") + (version "1.41.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LonamiWebs/Telethon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rbzqbxsihqm2w1zrvaaafvzwyqqyjx49wfffxrnsr9m32giwzsp")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-pytest-asyncio-0.26 + python-pytest-trio + python-setuptools)) + (propagated-inputs + (list python-rsa python-pyaes)) + (home-page "https://docs.telethon.dev") + (synopsis "Full-featured Telegram client library for Python 3") + (description "This library is designed to make it easy to write Python +programs that can interact with Telegram.") + (license license:expat))) + +(define-public python-tempdir + (package + (name "python-tempdir") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tempdir" version)) + (sha256 + (base32 "13msyyxqbicr111a294x7fsqbkl6a31fyrqflx3q7k547gnq15k8")))) + (build-system pyproject-build-system) + (arguments (list #:tests? #f)) ; No tests. + (native-inputs (list python-setuptools)) + (home-page "https://pypi.org/project/tempdir/") + (synopsis "Python library for managing temporary directories") + (description + "This library manages temporary directories that are automatically +deleted with all their contents when they are no longer needed. It is +particularly convenient for use in tests.") + (license license:expat))) + +(define-public python-tempora + (package + (name "python-tempora") + (version "5.8.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tempora" version)) + (sha256 + (base32 "1k9d6qmlp0i4v3d0dcqcsndvmng3lfdh4y0p8gwy9i8cg7ndkddb")))) + (build-system pyproject-build-system) + (arguments + (list + ;; Do not test the myproject.toml build as it tries to pull dependencies + ;; from the Internet. + #:test-flags #~(list "-k" "not project" + "tests"))) + (native-inputs + (list python-freezegun + python-pytest + python-setuptools + python-setuptools-scm + python-tzdata)) + (propagated-inputs (list python-dateutil python-jaraco-functools)) + (home-page "https://github.com/jaraco/tempora") + (synopsis "Python date and time objects and routines") + (description + "The @code{tempora} Python library contains miscellaneous date and time +related utilities and constants, routines for measuring, profiling, and +getting datetime-aware @acronym{UTC, Coordinated Universal Time} values as +well as an event scheduler.") + (license license:expat))) + +(define-public python-tenacity + (package + (name "python-tenacity") + (version "9.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tenacity" version)) + (sha256 + (base32 "0fyp421r038naskvyhj90hkq0az96477njad4rhs6annjz53fzw0")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools + python-setuptools-scm + python-tornado-6 + python-typeguard + python-wheel)) + (home-page "https://github.com/jd/tenacity") + (synopsis "Retrying library for python") + (description + "Tenacity is a general-purpose python library to simplify the task of +adding retry behavior to just about anything.") + (license license:asl2.0))) + +(define-public python-term-background + (package + (name "python-term-background") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "term_background" version)) + (sha256 + (base32 "0p674silrwc3jncncmdnj1lr6pl2q5qbx0xi3mzjq9sgcs5vmp4n")))) + (arguments + (list + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ (delete-file "setup.py")))))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools + python-setuptools-scm + python-wrapper + python-wheel)) + (home-page "http://github.com/rocky/shell-term-background") + (synopsis "Determine if shell has a light or dark background") + (description "This package determines if shell has a light or dark +background.") + (license license:gpl2+))) + +(define-public python-term-image + (package + (name "python-term-image") + (version "0.7.2") + (source + (origin + ;; We need the full repo to run the tests. + (method git-fetch) + (uri (git-reference + (url "https://github.com/AnonymouX47/term-image") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lsd5m0k5m99arkca2rzrrlln10c8ax6xfawqwjnspcbf8l3h3dq")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags + #~(list "tests" + ;; These tests require network access. + "-k" (string-append "not test_from_url" + " and not test_source" + " and not test_close")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-dependencies + (lambda _ + (substitute* "setup.py" + (("pillow>=9.1,<11") "pillow>=9.1,<12"))))))) + (propagated-inputs (list python-pillow python-requests)) + (native-inputs + (list python-pytest + python-setuptools + python-urwid)) + (home-page "https://github.com/AnonymouX47/term-image") + (synopsis "Display images in the terminal") + (description "term-image is a library and program to display images on +compatible terminals. + +Features: +@enumerate +@item Multiple image formats (basically all formats supported by +@code{PIL.Image.open()}) +@item Multiple image source types: PIL image instance, local file, URL +@item Multiple image render styles (with automatic support detection) +@item Support for multiple terminal graphics protocols, including Kitty +@item Transparency support (with multiple options) +@item Animated image support (including transparent ones) +@item Integration into various TUI / terminal-based output libraries +@item Terminal size awareness +@item Automatic and manual image sizing +@item Horizontal and vertical alignment +@item Automatic and manual font ratio adjustment (to preserve image aspect +ratio) +@end enumerate") + (license license:expat))) + +(define-public python-termcolor + (package + (name "python-termcolor") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "termcolor" version)) + (sha256 + (base32 "0vwaxyr2vk8gi7s1slq74nb0ssbb0wcn208ziqp48j3dv8kqv3cr")))) + (build-system pyproject-build-system) + (native-inputs + (list python-hatch-vcs + python-hatchling + python-pytest + python-pytest-cov)) + (home-page "https://pypi.org/project/termcolor/") + (synopsis "ANSII Color formatting for terminal output") + (description + "This package provides ANSII Color formatting for output in terminals.") + (license license:expat))) + +(define-public python-termcolor-1 + (package + (inherit python-termcolor) + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "termcolor" version)) + (sha256 + (base32 + "0fv1vq14rpqwgazxg4981904lfyp84mnammw7y046491cv76jv8x")))) + ;; There are no tests + (arguments (list #:tests? #false)) + (native-inputs + (list python-setuptools + python-wheel)))) + +(define-public python-terminaltables + (package + (name "python-terminaltables") + (version "3.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Robpol86/terminaltables") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 (base32 "1jlm7n6kxypbr8mvwpd7hf9hbfk0a002ad03wqgxlri4aw8pk39a")))) + (build-system pyproject-build-system) + ;; XXX: A lot of test fail with flaky behavior. + (arguments (list #:tests? #f)) + (native-inputs + (list python-colorclass + python-colorama + python-pytest + python-setuptools + python-termcolor)) + (home-page "https://github.com/Robpol86/terminaltables") + (synopsis + "Generate simple tables in terminals from a nested list of strings") + (description + "This package makes it easy to draw tables in terminal/console +applications from a list of lists of strings. It supports multi-line rows.") + (license license:expat))) + +(define-public python-termstyle + (package + (name "python-termstyle") + (version "0.1.11") + (source + (origin + (method url-fetch) + (uri (pypi-uri "termstyle" version)) + (sha256 + (base32 "17wzkkcqy5zc0g68xlad3kcv66iw14d2pwqc0h9420gak0vbhx7g")))) + (build-system pyproject-build-system) + (arguments + (list #:test-backend #~'custom + #:test-flags #~(list "test3.py"))) + (native-inputs + (list python-setuptools)) + (home-page "https://github.com/gfxmonk/termstyle") + (synopsis "Console text coloring for Python") + (description "This package provides console text coloring for Python.") + (license license:bsd-3))) + +(define-public python-text-unidecode + (package + (name "python-text-unidecode") + (version "1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "text-unidecode" version)) + (sha256 + (base32 "14xb99fdv52j21dsljgsbmbaqv10ps4b453p229r29sdn4xn1mms")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools)) + (home-page "https://github.com/kmike/text-unidecode/") + (synopsis "Decode Unicode data") + (description + "@code{text-unidecode} is a basic Python port of the @code{Text::Unidecode} +Perl library. It can create ASCII representations of Unicode data. In general +users should prefer the @code{python-unidecode} package which offers better +memory usage and transliteration quality.") + ;; The user can choose either license. + (license (list license:clarified-artistic license:gpl2+)))) + +(define-public python-textdistance + (package + (name "python-textdistance") + (version "4.6.3") + (source + (origin + ;; There are no tests in the PyPI tarball. + (method git-fetch) + (uri (git-reference + (url "https://github.com/life4/textdistance") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qaplikab46p38jqr93bxd26vvxcnvib15fjxmmp4cbsiy5196sg")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--numprocesses" (number->string (min 4 (parallel-job-count)))))) + (native-inputs + (list python-numpy + python-pytest + python-pytest-xdist + python-setuptools + python-wheel)) + (propagated-inputs + (list python-jellyfish + python-distance + python-levenshtein + python-pylev + python-pyxdameraulevenshtein + python-rapidfuzz)) + (home-page "https://github.com/life4/textdistance") + (synopsis "Compute distance between the two texts") + (description "@code{textdistance} is a pure Python library for comparing +distance between two or more sequences by many algorithms.") + (license license:expat))) + +(define-public python-textparser + (package + (name "python-textparser") + (version "0.24.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "textparser" version)) + (sha256 + (base32 "0dc3aqbzh0x13i6cmr73q777wv8nxyk3p0kdnynh5l59bbkhixsn")))) + (build-system pyproject-build-system) + (arguments + (list #:test-backend #~'unittest)) + (native-inputs (list python-setuptools)) + (home-page "https://github.com/eerimoq/textparser") + (synopsis "Fast text parser for Python") + (description "This library provides a text parser written in the Python +language. It aims to be fast.") + (license license:expat))) + +(define-public python-texttable + (package + (name "python-texttable") + (version "1.6.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/foutaise/texttable/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lcn76wx6fsj8d79gs985irkqz5qbwq1v9ji9jxsra6dbb643v5j")))) + (build-system pyproject-build-system) + (arguments (list #:test-flags #~(list "tests.py"))) + (native-inputs (list python-pytest python-setuptools)) + (home-page "https://github.com/foutaise/texttable/") + (synopsis "Create simple ASCII tables in Python") + (description + "This package provides a Python module for creating simple ASCII +tables.") + (license license:expat))) + +(define-public python-textual + (package + (name "python-textual") + (version "3.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Textualize/textual") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sldkhy8phk9c7pln70dyb6aya7qpxb5niym9s91z144dv6ykgws")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags + ;; Snapshot tests require python-pytest-textual-snapshot which + ;; in turn depends on python-textual. + '(list "--ignore=tests/snapshot_tests/test_snapshots.py" + "-k" (string-append + ;; Broken for unknown reason. + "not test_textual_env_var" + ;; Tests that require python-treesitter-languages. + " and not test_widget_construct" + " and not test_setting_builtin_language_via_constructor" + " and not test_setting_builtin_language_via_attribute" + " and not test_setting_language_to_none" + " and not test_setting_unknown_language" + " and not test_register_language" + " and not test_update_highlight_query" + " and not test_default_theme" + " and not test_setting_builtin_themes" + " and not test_setting_unknown_theme_raises_exception" + " and not test_registering_and_setting_theme")))) + (propagated-inputs + (list python-markdown-it-py + python-platformdirs + python-rich + python-tree-sitter + ;; python-tree-sitter-languages ; optional, not packed yet + python-typing-extensions)) + (native-inputs + (list python-poetry-core + python-pytest + python-pytest-asyncio + python-pytest-xdist)) + (home-page "https://github.com/Textualize/textual") + (synopsis "Build text user interfaces in Python") + (description "Textual is a @acronym{TUI, Text User Interface} framework +for Python inspired by modern web development.") + (license license:expat))) + +(define-public python-tftpy + (package + (name "python-tftpy") + (version "0.8.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/msoulier/tftpy") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11cs52skmisg7rlmcxghmpcxfszcwmph6cvmfdn2p0ks6ckfy9q2")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-backend #~'unittest + #:test-flags #~(list "tests/test.py") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'configure-tests + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; The default DEBUG logging level is way too verbose. + (substitute* "tests/test.py" + (("logging\\.DEBUG") + "logging.INFO")))))))) + (native-inputs (list python-setuptools)) + (home-page "https://tftpy.sourceforge.net/") + (synopsis "Python trivial file transfer protocol (TFTP) library") + (description + "TFTPy is a trivial file transfer protocol (TFTP) Python library. It can +be used to act both as a TFTP client or TFTP server.") + (license license:expat))) + +(define-public python-three-merge + (package + (name "python-three-merge") + (version "0.1.1") + (source + (origin + ;; There are no tests in the PyPI tarball. + (method git-fetch) + (uri (git-reference + (url "https://github.com/spyder-ide/three-merge") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fw28swh6jq4myr09j7gv68l241b8vwg470ak5xv0x4xwh2a1m86")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-diff-match-patch)) + (native-inputs + (list python-pytest python-setuptools python-wheel)) + (home-page "https://github.com/spyder-ide/three-merge") + (synopsis "Library for merging two strings with respect to a base one") + (description + "This package provides a Python library to perform a 3-way merge between +strings, based on @code{diff-match-patch}. This library performs merges at a +character level, as opposed to most VCS systems, which opt for a line-based +approach.") + (license license:expat))) + +(define-public python-throttler + (package + (name "python-throttler") + (version "1.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uburuntu/throttler") + (commit (string-append "v" version)))) + (sha256 + (base32 "1gn21x0zkm7rr7qijlz7nvw7z0mm1j2r0r2lslg7wln1z36gjkbw")))) + (build-system pyproject-build-system) + (native-inputs + (list python-aiohttp + python-codecov + python-flake8 + python-pytest + python-pytest-asyncio + python-pytest-cov + python-setuptools + python-wheel)) + (home-page "https://github.com/uburuntu/throttler") + (synopsis "Throttling with asyncio support") + (description + "This is a Python package for easy throttling with asyncio support.") + (license license:expat))) + +(define-public python-tifffile + (package + (name "python-tifffile") + (version "2025.10.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tifffile" version)) + (sha256 + (base32 "0f1ybmr2jz19gjg92p9vz3qib49m0x4ipxvrvjyfa6r1mcb7qhrf")))) + (build-system pyproject-build-system) + ;; Tests require lfdfiles, which depends on tifffile + (arguments (list #:tests? #f)) + (propagated-inputs + (list python-numpy)) + (native-inputs + (list python-setuptools)) + (home-page "https://www.lfd.uci.edu/~gohlke/") + (synopsis "Read and write TIFF(r) files") + (description + "This package lets you read image and metadata from many bio-scientific +formats such as plain TIFF, BigTIFF, OME-TIFF, STK, LSM, SGI,NIH, ImageJ, +MicroManager, MD GEL, and FluoView files. It also lets you write numpy arrays +to TIFF, BigTIFF, and ImageJ hyperstack compatible files.") + (license license:bsd-3))) + +(define-public python-tifffile-for-dask-image + ;; It's for python-dask-image@2024.5.3, remove when no longer required. + (hidden-package + (package + (inherit python-tifffile) + (name "python-tifffile") + (version "2023.12.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tifffile" version)) + (sha256 + (base32 "1f6d8qdlq0zlksfdhp1mhj9icpwhw4cz47r4i80m6r0a328xmlcx"))))))) + +(define-public python-tiktoken + (package + (name "python-tiktoken") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tiktoken" version)) + (sha256 + (base32 "0p9cg6n8mzdi4lbbwxrrp26chy5hr14bqmzr3w74kq1qm6k5qanh")))) + (build-system cargo-build-system) + (arguments + (list + #:install-source? #false + #:imported-modules + (append %pyproject-build-system-modules + %cargo-build-system-modules) + #:modules + '((guix build cargo-build-system) + ((guix build pyproject-build-system) #:prefix py:) + (guix build utils)) + #:phases + #~(modify-phases %standard-phases + (replace 'build + (assoc-ref py:%standard-phases 'build)) + (add-after 'install 'wrap + (lambda _ + ;; Collection of python- and pyproject-build-system phases + ;; between 'install and 'check. + (assoc-ref py:%standard-phases 'add-install-to-pythonpath) + (assoc-ref py:%standard-phases 'add-install-to-path) + (assoc-ref py:%standard-phases 'wrap) + (assoc-ref py:%standard-phases 'create-entrypoints) + (assoc-ref py:%standard-phases 'compile-bytecode))) + (replace 'install + (assoc-ref py:%standard-phases 'install))))) + (propagated-inputs (list python-regex python-requests)) + (inputs (cargo-inputs 'python-tiktoken)) + (native-inputs + (list python-setuptools + python-setuptools-rust + python-wheel + python-wrapper)) + (home-page "https://github.com/openai/tiktoken/") + (synopsis "Fast BPE tokeniser for use with OpenAI's models") + (description + "Tiktoken is a fast @dfn{byte pair encoding} (BPE) tokeniser for use with +@code{OpenAI's} models.") + (license license:expat))) + +(define-public python-timeout-decorator + ;; TODO: Remove when python-requests-caches releses a fresh version dropping + ;; it, see, <https://github.com/requests-cache/requests-cache/pull/1111>. + (package + (name "python-timeout-decorator") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "timeout-decorator" version)) + (sha256 + (base32 "1mxk2qyydhzncm93z08kvj5ssxq3fr2n7pkrrji28nqwvdc2ybva")))) + (build-system pyproject-build-system) + (arguments (list #:tests? #f)) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://github.com/pnpnpn/timeout-decorator") + (synopsis "Timeout decorator") + (description "This package provides a decorator that raises an error +when an operation takes longer than expected.") + (license license:expat))) + +(define-public python-titlecase + (package + (name "python-titlecase") + (version "2.4.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "titlecase" version)) + (sha256 + (base32 "1x9myq3rlbw6wh946ncch8px7wyabhzacy2fjji13nmvrivs50vx")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-backend #~'unittest)) + (native-inputs + (list python-setuptools)) + (home-page "https://github.com/ppannuto/python-titlecase") + (synopsis "Capitalize strings similar to book titles") + (description + "Python-Titlecase is a Python port of John Gruber's titlecase.pl. +It capitalizes (predominantly English) strings in a way that is similar to +book titles, using the New York Times Manual of Style to leave certain words +lowercase.") + (license license:expat))) + +(define-public python-tlsh + (package + (name "python-tlsh") + (version "4.11.2") + (home-page "https://github.com/trendmicro/tlsh") + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gb5j73nw3nmx030rf8pm75rns5syxhv44zxr6i74kjicyly1i9w")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'configure + (lambda _ + (invoke "cmake" "."))) ;to generate tlsh_version.h + (add-after 'configure 'chdir + (lambda _ + (chdir "py_ext"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "../Testing" + (invoke "./python_test.sh")))))))) + (native-inputs (list cmake-minimal python-setuptools)) + (synopsis "Fuzzy matching library for Python") + (description + "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library. +Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash +value which can be used for similarity comparisons. Similar objects have +similar hash values, which allows for the detection of similar objects by +comparing their hash values. The byte stream should have a sufficient amount +of complexity; for example, a byte stream of identical bytes will not generate +a hash value.") + (license license:asl2.0))) + +(define-public python-tokenize-rt + (package + (name "python-tokenize-rt") + (version "6.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/asottile/tokenize-rt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1maa9sifma0a6v7kl7mmyqzj0jdclzlp4wjr0vkdx95raihxx4fv")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools)) + (home-page "https://github.com/asottile/tokenize-rt") + (synopsis "Wrapper around the stdlib tokenize which roundtrips") + (description + "This Python library is a wrapper around @code{tokenize} from the Python +standard library. It provides two additional tokens @code{ESCAPED_NL} and +@code{UNIMPORTANT_WS}, and a @code{Token} data type. Use @code{src_to_tokens} +and @code{tokens_to_src} to roundtrip.") + (license license:expat))) + +(define-public python-tomlkit + (package + (name "python-tomlkit") + (version "0.13.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tomlkit" version)) + (sha256 + (base32 "18fjmmhiv5jkkg1dwidmxd0sjqnkf675igizxsa2ppspxr3z4323")))) + (build-system pyproject-build-system) + (native-inputs + (list python-poetry-core + python-pytest + python-pyyaml)) + (home-page "https://github.com/sdispater/tomlkit") + (synopsis "Style-preserving TOML library") + (description + "TOML Kit is a 1.0.0rc1-compliant TOML library. It includes a parser that +preserves all comments, indentations, whitespace and internal element ordering, +and makes them accessible and editable via an intuitive API. It can also +create new TOML documents from scratch using the provided helpers. Part of the +implementation has been adapted, improved, and fixed from Molten.") + (license license:expat))) + +(define-public python-toolrack + (package + (name "python-toolrack") + (version "4.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/albertodonato/toolrack") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1aglfj7j25fiwx9jh1rl34mlhfpdhn8yrkn30vhkz9yw7zrx42h0")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* "tests/aio/process_test.py" + (("/bin/sh") + (which "sh")))))))) + (native-inputs + (list python-pytest + python-pytest-asyncio + python-pytest-mock + python-setuptools)) + (home-page "https://github.com/albertodonato/toolrack") + (synopsis "Collection of Python utility functions and classes") + (description "This package provides a collection of miscellaneous utility +functions and classes.") + (license license:lgpl3+))) + +(define-public python-toolshed + (package + (name "python-toolshed") + (version "0.4.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "toolshed" version)) + (sha256 + (base32 "14zvz51gzf9i1i3d1sj363ba4rksl6lcf4lz1arl8hpqgcbir8r3")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;tests are not included in PyPI archive + (native-inputs + (list python-setuptools)) + (home-page "https://github.com/brentp/toolshed/") + (synopsis "Collection of modules and functions for working with data") + (description "This is a collection of well-tested, simple modules and +functions that aim to reduce boilerplate when working with data.") + (license license:bsd-2))) + +(define-public python-toolz + (package + (name "python-toolz") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "toolz" version)) + (sha256 + (base32 "00ks0jhl1jwm9576c5sh10pnla8ni21yvg4kcxasr627l3cy71ic")))) + (build-system pyproject-build-system) + (native-inputs + (list python-pytest + python-setuptools + python-wheel)) + (home-page "https://github.com/pytoolz/toolz/") + (synopsis "List processing tools and functional utilities") + (description + "This package provides a set of utility functions for iterators, +functions, and dictionaries.") + (license license:bsd-3))) + +(define-public python-toposort + (package + (name "python-toposort") + (version "1.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "toposort" version)) + (sha256 + (base32 "1gd66z5dy6j7qs5qkj1pg0vb15rwd571yq02fkm9d9nhaff4gfxz")))) + (build-system pyproject-build-system) + (arguments + (list #:test-backend #~'custom + #:test-flags #~(list "-m" "test.test_toposort"))) + (native-inputs (list python-setuptools)) + (home-page "https://gitlab.com/ericvsmith/toposort") + (synopsis "Topological sort algorithm") + (description + "This package provides an implementation of a topological sort +algorithm.") + (license license:asl2.0))) + +(define-public python-towncrier + (package + (name "python-towncrier") + (version "25.8.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "towncrier" version)) + (sha256 + (base32 "1c8fjjwlx29jgllxvyzby4cn51iraxba0cmfnfmmgb9iz0lnvwgf")))) + (build-system pyproject-build-system) + (native-inputs + (list git-minimal/pinned ;tests create git repositories + python-hatchling + python-pytest + python-twisted)) + (propagated-inputs + (list python-click + python-jinja2)) + (home-page "https://towncrier.readthedocs.io/en/stable/") + (synopsis "Manage release notes") + (description + "@code{towncrier} is a utility to produce useful, summarized news files + (also known as changelogs) for a project.") + (license license:expat))) + +(define-public python-tqdm + (package + (name "python-tqdm") + (version "4.67.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tqdm" version)) + (sha256 + (base32 "1wi7cql2fc76b5z9v1sr96ix2gxcb974z8qfydjkmh885k2zkbpq")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags + '(list "-o" "asyncio_mode=auto" + "-k" "not perf and not test_rlock_creation"))) + (native-inputs + (list python-pytest + python-pytest-asyncio + python-pytest-timeout + python-setuptools + python-setuptools-scm + python-toml + python-wheel)) + (home-page "https://github.com/tqdm/tqdm") + (synopsis "Fast, extensible progress meter") + (description + "Make loops show a progress bar on the console by just wrapping any +iterable with @code{|tqdm(iterable)|}. Offers many options to define +design and layout.") + (license (list license:mpl2.0 license:expat)))) + +(define-public python-traitlets + (package + (name "python-traitlets") + (version "5.14.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "traitlets" version)) + (sha256 + (base32 "0zjj8ha4z5lbhhmvcl3q8wp5qmwqq0lwxma3d8qvh10s6xdi11c5")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + '(list "-k" "not mypy_list_typing and not mypy_dict_typing"))) + (native-inputs + (list python-argcomplete + python-hatchling + python-mypy + python-pytest + python-pytest-mock + python-pytest-mypy-testing)) + (home-page "https://ipython.org") + (synopsis "Configuration system for Python applications") + (description + "Traitlets is a framework that lets Python classes have attributes with +type checking, dynamically calculated default values, and ‘on change’ +callbacks. The package also includes a mechanism to use traitlets for +configuration, loading values from files or from command line arguments. This +is a distinct layer on top of traitlets, so you can use traitlets in your code +without using the configuration machinery.") + (license license:bsd-3))) + +(define-public python-translitcodec + (package + (name "python-translitcodec") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/claudep/translitcodec") + (commit (string-append "version-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cj11sa5hy8ga7p0dgwi4g4gv0qx6c1yi2csgnvxiir16ywslhpw")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools)) + (home-page "https://github.com/claudep/translitcodec") + (synopsis "Unicode to 8-bit charset transliteration codec") + (description + "This package contains codecs for transliterating ISO 10646 texts into +best-effort representations using smaller coded character sets (ASCII, +ISO 8859, etc.).") + (license license:expat))) + +(define-public python-treelib + (package + (name "python-treelib") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/caesar0301/treelib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0jd3rdaq8v7ykb626cm1gxa03higqnn2pmnv46fc0lc55xbrkxlf")) + (patches + (search-patches "python-treelib-remove-python2-compat.patch")))) + (build-system pyproject-build-system) + (native-inputs (list python-poetry-core python-pytest)) + (home-page "https://github.com/caesar0301/treelib") + (synopsis "Implementation of a tree structure in Python") + (description + "This package provides a Python implementation of a tree structure.") + (license license:asl2.0))) + +(define-public python-trio + (package + (name "python-trio") + (version "0.28.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "trio" version)) + (sha256 + (base32 "019wqwlbj185skknbjd7paxqqx6vl5gpqk2fwmc5d2lyzsb7hm2f")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + `(list "-k" + (string-append + ;; This tests times out. + "not test_ki_protection_works" + " and not test_KI_interrupts" + ;; This fails with: signal only works in main thread of the main interpreter + " and not test_catch_signals_race_condition_on_exit" + ;; Assertion errors. + " and not test_named_thread_os" + " and not test_has_pthread_setname_np" + " and not test_guest_mode_ki" + " and not test_run_in_trio_thread_ki" + " and not test_simple_cancel_scope_usage_doesnt_create\ +_cyclic_garbage" + " and not test_nursery_cancel_doesnt_create_cyclic_garbage" + " and not test_cancel_scope_exit_doesnt_create_cyclic_garbage" + " and not test_locals_destroyed_promptly_on_cancel" + " and not test_ipython_exc_handler" + " and not test_for_leaking_fds" + ;; Signals don’t work in the build sandbox. + " and not test_open_signal_receiver" + ;; These try to raise KeyboardInterrupt which does not work + ;; in the build environment. + " and not test_ki_self" + " and not test_ki_wakes_us_up" + ;; Failure in name resolution. + " and not test_getnameinfo" + " and not test_SocketType_resolve" + ;; OSError: protocol not found. + " and not test_getprotobyname" + ;; EOFError: Ran out of input. + " and not test_static_tool_sees_all_symbols") + ,@(if (package? (this-package-native-input "python-trustme")) + '() + `("--ignore=src/trio/_tests/test_dtls.py" + "--ignore=src/trio/_tests/test_highlevel_ssl_helpers.py" + "--ignore=src/trio/_tests/test_ssl.py")) + ;; It rerquires black and ruff to generate a final report. + "--ignore=src/trio/_tests/tools/test_gen_exports.py" + "src/trio/_tests") + #:phases + '(modify-phases %standard-phases + (add-after 'unpack 'ignore-deprecations + (lambda _ + (substitute* "pyproject.toml" + ((" \"error\",") " \"ignore\",")))) + (add-before 'check 'set-env + (lambda _ + ;; Tests require a writable home. + (setenv "HOME" "/tmp") + ;; #$output is first in path which causes "import file mismatch" + (setenv "PYTHONPATH" (string-append (getcwd) "/src:$PYTHONPATH"))))))) + (native-inputs + (append + (if (supported-package? python-pyopenssl) + (list python-pyopenssl) + '()) + (list python-pytest + python-setuptools) + (if (supported-package? python-trustme) + (list python-trustme) + '()) + (list python-wheel))) + (propagated-inputs + (list python-attrs + python-cffi + python-exceptiongroup + python-idna + python-outcome + python-sniffio + python-sortedcontainers)) + (home-page "https://github.com/python-trio/trio") + (synopsis "Friendly Python library for async concurrency and I/O") + (description + "Trio strives to be a production-quality, async/await-native I/O library +for Python. Like all async libraries, its main purpose is to help you write +programs that do multiple things at the same time with parallelized I/O.") + ;; Either license applies. + (license (list license:expat license:asl2.0)))) + +(define-public python-trio-typing + (package + (name "python-trio-typing") + (version "0.10.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "trio-typing" version)) + (sha256 + (base32 "1hvsj3w500i33ykfgh3sfkjnxhxf05incx131smshlkd562fcph6")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (propagated-inputs + (list python-async-generator + python-importlib-metadata + python-mypy-extensions + python-packaging + python-trio + python-typing-extensions)) + (home-page "https://github.com/python-trio/trio-typing") + (synopsis "Static type checking support for Trio and related projects") + (description + "This package provides: + +@itemize +@item PEP 561 typing stubs packages for the Trio project packages: + +@itemize +@item trio (@code{trio-stubs}) +@item outcome (@code{outcome-stubs}) +@item async_generator (@code{async_generator-stubs}) +@end itemize + +@item A package @code{trio_typing} containing types that Trio programs often +want to refer to (@code{AsyncGenerator[Y, S]} and @code{TaskStatus[T])} and +a mypy plugin that smooths over some limitations in the basic type hints. +@end itemize") + ;; Either license applies. + (license (list license:expat license:asl2.0)))) + +(define-public python-trubar + (package + (name "python-trubar") + (version "0.3.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "trubar" version)) + (sha256 + (base32 "149l5wid1b41gmfzsrhapcigcbcsflviz8p1pfa937443fxw1dkd")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" (string-join + ;; AttributeError: module 'libcst' has no attribute + ;; 'FlattenSentinel'. Did you mean: 'MaybeSentinel'? + (list "not test_import_from_future" + "test_inport_after_docstring" + ;; AssertionError: Items in the second set but not + ;; the first + "test_walk_files") + " and not ")))) + (native-inputs + (list python-pytest + python-setuptools + python-wheel)) + (propagated-inputs + (list python-libcst + python-pyyaml)) + (home-page "https://github.com/janezd/trubar") + (synopsis "Utility for translation of Python sources") + (description + "This package provides a tool for translation and localization of Python +programs via modification of source files. Trubar supports f-strings and does +not require any changes to the original source code, such as marking strings +for translation.") + (license license:expat))) + +(define-public python-twine + (package + (name "python-twine") + (version "6.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "twine" version)) + (sha256 + (base32 "1kvm9cdvbnh232wafww1w5scaic9kkrwhlff1mvmk68cswphvvg5")))) + (build-system pyproject-build-system) + (arguments + (list + ;; tests: 228 passed, 1 deselected + #:test-flags + ;; Assertion is not equal for one tests. + #~(list "--deselect=tests/test_check.py::test_fails_rst_syntax_error"))) + (native-inputs + (list python-pretend + python-pytest + python-pytest-socket + python-setuptools + python-setuptools-scm)) + (propagated-inputs + (list python-id + python-keyring + python-packaging + python-readme-renderer + python-requests + python-requests-toolbelt + python-rfc3986 + python-rich + python-urllib3)) + (home-page "https://github.com/pypa/twine") + (synopsis "Collection of utilities for interacting with PyPI") + (description + "@code{twine} currently supports registering projects and uploading +distributions. It authenticates the user over HTTPS, allows them to pre-sign +their files and supports any packaging format (including wheels).") + (license license:asl2.0))) + +(define-public python-twisted + (package + (name "python-twisted") + (version "24.11.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/twisted/twisted") + (commit (string-append "twisted-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k4rd5bpx40j1k0mgbhzqa35dyni0kk7pxjr8x3pm1iaka1718rh")))) + (build-system pyproject-build-system) + (arguments + (list + ;; tests: skips=638, successes=9759 + #:test-backend #~'custom + #:test-flags + #~(list "-m" "twisted.trial" + "--temp-directory=/tmp/_trial_temp" + (string-append "-j" (number->string (min 8 (parallel-job-count)))) + "twisted") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-broken-tests + (lambda _ + (for-each delete-file + (list + ;; No idea why they fail + "src/twisted/test/test_log.py" + ;; Network tests + "src/twisted/conch/test/test_cftp.py" + "src/twisted/internet/test/test_endpoints.py" + "src/twisted/protocols/test/test_tls.py" + "src/twisted/test/test_sslverify.py" + "src/twisted/web/test/test_agent.py" + "src/twisted/web/test/test_tap.py" + ;; These need a git executable + "src/twisted/python/test/test_release.py" + ;; These leave behind a socket file, which breaks the + ;; build with "...has an unsupported type" + "src/twisted/internet/test/test_unix.py" + "src/twisted/test/test_unix.py" + ;; These complain about missing test modules. + "src/twisted/test/test_failure.py" + "src/twisted/web/test/test_http2.py" + "src/twisted/conch/test/test_forwarding.py"))))))) + (propagated-inputs + (list python-attrs + python-automat + python-bcrypt + python-constantly + python-hyperlink + python-incremental + python-typing-extensions + python-zope-interface + ;; [conch] + python-appdirs + python-bcrypt + python-cryptography + ;; [http2] + python-h2 + python-priority + ;; [tls] + python-idna + python-pyopenssl + python-service-identity + ;; [serial] + python-pyserial)) + (native-inputs + (list glibc-utf8-locales ;for OpenTestLogTests.test_utf8 + python-hatch-fancy-pypi-readme + python-hatchling + python-httpx + python-hypothesis + python-incremental + python-pyhamcrest + python-pytest)) + (home-page "https://twistedmatrix.com/") + (synopsis "Asynchronous networking framework written in Python") + (description + "Twisted is an extensible framework for Python programming, with special +focus on event-based network programming and multiprotocol integration.") + (license license:expat))) + (define-public python-typeapi (package (name "python-typeapi") diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 6142272b51..397904bca0 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -4763,17 +4763,23 @@ top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.") "--ignore=qtpy/tests/test_qtwidgets.py" "--ignore=qtpy/tests/test_uic.py" ;; ModuleNotFoundError: No module named 'PyQt5.QtTextToSpeech' - "-k" "not test_qttexttospeech"))) + "-k" (string-append "not test_qttexttospeech" + ;; Fatal Python error: Segmentation fault + " and not test_qtsql_members_aliases")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-pytest-config + (lambda _ + ;; Drop test coverage requirements. + (substitute* "pytest.ini" + (("--cov-report=term-missing") "") + (("--cov-report=xml") ""))))))) + ;; XXX: Do not include, even supported: Qt5, PySide2 PySide6, only test + ;; agains Qt6 to reduce closure size.. (native-inputs - (list python-pyqt - python-pyqt-6 - python-pyside-2 - python-pyside-6 + (list python-pyqt-6 python-pytest - python-pytest-cov - python-pytest-qt - python-setuptools - python-wheel)) + python-setuptools)) (propagated-inputs (list python-packaging)) (home-page "https://github.com/spyder-ide/qtpy") diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 07a14a7dd7..bff07ce4ce 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -3257,7 +3257,7 @@ Caller-ID.") python-ipython python-numpy python-pyserial - python-pyside-2 + python-pyside-6 python-pyusb)) (arguments (list diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm index 8f6cd1fb6e..ea63231e35 100644 --- a/gnu/packages/rust-crates.scm +++ b/gnu/packages/rust-crates.scm @@ -2492,6 +2492,10 @@ (crate-source "clap" "4.3.24" "11z4695sw0kp1s4rfnfdgg19n6xllcp297z5mmx0s344qy0hwsgv")) +(define rust-clap-4.5.23 + (crate-source "clap" "4.5.23" + "110cf0i9fmkfqzqhi1h8za9y0vnr5rwhy3wmv1p0rcgp5vnffd9i")) + (define rust-clap-4.5.31 (crate-source "clap" "4.5.31" "0ryp6xjbdc9cbjjkafjl35j91pvv0ykislwqhr537bi9hkcv0yq2")) @@ -2548,6 +2552,10 @@ (crate-source "clap_builder" "4.3.24" "03l6d45csywv8xazs44jwy1hk2jbvznn7mj8dw7p93bdq5mykljy")) +(define rust-clap-builder-4.5.23 + (crate-source "clap_builder" "4.5.23" + "0f28rgc09kdgfq1hgg1bb1ydaw243w6dwyw74syz439k6b32yn1h")) + (define rust-clap-builder-4.5.31 (crate-source "clap_builder" "4.5.31" "0qyqd6kfcs41x29a95n15744jyv2v07srvwi6z9g7q3jl35y12am")) @@ -3409,6 +3417,10 @@ (crate-source "crosstermion" "0.14.0" "1i7caxqlz174zj6pll85vp4avhhzzy00vfdivry3v5hq3phgzf1v")) +(define rust-crunchy-0.2.2 + (crate-source "crunchy" "0.2.2" + "1dx9mypwd5mpfbbajm78xcrg5lirqk7934ik980mmaffg3hdm0bs")) + (define rust-crunchy-0.2.3 (crate-source "crunchy" "0.2.3" "0aa9k4izp962qlsn5ndgw2zq62mizcpnkns8bxscgz3gqr35knj3")) @@ -7464,6 +7476,10 @@ (crate-source "half" "1.8.3" "00q4ki8ycdswapw6xn1q89vr7rzi1c8m99igps0lx1i1gzhyshqv")) +(define rust-half-2.4.1 + (crate-source "half" "2.4.1" + "123q4zzw1x4309961i69igzd1wb7pj04aaii3kwasrz3599qrl3d")) + (define rust-half-2.5.0 (crate-source "half" "2.5.0" "1ldv2i761fjqxl4rn033nasjrdnw5ysnc1xalsfkfl5skc9zzckx")) @@ -8323,6 +8339,10 @@ (crate-source "indoc" "1.0.9" "01l3b4ami6sck57yrn8n2z44jifph2m3jiivkws7w2njbvfrk9xz")) +(define rust-indoc-2.0.4 + (crate-source "indoc" "2.0.4" + "1n2z66b0y59rr6v4znpcijc2yd3yg6s40hpzv89yb140mvxnq60y")) + (define rust-indoc-2.0.5 (crate-source "indoc" "2.0.5" "1dgjk49rkmx4kjy07k4b90qb5vl89smgb5rcw02n0q0x9ligaj5j")) @@ -8550,6 +8570,10 @@ (crate-source "is-macro" "0.2.2" "083v9iqim0cf7rlj09gmks82qv6fx77z3i6595x4fxwv2ag0fzca")) +(define rust-is-terminal-0.4.13 + (crate-source "is-terminal" "0.4.13" + "0jwgjjz33kkmnwai3nsdk1pz9vb6gkqvw1d1vq7bs3q48kinh7r6")) + (define rust-is-terminal-0.4.16 (crate-source "is-terminal" "0.4.16" "1acm63whnpwiw1padm9bpqz04sz8msymrmyxc55mvlq8hqqpykg0")) @@ -8824,6 +8848,11 @@ (crate-source "js-sys" "0.3.70" "0yp3rz7vrn9mmqdpkds426r1p9vs6i8mkxx8ryqdfadr0s2q0s0q")) +(define rust-js-sys-0.3.76 + ;; TODO: Check bundled sources. + (crate-source "js-sys" "0.3.76" + "1dz7v777h2j38wkf8k5iwkfxskn6nff2cdv2jsslyxkpn2svc5v7")) + (define rust-js-sys-0.3.77 (crate-source "js-sys" "0.3.77" "13x2qcky5l22z4xgivi59xhjjx4kxir1zg7gcj0f1ijzd4yg7yhw")) @@ -9129,6 +9158,10 @@ (crate-source "libc" "0.2.148" "16rn9l8s5sj9n2jb2pw13ghqwa5nvjggkh9q3lp6vs1jfghp3p4w")) +(define rust-libc-0.2.169 + (crate-source "libc" "0.2.169" + "02m253hs8gw0m1n8iyrsc4n15yzbqwhddi7w1l0ds7i92kdsiaxm")) + (define rust-libc-0.2.170 (crate-source "libc" "0.2.170" "0a38q3avb6r6azxb7yfbjly5sbr8926z6c4sryyp33rgrf03cnw7")) @@ -9837,6 +9870,10 @@ (crate-source "log" "0.4.20" "13rf7wphnwd61vazpxr7fiycin6cb1g8fmvgqg18i464p0y1drmm")) +(define rust-log-0.4.22 + (crate-source "log" "0.4.22" + "093vs0wkm1rgyykk7fjbqp2lwizbixac1w52gv109p5r4jh0p9x7")) + (define rust-log-0.4.26 (crate-source "log" "0.4.26" "17mvchkvhnm2zxyfagh2g9p861f0qx2g1sg2v14sww9nvjry5g9h")) @@ -11583,6 +11620,10 @@ (crate-source "once_cell" "1.18.0" "0vapcd5ambwck95wyz3ymlim35jirgnqn9a0qmi19msymv95v2yx")) +(define rust-once-cell-1.19.0 + (crate-source "once_cell" "1.19.0" + "14kvw7px5z96dk4dwdm1r9cqhhy2cyj1l5n5b29mynbb8yr15nrz")) + (define rust-once-cell-1.20.2 (crate-source "once_cell" "1.20.2" "0xb7rw1aqr7pa4z3b00y7786gyf8awx2gca3md73afy76dzgwq8j")) @@ -11631,6 +11672,10 @@ (crate-source "oo7" "0.2.2" "13cpaq7f51gqcspd4097vjr7r2cjpxpn6c02x67dsdizk0xaiv5c")) +(define rust-oorandom-11.1.4 + (crate-source "oorandom" "11.1.4" + "1sg4j19r5302a6jpn0kgfkbjnslrqr3ynxv8x2h2ddaaw7kvn45l")) + (define rust-oorandom-11.1.5 (crate-source "oorandom" "11.1.5" "07mlf13z453fq01qff38big1lh83j8l6aaglf63ksqzzqxc0yyfn")) @@ -12676,6 +12721,10 @@ (crate-source "portable-atomic" "1.11.1" "10s4cx9y3jvw0idip09ar52s2kymq8rq9a668f793shn1ar6fhpq")) +(define rust-portable-atomic-1.9.0 + (crate-source "portable-atomic" "1.9.0" + "1cmd87qj90panwsi350djb8lsxdryqkkxmimjcz7a1nsysini76c")) + (define rust-portable-atomic-util-0.2.4 (crate-source "portable-atomic-util" "0.2.4" "01rmx1li07ixsx3sqg2bxqrkzk7b5n8pibwwf2589ms0s3cg18nq")) @@ -13208,6 +13257,10 @@ "0abjav5868avfgb8fjfvz2dbpm916zmhm8xvxzfgns5hhq033nhp" #:snippet '(delete-file-recursively "branding"))) +(define rust-pyo3-0.25.0 + (crate-source "pyo3" "0.25.0" + "19277ka0xfam1sljmm5129iars41nbqpflpqzqxfgkiv6rbdcfgj")) + (define rust-pyo3-build-config-0.15.2 (crate-source "pyo3-build-config" "0.15.2" "0414biclhrxv6y0bjm6s9fq9z6yah393ffkd8748pqdq83y3k4kp")) @@ -13240,6 +13293,10 @@ (crate-source "pyo3-build-config" "0.24.1" "1hazmb2hm7qad5xcy9gajwj3231hqjnndfcb145014ypkf46awg2")) +(define rust-pyo3-build-config-0.25.0 + (crate-source "pyo3-build-config" "0.25.0" + "0v8viwyp3whd39wywfh0lv53kjhrykvalisj2vx48h63l5qscpkm")) + (define rust-pyo3-ffi-0.16.6 (crate-source "pyo3-ffi" "0.16.6" "0pzpcmndak7y72p4rw494cki1bxh86diiqdzsw14gxammc1jg26a")) @@ -13268,6 +13325,10 @@ (crate-source "pyo3-ffi" "0.24.1" "1g5a5w7rsq2afb5zamz1jjx5834cnwlg4gig0qhb9xnvw4k0aa05")) +(define rust-pyo3-ffi-0.25.0 + (crate-source "pyo3-ffi" "0.25.0" + "0vlm6m6q3060g2gzvfpijkrr6lmy8kvhyc7asj8lgr4if3ka55gw")) + (define rust-pyo3-macros-0.15.2 (crate-source "pyo3-macros" "0.15.2" "0fmrzl185i00c6kdvy7icmhhc99c51pyha46incqggk4qvl4gch0")) @@ -13300,6 +13361,10 @@ (crate-source "pyo3-macros" "0.24.1" "0i2zrpazxwgfbpmzvrcqhdgg3j97l5i0q455b4rzdlx4d9lfag2w")) +(define rust-pyo3-macros-0.25.0 + (crate-source "pyo3-macros" "0.25.0" + "0502a6860s62sw7vlw92vg4bd4fp1ryfh59glqlhi4lk3cfn8yd1")) + (define rust-pyo3-macros-backend-0.15.2 (crate-source "pyo3-macros-backend" "0.15.2" "15bhc1xib9yz4l1sd2lk3nc7scbqsjfvgvlr3mj0xq0jqh92i32s")) @@ -13332,6 +13397,10 @@ (crate-source "pyo3-macros-backend" "0.24.1" "0m9q9zlwn5s0pa2819z3a13yn94pmq1q3swvx04fvc5z1jm6zkzl")) +(define rust-pyo3-macros-backend-0.25.0 + (crate-source "pyo3-macros-backend" "0.25.0" + "17p8l74mxkrzwd3zcx2yky5fmv33d45f8yiz1qdl935brbmqbzwx")) + (define rust-pyproject-toml-0.11.0 (crate-source "pyproject-toml" "0.11.0" "0sm3ncm57hgcyladl55w59ycl39vq4crigjb9bya0n6b7c162w7g")) @@ -14452,6 +14521,10 @@ (crate-source "rustc-hash" "1.1.0" "1qkc5khrmv5pqi5l5ca9p5nl5hs742cagrndhbrlk3dhlrx3zm08")) +(define rust-rustc-hash-2.1.0 + (crate-source "rustc-hash" "2.1.0" + "15yln6fmqlbg0k35r748h8g9xsd637ri23xihq81jb03ncwq1yy7")) + (define rust-rustc-hash-2.1.1 (crate-source "rustc-hash" "2.1.1" "03gz5lvd9ghcwsal022cgkq67dmimcgdjghfb5yb5d352ga06xrm")) @@ -18748,6 +18821,10 @@ (crate-source "wasm-bindgen" "0.2.93" "1dfr7pka5kwvky2fx82m9d060p842hc5fyyw8igryikcdb0xybm8")) +(define rust-wasm-bindgen-0.2.99 + (crate-source "wasm-bindgen" "0.2.99" + "15k3rzb3kjrxyqnh0916gq99mrpwhwy62smawxxc2w0x3llgcx54")) + (define rust-wasm-bindgen-backend-0.2.100 (crate-source "wasm-bindgen-backend" "0.2.100" "1ihbf1hq3y81c4md9lyh6lcwbx6a5j0fw4fygd423g62lm8hc2ig")) @@ -18772,6 +18849,10 @@ (crate-source "wasm-bindgen-backend" "0.2.93" "0yypblaf94rdgqs5xw97499xfwgs1096yx026d6h88v563d9dqwx")) +(define rust-wasm-bindgen-backend-0.2.99 + (crate-source "wasm-bindgen-backend" "0.2.99" + "0ycwa4c68j34687k513djgyy2asn3fw3yp4g9rkq2kvbchwbp2az")) + (define rust-wasm-bindgen-futures-0.4.34 (crate-source "wasm-bindgen-futures" "0.4.34" "0m0lnnnhs9ni4dn9vz74prsjz8bdcf8dvnznd5ljch5s279f06gj")) @@ -18816,6 +18897,10 @@ (crate-source "wasm-bindgen-macro" "0.2.93" "1kycd1xfx4d9xzqknvzbiqhwb5fzvjqrrn88x692q1vblj8lqp2q")) +(define rust-wasm-bindgen-macro-0.2.99 + (crate-source "wasm-bindgen-macro" "0.2.99" + "1znlcrk5bvisr3vscwlqkdby959n3sb367zgdzpjwjd7v4giiiic")) + (define rust-wasm-bindgen-macro-support-0.2.100 (crate-source "wasm-bindgen-macro-support" "0.2.100" "1plm8dh20jg2id0320pbmrlsv6cazfv6b6907z19ys4z1jj7xs4a")) @@ -18840,6 +18925,10 @@ (crate-source "wasm-bindgen-macro-support" "0.2.93" "0dp8w6jmw44srym6l752nkr3hkplyw38a2fxz5f3j1ch9p3l1hxg")) +(define rust-wasm-bindgen-macro-support-0.2.99 + (crate-source "wasm-bindgen-macro-support" "0.2.99" + "1hihsgyg0kf46kjhgfv8x5g9x0q1d0aizj6n7s84ag1xfrdskmrh")) + (define rust-wasm-bindgen-shared-0.2.100 (crate-source "wasm-bindgen-shared" "0.2.100" "0gffxvqgbh9r9xl36gprkfnh3w9gl8wgia6xrin7v11sjcxxf18s")) @@ -18864,6 +18953,10 @@ (crate-source "wasm-bindgen-shared" "0.2.93" "1104bny0hv40jfap3hp8jhs0q4ya244qcrvql39i38xlghq0lan6")) +(define rust-wasm-bindgen-shared-0.2.99 + (crate-source "wasm-bindgen-shared" "0.2.99" + "19h61snrhh1qhb5gz6zyb89l7fbj1fhmxcvi09p9l0mav8zsnfll")) + (define rust-wasm-bindgen-test-0.3.50 (crate-source "wasm-bindgen-test" "0.3.50" "1hsjc60wynlhgw02p32pgb93303pqmsdfxj67gxdkdm37kixbj36")) @@ -19334,6 +19427,11 @@ (crate-source "web-sys" "0.3.61" "15qbbdbhyz02srvm01p0cvlh0pvmbbin9hislp0yx8rvnbs9jfz3")) +(define rust-web-sys-0.3.76 + ;; TODO: Check bundled sources. + (crate-source "web-sys" "0.3.76" + "1g0j3kii20mh7hqmdajz2r4c21zynb9h9h026wymalkx88ip5p84")) + (define rust-web-sys-0.3.77 (crate-source "web-sys" "0.3.77" "1lnmc1ffbq34qw91nndklqqm75rasaffj2g4f8h1yvqqz4pdvdik")) @@ -39477,6 +39575,88 @@ rust-windows-x86-64-gnu-0.52.6 rust-windows-x86-64-gnullvm-0.52.6 rust-windows-x86-64-msvc-0.52.6)) + (python-sqlglotrs => + (list rust-aho-corasick-1.1.3 + rust-anes-0.1.6 + rust-anstyle-1.0.10 + rust-autocfg-1.1.0 + rust-bumpalo-3.16.0 + rust-cast-0.3.0 + rust-cfg-if-1.0.0 + rust-ciborium-0.2.2 + rust-ciborium-io-0.2.2 + rust-ciborium-ll-0.2.2 + rust-clap-4.5.23 + rust-clap-builder-4.5.23 + rust-clap-lex-0.7.4 + rust-criterion-0.5.1 + rust-criterion-plot-0.5.0 + rust-crossbeam-deque-0.8.6 + rust-crossbeam-epoch-0.9.18 + rust-crossbeam-utils-0.8.21 + rust-crunchy-0.2.2 + rust-either-1.13.0 + rust-half-2.4.1 + rust-heck-0.5.0 + rust-hermit-abi-0.4.0 + rust-indoc-2.0.4 + rust-is-terminal-0.4.13 + rust-itertools-0.10.5 + rust-itoa-1.0.14 + rust-js-sys-0.3.76 + rust-libc-0.2.169 + rust-log-0.4.22 + rust-memchr-2.7.4 + rust-memoffset-0.9.0 + rust-num-traits-0.2.19 + rust-once-cell-1.19.0 + rust-oorandom-11.1.4 + rust-plotters-0.3.7 + rust-plotters-backend-0.3.7 + rust-plotters-svg-0.3.7 + rust-portable-atomic-1.9.0 + rust-proc-macro2-1.0.89 + rust-pyo3-0.25.0 + rust-pyo3-build-config-0.25.0 + rust-pyo3-ffi-0.25.0 + rust-pyo3-macros-0.25.0 + rust-pyo3-macros-backend-0.25.0 + rust-quote-1.0.37 + rust-rayon-1.10.0 + rust-rayon-core-1.12.1 + rust-regex-1.11.1 + rust-regex-automata-0.4.9 + rust-regex-syntax-0.8.5 + rust-rustc-hash-2.1.0 + rust-ryu-1.0.18 + rust-same-file-1.0.6 + rust-serde-1.0.216 + rust-serde-derive-1.0.216 + rust-serde-json-1.0.133 + rust-syn-2.0.87 + rust-target-lexicon-0.13.2 + rust-tinytemplate-1.2.1 + rust-unicode-ident-1.0.12 + rust-unindent-0.2.3 + rust-walkdir-2.5.0 + rust-wasm-bindgen-0.2.99 + rust-wasm-bindgen-backend-0.2.99 + rust-wasm-bindgen-macro-0.2.99 + rust-wasm-bindgen-macro-support-0.2.99 + rust-wasm-bindgen-shared-0.2.99 + rust-web-sys-0.3.76 + rust-winapi-util-0.1.9 + rust-windows-sys-0.52.0 + rust-windows-sys-0.59.0 + rust-windows-targets-0.52.6 + rust-windows-aarch64-gnullvm-0.52.6 + rust-windows-aarch64-msvc-0.52.6 + rust-windows-i686-gnu-0.52.6 + rust-windows-i686-gnullvm-0.52.6 + rust-windows-i686-msvc-0.52.6 + rust-windows-x86-64-gnu-0.52.6 + rust-windows-x86-64-gnullvm-0.52.6 + rust-windows-x86-64-msvc-0.52.6)) (python-streamtracer => (list rust-autocfg-1.4.0 rust-cfg-if-1.0.0 diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm index 4fad4d30ca..f70c537009 100644 --- a/gnu/packages/sagemath.scm +++ b/gnu/packages/sagemath.scm @@ -199,7 +199,7 @@ represented as strings.") "080p17yn8wjl973jnw15hz3dhxzp3db1bi4giw3c28d2brrki8qk")))) (build-system pyproject-build-system) (native-inputs - (list python-cython-3 python-pytest python-setuptools python-wheel)) + (list python-cython python-pytest python-setuptools python-wheel)) (propagated-inputs (list python-cysignals)) (inputs @@ -281,7 +281,7 @@ libraries GMO, MPFR and MPC.") (base32 "1zggfj09zkfcabcsasq27vwbhdmkig4yn380gi6wykcih9n22anl")))) (build-system pyproject-build-system) (native-inputs - (list python-cython-3 + (list python-cython python-pytest python-setuptools python-wheel)) @@ -381,7 +381,7 @@ database.") (build-system pyproject-build-system) (native-inputs (list autoconf automake m4 pkg-config ; for ./bootstrap - python-cython-3 + python-cython python-cysignals python-memory-allocator python-pkgconfig diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index 097aa885f8..23da2455da 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2019, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020, 2025 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 qblade <qblade@protonmail.com> ;;; Copyright © 2024 Sébastien Lerique <sl@eauchat.org> @@ -31,6 +31,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (gnu packages) @@ -182,36 +183,38 @@ based on human speech recordings.") (license license:gpl3+))) (define-public espeak-ng - (package - (name "espeak-ng") - (version "1.51") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/espeak-ng/espeak-ng") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0xhgdmvpgi464x9ba586c6hvscfkbhry75cv796hl9pz1nawq31b")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags '("--disable-static") - ;; Building in parallel triggers a race condition in 1.49.2. - #:parallel-build? #f - ;; XXX: Some tests require an audio device. - #:tests? #f)) - (native-inputs - (list autoconf automake libtool which)) - (inputs - (list libcap pcaudiolib)) - (home-page "https://github.com/espeak-ng/espeak-ng") - (synopsis "Software speech synthesizer") - (description - "eSpeak NG is a software speech synthesizer for more than 100 languages. + (let ((commit "0d451f8c1c6ae837418b823bd9c4cbc574ea9ff5") + (revision "1")) + (package + (name "espeak-ng") + (version (git-version "1.52.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/espeak-ng/espeak-ng") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s1kiq8y7vlz8p5xgkxdrbiyh3p0rd32hdzib421nbnji3wy54y2")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") + ;; Building in parallel triggers a race condition in 1.49.2. + #:parallel-build? #f + ;; XXX: Some tests require an audio device. + #:tests? #f)) + (native-inputs + (list which)) + (inputs + (list libcap pcaudiolib sonic)) + (home-page "https://github.com/espeak-ng/espeak-ng") + (synopsis "Software speech synthesizer") + (description + "eSpeak NG is a software speech synthesizer for more than 100 languages. It is based on the eSpeak engine and supports spectral and Klatt formant synthesis, and the ability to use MBROLA voices.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public mitlm (package diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 5d04470960..52e898ea02 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -152,7 +152,7 @@ (native-inputs (list imagemagick ;for "convert" nss-certs-for-test - python-cython-3 + python-cython python-defusedxml python-flit-core python-pytest diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 87e40e1177..ba3b792e37 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1403,7 +1403,7 @@ conformal prediction methods intervals.") python-patsy python-scipy)) (native-inputs - (list python-cython-3 + (list python-cython python-matplotlib python-setuptools python-setuptools-scm)) @@ -3312,7 +3312,7 @@ files, including Rmarkdown files.") (build-system python-build-system) (propagated-inputs (list python-pandas)) (inputs (list libiconv zlib)) - (native-inputs (list python-cython-3)) + (native-inputs (list python-cython)) (home-page "https://github.com/Roche/pyreadstat") (synopsis "Read and write SAS, SPSS and Stata files into/from Pandas DataFrames") @@ -3633,7 +3633,10 @@ and Causal), and simulations in Bayesian Networks.") (file-name (git-file-name name version)) (sha256 (base32 - "1p0cmgy19kbkxia139cb5w9dnkp2cdqp5n3baag6cq3prn3n71mf")))) + "1p0cmgy19kbkxia139cb5w9dnkp2cdqp5n3baag6cq3prn3n71mf")) + (patches + (search-patches + "xlispstat-fix-compilation-with-modern-gcc.patch")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; Parallel builds are not supported diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index c586e689b9..0b82d8ffbb 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -99,8 +99,11 @@ (snippet '(begin ;; QProgressIndicator is not available in Guix. - ;; FIXME: Fix building with the system kirigami. - (let* ((keep '("QProgressIndicator" "kirigami"))) + ;; FIXME: Fix building with the system kirigami and qtsolutions. + (let* ((keep '("QProgressIndicator" + "kirigami" + "qtlockedfile" + "qtsingleapplication"))) (with-directory-excursion "src/3rdparty" (for-each delete-file-recursively (lset-difference string=? @@ -109,18 +112,8 @@ (with-directory-excursion "src/gui" (substitute* "CMakeLists.txt" ;; Remove references of deleted 3rdparties. - (("[ \t]*\\.\\./3rdparty/qtlockedfile/?.*\\.(cpp|h)") - "") - (("[ \t]*\\.\\./3rdparty/qtsingleapplication/?.*\\.(cpp|h)") - "") (("[ \t]*\\.\\./3rdparty/kmessagewidget/?.*\\.(cpp|h)") "") - (("[ \t]*list\\(APPEND 3rdparty_SRC \\.\\./3rdparty/?.*\\)") - "") - (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtlockedfile") - "") - (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/qtsingleapplication") - "") (("\\$\\{CMAKE_SOURCE_DIR\\}/src/3rdparty/kmessagewidget") ;; For this, we rely on build inputs, so let's just replace ;; them by an autoconf-style variable. @@ -129,15 +122,7 @@ ;; no longer are post-vendoring. (("KF6::Archive") (string-append "KF6::Archive " - "QtSolutions_LockedFile " - "QtSolutions_SingleApplication " - "KF6WidgetsAddons"))) - ;; Fix compatibility with QtSingleApplication from QtSolutions. - (substitute* '("application.h" "application.cpp") - (("SharedTools::QtSingleApplication") - "QtSingleApplication") - (("slotParseMessage\\(const QString &(msg)?.*\\)") - "slotParseMessage(const QString &msg)"))) + "KF6WidgetsAddons")))) #t)))) (build-system qt-build-system) (arguments @@ -245,7 +230,6 @@ qt5compat qtdeclarative qtkeychain-qt6 - qtsolutions qtsvg qtwayland qtwebchannel diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 61a71d2d9f..8444116572 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2024 Luis Guilherme Coelho <lgcoelho@disroot.org> ;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se> +;;; Copyright © 2025 Andreas Enge <andreas@enge.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -281,7 +282,7 @@ Features: (define-public liferea (package (name "liferea") - (version "1.14.6") + (version "1.16.5") (source (origin (method git-fetch) @@ -290,7 +291,7 @@ Features: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1d701rjjpf2d8i88xdl7m9bi5lfl88920aj7wajk3vl1fwg3pzqp")))) + (base32 "1bphjmab2zj0ivydzlr00ds57krfcfaakk02yyxzxr3wsgdi8saf")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags @@ -298,10 +299,6 @@ Features: "--disable-static") #:phases (modify-phases %standard-phases - (add-before 'configure 'prepare-build-environment - (lambda* (#:key inputs #:allow-other-keys) - ;; Workaround for https://github.com/lwindolf/liferea/issues/767. - (setenv "WEBKIT_DISABLE_COMPOSITING_MODE" "1"))) (add-after 'install 'wrap-gi-python (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -309,8 +306,7 @@ Features: (python-path (getenv "GUIX_PYTHONPATH"))) (wrap-program (string-append out "/bin/liferea") `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) - `("GUIX_PYTHONPATH" ":" prefix (,python-path)))) - #t))))) + `("GUIX_PYTHONPATH" ":" prefix (,python-path))))))))) (native-inputs (list autoconf automake @@ -330,9 +326,9 @@ Features: gstreamer json-glib libnotify - libpeas + libpeas-2 libsecret - libsoup-minimal-2 + libsoup-minimal libxml2 libxslt pango @@ -340,7 +336,7 @@ Features: python-pycairo python-pygobject sqlite - webkitgtk-with-libsoup2)) + webkitgtk-for-gtk3)) (home-page "https://lzone.de/liferea/") (synopsis "News reader for GTK/GNOME") (description "Liferea is a desktop feed reader/news aggregator that diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 47baa946d7..0214e95dff 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -1063,6 +1063,28 @@ minimalistic.") usable with any list--including files, command history, processes and more.") (license license:expat))) +(define-public python-pyfzf + (package + (name "python-pyfzf") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyfzf" version)) + (sha256 + (base32 "1lkbnhjf92063gg9snxskcx4n2yj7mck2qgrh8q9rjpyrws2x46x")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;no tests + (native-inputs + (list python-setuptools)) + (inputs + (list fzf)) + (home-page "https://github.com/nk412/pyfzf") + (synopsis "Python wrapper for junegunn's fuzzyfinder (fzf)") + (description "This package provides a thin wrapper for @code{fzf}.") + (license license:expat))) + (define-public tmate (package (name "tmate") diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 2eb73704d4..b01431bba0 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -304,7 +304,7 @@ key, and private key are written to a new directory.") (base32 "16yr25llnbgl2iwk458ca0rhrxsmpfx72q4gdg4a52i6g546p3hd")))) (build-system pyproject-build-system) (native-inputs - (list python-cython-3 + (list python-cython python-poetry-core python-pytest python-setuptools)) diff --git a/gnu/packages/uucp.scm b/gnu/packages/uucp.scm index 2e509f6dab..cde94ededb 100644 --- a/gnu/packages/uucp.scm +++ b/gnu/packages/uucp.scm @@ -20,6 +20,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages uucp) + #:use-module (gnu packages gcc) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-compression) @@ -47,18 +48,18 @@ "0b5nhl9vvif1w3wdipjsk8ckw49jj1w85xw1mmqi3zbcpazia306")))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; The old 'configure' script doesn't support the arguments - ;; that we pass by default. - (setenv "CONFIG_SHELL" (which "sh")) - (let ((out (assoc-ref outputs "out"))) - (invoke "./configure" - (string-append "--prefix=" out) - (string-append "--infodir=" out - "/share/info")))))))) + (list #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + ;; The old 'configure' script doesn't support the arguments + ;; that we pass by default. + (setenv "CONFIG_SHELL" (which "sh")) + (invoke "./configure" + (string-append "--prefix=" #$output) + (string-append "--infodir=" #$output + "/share/info"))))))) + (native-inputs (list gcc-13)) (home-page "https://www.gnu.org/software/uucp/uucp.html") (synopsis "UUCP protocol implementation") (description diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index aa55af927a..bc42fe28b2 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -820,7 +820,7 @@ is fully configurable and extensible in Common Lisp.") (define-public lagrange (package (name "lagrange") - (version "1.18.4") + (version "1.19.3") (source (origin (method url-fetch) @@ -828,7 +828,7 @@ is fully configurable and extensible in Common Lisp.") (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/" "download/v" version "/lagrange-" version ".tar.gz")) (sha256 - (base32 "0c3dwsp8zkx2nzmd5mskcf91n20mjk7dlzgy6gn3df6brw57awk9")) + (base32 "0srd5ahkls1kdf6waszjaayjgk7jd58i8hjlzh636d26h0vmy0k5")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index b3162b492e..f7e5317655 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -6616,7 +6616,7 @@ basic eye-candy effects.") python-lz4 ; Faster compression than zlib. python-netifaces python-pycups)) - (native-inputs (list pkg-config pandoc python-cython-3)) + (native-inputs (list pkg-config pandoc python-cython)) (arguments (list #:configure-flags #~(list "--without-Xdummy" diff --git a/gnu/packages/zig-xyz.scm b/gnu/packages/zig-xyz.scm index 9665a56a2d..b4e38a6b57 100644 --- a/gnu/packages/zig-xyz.scm +++ b/gnu/packages/zig-xyz.scm @@ -278,6 +278,30 @@ compatible Zig code based on the @acronym{LSP, Language Server Protocol} meta model.") (license license:expat)))) +(define-public zig-lsp-kit-for-zls-0.15 + (let ((commit "6274eebace9a6a82ce182e24468fef88e0b95f37") + (revision "0")) + (package + (name "zig-lsp-kit") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zigtools/lsp-kit") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g4jdvj2pj6qbg912fxifk8rq6bg62kpgpcm0nfmi2h1h34cwp53")))) + (build-system zig-build-system) + (arguments (list #:skip-build? #t)) + (home-page "https://zigtools.github.io/lsp-kit/") + (synopsis "Develop Language Server Protocol implementations in Zig") + (description + "Zig @acronym{LSP, Language Server Protocol} Kit provides the necessary +building blocks to develop LSP implementations in Zig.") + (license license:expat)))) + (define-public zig-diffz (let ((commit "420fcb22306ffd4c9c3c761863dfbb6bdbb18a73") (revision "0")) @@ -319,6 +343,23 @@ model.") (base32 "0ah1m8mjqjc2szl5lx62zqj69irkbb3y245z14pknikxgg8xdzg7"))))))) +(define-public zig-diffz-for-zls-0.15 + (let ((commit "a20dd1f11b10819a6f570f98b42e1c91e3704357") + (revision "0")) + (package + (inherit zig-diffz) + (name "zig-diffz") + (version (git-version "0.0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ziglibs/diffz") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qz7jqdh4f5dcrzkxipdmsgkfs37k450r9gm7ik7r72dfvjs9c6b"))))))) + (define-public zig-known-folders (let ((commit "1cceeb70e77dec941a4178160ff6c8d05a74de6f") (revision "0")) @@ -363,6 +404,27 @@ across several operating systems.") (substitute-keyword-arguments (package-arguments base) ((#:zig _ #f) zig-0.14)))))) +(define-public zig-known-folders-for-zls-0.15 + (let ((commit "92defaee76b07487769ca352fd0ba95bc8b42a2f") + (revision "0") + (base zig-known-folders)) + (package + (inherit base) + (name "zig-known-folders") + (version (git-version "0.7.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ziglibs/known-folders") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bwv7kndr4lv7khrrjwg2vgg3cy41y28rmv7rbv7jy06shqy4nzq")))) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:zig _ #f) zig-0.15)))))) + (define-public zig-pixman (package (name "zig-pixman") @@ -619,4 +681,34 @@ Language Server Protocol} for the Zig programming language.") (replace "zig-diffz" zig-diffz-for-zig-zls-0.14) (replace "zig-known-folders" zig-known-folders-for-zig-0.14)))))) +(define-public zig-zls-0.15 + (let ((base zig-zls-0.14)) + (package + (inherit base) + (name "zig-zls") + (version "0.15.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zigtools/zls") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ydnaxf29mj3gamig9phf991s1civfk6jkydn2xiqwv394fx4p0q")) + (snippet + (rename-zig-dependencies + '(("diffz" . "zig-diffz") + ("known_folders" . "zig-known-folders") + ("lsp_kit" . "zig-lsp-kit")))))) + (native-inputs + (modify-inputs (package-native-inputs base) + (replace "zig" zig-0.15))) + (inputs + (modify-inputs (package-inputs base) + (prepend zig-lsp-kit-for-zls-0.15) + (delete "zig-lsp-codegen") + (replace "zig-diffz" zig-diffz-for-zls-0.15) + (replace "zig-known-folders" zig-known-folders-for-zls-0.15)))))) + (define-public zig-zls zig-zls-0.13) diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm index 82484d652d..219896e730 100644 --- a/gnu/packages/zig.scm +++ b/gnu/packages/zig.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2021 Calum Irwin <calumirwin1@gmail.com> ;;; Copyright © 2022-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023, 2024 Hilton Chain <hako@ultrarare.space> +;;; Copyright © 2025 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2009,25 +2010,21 @@ toolchain. Among other features it provides (method git-fetch) (uri (git-reference (url "https://github.com/ziglang/libc-abi-tools") - (commit "21993a6036cc165485b20229589340dff9d4fc3c"))) + (commit "6878b563bd0620c626dc92c7b641a903b648c592"))) (file-name "libc-abi-tools") (sha256 - (base32 "0miwb0zfgfmm4bh2bs7982wpk0wp5vj2mz10x9c3m8fw7zzcyvbh")) - (modules '((guix build utils))) - (snippet - #~(substitute* "netbsd/consolidate.zig" - ((".write_buffer = buffer") ".write_buffer = &buffer"))))) + (base32 "0yfg3ggjmsricg44yalg2l6l5r3hk8lmgh485p6nhhgdiqfdwzng")))) (define-public zig-0.15 (package (inherit zig-0.14) (name "zig") - (version "0.15.1") + (version "0.15.2") (source (origin (inherit (zig-source version version - "1cp18plf0x5wip4rnxiqavaqnqxnqzhipb34in6zd3y7wihwjmj4")) + "0kr8y1xzb7ffqg4yy7ncg4jh6kndxn5xfqf2viy5gvqdqqql8ymv")) (patches (search-patches "zig-0.14-use-baseline-cpu-by-default.patch" diff --git a/gnu/services/ci.scm b/gnu/services/ci.scm index 595cad347e..08416e9962 100644 --- a/gnu/services/ci.scm +++ b/gnu/services/ci.scm @@ -180,6 +180,8 @@ (default "/var/lib/forgejo-runner")) (run-directory forgejo-runner-configuration-run-directory (default "/var/run/forgejo-runner")) + (log-file forgejo-runner-configuration-log-file + (default "/var/log/forgejo-runner.log")) ;; Configuration options for the YAML config file: ;; <https://forgejo.org/docs/latest/admin/runner-installation/#configuration>. @@ -259,7 +261,7 @@ (define (forgejo-runner-shepherd-service config) (match-record config <forgejo-runner-configuration> - (package data-directory run-directory name + (package data-directory run-directory log-file name capacity timeout fetch-timeout fetch-interval report-interval labels) (define runner (file-append package "/bin/forgejo-runner")) @@ -286,6 +288,7 @@ #:user "forgejo-runner" #:group "forgejo-runner" #:directory #$run-directory + #:log-file #$log-file #:environment-variables ;; Provide access to a fresh Guix obtained via 'guix ;; pull'. diff --git a/gnu/services/getmail.scm b/gnu/services/getmail.scm index 19faea782f..b44ca2ae3d 100644 --- a/gnu/services/getmail.scm +++ b/gnu/services/getmail.scm @@ -245,7 +245,7 @@ lines.") (symbol "unset") "A symbol to identify the getmail service.") (package - (file-like getmail) + (file-like getmail6) "The getmail package to use.") (user (string "getmail") diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index ee5913a1d8..51aaf550bf 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -126,14 +126,18 @@ nar-herder-configuration-database-dump nar-herder-configuration-host nar-herder-configuration-port + nar-herder-configuration-control-host + nar-herder-configuration-control-port nar-herder-configuration-storage nar-herder-configuration-storage-limit + nar-herder-configuration-storage-minimum-free-space nar-herder-configuration-storage-nar-removal-criteria nar-herder-configuration-log-level nar-herder-configuration-cached-compressions nar-herder-configuration-cached-compression-min-uses nar-herder-configuration-cached-compression-workers nar-herder-configuration-cached-compression-nar-source + nar-herder-configuration-extra-options nar-herder-configuration-extra-environment-variables nar-herder-cached-compression-configuration @@ -852,6 +856,9 @@ ca-certificates.crt file in the system profile." (default #f)) (storage-limit nar-herder-configuration-storage-limit (default "none")) + (storage-minimum-free-space + nar-herder-configuration-storage-minimum-free-space + (default "none")) (storage-nar-removal-criteria nar-herder-configuration-storage-nar-removal-criteria (default '())) @@ -875,6 +882,9 @@ ca-certificates.crt file in the system profile." (cached-compression-nar-source nar-herder-configuration-cached-compression-nar-source (default #f)) + (extra-options + nar-herder-configuration-extra-options + (default '())) (extra-environment-variables nar-herder-configuration-extra-environment-variables (default '()))) @@ -951,10 +961,13 @@ ca-certificates.crt file in the system profile." mirror database database-dump host port - storage storage-limit storage-nar-removal-criteria + control-host control-port + storage storage-limit storage-minimum-free-space + storage-nar-removal-criteria ttl new-ttl negative-ttl log-level cached-compressions cached-compression-min-uses cached-compression-workers cached-compression-nar-source + extra-options extra-environment-variables) (unless (or mirror storage) @@ -972,8 +985,10 @@ ca-certificates.crt file in the system profile." "--pid-file=/var/run/nar-herder/pid" #$(string-append "--port=" (number->string port)) #$(string-append "--host=" host) - #$(string-append "--control-port=" (number->string port)) - #$(string-append "--control-host=" host) + #$(string-append "--control-port=" + (number->string control-port)) + #$(string-append "--control-host=" + control-host) #$@(if mirror (list (string-append "--mirror=" mirror)) '()) @@ -986,6 +1001,11 @@ ca-certificates.crt file in the system profile." (if (number? storage-limit) (number->string storage-limit) storage-limit)) + #$(string-append + "--storage-minimum-free-space=" + (if (number? storage-minimum-free-space) + (number->string storage-minimum-free-space) + storage-minimum-free-space)) #$@(map (lambda (criteria) (string-append "--storage-nar-removal-criteria=" @@ -1022,7 +1042,8 @@ ca-certificates.crt file in the system profile." (list (simple-format #f "--cached-compression-nar-source=~A" cached-compression-nar-source)) - '())) + '()) + #$@extra-options) #:user #$user #:group #$group #:directory "/var/lib/nar-herder" diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index 06361ba49e..d276ba1b74 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016-2019, 2022-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016-2019, 2022-2023, 2025 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim@guixotic.coop> ;;; @@ -58,7 +58,6 @@ unload-services unload-service load-services - load-services/safe start-service stop-service restart-service @@ -297,14 +296,9 @@ service is transient." "Load and register the services from FILES, where FILES contain code that returns a shepherd <service> object." (eval-there `(register-services - ,@(map (lambda (file) - `(primitive-load ,file)) - files)))) - -(define load-services/safe - ;; Deprecated. It used to behave differently before service replacements - ;; were a thing. - load-services) + (list ,@(map (lambda (file) + `(primitive-load ,file)) + files))))) (define* (start-service name #:optional (arguments '())) (invoke-action name 'start arguments diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm index 14982cf1b5..8b692f2876 100644 --- a/gnu/tests/guix.scm +++ b/gnu/tests/guix.scm @@ -334,9 +334,10 @@ host all all ::1/128 trust")))))) (service dhcpcd-service-type) (service nar-herder-service-type (nar-herder-configuration - (host "0.0.0.0") - ;; Not a realistic value, but works for the test - (storage "/tmp"))))) + (host "0.0.0.0") + (control-host "0.0.0.0") + ;; Not a realistic value, but works for the test + (storage "/tmp"))))) (define (run-nar-herder-test) (define os @@ -349,11 +350,17 @@ host all all ::1/128 trust")))))) (nar-herder-configuration-port (nar-herder-configuration))) + (define control-forwarded-port + (nar-herder-configuration-control-port + (nar-herder-configuration))) + (define vm (virtual-machine (operating-system os) (memory-size 1024) - (port-forwardings `((,forwarded-port . ,forwarded-port))))) + (port-forwardings `((,forwarded-port . ,forwarded-port) + (,control-forwarded-port + . ,control-forwarded-port))))) (define test (with-imported-modules '((gnu build marionette)) @@ -390,6 +397,16 @@ host all all ::1/128 trust")))))) #:decode-body? #t))) (response-code response))) + (test-equal "control http-get" + 404 + (let-values + (((response text) + (http-get #$(simple-format + #f "http://localhost:~A/" + control-forwarded-port) + #:decode-body? #t))) + (response-code response))) + (test-end)))) (gexp->derivation "nar-herder-test" test)) @@ -477,3 +494,5 @@ host all all ::1/128 trust")))))) (name "bffe") (description "Connect to a running Build Farm Front-end.") (value (run-bffe-test)))) + +%nar-herder-os |
