diff options
37 files changed, 1523 insertions, 1098 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 1744f25f5f..a0c3803cc5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2293,6 +2293,7 @@ dist_patch_DATA = \ %D%/packages/patches/rw-igraph-0.10.patch \ %D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \ %D%/packages/patches/s7-flint-3.patch \ + %D%/packages/patches/safeint-disable-tests.patch \ %D%/packages/patches/sage-safeguard-sage-getargspec-cython.patch \ %D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \ %D%/packages/patches/sajson-build-with-gcc10.patch \ diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 83572e2fc6..564002202d 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -401,7 +401,7 @@ precision.") (define-public giac (package (name "giac") - (version "1.9.0-998") + (version "2.0.0-10") (source (origin (method url-fetch) @@ -413,7 +413,7 @@ precision.") "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/" "stable/main/source/giac_" version ".tar.gz")) (sha256 - (base32 "1r71kl21xxf3872r0q25r2b9wpg03zrp08rsnpyqrhajmxb0ljbz")))) + (base32 "1lzb0jjmkg5ml1qfl0m00qqng4sxgfqwrbq10gpkp4b301k2ckv1")))) (build-system gnu-build-system) (arguments (list @@ -428,12 +428,12 @@ precision.") (substitute* (cons "micropython-1.12/xcas/Makefile" (find-files "doc" "^Makefile")) (("/bin/cp") (which "cp"))))) - (add-after 'unpack 'disable-failing-test - ;; FIXME: Tests failing. Not sure why. - (lambda _ - (substitute* "check/Makefile.in" - (("chk_fhan(4|11)") "") - (("chk_fhan(14|21)") "")))) ;fail specifically on i686 + (replace 'bootstrap + (lambda _ + ;; XXX: Regenerate "src/mkjs" to avoid a build error because + ;; the default file is bogus in a Guix environment. + (delete-file "src/mkjs") + (invoke "autoreconf" "-vfi"))) (add-after 'install 'fix-doc (lambda _ ;; Most French documentation has a non-commercial license, so we @@ -454,7 +454,7 @@ precision.") ;; TODO: Unbundle "libmicropython.a". (list ao fltk-1.3 - glpk-4 + glpk gmp gsl libjpeg-turbo @@ -474,9 +474,12 @@ precision.") perl tcsh)) (native-inputs - (list bison + (list autoconf + automake + bison flex hevea + libtool python-wrapper readline (texlive-local-tree))) @@ -1235,6 +1238,28 @@ features, and more.") (synopsis "Micro-benchmarks of the Eigen linear algebra library"))) +(define-public eigen-for-onnxruntime + (let ((commit "1d8b82b0740839c0de7f1242a3585e3390ff5f33") + (revision "0")) + (package/inherit eigen + (name "eigen") + (version (git-version "3.4.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/libeigen/eigen") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pxh81jjnz97ndwaanla6zch1128bfdrf2kgqxgxyjvqbdg1vqwi")))) + ;; XXX: Some tests fail, but onnxruntime will move on to the next + ;; release soon enough. + (arguments + (substitute-keyword-arguments (package-arguments eigen) + ((#:tests? tests? #t) + #f)))))) + (define-public eigen-for-tensorflow (let ((changeset "fd6845384b86") (revision "1")) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 153eed9d9a..95c0de66eb 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -50,6 +50,7 @@ ;;; Copyright © 2024 mio <stigma@disroot.org> ;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me> ;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> +;;; Copyright © 2024 Sughosha <sughosha@disroot.org> ;;; Copyright © 2025 Junker <dk@junkeria.club> ;;; Copyright © 2025 Sughosha <sughosha@disroot.org> ;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com> @@ -3473,16 +3474,28 @@ provided by Pipewire.") (define-public python-pyaudio (package (name "python-pyaudio") - (version "0.2.12") + (version "0.2.14") (source (origin (method url-fetch) (uri (pypi-uri "PyAudio" version)) (sha256 - (base32 "17pvc27pn2xbisbq7nibhidyw8h2kyms7g2xbyx7nlxwfbdzbpam")))) - (build-system python-build-system) - (inputs - (list portaudio)) + (base32 "11rgpnahh2kr3x4plr0r7kpccmbplm35cj669wglv6dlg4wgzpvq")))) + (build-system pyproject-build-system) + (arguments + (list + ;; XXX: Most tests require access to devices. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? test-flags #:allow-other-keys) + (when tests? + (setenv "PYTHONPATH" (string-append (getcwd) "/tests")) + (apply invoke "python" test-flags))))))) + (native-inputs + (list python-numpy python-setuptools python-wheel)) + (inputs (list portaudio)) (home-page "https://people.csail.mit.edu/hubert/pyaudio/") (synopsis "Bindings for PortAudio v19") (description "This package provides bindings for PortAudio v19, the @@ -3673,6 +3686,52 @@ one-dimensional sample-rate conversion library.") files.") (license license:expat))) +(define-public python-wavefile + (package + (name "python-wavefile") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "wavefile" version)) + (sha256 + (base32 "120r003xy0cv6a4d4cjxv140im007klgkvzfgc57m70rcbnggi7p")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" (string-join + ;; Assertion fail to compare files. + (list "not test_allFormats" + "test_commonFormats" + "test_majorFormats" + "test_subtypeFormats") + " and not ")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-libsndfile-path + (lambda _ + (substitute* "wavefile/libsndfile.py" + (("'libsndfile") + (string-append "'" #$(this-package-input "libsndfile") + "/lib/libsndfile")))))))) + (native-inputs + (list python-pytest + python-pytest-cov + python-setuptools-next)) + (inputs + (list libsndfile + portaudio)) + (propagated-inputs + (list python-numpy + python-pyaudio)) + (home-page "https://github.com/vokimon/python-wavefile") + (synopsis "Pythonic audio file reader and writer") + (description + "This package provides pythonic libsndfile wrapper to read and write audio +files.") + (license license:gpl3+))) + (define-public audio-to-midi (package (name "audio-to-midi") diff --git a/gnu/packages/avr-xyz.scm b/gnu/packages/avr-xyz.scm index c684b6183b..4a3571175e 100644 --- a/gnu/packages/avr-xyz.scm +++ b/gnu/packages/avr-xyz.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2022, 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -34,6 +34,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages gcc) #:use-module (gnu packages avr) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) @@ -64,6 +65,13 @@ #:tests? #f #:phases #~(modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'disable-shared-library + (lambda _ + ;; XXX: "libsimavr.so"" fails to build due to a linker + ;; error. Disable the shared library for now. + (substitute* "simavr/Makefile" + (("ifeq \\(\\$\\{shell uname\\}, Linux\\)") + "ifeq (1, 0)")))) (replace 'check (lambda* (#:key tests? outputs #:allow-other-keys) (when tests? diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index c9d745c0d6..55087ed54a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -21337,32 +21337,35 @@ repeated areas between contigs.") (define-public vembrane (package (name "vembrane") - (version "0.13.2") + (version "1.0.7") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/vembrane/vembrane") - (commit (string-append "v" version)))) + (url "https://github.com/vembrane/vembrane") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1gdih56gpqd8ks3sd4ah844kac09hi3g073k9gvazb32ah50900w")))) + "127wmwj0162nfaql68jwxlkz7rbnjya70xrj4j8zwvcnxcj7x5v3")))) (build-system pyproject-build-system) (arguments (list #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "pyproject.toml" - (("pysam = \"\\^0.19\"") "pysam = \"^0.20\"") - (("numpy = \\{ version = \"\\^1.23\"") - "numpy = { version = \"^1\""))))))) + #~(modify-phases %standard-phases + (add-after 'unpack 'use-poetry-core + (lambda _ + ;; Patch to use the core poetry API. + (substitute* "pyproject.toml" + (("poetry.masonry.api") "poetry.core.masonry.api"))))))) (inputs - (list python-asttokens python-intervaltree python-numpy - python-pysam python-pyyaml)) + (list python-asttokens + python-intervaltree + python-numpy + python-pysam + python-pyyaml)) (native-inputs - (list poetry python-pytest)) + (list python-poetry-core + python-pytest)) (home-page "https://github.com/vembrane/vembrane") (synopsis "Filter VCF/BCF files with Python expressions") (description "Vembrane simultaneously filters variants based on @@ -24051,24 +24054,35 @@ parser for Python.") (define-public nanosv (package - (name "nanosv") - (version "1.2.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "NanoSV" version)) - (sha256 - (base32 - "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg")))) - (build-system python-build-system) - (inputs - (list python-configparser python-pysam python-pyvcf3)) - (home-page "https://github.com/mroosmalen/nanosv") - (synopsis "Structural variation detection tool for Oxford Nanopore data") - (description "NanoSV is a software package that can be used to identify + (name "nanosv") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "NanoSV" version)) + (sha256 + (base32 "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #f ; No tests upstream, even in git. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + (("'pyvcf'") + "'pyvcf3'"))))))) + (native-inputs (list python-setuptools python-wheel)) + (inputs (list python-configparser python-pysam python-pyvcf3)) + (home-page "https://github.com/mroosmalen/nanosv") + (synopsis "Structural variation detection tool for Oxford Nanopore data") + (description + "NanoSV is a software package that can be used to identify structural genomic variations in long-read sequencing data, such as data produced by Oxford Nanopore Technologies’ MinION, GridION or PromethION instruments, or Pacific Biosciences RSII or Sequel sequencers.") - (license license:expat))) + (license license:expat))) (define-public python-strawc (package diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 170d32f3e3..caf7efe197 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -720,29 +720,27 @@ a build worked by accident.") (file-name (git-file-name name version)) (sha256 (base32 "1sqdnkka3c6b6hwnrmlwrgy7w62cp8raq8mph9pgd2lydzzbvwlp")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'fix-filename - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) - ;; Main osc tool is renamed in spec file, not setup.py, let's - ;; do that too. - (rename-file - (string-append bin "osc-wrapper.py") - (string-append bin "osc")) - #t)))))) - (native-inputs - (list python-chardet)) - (inputs - (list python-m2crypto python-pycurl rpm)) ; for python-rpm + (list + ;; XXX: Tests require a config file. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'fix-filename + (lambda _ + (with-directory-excursion (string-append #$output "/bin") + ;; osc tool is renamed in spec file, not setup.py. + (rename-file "osc-wrapper.py" "osc"))))))) + (native-inputs (list python-chardet python-setuptools python-wheel)) + (inputs (list python-m2crypto python-pycurl rpm)) ;for python-rpm (home-page "https://github.com/openSUSE/osc") (synopsis "Open Build Service command line tool") - (description "@command{osc} is a command line interface to the Open Build -Service. It allows you to checkout, commit, perform reviews etc. The vast -majority of the OBS functionality is available via commands and the rest can -be reached via direct API calls.") + (description + "@command{osc} is a command line interface to the Open Build Service. It +allows you to checkout, commit, perform reviews etc. The vast majority of the +OBS functionality is available via commands and the rest can be reached via +direct API calls.") (license license:gpl2+))) (define-public compdb @@ -774,28 +772,36 @@ right compilation options.") (name "compiledb") (version "0.10.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "compiledb" version)) - (sha256 - (base32 "0vlngsdxfakyl8b7rnvn8h3l216lhbrrydr04yhy6kd03zflgfq6")))) - (build-system python-build-system) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nickdiego/compiledb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qricdgqzry7j3rmgwyd43av3c2kxpzkh6f9zcqbzrjkn78qbpd4")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'no-compat-shim-dependency - ;; shutilwhich is only needed for python 3.3 and earlier - (lambda _ - (substitute* "setup.py" (("^ *'shutilwhich'\n") "")) - (substitute* "compiledb/compiler.py" (("shutilwhich") "shutil"))))))) - (propagated-inputs - (list python-bashlex python-click)) - (native-inputs - (list python-pytest)) - (home-page - "https://github.com/nickdiego/compiledb") + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'no-compat-shim-dependency + ;; shutilwhich is only needed for python 3.3 and earlier + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "setup.py" + (("^ *'shutilwhich'\n") + "")) + (substitute* "compiledb/compiler.py" + (("shutilwhich") + "shutil")) + (substitute* "tests/data/multiple_commands_oneline.txt" + (("/bin/echo") + (search-input-file inputs "bin/echo")))))))) + (propagated-inputs (list python-bashlex python-click)) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (home-page "https://github.com/nickdiego/compiledb") (synopsis - "Generate Clang JSON Compilation Database files for make-based build systems") + "Generate Clang JSON Compilation Database files for make-based build systems") (description "@code{compiledb} provides a @code{make} python wrapper script which, besides executing the make build command, updates the JSON compilation diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index bcfdc26778..d20cbf31e0 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -717,69 +717,44 @@ from an audio CD.") (name "abcde") (version "2.9.3") (home-page "https://abcde.einval.com/") - (source (origin - (method url-fetch) - (uri (string-append home-page "/download/abcde-" - version ".tar.gz")) - (sha256 - (base32 - "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "Makefile" - (("/usr/bin/install") - "install")))))) + (source + (origin + (method url-fetch) + (uri (string-append home-page "/download/abcde-" version ".tar.gz")) + (sha256 + (base32 "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04")))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs inputs #:allow-other-keys) - (substitute* "Makefile" - (("^prefix = .*$") - (string-append "prefix = " - (assoc-ref outputs "out") - "\n")) - (("^sysconfdir = .*$") - (string-append "sysconfdir = " - (assoc-ref outputs "out") - "/etc/\n"))))) - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((wget (assoc-ref inputs "wget")) - (vorbis (assoc-ref inputs "vorbis-tools")) - (parano (assoc-ref inputs "cdparanoia")) - (which (assoc-ref inputs "which")) - (discid (assoc-ref inputs "cd-discid")) - (perl-discid (assoc-ref inputs "perl-musicbrainz-discid")) - (perl-ws (assoc-ref inputs "perl-webservice-musicbrainz")) - (perl-mojo (assoc-ref inputs "perl-mojolicious")) - (flac (assoc-ref inputs "flac")) - (out (assoc-ref outputs "out"))) - (define (wrap file) - (wrap-program file - `("PATH" ":" prefix - (,(string-append out "/bin:" - wget "/bin:" - flac "/bin:" - which "/bin:" - vorbis "/bin:" - discid "/bin:" - parano "/bin"))) - `("PERL5LIB" ":" prefix - (,(string-append perl-discid - "/lib/perl5/site_perl:" - perl-ws - "/lib/perl5/site_perl:" - perl-mojo - "/lib/perl5/site_perl"))))) - - (for-each wrap - (find-files (string-append out "/bin") - ".*")))))) - #:tests? #f)) ; no test target - + (list + #:tests? #f ; No test target. + #:modules `((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:make-flags + #~(list (string-append "INSTALL=" + #$(this-package-native-input "coreutils-minimal") + "/bin/install -c") + (string-append "prefix = " #$output) + (string-append "sysconfdir = " #$output "/etc/")) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'install 'wrap + (lambda* (#:key inputs #:allow-other-keys) + (for-each + (cut wrap-program <> + `("PATH" ":" prefix + ,(map (compose dirname (cut search-input-file inputs <>)) + (list "/bin/wget" + "/bin/flac" + "/bin/which" + "/bin/ogginfo" + "/bin/cd-discid" + "/bin/cdparanoia"))) + `("PERL5LIB" ":" prefix + (,(getenv "PERL5LIB")))) + (find-files (string-append #$output "/bin")))))))) + (native-inputs (list coreutils-minimal)) (inputs (list bash-minimal wget which @@ -793,7 +768,6 @@ from an audio CD.") ;; A couple of Python and Perl scripts are included. python perl)) - (synopsis "Command-line audio CD ripper") (description "abcde is a front-end command-line utility (actually, a shell script) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 004ddef446..9272c1dfc1 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -2237,26 +2237,24 @@ side-effects (such as setting environment variables).") (define-public python-scripttest (package (name "python-scripttest") - (version "1.3") + (version "2.0") (source (origin - (method url-fetch) - (uri (pypi-uri "scripttest" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/pypa/scripttest") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m")))) - (build-system python-build-system) - (native-inputs - (list python-pytest)) - (arguments - ;; Tests not shipped with PyPI archive, and require TLS CA cert. - (list #:tests? #f)) - (home-page (string-append "https://web.archive.org/web/20161029233413/" - "http://pythonpaste.org/scripttest/")) + (base32 "07cyrh4yp8497radz8cx7la2p8yr78r77xm62hh77hcs1migznaf")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (home-page "https://github.com/pypa/scripttest") (synopsis "Python library to test command-line scripts") - (description "Scripttest is a Python helper library for testing -interactive command-line applications. With it you can run a script in a -subprocess and see the output as well as any file modifications.") + (description + "Scripttest is a Python helper library for testing interactive +command-line applications. With it you can run a script in a subprocess and +see the output as well as any file modifications.") (license license:expat))) (define-public python-testtools-bootstrap @@ -2907,32 +2905,23 @@ failures.") (package (name "python-pytest-freezegun") (version "0.4.2") - (source (origin - ;; The test suite is not included in the PyPI archive. - (method git-fetch) - (uri (git-reference - (url "https://github.com/ktosiek/pytest-freezegun") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10c4pbh03b4s1q8cjd75lr0fvyf9id0zmdk29566qqsmaz28npas")))) - (build-system python-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv"))))))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ktosiek/pytest-freezegun") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10c4pbh03b4s1q8cjd75lr0fvyf9id0zmdk29566qqsmaz28npas")))) + (build-system pyproject-build-system) (propagated-inputs (list python-freezegun python-pytest)) - (native-inputs (list unzip)) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/ktosiek/pytest-freezegun") (synopsis "Pytest plugin to freeze time in test fixtures") - (description "The @code{pytest-freezegun} plugin wraps tests and fixtures -with @code{freeze_time}, which controls (i.e., freeze) the time seen -by the test.") + (description + "The @code{pytest-freezegun} plugin wraps tests and fixtures with +@code{freeze_time}, which controls (i.e., freeze) the time seen by the test.") (license license:expat))) (define-public python-pytest-mypy @@ -3215,26 +3204,6 @@ pragmas to control it from within your code. Additionally, it is possible to write plugins to add your own checks.") (license license:gpl2+))) -(define-public python-pytest-capturelog - (package - (name "python-pytest-capturelog") - (version "0.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pytest-capturelog" version ".tar.gz")) - (sha256 - (base32 - "038049nyjl7di59ycnxvc9nydivc5m8np3hqq84j2iirkccdbs5n")))) - (build-system python-build-system) - (propagated-inputs - (list python-pytest)) - (home-page "https://bitbucket.org/memedough/pytest-capturelog/overview") - (synopsis "Pytest plugin to catch log messages") - (description - "Python-pytest-catchlog is a pytest plugin to catch log messages.") - (license license:expat))) - (define-public python-nosexcover (package (name "python-nosexcover") diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index aac96f96a7..e060795da9 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -3664,34 +3664,36 @@ getopt(), getopt_long() and getopt_long_only().") (define-public safeint (package (name "safeint") - (version "3.0.27") - (home-page "https://github.com/dcleblanc/SafeInt") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "01d2dpdhyw3lghmamknb6g39w2gg0sv53pgxlrs2la8h694z6x7s")))) + (version "3.0.28") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dcleblanc/SafeInt") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bgqvyz5zp4mqzkm9545r3564n52bcdnq8bjn6azhxdsmap26g56")) + (patches + (search-patches "safeint-disable-tests.patch")))) (build-system cmake-build-system) (arguments - (list #:phases #~(modify-phases %standard-phases - (replace 'install - (lambda _ - (let ((include-dir (string-append #$output - "/include"))) - (with-directory-excursion "../source" - (install-file "SafeInt.hpp" include-dir) - (install-file "safe_math.h" include-dir) - (install-file "safe_math_impl.h" include-dir))))) - (add-after 'install 'install-doc - (lambda _ - (let ((doc-dir (string-append #$output - "/share/doc/safeint"))) - (with-directory-excursion "../source" - (install-file "helpfile.md" doc-dir)))))))) + (list + #:phases + #~(modify-phases %standard-phases + (replace 'install + (lambda _ + (let ((include-dir (string-append #$output "/include"))) + (with-directory-excursion "../source" + (install-file "SafeInt.hpp" include-dir) + (install-file "safe_math.h" include-dir) + (install-file "safe_math_impl.h" include-dir))))) + (add-after 'install 'install-doc + (lambda _ + (let ((doc-dir (string-append #$output "/share/doc/safeint"))) + (with-directory-excursion "../source" + (install-file "helpfile.md" doc-dir)))))))) + (home-page "https://github.com/dcleblanc/SafeInt") (synopsis "C and C++ library for managing integer overflows") (description "SafeInt is a class library for C++ that manages integer overflows. It diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 8322818b77..e448e68090 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -53,6 +53,7 @@ #:use-module (gnu packages polkit) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages scanner) @@ -61,6 +62,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix gexp) @@ -1078,20 +1080,24 @@ obtained and installed separately.") (define-public python-pycups (package (name "python-pycups") - (version "2.0.1") + (version "2.0.4") (source (origin - (method url-fetch) - (uri (pypi-uri "pycups" version ".tar.bz2")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/zdohnal/pycups") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "140c7073bkhx8w9qpaynllhynkkg0rzj3a4wjh9fnj15yvjlqhsp")))) - (build-system python-build-system) + (base32 "1fx2b04wr9mv87lxk8jpglkyaqwj7bhlj6hnai0dji3jm503dqlb")))) + (build-system pyproject-build-system) (arguments - '(;; Tests require CUPS to be running - #:tests? #f)) - (inputs - (list cups)) + (list + ;; XXX: Tests require CUPS to be running, a cups configuration, and + ;; access to associated printers. + #:tests? #f)) + (inputs (list cups)) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/zdohnal/pycups") (synopsis "Python bindings for libcups") (description diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 881047af9d..00fa390886 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -3964,35 +3964,30 @@ with relational data.") (define-public aerich (package (name "aerich") - (version "0.7.2") + (version "0.8.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/tortoise/aerich") - (commit (string-append "v" version)))) + (url "https://github.com/tortoise/aerich") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "0pcy945bg890p12s7cyw0mg7hxwsxyy570j600sbf7kwj2d3lilg")))) + (base32 "1cln1ik7519n6k4lnh06w956lp8xjb0khkkpsmaj8wqlm0jbvdbi")))) (build-system pyproject-build-system) (native-inputs - (list poetry - python-bandit - python-cryptography - python-isort - python-pydantic + (list python-cryptography python-pytest + python-poetry-core python-pytest-asyncio - python-pytest-mock - python-pytest-xdist)) + python-pytest-mock)) (propagated-inputs - (list python-asyncmy + (list python-asyncclick + python-asyncmy python-asyncpg - python-click - python-ddlparse python-dictdiffer - python-tomlkit + python-pydantic + python-tomli-w python-tortoise-orm)) (home-page "https://github.com/tortoise/aerich") (synopsis "Database migrations tool for Tortoise @acronym{ORM, Object Relational @@ -4118,47 +4113,41 @@ etc., and an SQL engine for performing simple SQL queries.") (package (name "python-lmdb") (version "1.0.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "lmdb" version)) - (sha256 - (base32 - "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1")) - (modules '((guix build utils))) - (snippet - ;; Delete bundled lmdb source files. - '(begin - (for-each delete-file (list "lib/lmdb.h" - "lib/mdb.c" - "lib/midl.c" - "lib/midl.h")) - #t)))) - (build-system python-build-system) - (inputs - (list lmdb)) + (source + (origin + (method url-fetch) + (uri (pypi-uri "lmdb" version)) + (sha256 + (base32 "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1")) + (snippet + ;; Delete bundled lmdb source files. + #~(for-each delete-file + '("lib/lmdb.h" "lib/mdb.c" "lib/midl.c" "lib/midl.h"))))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'build 'use-system-lmdb - (lambda* (#:key inputs #:allow-other-keys) - (let ((lmdb (assoc-ref inputs "lmdb"))) - (setenv "LMDB_PURE" "set") ; don't apply env-copy-txn.patch - (setenv "LMDB_FORCE_SYSTEM" "set") - (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include")) - (setenv "LMDB_LIBDIR" (string-append lmdb "/lib")) - #t)))) - ;; Tests fail with: ‘lmdb.tool: Please specify environment (--env)’. - #:tests? #f)) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'use-system-lmdb + (lambda* (#:key inputs #:allow-other-keys) + (let ((lmdb (assoc-ref inputs "lmdb"))) + (setenv "LMDB_PURE" "set") ;don't apply env-copy-txn.patch + (setenv "LMDB_FORCE_SYSTEM" "set") + (setenv "LMDB_INCLUDEDIR" + (string-append lmdb "/include")) + (setenv "LMDB_LIBDIR" + (string-append lmdb "/lib")))))))) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (inputs (list lmdb)) (home-page "https://github.com/dw/py-lmdb") (synopsis "Python binding for the ‘Lightning’ database (LMDB)") (description "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning Memory-Mapped Database} (LMDB), a high-performance key-value store.") - (license - (list license:openldap2.8 - ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3, - ;; but not actually needed on platforms currently supported by Guix. - license:bsd-3)))) + (license (list license:openldap2.8 + ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3, + ;; but not actually needed on platforms currently supported by Guix. + license:bsd-3)))) (define-public virtuoso-ose (package @@ -4399,34 +4388,28 @@ You might also want to install the following optional dependencies: (name "python-alchemy-mock") (version "0.4.3") (home-page "https://github.com/miki725/alchemy-mock") - (source (origin - (method url-fetch) - (uri (pypi-uri "alchemy-mock" version)) - (sha256 - (base32 - "0ylxygl3bcdapzz529n8wgk7vx9gjwb3ism564ypkpd7dbsw653r")) - (snippet - #~(begin (use-modules (guix build utils)) - (substitute* "alchemy_mock/comparison.py" - (("collections\\.Mapping") "collections.abc.Mapping")))))) - (build-system python-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/miki725/alchemy-mock") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "053gj8d8ca5kpp7v61wd7lcm9mqp9xqz3d8pp9spdbcjsaqz9nk9")) + (snippet #~(begin + (use-modules (guix build utils)) + (substitute* "alchemy_mock/comparison.py" + (("collections\\.Mapping") + "collections.abc.Mapping")))))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Create pytest.ini that adds doctest options to - ;; prevent test failure. Taken from tox.ini. - (call-with-output-file "pytest.ini" - (lambda (port) - (format port "[pytest] -doctest_optionflags=IGNORE_EXCEPTION_DETAIL -"))) - (invoke "pytest" "-vv" "--doctest-modules" - "alchemy_mock/")))))) - (native-inputs - (list python-mock python-pytest)) - (propagated-inputs - (list python-six python-sqlalchemy)) + (list + #:test-flags + #~(list "--doctest-modules" "alchemy_mock"))) + (native-inputs (list python-mock python-pytest python-setuptools + python-wheel)) + (propagated-inputs (list python-sqlalchemy)) (synopsis "Mock helpers for SQLAlchemy") (description "This package provides mock helpers for SQLAlchemy that makes it easy @@ -4858,13 +4841,13 @@ files or Python scripts that define a list of migration steps.") (define-public python-mysqlclient (package (name "python-mysqlclient") - (version "2.2.4") + (version "2.2.7") (source (origin (method url-fetch) (uri (pypi-uri "mysqlclient" version)) (sha256 - (base32 "0hdznfz9095d2qhl7awbp39s7wpqbxn37xzan487qzaf8srrzg1k")))) + (base32 "0i9q2vj6rb4w2iggk0mcp9jla2rm91sx7jcrgv7grm8njjsj5bi4")))) (build-system pyproject-build-system) (arguments (list #:test-flags diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index c54473f6f1..dcaf39c7a3 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -59,7 +59,7 @@ (define-public debian-archive-keyring (package (name "debian-archive-keyring") - (version "2023.4") + (version "2025.1") (source (origin (method git-fetch) @@ -68,10 +68,10 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0gn24dgzpg9zwq2hywkac4ljr5lrh7smyqxm21k2bivl0bhc4ca6")))) + (base32 "11i6gpff0sa7a6cngj3n3ysdphw745zp39zlhpw4iiv6mmqmp99m")))) (build-system gnu-build-system) (arguments - '(#:test-target "verify-results" + '(#:tests? #f ; no tests #:parallel-build? #f ; has race conditions #:phases (modify-phases %standard-phases @@ -158,6 +158,105 @@ contains the archive keys used for that.") ;; "The keys in the keyrings don't fall under any copyright." (license license:public-domain))) +(define-public elxr-archive-keyring + (package + (name "elxr-archive-keyring") + (version "2024.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.com/elxr/packages/elxr-archive-keyring") + (commit (string-append "upstream/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cw7sn22g82g01g7xb4fp8pb6nvb4lck269w1i91rfcmhqxb4iz7")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "elxr-archive-keyring.gpg" + (string-append #$output "/share/keyrings/"))))))) + (native-inputs (list gnupg)) + (home-page "https://pkg.elxr.org/pkg/elxr-archive-keyring") + (synopsis "GnuPG archive keys of the Elxr archive") + (description "The Elxr distribution signs its packages. This package +contains the archive keys used for that.") + (license (list license:public-domain ;; the keys + license:gpl2+)))) + +(define-public kali-archive-keyring + (package + (name "kali-archive-keyring") + (version "2025.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.com/kalilinux/packages/kali-archive-keyring") + (commit (string-append "kali/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07iwh24myf3s2ziqd2wwzclm48vyv0qvddz0rb6771laaal4wd7w")) + (modules '((guix build utils))) + (snippet #~(delete-file-recursively "debian")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "kali-archive-keyring.gpg" + (string-append #$output "/share/keyrings/"))))))) + (native-inputs (list gnupg)) + (home-page "https://pkg.kali.org/pkg/kali-archive-keyring") + (synopsis "GnuPG archive keys of the Kali archive") + (description "The Kali distribution signs its packages. This package +contains the archive keys used for that.") + (license (list license:public-domain ;; the keys + license:gpl2+)))) + +(define-public pardus-archive-keyring + (package + (name "pardus-archive-keyring") + (version "2021.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://depo.pardus.org.tr/pardus/pool/main/p/" + "pardus-archive-keyring/pardus-archive-keyring_" + version ".tar.xz")) + (sha256 + (base32 "0h4y9clpcfprx7fq2yy2bb22ykax5a0wlw8zlcq9kbiya83q02yr")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "keyrings/pardus-archive-keyring.gpg" + (string-append #$output "/share/keyrings/"))))))) + (native-inputs (list jetring)) + (home-page "https://tracker.pardus.org.tr/yirmiuc/pardus-archive-keyring") + (synopsis "GnuPG archive keys of the Pardus archive") + (description "The Pardus distribution signs its packages. This package +contains the archive keys used for that.") + (license (list license:public-domain ;; the keys + license:gpl2+)))) + (define-public pureos-archive-keyring (package (name "pureos-archive-keyring") @@ -403,84 +502,74 @@ debbugs server.") (define-public debootstrap (package (name "debootstrap") - (version "1.0.134") + (version "1.0.141") (source - (origin - (method git-fetch) - (uri (git-reference + (origin + (method git-fetch) + (uri (git-reference (url "https://salsa.debian.org/installer-team/debootstrap.git") (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0k9gi6gn8qlqs81r2q1hx5wfyax3nvpkk450girdra7dh54iidr4")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xdw29cygp0ii65kz8ns8hf0lfrwdjhaxf3sm6q304cm0ic2m7aj")))) (build-system gnu-build-system) (arguments (list - #:phases - #~(modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'patch-source - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((debian #$(this-package-input "debian-archive-keyring")) - (pureos #$(this-package-input "pureos-archive-keyring")) - (trisquel #$(this-package-input "trisquel-keyring")) - (ubuntu #$(this-package-input "ubuntu-keyring"))) - (substitute* "Makefile" - (("/usr") "")) - (substitute* '("scripts/etch" - "scripts/potato" - "scripts/sarge" - "scripts/sid" - "scripts/woody" - "scripts/woody.buildd") - (("/usr") debian)) - (substitute* "scripts/gutsy" - (("/usr") ubuntu)) - (substitute* "scripts/amber" - (("/usr/share/keyrings/pureos-archive-keyring.gpg") - (string-append - pureos - "/share/keyrings/pureos-archive-keyring.gpg"))) - (substitute* "scripts/robur" - (("/usr/share/keyrings/trisquel-archive-keyring.gpg") - (string-append - trisquel - "/share/keyrings/trisquel-archive-keyring.gpg"))) - (substitute* "debootstrap" - (("=/usr") (string-append "=" #$output)) - (("/usr/bin/dpkg") (search-input-file inputs "/bin/dpkg"))) - ;; Include the keyring locations by default. - (substitute* (find-files "scripts") - (("keyring.*(debian-archive-keyring.gpg)"_ keyring) - (string-append "keyring " debian "/share/keyrings/" keyring)) - (("keyring.*(pureos-archive-keyring.gpg)" _ keyring) - (string-append "keyring " pureos "/share/keyrings/" keyring)) - (("keyring.*(trisquel-archive-keyring.gpg)" _ keyring) - (string-append "keyring " trisquel "/share/keyrings/" keyring)) - (("keyring.*(ubuntu-archive-keyring.gpg)" _ keyring) - (string-append "keyring " ubuntu "/share/keyrings/" keyring))) - ;; Ensure PATH works both in guix and within the debian chroot - ;; workaround for: https://bugs.debian.org/929889 - (substitute* "functions" - (("PATH=/sbin:/usr/sbin:/bin:/usr/bin") - "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin")) - (substitute* (find-files "scripts") - (("/usr/share/zoneinfo") - (search-input-directory inputs "/share/zoneinfo")))))) - (add-after 'install 'install-man-file - (lambda* (#:key outputs #:allow-other-keys) - (install-file "debootstrap.8" - (string-append #$output "/share/man/man8")))) - (add-after 'install 'wrap-executable - (lambda* (#:key outputs #:allow-other-keys) - (let ((debootstrap (string-append #$output "/sbin/debootstrap")) - (path (getenv "PATH"))) - (wrap-program debootstrap - `("PATH" ":" prefix (,path))))))) - #:make-flags #~(list (string-append "DESTDIR=" #$output)) - #:tests? #f)) ; no tests + #:tests? #f ; no tests + #:modules '((guix build gnu-build-system) + (guix build utils) + (ice-9 textual-ports) + (srfi srfi-1) + (srfi srfi-26)) + #:make-flags #~(list (string-append "DESTDIR=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile" + (("/usr") "")) + (substitute* "debootstrap" + (("=/usr") (string-append "=" #$output)) + (("/usr/bin/dpkg") (search-input-file inputs "/bin/dpkg"))) + ;; XXX: For unsupported distros (here, tangly is abandonned), we + ;; simply remove the scripts, otherwise the following substitute* + ;; will error. + (for-each + delete-file + (find-files + "scripts" + (lambda (file stat) + (let ((content (call-with-input-file file get-string-all))) + (any (compose (cut string-contains content <>) + (cut string-append "/usr/share/keyrings/" <> + "-archive-keyring.gpg")) + (list "tanglu")))))) + (substitute* (find-files "scripts") + ;; Include the keyring locations by default. + (("/usr(/share/keyrings/.*.gpg)"_ keyring) + (search-input-file inputs keyring)) + ;; Patch zoneinfo. + (("/usr/share/zoneinfo") + (search-input-directory inputs "/share/zoneinfo"))) + ;; Ensure PATH works both in guix and within the debian chroot + ;; workaround for: https://bugs.debian.org/929889 + (substitute* "functions" + (("PATH=/sbin:/usr/sbin:/bin:/usr/bin") + "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin")))) + (add-after 'install 'install-man-file + (lambda _ + (install-file "debootstrap.8" + (string-append #$output "/share/man/man8")))) + (add-after 'install 'wrap-executable + (lambda _ + (wrap-program (string-append #$output "/sbin/debootstrap") + `("PATH" ":" prefix (,(getenv "PATH"))))))))) (inputs (list debian-archive-keyring + elxr-archive-keyring + kali-archive-keyring + pardus-archive-keyring pureos-archive-keyring trisquel-keyring ubuntu-keyring diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 3b61044109..0e03219d27 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -336,7 +336,7 @@ frequently used words in American English.") (define-public tipp10 (package (name "tipp10") - (version "3.3.0") + (version "3.3.4") (source (origin (method git-fetch) ;; Use the community maintained Qt 6 fork of the project, as the @@ -348,7 +348,7 @@ frequently used words in American English.") (file-name (git-file-name name version)) (sha256 (base32 - "138xf55csnq53mlkhj50g9bacay8kxz6p9vnzd7jyv6rq1xch5nq")))) + "1a6swdzf15jrqafwzv7grkdcl4a4nhpm8b8lh6br0djxkzqzx45b")))) (build-system qt-build-system) (arguments (list #:qtbase qtbase ;qtbase 6 #:tests? #f)) ;packages has no tests diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 7c8202dd71..b456507324 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -468,10 +468,10 @@ It aims to support Nintendo DSi and 3DS as well.") "rangeset" "rcheevos") ;submodule (with-directory-excursion "Externals" + ;; Note: Not copying implot sources here, which would + ;; introduce a top-level circular dependency. (copy-recursively #$dolphin-rcheevos-submodule - "rcheevos/rcheevos") - (copy-recursively #$(package-source implot) - "implot/implot")) + "rcheevos/rcheevos")) (for-each delete-file (find-files @@ -495,6 +495,10 @@ It aims to support Nintendo DSi and 3DS as well.") (guix build utils)) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'copy-implot-source + (lambda _ + (copy-recursively #$(package-source implot) + "Externals/implot/implot"))) (add-before 'configure 'generate-fonts&hardcode-libvulkan-path (lambda* (#:key inputs #:allow-other-keys) (let ((fontfile diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 7408389b91..236cdbf960 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -2496,38 +2496,59 @@ filtering and ordering functionality. (license license:gpl3+))) (define-public watcher - (package - (name "watcher") - (version "0.13.6") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/e-dant/watcher") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ikcdskb3z3wggxb12vi0y3rng2hcswl0fpk6sjqqlz34nvwijcr")))) - (build-system cmake-build-system) - (arguments - (list #:configure-flags - #~(list "-DBUILD_TESTING=ON" - ;; This is needed to find 'snitch' from the system. - "-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS") - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH"))) - (substitute* "../source/tool/test/.ctx" - (("../../out") - "../../../build") - (("which") "command -v")) - (invoke "../source/tool/test/all")))))) - (native-inputs (list jq snitch)) - (home-page "https://github.com/e-dant/watcher") - (synopsis "File system watcher program and library") - (description "Watcher may be used as a library or a program that can be + (let ((commit "0aff9ee86f0b62f17d7b0105cae6304ef1bcfbb2") + (revision "0")) + (package + (name "watcher") + (version (git-version "0.13.6" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/e-dant/watcher") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10bwdqnhgpsk2w60331npspkqjvdgb0jh2by89g8d3hwfjibk3p4")))) + (build-system cmake-build-system) + (arguments + (list + ;; The test suite is currently flaky + ;; (see: https://github.com/e-dant/watcher/issues/85). + #:tests? #f + #:configure-flags + #~(list "-DBUILD_TESTING=ON" + ;; This is needed to find 'snitch' from the system. + "-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-.pc-files-prefix + ;; There are some issues with the new .pc files (see: + ;; <https://github.com/e-dant/watcher/issues/82>). + (lambda _ + (substitute* "CMakeLists.txt" + (("\"\\$\\{CMAKE_INSTALL_LIBDIR}\"") + "\"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\"") + (("\\$\\{CMAKE_INSTALL_INCLUDEDIR}/wtr") + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/wtr")) + (substitute* "watcher.pc.in" + (("@PC_WATCHER_PREFIX@") + #$output)) + (substitute* "watcher-c/watcher-c.pc.in" + (("@PC_LIBWATCHER_C_PREFIX@") + #$output)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH"))) + (substitute* "../source/tool/test/.ctx" + (("../../out") + "../../../build")) + (invoke "../source/tool/test/all"))))))) + (native-inputs (list jq snitch)) + (home-page "https://github.com/e-dant/watcher") + (synopsis "File system watcher program and library") + (description "Watcher may be used as a library or a program that can be used to efficiently watch a file system for changes. This package provides the following components: @table @asis @@ -2540,4 +2561,4 @@ Command-line interface (CLI) @item @command{tw} Minimal, more human-readable CLI variant @end table") - (license license:expat))) + (license license:expat)))) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 205f252b7d..3da97f5b4b 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -1001,28 +1001,35 @@ the Monero GUI client.") (license license:bsd-3))) (define-public python-bech32 - (package - (name "python-bech32") - (version "1.2.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "bech32" version)) - (sha256 - (base32 - "16fq5cfy5id9hp123ylhpl55pf38xwk0hv7sziqpig838qhvhvbx")))) - (build-system python-build-system) - (home-page "https://github.com/fiatjaf/bech32") - (synopsis "Reference implementation for Bech32 and Segwit addresses") - (description "This package provides a python reference implementation for + ;; XXX: No tags upstream. + (let ((commit "231e4d88b15f3dc8faf7d339f365b84f6ab5cbcc") + (revision "0")) + (package + (name "python-bech32") + (version (git-version "1.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fiatjaf/bech32") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wq6q0yrw3x42d81v445xy4nh2qlrn7swsydgpv81dkay11kajrz")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://github.com/fiatjaf/bech32") + (synopsis "Reference implementation for Bech32 and Segwit addresses") + (description "This package provides a python reference implementation for Bech32 and segwit addresses.") - (license license:expat))) + (license license:expat)))) (define-public python-trezor-agent ;; It is called 'libagent' in pypi; i.e. this is the library as opposed to ;; the toplevel app called trezor-agent. (package (name "python-trezor-agent") - (version "0.14.7") + (version "0.15.0") (source (origin (method git-fetch) @@ -1031,22 +1038,21 @@ Bech32 and segwit addresses.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "04dds5bbw73nk36zm8d02qw6qr92nrlcf8r1cq8ba96mzi34jbk0")))) - (build-system python-build-system) + (base32 "09y55ys3x5krszh58yhl5gpdri0zrlhfld6psrmiyxfbp344asin")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-requires-backports-shutil-which - ;; Remove requires on backport of shutil_which, as python 3.4+ has - ;; a built-in implementation supported in python-trezor-agent. - (lambda _ - (substitute* "setup.py" - (("'backports.shutil_which>=3.5.1',") "")))) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-v"))))))) + (list + #:test-flags + ;; XXX: Requires $HOME to be /run/user. + #~(list "-k" "not test_get_agent_sock_path") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-requires-backports-shutil-which + ;; Remove requires on backport of shutil_which, as python 3.4+ has + ;; a built-in implementation supported in python-trezor-agent. + (lambda _ + (substitute* "setup.py" + (("'backports.shutil_which>=3.5.1',") ""))))))) (propagated-inputs (list python-bech32 python-configargparse @@ -1064,7 +1070,9 @@ Bech32 and segwit addresses.") (native-inputs ; Only needed for running the tests (list gnupg python-mock - python-pytest)) + python-pytest + python-setuptools + python-wheel)) (home-page "https://github.com/romanz/trezor-agent") (synopsis "Use hardware wallets as SSH and GPG agent") (description @@ -1340,7 +1348,7 @@ the KeepKey Hardware Wallet.") (uri (origin-uri (package-source python-trezor-agent))) (file-name (git-file-name name version)) (sha256 - (base32 "04dds5bbw73nk36zm8d02qw6qr92nrlcf8r1cq8ba96mzi34jbk0")) + (base32 "09y55ys3x5krszh58yhl5gpdri0zrlhfld6psrmiyxfbp344asin")) (modules '((guix build utils) (ice-9 ftw) @@ -1360,45 +1368,40 @@ the KeepKey Hardware Wallet.") (scandir "./agents/trezor/" (negate (cut member <> '("." "..") string=)))) (delete-file-recursively "./agents") - ;; Without deleting ./contrib the sanity-check phase fails. Reported - ;; upstream as https://github.com/romanz/trezor-agent/issues/429. - (delete-file-recursively "./contrib") ;; Without deleting ./libagent setuptools complains as follows: ;; "error: Multiple top-level packages discovered in a flat-layout: ['contrib', 'libagent']." (delete-file-recursively "./libagent"))))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "setup.py" - (("'trezor\\[hidapi]>=0.12.0,<0.13'") - "'trezor[hidapi]>=0.13'")))) - (add-after 'wrap 'fixup-agent-py - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - ;; The wrap phase also wraps trezor_agent.py (besides the - ;; public facing executable called trezor-agent). We need to - ;; undo that wrapping. The reason this is needed is that the - ;; python easy install generates a toplevel script (?) that - ;; messes with argv[0] and then re-opens the python - ;; module. This fails when the wrapped file is actually a shell - ;; script, not a python file. - (delete-file (string-append out "/bin/.trezor_agent.py-real")) - ;; Overwrite the wrapped one with the real thing. - (install-file "./trezor_agent.py" - (string-append out "/bin")))))))) - (build-system python-build-system) + (list + #:tests? #f ; No tests there. + #:phases + #~(modify-phases %standard-phases + (add-after 'wrap 'fixup-agent-py + (lambda _ + ;; The wrap phase also wraps trezor_agent.py (besides the public + ;; facing executable called trezor-agent). We need to undo that + ;; wrapping. The reason this is needed is that the python easy + ;; install generates a toplevel script (?) that messes with + ;; argv[0] and then re-opens the python module. This fails when + ;; the wrapped file is actually a shell script, not a python file. + (delete-file + (string-append #$output "/bin/.trezor_agent.py-real")) + ;; Overwrite the wrapped one with the real thing. + (install-file "./trezor_agent.py" + (string-append #$output "/bin"))))))) (inputs (list python-trezor python-trezor-agent)) (native-inputs ; Only needed for running the tests (list python-attrs python-bech32 - python-simple-rlp)) + python-simple-rlp + python-setuptools + python-wheel)) (home-page "https://github.com/romanz/trezor-agent") (synopsis "Using Trezor as hardware SSH/GPG agent") - (description "This package allows using Trezor as a hardware SSH/GPG -agent.") + (description + "This package allows using Trezor as a hardware SSH/GPG agent.") (license license:lgpl3))) (define-public keepkey-agent diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index aa1454ca96..caeba83735 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -918,14 +918,14 @@ It also includes runtime support libraries for these languages.") (define-public gcc-15 (package (inherit gcc-14) - (version "15.1.0") + (version "15.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.xz")) (sha256 (base32 - "1skcy1a3wwb8k25f9l1qy11nj8b5089f05dpzzn1zw302v19xc72")) + "0knj4ph6y7r7yhnp1v4339af7mki5nkh7ni9b948433bhabdk3s3")) (patches (search-patches "gcc-12-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 40a5cf7401..1e78a9de27 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -327,7 +327,7 @@ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/predicates_init.c \ (file-name (git-file-name name version)) (sha256 (base32 "1l34ahvcz90j3j7aspp9wqvxpq10mzgq7l0sanrj142ihdnbahvy")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments (list #:phases #~(modify-phases %standard-phases @@ -350,13 +350,12 @@ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/predicates_init.c \ (setenv "LD_LIBRARY_PATH" (dirname lib))))) ;; We wrap xdot, so that we don't propagate gtk+ and graphviz - (add-after 'install 'wrap + (replace 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (graphviz (assoc-ref inputs "graphviz")) + (let ((graphviz (assoc-ref inputs "graphviz")) (gi-typelib-path (getenv "GI_TYPELIB_PATH")) (python-path (getenv "GUIX_PYTHONPATH"))) - (wrap-program (string-append out "/bin/xdot") + (wrap-program (string-append #$output "/bin/xdot") `("PATH" ":" prefix (,(string-append graphviz "/bin"))) `("GI_TYPELIB_PATH" ":" prefix @@ -381,6 +380,8 @@ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/predicates_init.c \ python-numpy python-pycairo python-pygobject + python-setuptools + python-wheel vulkan-loader)) (home-page "https://pypi.org/project/xdot/") (synopsis "Interactive viewer for graphviz dot files") diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index f0ee0fd807..96153a4415 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -374,6 +374,63 @@ provides a single @code{GetBlock/AddBlock} interface that seamlessly retrieves data either locally or from a remote peer through the exchange.") (license license:expat))) +(define-public go-github-com-ipfs-go-cid + (package + (name "go-github-com-ipfs-go-cid") + (version "0.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-cid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gfd5dg0shj2daraai2kkf8sg24jp5cr6dsv857wp4q1ni612a23")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-cid")) + (propagated-inputs + (list go-github-com-multiformats-go-multihash + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-varint)) + (home-page "https://github.com/ipfs/go-cid") + (synopsis "Content ID v1 implemented in Go") + (description + "Implementation in Go of the @url{https://github.com/ipld/cid, CID spec}. It is +used in @code{go-ipfs} and related packages to refer to a typed hunk of data.") + (license license:expat))) + +(define-public go-github-com-ipfs-go-cidutil + (package + (name "go-github-com-ipfs-go-cidutil") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-cidutil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j18wf42rfxrrh2fjdbjsjvjqxwgvg46b9wl6y5ig22fx5hvpm1n")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-cidutil")) + (propagated-inputs + (list go-github-com-ipfs-go-cid + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-multicodec + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipfs/go-cidutil") + (synopsis "Utility functions and types for working with CIDs") + (description + "@code{go-cidutil} implements various utilities and helper functions for working +with @url{https://github.com/ipld/cid, CIDs}.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ds-badger4 (package (name "go-github-com-ipfs-go-ds-badger4") @@ -618,63 +675,6 @@ datastore, giving a clean interface for getting and putting block objects.") @url{https://github.com/ipfs/go-block-format, IPFS blocks}.") (license license:expat))) -(define-public go-github-com-ipfs-go-cid - (package - (name "go-github-com-ipfs-go-cid") - (version "0.4.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-cid") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0gfd5dg0shj2daraai2kkf8sg24jp5cr6dsv857wp4q1ni612a23")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-cid")) - (propagated-inputs - (list go-github-com-multiformats-go-multihash - go-github-com-multiformats-go-multibase - go-github-com-multiformats-go-varint)) - (home-page "https://github.com/ipfs/go-cid") - (synopsis "Content ID v1 implemented in Go") - (description - "Implementation in Go of the @url{https://github.com/ipld/cid, CID spec}. It is -used in @code{go-ipfs} and related packages to refer to a typed hunk of data.") - (license license:expat))) - -(define-public go-github-com-ipfs-go-cidutil - (package - (name "go-github-com-ipfs-go-cidutil") - (version "0.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-cidutil") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0j18wf42rfxrrh2fjdbjsjvjqxwgvg46b9wl6y5ig22fx5hvpm1n")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-cidutil")) - (propagated-inputs - (list go-github-com-ipfs-go-cid - go-github-com-multiformats-go-multibase - go-github-com-multiformats-go-multicodec - go-github-com-multiformats-go-multihash)) - (home-page "https://github.com/ipfs/go-cidutil") - (synopsis "Utility functions and types for working with CIDs") - (description - "@code{go-cidutil} implements various utilities and helper functions for working -with @url{https://github.com/ipld/cid, CIDs}.") - (license license:expat))) - (define-public go-github-com-ipfs-go-ipfs-cmds (package (name "go-github-com-ipfs-go-ipfs-cmds") @@ -1136,6 +1136,34 @@ implementation of @code{go-ipld-format}") "An implementation of a @url{https://cbor.io/, CBOR} encoded merkledag object.") (license license:expat))) +(define-public go-github-com-ipfs-go-ipld-format + (package + (name "go-github-com-ipfs-go-ipld-format") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ipld-format") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zl172ncmx9h5z2p3d0j1377xm9glw4zfyamks31p0pvvx2kyn7c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-ipld-format")) + (propagated-inputs + (list go-github-com-multiformats-go-multihash + go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid)) + (home-page "https://github.com/ipfs/go-ipld-format") + (synopsis "IPLD Node and Resolver interfaces in Go") + (description + "@code{go-ipld-format} is a set of interfaces that a type needs to implement in +order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-forest.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ipld-git (package (name "go-github-com-ipfs-go-ipld-git") @@ -1178,34 +1206,6 @@ IPLD graph as detailed below. Objects are demonstrated here using both @url{https://ipld.io/docs/schemas/,IPLD Schemas} and example JSON forms.") (license license:expat))) -(define-public go-github-com-ipfs-go-ipld-format - (package - (name "go-github-com-ipfs-go-ipld-format") - (version "0.6.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-ipld-format") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zl172ncmx9h5z2p3d0j1377xm9glw4zfyamks31p0pvvx2kyn7c")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-ipld-format")) - (propagated-inputs - (list go-github-com-multiformats-go-multihash - go-github-com-ipfs-go-block-format - go-github-com-ipfs-go-cid)) - (home-page "https://github.com/ipfs/go-ipld-format") - (synopsis "IPLD Node and Resolver interfaces in Go") - (description - "@code{go-ipld-format} is a set of interfaces that a type needs to implement in -order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-forest.") - (license license:expat))) - (define-public go-github-com-ipfs-go-ipld-legacy (package (name "go-github-com-ipfs-go-ipld-legacy") @@ -1284,6 +1284,36 @@ Graphs, DAG} data structures as specified in @url{https://docs.ipfs.tech/concepts/merkle-dag}.") (license license:expat))) +(define-public go-github-com-ipfs-go-metrics-interface + (package + (name "go-github-com-ipfs-go-metrics-interface") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-metrics-interface") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0d7jh9aclmxq4z5hynn4lc0ab8c8rip92xkc224vjw2y7kg6jyvg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-metrics-interface")) + (propagated-inputs + (list go-github-com-ipfs-go-cid + go-github-com-ipfs-go-datastore + go-github-com-multiformats-go-base32 + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipfs/go-metrics-interface") + ;; XXX: The project neither has no a proper description, nor a README, see + ;; <https://github.com/ipfs/go-metrics-interface/issues/1>. + (synopsis "Metrics interface for IPFS") + (description + "Metrics interface for IPFS (Kubo).") + (license license:expat))) + (define-public go-github-com-ipfs-go-metrics-prometheus (package (name "go-github-com-ipfs-go-metrics-prometheus") @@ -1770,36 +1800,6 @@ their levels to be controlled individually.") (list #:import-path "github.com/ipfs/go-log")))) -(define-public go-github-com-ipfs-go-metrics-interface - (package - (name "go-github-com-ipfs-go-metrics-interface") - (version "0.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-metrics-interface") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0d7jh9aclmxq4z5hynn4lc0ab8c8rip92xkc224vjw2y7kg6jyvg")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-metrics-interface")) - (propagated-inputs - (list go-github-com-ipfs-go-cid - go-github-com-ipfs-go-datastore - go-github-com-multiformats-go-base32 - go-github-com-multiformats-go-multihash)) - (home-page "https://github.com/ipfs/go-metrics-interface") - ;; XXX: The project neither has no a proper description, nor a README, see - ;; <https://github.com/ipfs/go-metrics-interface/issues/1>. - (synopsis "Metrics interface for IPFS") - (description - "Metrics interface for IPFS (Kubo).") - (license license:expat))) - (define-public go-github-com-ipshipyard-p2p-forge (package (name "go-github-com-ipshipyard-p2p-forge") diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 34dd73e32e..d673618fec 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020-2025 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> -;;; Copyright © 2022, 2023, 2024 Nicolas Graves <ngraves@ngraves.fr> +;;; Copyright © 2022-2025 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2022 Kiran Shila <me@kiranshila.com> ;;; Copyright © 2022 Wiktor Zelazny <wzelazny@vurv.cz> ;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe> @@ -76,6 +76,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) #:use-module (gnu packages c) + #:use-module (gnu packages calendar) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -220,6 +221,40 @@ representations and sentence classification.") family of functions.") (license license:expat))) +(define-public python-faster-whisper + (package + (name "python-faster-whisper") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SYSTRAN/faster-whisper") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g9cdvphifn4rqhh7p4z1d3pp6bhcx0jmcahjigvcgry0qsijgfn")))) + (build-system pyproject-build-system) + ;; XXX: Currently tests requires model download, which we'd rather avoid + ;; in Guix unless we're sure about the FOSS weights. To test in source : + ;; guix shell -D python-faster-whisper -- pytest + (arguments (list #:tests? #f)) + (propagated-inputs (list (list onnxruntime "python") + python-av + python-ctranslate2 + python-huggingface-hub + python-tokenizers + python-tqdm)) + (native-inputs (list python-numpy + python-pytest + python-setuptools-next)) + (home-page "https://github.com/SYSTRAN/faster-whisper") + (synopsis "Whisper transcription reimplementation") + (description + "This package provides a reimplementation of OpenAI's Whisper model using +CTranslate2, which is a inference engine for transformer models.") + (license license:expat))) + (define-public python-fasttext (package (inherit fasttext) @@ -1501,37 +1536,25 @@ unsupervised text tokenizer.") (define-public python-sentence-transformers (package (name "python-sentence-transformers") - (version "3.0.1") + (version "5.1.0") (source (origin - (method url-fetch) - (uri (pypi-uri "sentence_transformers" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/UKPLab/sentence-transformers/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1xmzbyrlp6wa7adf42n67c544db17nz95b10ri603lf4gi9jqgca")))) + (base32 + "1jkj77q25b21nxrdszvlw127jnx1m7x8czldiq2mfyj76yjk0ymj")))) (build-system pyproject-build-system) (arguments - (list - #:test-flags - '(list - ;; Missing fixture / train or test data. - ;; Requires internet access. - "--ignore=tests/test_sentence_transformer.py" - "--ignore=tests/test_train_stsb.py" - "--ignore=tests/test_compute_embeddings.py" - "--ignore=tests/test_cross_encoder.py" - "--ignore=tests/test_model_card_data.py" - "--ignore=tests/test_multi_process.py" - "--ignore=tests/test_pretrained_stsb.py" - "-k" (string-append - "not test_LabelAccuracyEvaluator" - " and not test_ParaphraseMiningEvaluator" - " and not test_cmnrl_same_grad" - " and not test_paraphrase_mining" - " and not test_simple_encode")))) + (list #:tests? #f)) ;network access is required (propagated-inputs (list python-huggingface-hub python-numpy python-pillow python-pytorch + python-typing-extensions python-scikit-learn python-scipy python-tqdm @@ -1843,6 +1866,139 @@ aim is to provide all such passes along with ONNX so that they can be re-used with a single function call.") (license license:expat))) +(define-public onnxruntime + (package + (name "onnxruntime") + (version "1.22.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/microsoft/onnxruntime") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z2s79l4wdilssw9lmj319ypyyqi2y0dx0fpwr2yhq8bax3ci50n")))) + (build-system cmake-build-system) + (arguments + (list + #:modules '((guix build cmake-build-system) + (guix build utils) + ((guix build pyproject-build-system) #:prefix py:)) + #:imported-modules (append %cmake-build-system-modules + %pyproject-build-system-modules) + #:configure-flags + #~(list "-Donnxruntime_BUILD_UNIT_TESTS=OFF" + "-Donnxruntime_BUILD_SHARED_LIB=ON" + "-Donnxruntime_ENABLE_LTO=ON" + "-Donnxruntime_ENABLE_PYTHON=ON" + "-Donnxruntime_USE_FULL_PROTOBUF=OFF" + ;; XXX: Fixes build with gcc@14. + "-DCMAKE_CXX_FLAGS=-Wl,-z,noexecstack") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "cmake"))) + (add-after 'unpack 'relax-dependencies + (lambda _ + (with-output-to-file "cmake/external/eigen.cmake" + (lambda _ + (display "find_package(Eigen3 REQUIRED)\n"))) + (substitute* "cmake/external/abseil-cpp.cmake" + (("20240722") + (car (string-split #$(package-version + (this-package-input "abseil-cpp")) + #\.)))))) + (add-after 'install 'build-python + (lambda _ + (invoke "python3" "../setup.py" "bdist_wheel"))) + (add-after 'build-python 'install-python + (lambda* (#:key inputs #:allow-other-keys) + ((assoc-ref py:%standard-phases 'install) + #:inputs inputs + #:outputs `(("out" . ,#$output:python))))) + (add-after 'install-python 'add-install-to-pythonpath + (lambda* (#:key inputs #:allow-other-keys) + ((assoc-ref py:%standard-phases 'add-install-to-pythonpath) + #:inputs inputs + #:outputs `(("out" . ,#$output:python))))) + (delete 'check) + (add-after 'add-install-to-pythonpath 'check + (lambda* (#:key tests? #:allow-other-keys) + (with-directory-excursion "../onnxruntime/test/python" + ((assoc-ref py:%standard-phases 'check) + #:tests? tests? + #:test-flags + `(;; XXX: NotImplementedError + "--ignore-glob=quantization/*" + ;; XXX: These tests require transformer models or have + ;; import issues. + "--ignore=transformers/test_generation.py" + "--ignore=transformers/test_gpt2_benchmark.py" + "--ignore=transformers/test_gpt2_to_onnx.py" + "--ignore=transformers/test_optimizer_huggingface_bert.py" + "--ignore=transformers/test_parity_huggingface_gpt_attention.py" + "--ignore=transformers/test_shape_infer_helper.py" + ;; XXX: onnxscript ModuleNotFound + "--ignore=transformers/test_gelu_fusions.py" + "--ignore=transformers/test_gemma3_vision.py" + ;; XXX: Other failing tests. + "-k" ,(string-append + "not test_gelu_is_fused_by_default" + " and not test_inverse")))))) + (add-after 'check 'python-sanity-check + (lambda* (#:key tests? inputs #:allow-other-keys) + ((assoc-ref py:%standard-phases 'sanity-check) + #:inputs `(("sanity-check.py" . ,#$(default-sanity-check.py)) + ,@inputs) + #:outputs `(("out" . ,#$output:python)))))))) + (outputs (list "out" "python")) + (inputs + (list abseil-cpp + boost + cpuinfo + dlpack + c++-gsl + date + eigen-for-onnxruntime + flatbuffers-23.5 + googletest + nlohmann-json + onnx + protobuf + pybind11 + re2-next + safeint + zlib)) + (native-inputs + (list pkg-config + python-einops + python-wrapper + python-numpy + python-parameterized + python-psutil + python-pytest + python-pytorch + python-sentencepiece + python-setuptools-next)) + (propagated-inputs + (list python-coloredlogs + python-flatbuffers + python-protobuf + python-sympy)) + (home-page "https://github.com/microsoft/onnxruntime") + (synopsis "Cross-platform, high performance scoring engine for ML models") + (description + "ONNX Runtime is a performance-focused complete scoring engine +for Open Neural Network Exchange (ONNX) models, with an open +extensible architecture to continually address the latest developments +in AI and Deep Learning. ONNX Runtime stays up to date with the ONNX +standard with complete implementation of all ONNX operators, and +supports all ONNX releases (1.2+) with both future and backwards +compatibility.") + (license license:expat))) + (define-public rxcpp (package (name "rxcpp") @@ -6669,22 +6825,25 @@ simple speech recognition.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ideasman42/nerd-dictation") - (commit commit))) + (url "https://github.com/ideasman42/nerd-dictation") + (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0frdpswv6w3cwj3c7wd5w8gj3s1hvpdwd48qhfhfxf7imahz9bqf")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "package/python")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "package/python")))))) + (native-inputs (list python-setuptools python-wheel)) (propagated-inputs (list python-vosk)) (home-page "https://github.com/ideasman42/nerd-dictation") (synopsis "Offline speech-to-text for desktop Linux") - (description "\ -This package provides simple access speech to text for using in + (description + "This package provides simple access speech to text for using in Linux without being tied to a desktop environment, using the @code{vosk-api}. The user configuration lets you manipulate text using Python string operations. It has zero overhead, as this relies on manual activation and diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index b0e9322b76..119fc5988a 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -27,13 +27,13 @@ (define-module (gnu packages mate) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix gexp) + #:use-module (guix packages) #:use-module (guix utils) - #:use-module (guix build-system gnu) - #:use-module (guix build-system glib-or-gtk) - #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) @@ -61,12 +61,12 @@ #:use-module (gnu packages javascript) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) - #:use-module (gnu packages multiprecision) #:use-module (gnu packages messaging) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages nss) - #:use-module (gnu packages pkg-config) #:use-module (gnu packages pdf) #:use-module (gnu packages photo) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) @@ -74,8 +74,8 @@ #:use-module (gnu packages tex) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages xml) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) (define-public mate-common @@ -167,37 +167,42 @@ actions.") (source (origin (method url-fetch) - (uri (string-append "mirror://mate/" (version-major+minor version) "/" - name "-" version ".tar.xz")) + (uri (string-append "mirror://mate/" + (version-major+minor version) + "/" + name + "-" + version + ".tar.xz")) (sha256 - (base32 - "000vr9cnbl2qlysf2gyg1lsjirqdzmwrnh6d3hyrsfc0r2vh4wna")))) + (base32 "000vr9cnbl2qlysf2gyg1lsjirqdzmwrnh6d3hyrsfc0r2vh4wna")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'autoconf - (lambda _ - (setenv "SHELL" (which "sh")) - (setenv "CONFIG_SHELL" (which "sh")) - (invoke "sh" "autogen.sh")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (invoke "sh" "autogen.sh")))))) (native-inputs ;; autoconf-wrapper is required due to the non-standard ;; 'autoconf phase. - `(("autoconf" ,autoconf-wrapper) - ("automake" ,automake) - ("intltool" ,intltool) - ("icon-naming-utils" ,icon-naming-utils) - ("libtool" ,libtool) - ("mate-common" ,mate-common) - ("pkg-config" ,pkg-config) - ("which" ,which))) + (list autoconf-wrapper + automake + intltool + icon-naming-utils + libtool + mate-common + pkg-config + which)) (home-page "https://mate-desktop.org/") (synopsis "MATE desktop environment icon theme faenza") (description - "Icon theme using Faenza and Faience icon themes and some -customized icons for MATE. Furthermore it includes some icons -from Mint-X-F and Faenza-Fresh icon packs.") + "Icon theme using Faenza and Faience icon themes and some customized +icons for MATE. Furthermore it includes some icons from Mint-X-F and +Faenza-Fresh icon packs.") (license license:gpl2+))) (define-public mate-themes @@ -262,39 +267,48 @@ desktop and the mate-about program.") (source (origin (method url-fetch) - (uri (string-append "mirror://mate/" (version-major+minor version) "/" - "libmateweather-" version ".tar.xz")) + (uri (string-append "mirror://mate/" + (version-major+minor version) + "/" + name + "-" + version + ".tar.xz")) (sha256 (base32 "1dfj68q3x9camd7h94pcwv8a5969cv5d4p979gcbk4xknpg76hsm")))) (build-system gnu-build-system) (arguments - '(#:configure-flags - (list (string-append "--with-zoneinfo-dir=/var/empty")) - #:phases - (modify-phases %standard-phases - (add-before 'check 'fix-tzdata-location - (lambda* (#:key inputs #:allow-other-keys) - (setenv "TZDIR" (search-input-directory inputs "/share/zoneinfo")) - (substitute* "data/check-timezones.sh" - (("/usr/share/zoneinfo/zone.tab") - (search-input-file inputs "/share/zoneinfo/zone.tab")) - ;; XXX: Ignore this test for now, which requires tzdata-2023c. - (("exit 1") "exit 0"))))))) + (list + #:configure-flags #~(list "--with-zoneinfo-dir=/var/empty") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'fix-tzdata-location + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZDIR" + (search-input-directory inputs "/share/zoneinfo")) + (substitute* "data/check-timezones.sh" + (("/usr/share/zoneinfo/zone.tab") + (search-input-file inputs "/share/zoneinfo/zone.tab")) + ;; XXX: Ignore this test for now, which requires tzdata-2023c. + (("exit 1") + "exit 0"))))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("intltool" ,intltool) - ("dconf" ,dconf) - ("glib:bin" ,glib "bin"))) + (list dconf + (list glib "bin") + intltool + pkg-config)) (inputs - (list gtk+ tzdata-for-tests)) + (list gtk+ + tzdata-for-tests)) (propagated-inputs - ;; both of these are requires.private in mateweather.pc - (list libsoup-minimal-2 libxml2)) + ;; both of these are requires.private in mateweather.pc + (list libsoup-minimal-2 + libxml2)) (home-page "https://mate-desktop.org/") (synopsis "MATE library for weather information from the Internet") (description - "This library provides access to weather information from the internet for -the MATE desktop environment.") + "This library provides access to weather information from the internet +for the MATE desktop environment.") (license license:lgpl2.1+))) (define-public mate-terminal @@ -807,24 +821,24 @@ hypertext navigation, and table-of-contents bookmarks.") "0ylm46wgg7linppid6pdfaixhdb8zgyrxl3lxz17x0am2k718c0y")))) (build-system glib-or-gtk-build-system) (arguments - `(#:configure-flags '("--disable-update-mimedb") - #:tests? #f ; tests fail even with display set - #:phases - (modify-phases %standard-phases - (add-before 'check 'pre-check - (lambda _ - ;; Tests require a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - ;; For the missing /etc/machine-id. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (list + #:tests? #f ; tests fail even with display set + #:configure-flags #~(list "--disable-update-mimedb") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("intltool" ,intltool) - ("glib:bin" ,glib "bin") - ("xorg-server" ,xorg-server) - ("gobject-introspection" ,gobject-introspection))) + (list pkg-config + intltool + (list glib "bin") + xorg-server + gobject-introspection)) (inputs (list exempi gtk+ @@ -837,8 +851,8 @@ hypertext navigation, and table-of-contents bookmarks.") startup-notification)) (native-search-paths (list (search-path-specification - (variable "CAJA_EXTENSIONDIR") - (files (list "lib/caja/extensions-2.0/**"))))) + (variable "CAJA_EXTENSIONDIR") + (files (list "lib/caja/extensions-2.0/**"))))) (home-page "https://mate-desktop.org/") (synopsis "File manager for the MATE desktop") (description @@ -914,6 +928,44 @@ applications associated with them. Caja is also responsible for handling the icons on the MATE desktop. It works on local and remote file systems.") (license license:gpl2+))) +(define-public python-caja + (package + (name "python-caja") + (version "1.28.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://mate/" + (version-major+minor version) + "/" + name + "-" + version + ".tar.xz")) + (sha256 + (base32 "1ml0yrkbly1mz5gmz1wynn3zff5900szncc4rk83xqyzvcww4mmh")))) + (build-system glib-or-gtk-build-system) + (arguments + (list + #:configure-flags + #~(list (string-append "--with-cajadir=" + #$output + "/lib/caja/extensions-2.0/")))) + (native-inputs + (list pkg-config + gettext-minimal + python-wrapper)) + (inputs + (list caja + gtk+ + python-pygobject)) + (home-page "https://mate-desktop.org/") + (synopsis "Python bindings for Caja components") + (description + "This package provides Python bindings to Caja, a file manager for the +MATE desktop.") + (license license:gpl2+))) + (define-public mate-control-center (package (name "mate-control-center") @@ -927,22 +979,22 @@ icons on the MATE desktop. It works on local and remote file systems.") (base32 "1g0lg4x3idilaxhwq1s90pajkvv9i012kzrnk0pxqj2jzl2cgwpb")))) (build-system glib-or-gtk-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'configure 'use-elogind-as-systemd - (lambda _ - (substitute* "configure" - (("systemd") "libelogind")))) - (add-before 'build 'fix-polkit-action - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure the polkit file refers to the right - ;; executable. - (let ((out (assoc-ref outputs "out"))) - (substitute* - '("capplets/display/org.mate.randr.policy.in" - "capplets/display/org.mate.randr.policy") - (("/usr/sbin") - (string-append out "/sbin"))) - #t)))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'use-elogind-as-systemd + (lambda _ + (substitute* "configure" + (("systemd") "libelogind")))) + (add-before 'build 'fix-polkit-action + (lambda _ + ;; Make sure the polkit file refers to the right + ;; executable. + (substitute* + '("capplets/display/org.mate.randr.policy.in" + "capplets/display/org.mate.randr.policy") + (("/usr/sbin") + (string-append #$output "/sbin")))))))) (native-inputs (list pkg-config intltool diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7974a2f0b7..0c36a60948 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -829,20 +829,6 @@ translator for the language. In addition to the C library, a stand-alone LP/MIP solver is included in the package.") (license license:gpl3+))) -(define-public glpk-4 - (package - (inherit glpk) - (name "glpk") - (version "4.65") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/glpk/glpk-" - version ".tar.gz")) - (sha256 - (base32 - "040sfaa9jclg2nqdh83w71sv9rc1sznpnfiripjdyr48cady50a2")))))) - (define-public linasm (package (name "linasm") diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 7b4d0af1f7..982285299b 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -4205,17 +4205,22 @@ of tags.") (package (name "python-musicbrainzngs") (version "0.7.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "musicbrainzngs" version)) - (sha256 - (base32 - "09z6k07pxncfgfc8clfmmxl2xqbd7h8x8bjzwr95hc0bzl00275b")))) - (build-system python-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alastair/python-musicbrainzngs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05rv5wmasamwxkbs8v9lbp2js6y5hhqz6c58c2afz2b202yp932m")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://python-musicbrainzngs.readthedocs.org/") (synopsis "Python bindings for MusicBrainz NGS webservice") - (description "Musicbrainzngs implements Python bindings of the MusicBrainz -web service. This library can be used to retrieve music metadata from the + (description + "Musicbrainzngs implements Python bindings of the MusicBrainz web +service. This library can be used to retrieve music metadata from the MusicBrainz database.") ;; 'musicbrainzngs/compat.py' is ISC licensed. (license (list license:bsd-2 license:isc)))) diff --git a/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch b/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch index 1c91823785..8c6e954926 100644 --- a/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch +++ b/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch @@ -1,46 +1,9 @@ Upstream-status: https://github.com/dolphin-emu/dolphin/pull/13824 -diff --git a/CMake/DolphinLibraryTools.cmake b/CMake/DolphinLibraryTools.cmake -index 4c395a8ef9..efa0d6a9e2 100644 ---- a/CMake/DolphinLibraryTools.cmake -+++ b/CMake/DolphinLibraryTools.cmake -@@ -1,14 +1,3 @@ --# like add_library(new ALIAS old) but avoids add_library cannot create ALIAS target "new" because target "old" is imported but not globally visible. on older cmake --# This can be replaced with a direct alias call once our minimum is cmake 3.18 --function(dolphin_alias_library new old) -- string(REPLACE "::" "" library_no_namespace ${old}) -- if (NOT TARGET _alias_${library_no_namespace}) -- add_library(_alias_${library_no_namespace} INTERFACE) -- target_link_libraries(_alias_${library_no_namespace} INTERFACE ${old}) -- endif() -- add_library(${new} ALIAS _alias_${library_no_namespace}) --endfunction() -- - # Makes an imported target if it doesn't exist. Useful for when find scripts from older versions of cmake don't make the targets you need - function(dolphin_make_imported_target_if_missing target lib) - if(${lib}_FOUND AND NOT TARGET ${target}) -@@ -85,7 +74,7 @@ function(dolphin_find_optional_system_library_pkgconfig library search alias bun - endif() - if(${library}_FOUND) - message(STATUS "Using system ${library}") -- dolphin_alias_library(${alias} PkgConfig::${library}) -+ add_library(${alias} ALIAS PkgConfig::${library}) - set(${library}_TYPE "System" PARENT_SCOPE) - else() - dolphin_add_bundled_library(${library} ${use_system} ${bundled_path}) diff --git a/CMakeLists.txt b/CMakeLists.txt -index c277e2a10a..67b72179f3 100644 +index 964a33ac13..7779cf2eac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,7 +1,7 @@ - ######################################## - # General setup - # --cmake_minimum_required(VERSION 3.13) -+cmake_minimum_required(VERSION 3.18) - - cmake_policy(SET CMP0079 NEW) # let target_link_libraries() link to a target defined in a different directory - cmake_policy(SET CMP0080 OLD) # allow using BundleUtilities at configure time @@ -657,7 +657,11 @@ add_subdirectory(Externals/glslang) if(WIN32 OR APPLE) add_subdirectory(Externals/spirv_cross) @@ -48,7 +11,7 @@ index c277e2a10a..67b72179f3 100644 -add_subdirectory(Externals/tinygltf) + +dolphin_find_optional_system_library(TinyGLTF Externals/tinygltf) -+if(NOT DEFINED tinygltf) ++if(NOT TARGET tinygltf) + add_library(tinygltf ALIAS tinygltf::tinygltf) # using system library +endif() @@ -65,6 +28,32 @@ index 0d86268bbe..9e6a99c6f8 100644 -target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/tinygltf) dolphin_disable_warnings(tinygltf) +diff --git a/Externals/tinygltf/exports.props b/Externals/tinygltf/exports.props +index 7e2fde81cf..09f43c1bae 100644 +--- a/Externals/tinygltf/exports.props ++++ b/Externals/tinygltf/exports.props +@@ -2,7 +2,7 @@ + <Project> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>$(ExternalsDir)tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>$(ExternalsDir)tinygltf\tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>TINYGLTF_NOEXCEPTION;TINYGLTF_NO_EXTERNAL_IMAGE;TINYGLTF_USE_CPP14;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + </ItemDefinitionGroup> +diff --git a/Externals/tinygltf/tinygltf.vcxproj b/Externals/tinygltf/tinygltf.vcxproj +index e33d949e56..4995626f22 100644 +--- a/Externals/tinygltf/tinygltf.vcxproj ++++ b/Externals/tinygltf/tinygltf.vcxproj +@@ -17,7 +17,7 @@ + <PropertyGroup Label="UserMacros" /> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>tinygltf\tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + </ItemDefinitionGroup> + <ItemGroup> diff --git a/Source/Core/VideoCommon/Assets/MeshAsset.cpp b/Source/Core/VideoCommon/Assets/MeshAsset.cpp index bde8c8aab6..13eb2b4448 100644 --- a/Source/Core/VideoCommon/Assets/MeshAsset.cpp diff --git a/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch b/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch index c18a6c2ec4..d6046d440c 100644 --- a/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch +++ b/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch @@ -1,50 +1,30 @@ Upstream-status: https://github.com/dolphin-emu/dolphin/pull/13823 -diff --git a/CMake/DolphinLibraryTools.cmake b/CMake/DolphinLibraryTools.cmake -index 4c395a8ef9..fb806b1b90 100644 ---- a/CMake/DolphinLibraryTools.cmake -+++ b/CMake/DolphinLibraryTools.cmake -@@ -92,3 +92,30 @@ function(dolphin_find_optional_system_library_pkgconfig library search alias bun - set(${library}_TYPE "Bundled" PARENT_SCOPE) - endif() - endfunction() -+ -+# This can be used for header-only libraries that doesn't offer a -+# pkg-config or CMake file. It uses CMake's find_file. LIBRARY is the -+# name of the library providing it, INCLUDE is the header file name -+# without its installation prefix (e.g. "wtr/watcher.hpp") while -+# BUNDLED_PATH is the root directory of the bundled library. -+function(dolphin_find_optional_system_include library include bundled_path) -+ dolphin_optional_system_library(use_system ${library}) -+ string(TOUPPER ${library} upperlib) -+ if(use_system) -+ find_file(${library}_INCLUDE ${include}) -+ if((NOT ${library}_INCLUDE) AND (NOT ${use_system} STREQUAL "AUTO")) -+ message(FATAL_ERROR "No system ${library} headers found. \ -+Please install it or set USE_SYSTEM_${upperlib} to AUTO or OFF.") -+ endif() -+ endif() -+ if(${library}_INCLUDE) -+ message(STATUS "Using system ${library} headers") -+ set(${library}_TYPE "System" PARENT_SCOPE) -+ add_library(${library} INTERFACE IMPORTED GLOBAL) -+ set_target_properties(${library} PROPERTIES -+ INTERFACE_INCLUDE_DIRECTORIES ${${library}_INCLUDE}) -+ else() -+ dolphin_add_bundled_library(${library} ${use_system} ${bundled_path}) -+ set(${library}_TYPE "Bundled" PARENT_SCOPE) -+ endif() -+endfunction() diff --git a/CMakeLists.txt b/CMakeLists.txt -index c277e2a10a..12b1c36ef0 100644 +index c277e2a10a..9b9ec00f91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -786,7 +786,7 @@ if (USE_RETRO_ACHIEVEMENTS) +@@ -786,7 +786,9 @@ if (USE_RETRO_ACHIEVEMENTS) add_subdirectory(Externals/rcheevos) endif() -add_subdirectory(Externals/watcher) -+dolphin_find_optional_system_include(watcher wtr/watcher.hpp Externals/watcher) ++dolphin_find_optional_system_library_pkgconfig( ++ WATCHER watcher watcher::watcher Externals/watcher ++) ######################################## # Pre-build events: Define configuration variables and write SCM info header +diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt +index ee738ba4e3..629c739c8d 100644 +--- a/Source/Core/Common/CMakeLists.txt ++++ b/Source/Core/Common/CMakeLists.txt +@@ -186,7 +186,7 @@ PRIVATE + FatFs + Iconv::Iconv + spng::spng +- watcher ++ watcher::watcher + ${VTUNE_LIBRARIES} + ) + diff --git a/gnu/packages/patches/safeint-disable-tests.patch b/gnu/packages/patches/safeint-disable-tests.patch new file mode 100644 index 0000000000..baecd85b1b --- /dev/null +++ b/gnu/packages/patches/safeint-disable-tests.patch @@ -0,0 +1,42 @@ +--- + Test/GccTest/CMakeLists.txt | 18 ------------------ + 1 file changed, 18 deletions(-) + +diff --git a/Test/GccTest/CMakeLists.txt b/Test/GccTest/CMakeLists.txt +index 8a3bef4..9254d70 100644 +--- a/Test/GccTest/CMakeLists.txt ++++ b/Test/GccTest/CMakeLists.txt +@@ -105,15 +105,6 @@ else() + + target_compile_options(CompileTest_gcc PUBLIC -Wall) + +- add_executable(CompileTest_gcc17 +- ../CompileTest.cpp +- ../ConstExpr.cpp +- ../CleanCompile.cpp +- ../../SafeInt.hpp +- ) +- +- target_compile_options(CompileTest_gcc17 PUBLIC -Wall -std=c++17) +- + add_executable(CompileTest_gcc14 + ../CompileTest.cpp + ../ConstExpr.cpp +@@ -132,15 +123,6 @@ else() + + target_compile_options(CompileTest_gcc14_NoEH PUBLIC -Wall -std=c++14 -fno-exceptions) + +- add_executable(CompileTest_gcc98 +- ../CompileTest.cpp +- ../ConstExpr.cpp +- ../CleanCompile.cpp +- ../../SafeInt.hpp +- ) +- +- target_compile_options(CompileTest_gcc98 PUBLIC -D SAFEINT_USE_CPLUSCPLUS_98 -Wall -std=c++98 -fno-exceptions) +- + add_executable(safe_math_test_gcc + ../c_safe_math/safe_math_test.c + ../c_safe_math/safe_math_test.h +-- +2.50.1 diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm index 4d389179f9..e16cbc0e96 100644 --- a/gnu/packages/prolog.scm +++ b/gnu/packages/prolog.scm @@ -185,7 +185,7 @@ it.") (define-public trealla (package (name "trealla") - (version "2.82.6") + (version "2.82.9") (source (origin (method git-fetch) @@ -194,7 +194,7 @@ it.") (url "https://github.com/trealla-prolog/trealla") (commit (string-append "v" version)))) (sha256 - (base32 "1yfnavv1m5jgi28nzil4mmin3gq28ykpl6g4aqis7i9f9s638dp2")) + (base32 "15vah9mk81di4srd7rd8ggwl9k2hbzra9bmgkk73fdnmd9db3ryr")) (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 d5772b7716..f43b49163d 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -1249,18 +1249,10 @@ Python program.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "0fg8jflcf4c929gd4zbcrk73d08waaqjfjmdjrgnv54mzl35pjxl")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest"))))))) + (base32 "0fg8jflcf4c929gd4zbcrk73d08waaqjfjmdjrgnv54mzl35pjxl")))) + (build-system pyproject-build-system) (native-inputs - (list python-numpy python-pytest)) + (list python-numpy python-pytest python-setuptools python-wheel)) (home-page "https://github.com/kaste/mockito-python") (synopsis "Mocking library for Python") (description "This package provides a Python implementation of the Java @@ -1268,7 +1260,6 @@ library of the same name. It eases monkey patching, for example to stub out side effects when unit testing.") (license license:expat))) - (define-public python-mypy (package (name "python-mypy") @@ -1979,18 +1970,21 @@ of the project to ensure it renders properly.") (version "1.0.2") (source (origin - (method url-fetch) - (uri - (pypi-uri "pytest_click" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Stranger6667/pytest-click") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1rcv4m850rl7djzdgzz2zhjd8g5ih8w6l0sj2f9hsynymlsq82xl")))) - (build-system python-build-system) - (propagated-inputs - (list python-click python-pytest)) + (base32 "197nvlqlyfrqpy5lrkmfh1ywpr6j9zipxl9d7syg2a2n7jz3a8rj")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) + (propagated-inputs (list python-click python-pytest)) (home-page "https://github.com/Stranger6667/pytest-click") - (synopsis "Py.test plugin for Click") - (description "This package provides a plugin to test Python click -interfaces with pytest.") + (synopsis "Pytest plugin for Click") + (description + "This package provides a plugin to test Python click interfaces with +pytest.") (license license:expat))) (define-public python-pytest-console-scripts diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index 8fd893cb8e..9166620f28 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -559,29 +559,26 @@ Python.") (define-public python-lzo (package (name "python-lzo") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) (uri (pypi-uri "python-lzo" version)) (sha256 - (base32 "0315nq6r39n51n8qqamb7xv0ib0qrh76q7g3a1977172mbndijw3")))) - (build-system python-build-system) + (base32 "0jbv6853p8flk65ks0nw37f6f5v0ryi6nhppv5fm3863ql0alym5")))) + (build-system pyproject-build-system) (arguments (list - #:test-target "check" #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-setuppy - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* "setup.py" (("include_dirs.append\\(.*\\)") - (string-append "include_dirs.append('" - #$(this-package-input "lzo") - "/include/lzo" - "')")))))))) - (inputs - (list lzo)) + (format #f "include_dirs.append(~s)" + (search-input-directory inputs "include/lzo"))))))))) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (inputs (list lzo)) (home-page "https://github.com/jd-boyd/python-lzo") (synopsis "Python bindings for the LZO data compression library") (description diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index a80da0d470..79bbf1b08b 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -917,23 +917,24 @@ Python.") (define-public python-josepy (package (name "python-josepy") - (version "1.13.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "josepy" version)) - (sha256 - (base32 - "1jaxqyp53paks2z8zyzr50gqvzfxbar7r2qf98kqak4aizrxlcc9")))) - (build-system python-build-system) - (arguments - ;; TODO: some test dependencies are missing (see pyproject.toml). - '(#:tests? #f)) - (propagated-inputs - (list python-cryptography python-pyopenssl)) + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/certbot/josepy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zplnfrmc4nps9lgl3fz434ja7lmi9v8waydflzvpi75kf5fqxc1")))) + (build-system pyproject-build-system) + (native-inputs (list python-poetry-core python-pytest)) + (propagated-inputs (list python-cryptography)) (home-page "https://github.com/certbot/josepy") (synopsis "JOSE protocol implementation in Python") - (description "This package provides a Python implementation of the JOSE -protocol (Javascript Object Signing and Encryption).") + (description + "This package provides a Python implementation of the JOSE protocol +(Javascript Object Signing and Encryption).") (license license:asl2.0))) (define pycryptodome-unbundle-tomcrypt-snippet diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 1b8a718453..4f6a237ae0 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -2663,20 +2663,13 @@ API, but uses asyncio to parallelise downloading the files.") (method url-fetch) (uri (pypi-uri "html2text" version)) (sha256 - (base32 - "1fvv4z6dblii2wk1x82981ag8yhxbim1v2ksgywxsndh2s7335p2")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest" "test/")))))) - (native-inputs - (list python-pytest)) + (base32 "1fvv4z6dblii2wk1x82981ag8yhxbim1v2ksgywxsndh2s7335p2")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools python-wheel)) (home-page "https://github.com/Alir3z4/html2text") (synopsis "Convert HTML into plain text") - (description "html2text takes HTML and converts it into plain ASCII text + (description + "html2text takes HTML and converts it into plain ASCII text which is also valid markdown. html2text was originally written by Aaron Swartz.") (license license:gpl3+))) @@ -8382,17 +8375,19 @@ association.") (define-public python-livereload (package (name "python-livereload") - (version "2.6.3") + (version "2.7.1") (source (origin - (method url-fetch) - (uri (pypi-uri "livereload" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/lepture/python-livereload") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0scqjnhg3ap81v36ghp0pik774dnfdkwqsx5j1jfbzarbs32yvvp")))) - (build-system python-build-system) - (propagated-inputs - (list python-six python-tornado)) + (base32 "19wkdd1grw6mcd4qi8iaw4jdr207h3m24951vgy69j7g904lynjq")))) + (build-system pyproject-build-system) + (native-inputs (list python-django python-setuptools python-wheel)) + (propagated-inputs (list python-tornado)) (home-page "https://github.com/lepture/python-livereload") (synopsis "Python LiveReload") (description @@ -9327,11 +9322,12 @@ using a pure Python implementation.") (uri (pypi-uri "pyjsparser" version)) (sha256 (base32 "0ycmf9fsvwliqmm1n6sfz7x71y7i2kbfgn39d8lsbiccfxmxlq5y")))) - (build-system python-build-system) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/PiotrDabkowski/pyjsparser") (synopsis "Fast JavaScript parser") - (description "This package provides a fast JavaScript parser (based on -esprima.js)") + (description + "This package provides a fast JavaScript parser (based on esprima.js)") (license license:expat))) (define-public python-js2py diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d71d26b15f..0107f3f08e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -166,6 +166,7 @@ ;;; Copyright © 2025, Cayetano Santos <csantosb@inventati.org> ;;; Copyright © 2025 Jake Forster <jakecameron.forster@gmail.com> ;;; Copyright © 2025 Luis Felipe López Acevedo <sirgazil@zoho.com> +;;; Copyright © 2025 Josep Bigorra <jjbigorra@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -189,7 +190,6 @@ #:use-module (gnu packages aidc) #:use-module (gnu packages algebra) #:use-module (gnu packages attr) - #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) @@ -262,7 +262,6 @@ #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) - #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) @@ -382,6 +381,55 @@ These aspects include CPU, network fabrics, etc. In addition, it offers APIs to detect, query, and compare them.") (license license:expat))) +(define-public python-asyncclick + (package + (name "python-asyncclick") + (version "8.2.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "asyncclick" version)) + (sha256 + (base32 "0q26q8r1x5j9nz72xcb80vjx5maha6yswdmw2li4mwqyzdxnnkq1")))) + (build-system pyproject-build-system) + (arguments + (list + ;; tests: 1397 passed, 29 skipped, 72 deselected, 4 xfailed + #:test-flags + #~(list "-k" (string-join + ;; See: <https://github.com/python-trio/asyncclick/issues/42>. + (list "not test_confirm_repeat[asyncio]" + "test_confirm_repeat[trio]" + "test_file_prompt_default_format[asyncio-file_kwargs0]" + "test_file_prompt_default_format[asyncio-file_kwargs1]" + "test_file_prompt_default_format[asyncio-file_kwargs2]" + "test_file_prompt_default_format[trio-file_kwargs0]" + "test_file_prompt_default_format[trio-file_kwargs1]" + "test_file_prompt_default_format[trio-file_kwargs2]" + "test_prompts[asyncio]" + "test_prompts[trio]" + ;; Requires less + "test_echo_via_pager") + " and not ")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-conftest + ;; See: <https://github.com/python-trio/asyncclick/pull/39>. + (lambda _ + (substitute* "tests/conftest.py" + (("from click") "from asyncclick"))))))) + (native-inputs + (list python-anyio + python-flit-core-next + python-pytest + python-trio)) + (home-page "https://github.com/python-trio/asyncclick") + (synopsis "Python composable command line utility, trio-compatible version ") + (description + "AsyncClick is a fork of Click that works well with anyio, Trio, or +asyncio.") + (license license:bsd-3))) + (define-public python-asyncstdlib (package (name "python-asyncstdlib") @@ -927,6 +975,34 @@ of Ordered Set.") your terminal.") (license license:expat))) +(define-public python-puccinialin + (package + (name "python-puccinialin") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "puccinialin" version)) + (sha256 + (base32 "00nnqcvvyn10zxkhgzcfn8czwvdzm0vh5z16plb0dxspccd69dmv")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;no tests in PyPI or Git + (native-inputs + (list python-hatchling)) + (propagated-inputs + (list python-httpx + python-platformdirs + python-tqdm)) + (home-page "https://github.com/konstin/puccinialin") + (synopsis "Helper for bootstrapping Rust-based build back-ends for Python") + (description + "This tool helps to install Rust into a temporary directory, allowing +support of Rust-based Python builds. Cargo and rustc are installed into a +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-pyxdameraulevenshtein (package (name "python-pyxdameraulevenshtein") @@ -5850,36 +5926,6 @@ videos in a notebook.") audio playback capability for Python 3 on OSX, Windows, and Linux.") (license license:expat))) ; MIT license -(define-public python-wavefile - (package - (name "python-wavefile") - (version "1.6.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "wavefile" version)) - (sha256 - (base32 - "04mdcxq7n1vnwb9y65j0cwpy91ik5rh9vki1f45xqnh4ygz91n75")))) - (build-system python-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-libsndfile-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "wavefile/libsndfile.py" - (("'libsndfile") - (string-append "'" (assoc-ref inputs "libsndfile") - "/lib/libsndfile")))))))) - (inputs - (list libsndfile portaudio)) - (propagated-inputs (list python-numpy python-pyaudio)) - (home-page "https://github.com/vokimon/python-wavefile") - (synopsis "Pythonic audio file reader and writer") - (description - "This package provides pythonic libsndfile wrapper to read and write audio -files.") - (license license:gpl3+))) - (define-public python-jsonalias (package (name "python-jsonalias") @@ -32316,17 +32362,20 @@ memoization.") (version "0.8") (source (origin - (method url-fetch) - (uri (pypi-uri "cson" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/avakar/pycson") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "00cyvigg4npbph39ghkg77xbxisa6plf75vii24igxfizik0337f")))) - (build-system python-build-system) - (propagated-inputs - (list python-speg)) + (base32 "0d2zbmak0hzsl1w71dgc8x4q4vdfbpk46vwyi9vvvqv7gdqj59fn")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (propagated-inputs (list python-speg)) (home-page "https://github.com/avakar/pycson") (synopsis "Parser for Coffeescript Object Notation (CSON)") - (description "This package is a parser for Coffeescript Object -Notation (CSON).") + (description + "This package is a parser for Coffeescript Object Notation (CSON).") (license license:expat))) (define-public python-aionotify @@ -37335,18 +37384,30 @@ It implements advanced Python dictionaries with dot notation access.") (name "python-aspectlib") (version "1.5.2") (source - (origin - (method url-fetch) - (uri (pypi-uri "aspectlib" version)) - (sha256 - (base32 "1am4ycf292zbmgz791z393v63w7qrynf8q5p9db2wwf2qj1fqxfj")))) - (build-system python-build-system) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ionelmc/python-aspectlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mfhflg33684gkp6ckkywshn4xa3vqaia521kcagaxgr3xm6c9pv")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list ;; XXX: Require more dependencies. + "--ignore=tests/test_integrations.py" + "--ignore=tests/test_integrations_py3.py" + ;; XXX: Unimportant warning errors. + "-k" (string-append "not test_story_empty_play_proxy_class" + " and not test_story_half_play_proxy_class")))) + (native-inputs (list python-pytest python-setuptools python-tornado python-wheel)) (propagated-inputs (list python-fields)) (home-page "https://github.com/ionelmc/python-aspectlib") - (synopsis - "Python monkey-patching and decorators") + (synopsis "Python monkey-patching and decorators") (description - "This package provides an aspect-oriented programming, monkey-patch + "This package provides an aspect-oriented programming, monkey-patch and decorators library. It is useful when changing behavior in existing code is desired. It includes tools for debugging and testing: simple mock/record and a complete capture/replay framework.") diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 7b989d38f9..665a074d65 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -1668,34 +1668,6 @@ users.") (home-page "https://hamlib.github.io/") (license (list license:gpl2+ license:lgpl2.1+)))) -(define wsjtx-hamlib - ;; Fork of hamlib with custom patches used by wsjtx. - (package - (inherit hamlib) - (name "wsjtx-hamlib") - (version "2.5.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.code.sf.net/u/bsomervi/hamlib.git") - (commit (string-append "wsjtx-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1bgf7bz2280739a7ip7lvpns0i7x6svryxfmsp32cff2dr146lz3")))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("texinfo" ,texinfo) - ,@(package-native-inputs hamlib))) - (arguments - `(#:configure-flags '("--disable-static" - "--with-lua-binding" - "--with-python-binding" - "--with-tcl-binding" - "--with-xml-support"))))) - (define-public jtdx-hamlib ;; Fork of hamlib with custom patches used by jtdx. (package @@ -1909,10 +1881,7 @@ focused on DXing and being shaped by community of DXers.JTDX") (("set \\(ENV\\{PKG_CONFIG_PATH\\}.*\\)") "set (__pc_path $ENV{PKG_CONFIG_PATH}) list (APPEND __pc_path \"${__hamlib_pc_path}\") - set (ENV{PKG_CONFIG_PATH} \"${__pc_path}\")")) - (substitute* "HamlibTransceiver.hpp" - (("#ifdef JS8_USE_LEGACY_HAMLIB") - "#if 1")))) + set (ENV{PKG_CONFIG_PATH} \"${__pc_path}\")")))) (delete 'check) (add-after 'install 'check (lambda* (#:key tests? #:allow-other-keys) @@ -1928,11 +1897,11 @@ focused on DXing and being shaped by community of DXers.JTDX") (list boost fftw fftwf + hamlib libusb qtbase-5 qtmultimedia-5 - qtserialport-5 - wsjtx-hamlib)) + qtserialport-5)) (home-page "http://js8call.com/") (synopsis "Weak-signal ham radio communication program") (description @@ -2081,7 +2050,7 @@ gain and standing wave ratio.") (define-public dump1090 (package (name "dump1090") - (version "8.2") + (version "10.2") (source (origin (method git-fetch) @@ -2090,12 +2059,17 @@ gain and standing wave ratio.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16ylywy2fdwf5kqr8kgl9lbzy1zwx4ckj9y122k3h86pfkswljs9")))) + (base32 "0dc1f18n1xlamdhxg96db6cm6kp04cqzxb36qmd141d0rca7qcli")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove FPGA firmware binary. + (delete-file-recursively "bladerf"))))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs - (list bladerf hackrf libusb ncurses rtl-sdr)) + (list bladerf hackrf libusb ncurses rtl-sdr soapysdr)) (arguments (list #:test-target "test" @@ -2838,7 +2812,7 @@ based devices in packet mode over a serial link.") (define-public cm256cc (package (name "cm256cc") - (version "1.1.0") + (version "1.1.1") (source (origin (method git-fetch) @@ -2847,7 +2821,7 @@ based devices in packet mode over a serial link.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1n9v7g6d370263bgqrjv38s9aq5953rzy7jvd8i30xq6aram9djg")))) + (base32 "07gx6yb17m9kd885qpf98cryn1acp546qg80c0rncy3hic0hd6pf")))) (build-system cmake-build-system) (arguments ;; Disable some SIMD features for reproducibility. diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 5b2f023736..445571f3c0 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -997,6 +997,26 @@ game development and other performance-critical applications.") ((#:configure-flags flags #~'()) #~(append #$flags '("-DCMAKE_POSITION_INDEPENDENT_CODE=ON"))))))) +(define-public flatbuffers-23.5 + (hidden-package + (package + (inherit flatbuffers) + ;; needed explicitly by onnxruntime + (version "23.5.26") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/flatbuffers") + (commit (string-append "v" version)))) + (file-name (git-file-name "flatbuffers" version)) + (sha256 + (base32 "0cd12dvkzqdafz46q4302mzgpzbz589zmmiga7bq07f2sqy4vrvv")))) + (arguments + (substitute-keyword-arguments (package-arguments flatbuffers) + ((#:configure-flags flags #~'()) + #~(append #$flags '("-DCMAKE_POSITION_INDEPENDENT_CODE=ON")))))))) + (define-public go-github-com-google-flatbuffers (package/inherit flatbuffers (name "go-github-com-google-flatbuffers") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 7eefc31928..8dd820429c 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -50,6 +50,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system perl) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial) @@ -77,6 +78,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -710,48 +712,48 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "2.3.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "acme" version)) - (sha256 - (base32 - "1z6293g4pyxvx5w7v07j8wnaxyr7srsqfqvgly888b8k52fq9ipa")))) - (build-system python-build-system) + (version "4.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "acme" version)) + (sha256 + (base32 "0h8ckyal5j8lkm24fd52dajy38mxa76zh4q022i28f6b3878rxhd")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'build 'build-documentation - (lambda _ - (invoke "make" "-C" "docs" "man" "info"))) - (add-after 'install 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man (string-append out "/share/man/man1")) - (info (string-append out "/info"))) - (install-file "docs/_build/texinfo/acme-python.info" info) - (install-file "docs/_build/man/acme-python.1" man)))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv"))))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + (("'PyOpenSSL.*',") + "'PyOpenSSL',")))) + (add-after 'build 'build-documentation + (lambda _ + (invoke "make" "-C" "docs" "man" "info"))) + (add-after 'install 'install-documentation + (lambda _ + (let ((man (string-append #$output "/share/man/man1")) + (info (string-append #$output "/info"))) + (install-file "docs/_build/texinfo/acme-python.info" info) + (install-file "docs/_build/man/acme-python.1" man))))))) (native-inputs (list python-pytest + python-pytest-xdist + python-setuptools + python-wheel ;; For documentation python-sphinx python-sphinxcontrib-programoutput python-sphinx-rtd-theme texinfo)) (propagated-inputs - (list python-chardet + (list python-cryptography python-josepy - python-requests - python-requests-toolbelt - python-pytz + python-pyopenssl python-pyrfc3339 - python-pyasn1 - python-cryptography - python-pyopenssl)) + python-requests)) (home-page "https://github.com/certbot/certbot") (synopsis "ACME protocol implementation in Python") (description "ACME protocol implementation in Python") @@ -763,30 +765,33 @@ netcat implementation that supports TLS.") ;; Certbot and python-acme are developed in the same repository, and their ;; versions should remain synchronized. (version (package-version python-acme)) - (source (origin - (method url-fetch) - (uri (pypi-uri "certbot" version)) - (sha256 - (base32 - "12nd9nmdj3bf1xlvhj1ln473xbyv4qzxf6qhz0djbca7jl59zlwk")))) - (build-system python-build-system) + (source + (origin + (method url-fetch) + (uri (pypi-uri "certbot" version)) + (sha256 + (base32 "0yy287h1sjdkm5cj4wazq316igwwla856yqcmi4yqaq7ib55c7pv")))) + (build-system pyproject-build-system) (arguments - `(,@(substitute-keyword-arguments (package-arguments python-acme) - ((#:phases phases) - `(modify-phases ,phases - (replace 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man1 (string-append out "/share/man/man1")) - (man7 (string-append out "/share/man/man7")) - (info (string-append out "/info"))) - (install-file "docs/_build/texinfo/Certbot.info" info) - (install-file "docs/_build/man/certbot.1" man1) - (install-file "docs/_build/man/certbot.7" man7) - #t)))))))) + (substitute-keyword-arguments (package-arguments python-acme) + ((#:test-flags flags '()) + ;; XXX: No time zone found with key Asia/Sanghai, pytz version? + #~(list "-k" "not test_add_time_interval")) + ((#:phases phases) + #~(modify-phases #$phases + (replace 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let ((man1 (string-append #$output "/share/man/man1")) + (man7 (string-append #$output "/share/man/man7")) + (info (string-append #$output "/info"))) + (install-file "docs/_build/texinfo/Certbot.info" info) + (install-file "docs/_build/man/certbot.1" man1) + (install-file "docs/_build/man/certbot.7" man7)))))))) (native-inputs (list python-mock python-pytest + python-setuptools + python-wheel ;; For documentation python-sphinx python-sphinx-rtd-theme @@ -806,8 +811,9 @@ netcat implementation that supports TLS.") python-requests python-pytz)) (synopsis "Let's Encrypt client by the Electronic Frontier Foundation") - (description "Certbot automatically receives and installs X.509 certificates -to enable Transport Layer Security (TLS) on servers. It interoperates with the + (description + "Certbot automatically receives and installs X.509 certificates to enable +Transport Layer Security (TLS) on servers. It interoperates with the Let’s Encrypt certificate authority (CA), which issues browser-trusted certificates for free.") (home-page "https://certbot.eff.org/") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 45f42f63d1..cb54059240 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -4847,7 +4847,7 @@ developer workflow, and project and release management.") (define-public hut (package (name "hut") - (version "0.6.0") + (version "0.7.0") (source (origin (method git-fetch) @@ -4856,16 +4856,7 @@ developer workflow, and project and release management.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14cia976i2jdzyzw4wk9fhkh6zqgmb09ryf31ys24smmfcdfxyf1")) - (modules '((guix build utils))) - (snippet - #~(begin - ;; XXX: Module name has been changed upstream, it's already - ;; adjusted on master, consider to remove in the next refresh - ;; cycle. - (substitute* (find-files "." "\\.go$") - (("git.sr.ht/~emersion/go-scfg") - "codeberg.org/emersion/go-scfg")))))) + (base32 "0scw4nvm3qpg7l6anhljkixn3g36k03ikg6pl0hs76a3wkf89km5")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index e511423525..8c4204ce8f 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -798,6 +798,12 @@ others.") (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'use-poetry-core + (lambda _ + ;; Patch to use the core poetry API. + (substitute* "pyproject.toml" + (("poetry.masonry.api") + "poetry.core.masonry.api")))) (add-after 'unpack 'patch-openconnect (lambda* (#:key inputs #:allow-other-keys) (substitute* "openconnect_sso/app.py" @@ -807,7 +813,6 @@ others.") "\"")))))))) (inputs (list openconnect - poetry python-attrs python-colorama python-keyring @@ -822,7 +827,8 @@ others.") python-toml qtwebengine-5)) (native-inputs - (list python-pytest + (list python-poetry-core + python-pytest python-pytest-asyncio python-pytest-httpserver)) (home-page "https://github.com/vlaci/openconnect-sso") @@ -1050,35 +1056,31 @@ DNS domain name queries.") (version "1.5.1") (source (origin - (method url-fetch) - (uri (pypi-uri name version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/albertodonato/sshoot") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "05i54nga4vy660yy9yf6dl376yj0jc51303yr295qk3k9w0k96yd")))) - (build-system python-build-system) + (base32 "0725p0l2gx881hsjw3nj44n4gm1kv9hirv5cd4d9yr1ba87whp3q")))) + (build-system pyproject-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda _ - (substitute* "sshoot/tests/test_manager.py" - (("/bin/sh") (which "sh"))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv" "--pyargs" "sshoot"))))))) - (inputs - (list python-argcomplete - python-prettytable - python-pyyaml - python-pyxdg - python-toolrack)) - ;; For tests only. - (native-inputs - (list python-pytest python-pytest-mock)) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "sshoot/tests/test_manager.py" + (("/bin/sh") + (search-input-file inputs "bin/sh")))))))) + (inputs (list python-argcomplete python-prettytable python-pyyaml + python-pyxdg python-toolrack)) + (native-inputs (list python-pytest python-pytest-mock python-setuptools + python-wheel)) (home-page "https://github.com/albertodonato/sshoot") (synopsis "VPN session manager (sshuttle)") - (description "sshoot provides a command-line interface to manage multiple + (description + "sshoot provides a command-line interface to manage multiple @command{sshuttle} virtual private networks. It supports flexible profiles with configuration options for most of @command{sshuttle}’s features.") (license license:gpl3+))) @@ -1297,22 +1299,27 @@ L2TP allows you to tunnel PPP over UDP.") (version "0.16.1") (source (origin - (method url-fetch) - (uri (pypi-uri "vpn-slice" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/dlenski/vpn-slice") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1anfx4hn2ggm6sbwqmqx68s3l2rjcy4z4l038xqb440jnk8jvl18")))) - (build-system python-build-system) + (base32 "16shhgypw78d9982r7v293h8fbmpl4wvjb6076w66baincn599ag")))) + (build-system pyproject-build-system) (arguments (list + #:tests? #f ; No tests. #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'patch-FHS-file-names - (lambda _ - (substitute* "vpn_slice/linux.py" - (("/sbin/iptables") - (which "iptables")) - (("/sbin/ip") - (which "ip")))))))) + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-FHS-file-names + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "vpn_slice/linux.py" + (("/sbin/iptables") + (search-input-file inputs "/sbin/iptables")) + (("/sbin/ip") + (search-input-file inputs "/sbin/ip")))))))) + (native-inputs (list python-setuptools python-wheel)) (inputs (list python-dnspython python-setproctitle iproute iptables)) (home-page "https://github.com/dlenski/vpn-slice") (synopsis "Split tunneling replacement for vpnc-script") |