summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2024-01-17 10:37:40 +0100
committerLudovic Courtès <ludo@gnu.org>2024-01-17 10:37:40 +0100
commita63c2e5f8858968dda1844b87b9024914925257b (patch)
tree6584431d8d0c88cd7c03d006645aa24762dfe1fc /gnu/packages
parent07b9275490c9a23fd557c4292acaf643fbab20cf (diff)
parent299ce524c9f725549ab5548197cc88b085bba2f4 (diff)
Merge branch 'master' into core-updates
Change-Id: Ide7e5cf1c651f193994c02305b6baa4bea4e165f
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/astronomy.scm240
-rw-r--r--gnu/packages/audio.scm218
-rw-r--r--gnu/packages/bioconductor.scm135
-rw-r--r--gnu/packages/bioinformatics.scm382
-rw-r--r--gnu/packages/bootloaders.scm58
-rw-r--r--gnu/packages/build-tools.scm20
-rw-r--r--gnu/packages/check.scm64
-rw-r--r--gnu/packages/chemistry.scm2
-rw-r--r--gnu/packages/ci.scm11
-rw-r--r--gnu/packages/cpp.scm24
-rw-r--r--gnu/packages/cran.scm156
-rw-r--r--gnu/packages/curl.scm15
-rw-r--r--gnu/packages/databases.scm37
-rw-r--r--gnu/packages/debian.scm14
-rw-r--r--gnu/packages/docker.scm14
-rw-r--r--gnu/packages/education.scm6
-rw-r--r--gnu/packages/emacs-xyz.scm4
-rw-r--r--gnu/packages/firmware.scm41
-rw-r--r--gnu/packages/fonts.scm29
-rw-r--r--gnu/packages/fontutils.scm8
-rw-r--r--gnu/packages/games.scm15
-rw-r--r--gnu/packages/geo.scm130
-rw-r--r--gnu/packages/gl.scm32
-rw-r--r--gnu/packages/gnome.scm17
-rw-r--r--gnu/packages/gnuzilla.scm3
-rw-r--r--gnu/packages/golang.scm319
-rw-r--r--gnu/packages/graph.scm4
-rw-r--r--gnu/packages/gtk.scm6
-rw-r--r--gnu/packages/guile-xyz.scm90
-rw-r--r--gnu/packages/hardware.scm1
-rw-r--r--gnu/packages/jami.scm444
-rw-r--r--gnu/packages/java.scm64
-rw-r--r--gnu/packages/julia-xyz.scm4
-rw-r--r--gnu/packages/linux.scm51
-rw-r--r--gnu/packages/lisp-xyz.scm372
-rw-r--r--gnu/packages/lisp.scm13
-rw-r--r--gnu/packages/llvm.scm100
-rw-r--r--gnu/packages/logging.scm2
-rw-r--r--gnu/packages/machine-learning.scm257
-rw-r--r--gnu/packages/maths.scm10
-rw-r--r--gnu/packages/minetest.scm36
-rw-r--r--gnu/packages/music.scm2
-rw-r--r--gnu/packages/networking.scm371
-rw-r--r--gnu/packages/nutrition.scm5
-rw-r--r--gnu/packages/ocaml.scm7
-rw-r--r--gnu/packages/package-management.scm14
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/patches/curl-use-ssl-cert-env.patch26
-rw-r--r--gnu/packages/patches/dtc-meson-cell-overflow.patch32
-rw-r--r--gnu/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch27
-rw-r--r--gnu/packages/patches/ffmpeg-jami-libopusdec-enable-FEC.patch127
-rw-r--r--gnu/packages/patches/ffmpeg-jami-libopusenc-enable-FEC.patch50
-rw-r--r--gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch44
-rw-r--r--gnu/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch26
-rw-r--r--gnu/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch71
-rw-r--r--gnu/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch302
-rw-r--r--gnu/packages/patches/fifengine-python-3.9-compat.patch81
-rw-r--r--gnu/packages/patches/guile-fibers-libevent-timeout.patch61
-rw-r--r--gnu/packages/patches/jami-disable-integration-tests.patch10
-rw-r--r--gnu/packages/patches/jami-libjami-headers-search.patch5
-rw-r--r--gnu/packages/patches/jami-qml-tests-discovery.patch15
-rw-r--r--gnu/packages/patches/jami-skip-tests-requiring-internet.patch51
-rw-r--r--gnu/packages/patches/jami-unbundle-dependencies.patch71
-rw-r--r--gnu/packages/patches/jdk-currency-time-bomb.patch13
-rw-r--r--gnu/packages/patches/jdk-currency-time-bomb2.patch13
-rw-r--r--gnu/packages/patches/libjami-ac-config-files.patch52
-rw-r--r--gnu/packages/patches/openjdk-currency-time-bomb.patch13
-rw-r--r--gnu/packages/patches/openjdk-currency-time-bomb2.patch13
-rw-r--r--gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch61
-rw-r--r--gnu/packages/patches/python-pyls-black-41.patch45
-rw-r--r--gnu/packages/patches/python-pyreadstat-link-libiconv.patch15
-rw-r--r--gnu/packages/patches/python-scikit-bio-1887.patch109
-rw-r--r--gnu/packages/patches/sbcl-fix-ppc64-build.patch27
-rw-r--r--gnu/packages/patches/sbcl-fix-riscv-build.patch19
-rw-r--r--gnu/packages/patches/unknown-horizons-python-3.10.patch32
-rw-r--r--gnu/packages/patches/unknown-horizons-python-3.9.patch41
-rw-r--r--gnu/packages/pdf.scm52
-rw-r--r--gnu/packages/potassco.scm7
-rw-r--r--gnu/packages/python-check.scm29
-rw-r--r--gnu/packages/python-compression.scm34
-rw-r--r--gnu/packages/python-science.scm221
-rw-r--r--gnu/packages/python-web.scm244
-rw-r--r--gnu/packages/python-xyz.scm988
-rw-r--r--gnu/packages/radio.scm12
-rw-r--r--gnu/packages/rdf.scm65
-rw-r--r--gnu/packages/rust.scm54
-rw-r--r--gnu/packages/search.scm5
-rw-r--r--gnu/packages/serialization.scm78
-rw-r--r--gnu/packages/shells.scm8
-rw-r--r--gnu/packages/ssh.scm18
-rw-r--r--gnu/packages/statistics.scm79
-rw-r--r--gnu/packages/suckless.scm5
-rw-r--r--gnu/packages/swig.scm4
-rw-r--r--gnu/packages/telephony.scm71
-rw-r--r--gnu/packages/terminals.scm6
-rw-r--r--gnu/packages/text-editors.scm5
-rw-r--r--gnu/packages/textutils.scm4
-rw-r--r--gnu/packages/tor.scm17
-rw-r--r--gnu/packages/version-control.scm267
-rw-r--r--gnu/packages/video.scm266
-rw-r--r--gnu/packages/vim.scm18
-rw-r--r--gnu/packages/web-browsers.scm28
-rw-r--r--gnu/packages/web.scm34
-rw-r--r--gnu/packages/wm.scm7
105 files changed, 5818 insertions, 2115 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 7be1e19f8c..aaf7996209 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -747,7 +747,7 @@ console.")
(define-public btop
(package
(name "btop")
- (version "1.2.13")
+ (version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -756,7 +756,7 @@ console.")
(file-name (git-file-name name version))
(sha256
(base32
- "0aggzlxyfp213rknpbhkn8wbgzcnz181dyh9m2awz72w705axy8p"))))
+ "0fbrkzg03n2vamg1pfzdb8wxm3xffy6gp4izhqppl45zngy3c0s1"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no test suite
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 90696feff4..a3528a1ea8 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2023 Iliya Tikhonenko <tikhonenko@mpe.mpg.de>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2023 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -157,8 +158,8 @@ randomly altered.
(license license:gpl3)))
(define-public aocommon
- (let ((commit "7329a075271edab8f6264db649e81e62b2b6ae5e")
- (revision "1"))
+ (let ((commit "9272ea36693a7ce7aa3524a9e212a60a509c3b8a")
+ (revision "2"))
(package
(name "aocommon")
(version (git-version "0.0.0" revision commit))
@@ -169,7 +170,7 @@ randomly altered.
(url "https://gitlab.com/aroffringa/aocommon")
(commit commit)))
(sha256
- (base32 "0qcfax6pbzs0yigy0x8xibrkk539wm2pbvjsb4lh50fybir02nix"))
+ (base32 "0klcrrlkc4sjpr83m2gnwb65lg798rydyvrlpangf7np1qg4zbk5"))
(file-name (git-file-name name version))))
(build-system copy-build-system)
(arguments
@@ -186,7 +187,7 @@ reused in several astronomical applications, such as @code{wsclean},
(define-public calceph
(package
(name "calceph")
- (version "3.5.3")
+ (version "3.5.4")
(source
(origin
(method url-fetch)
@@ -194,7 +195,7 @@ reused in several astronomical applications, such as @code{wsclean},
"https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-"
version ".tar.gz"))
(sha256
- (base32 "12apl806h8qx1kq74malq3828jqapwfi27cn05pvvxfiq7gfpllx"))))
+ (base32 "1d95k62926p6h43qh9pxbpa5wm8rby5la9pqq3k6sdyg4gl39a69"))))
(build-system gnu-build-system)
(native-inputs
(list gfortran))
@@ -278,7 +279,7 @@ rendering of the atmosphere model and examine its properties.
(define-public aoflagger
(package
(name "aoflagger")
- (version "3.2.0")
+ (version "3.4.0")
(source
(origin
(method git-fetch)
@@ -286,16 +287,15 @@ rendering of the atmosphere model and examine its properties.
(url "https://gitlab.com/aroffringa/aoflagger")
(commit (string-append "v" version))))
(sha256
- (base32 "1dcbfrbiybhpbypna2xhddx1wk7yifh38ha2r6p5rzsikzwlsin1"))
+ (base32 "0dxmcy04cayhs4s2z41wls1dnmg9hkffvlqcmc660idqziffvv1g"))
(patches
(search-patches "aoflagger-use-system-provided-pybind11.patch"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
(list
- ;; XXX: Tests require external files download from
+ ;; Tests require external files download from
;; https://www.astron.nl/citt/ci_data/aoflagger/
- ;; FIXME: runtest is not found
#:tests? #f
#:configure-flags
#~(list (string-append "-DCASACORE_ROOT_DIR="
@@ -452,7 +452,7 @@ with namespaces, exception handling, and member template functions.")
(define-public cfitsio
(package
(name "cfitsio")
- (version "4.2.0")
+ (version "4.3.1")
(source
(origin
(method url-fetch)
@@ -460,7 +460,7 @@ with namespaces, exception handling, and member template functions.")
"https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/"
"cfitsio-" version ".tar.gz"))
(sha256
- (base32 "128qsv2q0f0g714ahlsixiikvvbwxi9bg9q9pcr5cd3f7wdkv9gb"))))
+ (base32 "1gk2a07ypmc8rcngakcarprznq7hi3xr9szfv3hy2yv80ppci9s7"))))
(build-system gnu-build-system)
(arguments
(list
@@ -572,6 +572,17 @@ Main features:
;; Do not test examples
(("testspaths = astroML doc examples")
"testspaths = astroML"))))
+ (add-after 'unpack 'matplotlib-compatibility
+ (lambda _
+ (substitute* "astroML/plotting/tools.py"
+ (("^( *)ax.(lines|patches|tables|artists|images).clear.*" _ indent type)
+ (string-append indent "for art in ax." type ":\n"
+ indent " art.remove()\n")))))
+ ;; See commit e1c779de1f0ce4cb499dbda6c23d14f76b98e430
+ (add-after 'unpack 'scipy-compatibility
+ (lambda _
+ (substitute* "astroML/dimensionality/iterative_pca.py"
+ (("sym_pos=True") "assume_a=\"pos\""))))
(add-before 'check 'pre-check
;; Some tests need this
(lambda _
@@ -758,14 +769,14 @@ corrections.")
(define-public wcslib
(package
(name "wcslib")
- (version "8.1")
+ (version "8.2.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/"
"wcslib-" version ".tar.bz2"))
(sha256
- (base32 "17hjnkwn2rd5d9krw2n637q4y8ma4nzk2i55zzn8l2yimdpkxwib"))
+ (base32 "0cvqppjf7gk0f3rs9cc46h5fffv2l8ylrb234r9fbx0px0525632"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "C/flexed")))))
@@ -970,7 +981,7 @@ programs for the manipulation and analysis of astronomical data.")
(define-public phd2
(package
(name "phd2")
- (version "2.6.11")
+ (version "2.6.12")
(source
(origin
(method git-fetch)
@@ -979,7 +990,7 @@ programs for the manipulation and analysis of astronomical data.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0n87xsv9gzrwk1ygws4vw397ffq40xybp5b3c3bd5kcmff0avaw9"))
+ (base32 "16695vyczl861fz5qinp23wqn6hzv5h1aspz9x21x67w0a3smbmy"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
@@ -1121,7 +1132,7 @@ image formats.")
(define-public splash
(package
(name "splash")
- (version "3.9.0")
+ (version "3.10.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1129,7 +1140,7 @@ image formats.")
(commit (string-append "v" version))))
(sha256
(base32
- "19r5j4jrxhp3gf865ns59vvfnn5a303dqgmb8y2kgcsx26fci1hs"))
+ "1cyg7my2lbpai81nfnlj0r7pvral3kjn31dcq2p4982d2xg0dj87"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -1572,13 +1583,13 @@ astronomy and astrophysics.")
(define-public python-astropy-healpix
(package
(name "python-astropy-healpix")
- (version "1.0.0")
+ (version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "astropy_healpix" version))
(sha256
- (base32 "18zfmdv0vs0yawirq8c2mpjxx7bvy66z0rlcyc1n6s0fl5ifz0pl"))))
+ (base32 "0fij80ws16xzbph8z9v27w54dnc3vry8fk9p3mvxrglnjgnscvq5"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -1847,13 +1858,13 @@ attempting to maintain ISTP compliance
(define-public python-crds
(package
(name "python-crds")
- (version "11.17.9")
+ (version "11.17.13")
(source (origin
(method url-fetch)
(uri (pypi-uri "crds" version))
(sha256
(base32
- "0ha7ibs5lmqs9pcr546jyxzgrmx1xyqps7fsp220rvlsbsisdgm0"))))
+ "0jcvyiq3z2kbd8g33gk5r99rvhn9i50lz7ngqibdafh390dz5zhc"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -1929,13 +1940,13 @@ Cesium.")
(define-public python-drms
(package
(name "python-drms")
- (version "0.6.4")
+ (version "0.7.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "drms" version))
(sha256
- (base32 "0mkrmr55fgca441z7hvsyri6x9cjsh0sfas3hrj0k1k10k8vszbw"))))
+ (base32 "0smc39nndxqbznjcpnylsag1sc2ksfjhxh4dwiqbki8q6v5ahx84"))))
(build-system pyproject-build-system)
(native-inputs
(list python-astropy
@@ -1955,7 +1966,7 @@ used with local NetDRMS sites.")
(define-public python-drizzle
(package
(name "python-drizzle")
- (version "1.14.3")
+ (version "1.14.4")
(source
(origin
(method git-fetch) ;PyPi doesn't have the test data sets
@@ -1964,7 +1975,7 @@ used with local NetDRMS sites.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "04gncwg76yivcaq7rwgsw5k8w4h3c4wcrjcamb53h0d5s820z7dl"))))
+ (base32 "01zsq1r3p9lig0aik01szncd7nbmyi561mhi1n44yjhh7d86fp8y"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -2041,13 +2052,13 @@ of dates.")
(define-public python-mpl-animators
(package
(name "python-mpl-animators")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mpl_animators" version))
(sha256
- (base32 "12kjmj7rn3pk9ly82h5s5hn0kl3kxkr7bgkz9zr9k59pir8z1r8b"))))
+ (base32 "078dshs383ny182dac0spg7z0iilcwa0fnwv1vizsr6p1d3ar98b"))))
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
@@ -2067,13 +2078,13 @@ the easy construction of interactive matplotlib widget based animations.")
(define-public python-photutils
(package
(name "python-photutils")
- (version "1.9.0")
+ (version "1.10.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "photutils" version))
(sha256
- (base32 "0gjvrmcb10lyqx3h9521zqskqngd5xcp3l9h2b02mk1p7q54mzdy"))))
+ (base32 "148zhdxhlcgj6dxyzaz78bzxw1q44qa9q9sfdqbfbla0s0w2jaay"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -2092,11 +2103,22 @@ the easy construction of interactive matplotlib widget based animations.")
(make-file-writable "photutils/_compiler.c")
(invoke "python" "setup.py" "build_ext" "--inplace"))))))
(propagated-inputs
- (list python-astropy python-numpy))
+ (list python-astropy
+ python-bottleneck
+ python-gwcs
+ python-matplotlib
+ python-numpy
+ python-rasterio
+ python-scikit-image
+ python-scikit-learn
+ python-scipy
+ python-shapely
+ python-tqdm))
(native-inputs
(list python-cython
python-extension-helpers
python-pytest-astropy
+ python-semantic-version
python-setuptools-scm))
(home-page "https://github.com/astropy/photutils")
(synopsis "Source detection and photometry")
@@ -2130,9 +2152,24 @@ of astronomical sources.")
" and not test_czml_custom_packet"
" and not test_czml_ground_station"
" and not test_czml_groundtrack"
- " and not test_czml_preamble"))
+ " and not test_czml_preamble"
+ ;; This fails with "ufunc 'isfinite' not
+ ;; supported for the input types"
+ " and not test_porkchop_plotting"))
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'matplotlib-compatibility
+ (lambda _
+ (substitute* "src/poliastro/plotting/static.py"
+ (("import numpy as np.*" m)
+ (string-append m "\
+import itertools\n"))
+ (("( +)self._ax = ax.*" m indent)
+ (string-append m indent
+ "\
+self.colors = itertools.cycle(plt.rcParams[\"axes.prop_cycle\"].by_key()[\"color\"])\n"))
+ (("color = next\\(self._ax._get_lines.prop_cycler\\)\\[\"color\"\\]")
+ "color = next(self.colors)"))))
;; NOTE: Tests take about 7-10 minutes to pass.
(add-before 'check 'prepare-test-environment
(lambda _
@@ -2266,30 +2303,34 @@ Virtual observatory (VO) using Python.")
(define-public python-regions
(package
(name "python-regions")
- (version "0.7")
+ (version "0.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "regions" version))
(sha256
- (base32 "08wsg9kxnki5pz8gdp81bq06jdmsip382fl02rvnr96cvzr7wf3m"))))
- (build-system python-build-system)
+ (base32 "09401pz7926zlci7cznd78hmv9947f6jxyy2afqdqc1xaccpzcq2"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:test-target "pytest"
- #:phases
- (modify-phases %standard-phases
- ;; This doctest requires online data.
- (add-after 'unpack 'delete-doctest
- (lambda _ (delete-file "docs/masks.rst")))
- ;; This file is opened in both install and check phases.
- (add-before 'install 'writable-compiler
- (lambda _ (make-file-writable "regions/_compiler.c")))
- (add-before 'check 'writable-compiler
- (lambda _ (make-file-writable "regions/_compiler.c")))
- (add-before 'check 'writable-home
- (lambda _ (setenv "HOME" (getcwd)))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; This file is opened in both install and check phases.
+ ;; XXX: Check if it is still required.
+ (add-before 'install 'writable-compiler
+ (lambda _ (make-file-writable "regions/_compiler.c")))
+ (add-before 'check 'prepare-test-environment
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (make-file-writable "regions/_compiler.c")
+ (invoke "python" "setup.py" "build_ext" "--inplace"))))))
(propagated-inputs
- (list python-astropy python-numpy))
+ (list python-astropy
+ python-h5py
+ python-matplotlib
+ python-numpy
+ python-scipy
+ python-shapely))
(native-inputs
(list python-cython
python-extension-helpers
@@ -2305,13 +2346,13 @@ Virtual observatory (VO) using Python.")
(define-public python-reproject
(package
(name "python-reproject")
- (version "0.12.0")
+ (version "0.13.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "reproject" version))
(sha256
- (base32 "1cjdfv7wd4c0ia63vqakxf9w8hd5dfz6jzi520scd37rliy1xgld"))))
+ (base32 "1qkjbx8xsawhi1gjzqimais3crvkwgbzy1pr51x6anjjln88rgll"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -2536,13 +2577,13 @@ elevation, solar azimuth, rahukaalam, and the phases of the moon.")
(define-public python-spectral-cube
(package
(name "python-spectral-cube")
- (version "0.6.3")
+ (version "0.6.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "spectral-cube" version))
(sha256
- (base32 "10q76rsgf9w4j7y68mfa870bpxf06m6kqvivj4340jmgnsrfy1zg"))))
+ (base32 "0cqxgmk46gv2qa2kls8fph105lgwbwf13hvizh6w85mzgypyp740"))))
(build-system pyproject-build-system)
(propagated-inputs
(list python-astropy
@@ -2590,9 +2631,7 @@ of axis order, spatial projections, and spectral units that exist in the wild.
(define-public python-spherical-geometry
(package
(name "python-spherical-geometry")
- ;; XXX: Can't be updated to the latest see:
- ;; https://github.com/spacetelescope/spherical_geometry/issues/227
- (version "1.2.22")
+ (version "1.3.1")
(source
(origin
(method git-fetch)
@@ -2601,7 +2640,7 @@ of axis order, spatial projections, and spectral units that exist in the wild.
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0kzcncqir4v7nhk9lxj9gxr32p3krkaqa58y2i4kksgxxy24qw4z"))))
+ (base32 "172f81h42jq6mv3gpx497z2nkhkx11w4pzmcqljcicri2zqj1m6g"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -2615,18 +2654,23 @@ of axis order, spatial projections, and spectral units that exist in the wild.
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)
;; Use our own libraries in place of bundles.
(setenv "USE_SYSTEM_QD" "1")))
- (add-before 'check 'build-extensions
+ (add-before 'check 'prepare-test-environment
(lambda _
- (invoke "python" "setup.py" "build_ext" "--inplace"))))))
+ (invoke "python" "setup.py" "build_ext" "--inplace")
+ (call-with-output-file "pytest.ini"
+ (lambda (port)
+ (format port "[pytest]
+python_files = test_*.py"))))))))
(native-inputs
(list python-pytest
+ python-pytest-astropy-header
python-setuptools-scm))
(inputs
(list qd))
(propagated-inputs
(list python-astropy
python-numpy))
- (home-page "https://github.com/spacetelescope/tweakwcs")
+ (home-page "https://github.com/spacetelescope/spherical_geometry")
(synopsis "Python astronimical package for handling spherical polygons")
(description
"The @code{spherical_geometry} library is a Python package for handling
@@ -2666,18 +2710,24 @@ Science Institute} image array manipulation functions.")
(define-public python-stsci-imagestats
(package
(name "python-stsci-imagestats")
- (version "1.6.3")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "stsci.imagestats" version))
(sha256
(base32
- "14457izlbnks84dyza75ib3nvx2w8nhlqm9vc1zb7hbhknb5gjvw"))))
+ "01jqqrhcna0ghin48bbcza57d12371ny4l4pqws89irwdhd8xr0r"))))
(build-system pyproject-build-system)
(arguments
- (list #:tests? #f)) ;No tests
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'build-extensions
+ (lambda _
+ ;; Cython extensions have to be built before running the tests.
+ (invoke "python" "setup.py" "build_ext" "--inplace"))))))
(propagated-inputs (list python-numpy))
- (native-inputs (list python-setuptools-scm))
+ (native-inputs (list python-pytest python-setuptools-scm))
(home-page "https://stsciimagestats.readthedocs.io/en/latest/")
(synopsis "Compute sigma-clipped statistics on data arrays")
(description
@@ -2767,13 +2817,13 @@ image processing functions: @code{xyxymatch}, @code{geomap}.")
(define-public python-stdatamodels
(package
(name "python-stdatamodels")
- (version "1.8.3")
+ (version "1.9.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "stdatamodels" version))
(sha256
- (base32 "0265xa9nrp6qp1z7v9kmnd3c8jc0dad2vzin657clk3rrsj2qll5"))))
+ (base32 "16hwhvd8bqm1cmkgcn1v43hp2cvf094fz954rxb6jv2xx6csic15"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -2837,13 +2887,13 @@ implementing calibration pipeline software.")
(define-public python-stsynphot
(package
(name "python-stsynphot")
- (version "1.2.0")
+ (version "1.3.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "stsynphot" version))
(sha256
(base32
- "0qkdh47j84v7fzri7bmi1jcmggdqq0a8byamfm73d8mbz86v8sn4"))))
+ "15m3vy39mc7rh1mrxs8d2bs0bx5vv632m6wg8n15fqjzhadqy7j5"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -2987,7 +3037,7 @@ low quality ones")
(define-public libpasastro
(package
(name "libpasastro")
- (version "1.4.1")
+ (version "1.4.2")
(source
(origin
(method git-fetch)
@@ -2996,7 +3046,7 @@ low quality ones")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1h92p9ph3zi4w8krny1azd9wgwna2nf07ims983jcky1chkfm0is"))))
+ (base32 "1na3gyb3nzb5gdgccs1653j2gnz6w3v1mqzhyhkx3yqw8bs3q5x0"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
@@ -3397,13 +3447,13 @@ Moon position, etc.")
(define-public python-jplephem
(package
(name "python-jplephem")
- (version "2.20")
+ (version "2.21")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jplephem" version))
(sha256
- (base32 "1yp1l3n07849411099f976ps0pyv8jk8k5l9da9nhv54ir86v65v"))))
+ (base32 "0mcdhb22vwbyavcnkcwchj0cxnxsvaw5563v464ipwlm0rhln69l"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -3541,7 +3591,7 @@ functions, so that they can be called with scalar or array inputs.")
(define-public python-pynbody
(package
(name "python-pynbody")
- (version "1.4.2")
+ (version "1.5.2")
(source
(origin
(method git-fetch) ;PyPi doesn't have not prebuit version.
@@ -3550,7 +3600,7 @@ functions, so that they can be called with scalar or array inputs.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1lwjs8vf3pc4a64c93fa5k6r276g1c60722swns2r10ig1s4wk0a"))
+ (base32 "175i99zwnnwglndr71paiadrx3xq3icxjgdqfv3xxpyn7fx4dzab"))
(modules '((guix build utils)))
(snippet
;; Symlink goes to not existing directory.
@@ -3565,6 +3615,7 @@ functions, so that they can be called with scalar or array inputs.")
;; https://github.com/pynbody/pynbody/blob/ \
;; f4bd482dc47532831b3ec115c7cb07149d61bfc5/ \
;; .github/workflows/build-test.yaml#L41
+ "--ignore=tests/copy_on_access_test.py"
"--ignore=tests/gravity_test.py"
"--ignore=tests/adaptahop_test.py"
"--ignore=tests/ahf_halos_test.py"
@@ -3720,13 +3771,13 @@ datetime object.")
(define-public python-synphot
(package
(name "python-synphot")
- (version "1.2.1")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "synphot" version))
- (sha256
- (base32
- "10kcdg2gqmi1w2hsjx9hfizwbff3kll10s68hys13nzh4i8b7cc4"))))
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "synphot" version))
+ (sha256
+ (base32 "0a54bfrx9aar66040324sw9qdjz5lg67y28sjsxhyv9h3gppc7c0"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -3745,9 +3796,16 @@ datetime object.")
(lambda (port)
(format port "[pytest]
python_files = test_*.py"))))))))
- (propagated-inputs (list python-astropy python-numpy python-scipy))
- (native-inputs (list python-pytest python-pytest-astropy
- python-setuptools-scm))
+ (propagated-inputs
+ (list ;; python-dust-extinction ; XXX: Not packed yet, optional.
+ ;; python-specutils ; XXX: Not packed yet, optional.
+ python-astropy
+ python-numpy
+ python-scipy))
+ (native-inputs
+ (list python-pytest
+ python-pytest-astropy
+ python-setuptools-scm))
(home-page "https://github.com/spacetelescope/synphot_refactor")
(synopsis "Synthetic photometry using Astropy")
(description
@@ -3759,13 +3817,13 @@ of the old packages.")
(define-public python-tweakwcs
(package
(name "python-tweakwcs")
- (version "0.8.3")
+ (version "0.8.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "tweakwcs" version))
(sha256
(base32
- "09bd8b77rpn641cwmkhcyzx43xkx3va83wdcb47wcqqa7qgx9f1m"))))
+ "15gc2rc2isx3va6wbn4k1hi5qh49gq15cgbb2qqkbznd7f7d5ifv"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-astropy
python-gwcs
@@ -4040,13 +4098,13 @@ install an implementation package such as asdf-astropy.")
(define-public python-asdf-astropy
(package
(name "python-asdf-astropy")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf-astropy" version))
(sha256
- (base32 "1difb2y1hlalbhrw8znwmmc0vzgg44zfsay98lpllb7y0536fas6"))))
+ (base32 "061y7r1d2fqlr8a6gyaffqa3z5m0ymljahhvxzcb71355xkqig7v"))))
(build-system pyproject-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
@@ -4100,13 +4158,13 @@ install an implementation package such as gwcs.")
(define-public python-gwcs
(package
(name "python-gwcs")
- (version "0.19.0")
+ (version "0.20.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "gwcs" version))
(sha256
- (base32 "1f3h41aq4nwcl6k80jb9s8shn2mhvz32mx9qhcm1xmcqrflqyf52"))))
+ (base32 "1vhvs0mcwrw0128q9pd9v21wl173lspj5rvygqr19ljncralbx73"))))
(build-system pyproject-build-system)
(native-inputs
(list python-jsonschema
@@ -4166,13 +4224,13 @@ Grace Roman Space Telescope.")
(define-public python-radio-beam
(package
(name "python-radio-beam")
- (version "0.3.6")
+ (version "0.3.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "radio-beam" version))
(sha256
- (base32 "19c6gmm1wvyp5nn1yfbzl428rkysdq273j2yaarxpivv7cwj7qjk"))))
+ (base32 "0dg6vqdhmzh47awdkkcbf455gw6if2qwxyhcqbq2dkhbwsx680gc"))))
(build-system pyproject-build-system)
(propagated-inputs
(list python-astropy
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index cd6425a1d3..6ace5151b1 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
@@ -17,7 +17,7 @@
;;; Copyright © 2018, 2019, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018, 2021 Thorsten Wilms <t_w_@freenet.de>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018, 2022 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2018, 2022, 2023, 2024 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -75,6 +75,7 @@
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages dbm)
#:use-module (gnu packages documentation)
@@ -84,6 +85,7 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
@@ -116,6 +118,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
+ #:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
@@ -130,6 +133,7 @@
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tbb)
#:use-module (gnu packages telephony)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
@@ -3043,36 +3047,30 @@ frequencies. This data is then formatted to MIDI and written to disk.")
(define-public lilv
(package
(name "lilv")
- (version "0.24.12")
+ (version "0.24.22")
(source (origin
(method url-fetch)
(uri (string-append "https://download.drobilla.net/lilv-"
- version ".tar.bz2"))
+ version ".tar.xz"))
(sha256
(base32
- "0qchfsyrsrp2pdpd59025kllycr04ddpzd03ha1iz70ci687g8r6"))))
- (build-system waf-build-system)
+ "1wwzkz91zv0cj8dkr7aqsryznihhbkhwaplv81ik7j4zwp84kybn"))))
+ (build-system meson-build-system)
(arguments
- `(#:tests? #f ; no check target
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'set-ldflags
- (lambda* (#:key outputs #:allow-other-keys)
- (setenv "LDFLAGS"
- (string-append "-Wl,-rpath="
- (assoc-ref outputs "out") "/lib"))))
- (add-after 'unpack 'full-store-path-to-shared-library
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion "bindings/python"
- (substitute* "lilv.py"
- (("liblilv-0.so") (string-append (assoc-ref outputs "out")
- "/lib/liblilv-0.so")))))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'full-store-path-to-shared-library
+ (lambda _
+ (with-directory-excursion "bindings/python"
+ (substitute* "lilv.py"
+ (("liblilv-0.so") (string-append #$output "/lib/liblilv-0.so")))))))))
;; Required by lilv-0.pc.
(propagated-inputs
(list lv2 serd sord sratom))
(native-inputs
(list python pkg-config))
- (home-page "https://drobilla.net/software/lilv")
+ (home-page "https://drobilla.net/software/lilv.html")
(synopsis "Library to simplify use of LV2 plugins in applications")
(description
"Lilv is a C library to make the use of LV2 plugins as simple as possible
@@ -3083,18 +3081,15 @@ significantly faster and have minimal dependencies.")
(define-public lv2
(package
(name "lv2")
- (version "1.18.2")
+ (version "1.18.10")
(source (origin
(method url-fetch)
(uri (string-append "https://lv2plug.in/spec/lv2-"
- version ".tar.bz2"))
+ version ".tar.xz"))
(sha256
(base32
- "0pp0n9x1rg8d4fw853z9cvfifjdi4bl85yjxxddqa1acfjy1z2af"))))
- (build-system waf-build-system)
- (arguments
- `(#:tests? #f ; no check target
- #:configure-flags '("--no-plugins")))
+ "0gwm63jrvg9lww0rl3sjkgbjwfz0vascpb19cfxmhkmm477ipibq"))))
+ (build-system meson-build-system)
(inputs
;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
(list libsndfile))
@@ -3652,33 +3647,35 @@ filters using the so-called @emph{window method}.")
(define-public rubberband
(package
(name "rubberband")
- (version "1.8.2")
+ (version "3.3.0")
(source (origin
(method url-fetch)
(uri
- (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
- version
- ".tar.bz2"))
- (file-name (string-append name "-" version ".tar.bz2"))
+ (string-append "https://breakfastquay.com/files/releases/"
+ "rubberband-" version ".tar.bz2"))
(sha256
(base32
- "0462fmjnfqpv2qi0s6ny42drqarkr0xy9lw8frjmfgzyzl5n9294"))))
- (build-system gnu-build-system)
+ "0v2pbv4jnzv3rr2qr71skwncy2p263ngmhn37aqqb7zgp3i8kvyr"))))
+ (build-system meson-build-system)
(arguments
- `(#:tests? #f ; no check target
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'skip-jni-installation
- ;; ‘make install’ unconditionally installs librubberband-jni.so,
- ;; which is never built by ‘make all’. Skip it.
- (lambda _
- (substitute* "Makefile.in"
- ((".*cp -f \\$\\(JNI_TARGET\\).*") ""))
- #t)))))
+ (list
+ #:configure-flags
+ '(list "-Dresampler=libsamplerate"
+ "-Dfft=fftw" ;To avoid using bundled version
+ "-Ddefault_library=shared"))) ;Don't build static library
(inputs
- (list ladspa libsamplerate vamp))
+ (list ladspa lv2 vamp))
+ (propagated-inputs
+ (list fftw libsamplerate)) ;required by rubberband.pc
(native-inputs
(list pkg-config))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "LV2_PATH")
+ (files '("lib/lv2")))
+ (search-path-specification
+ (variable "LADSPA_PATH")
+ (files '("lib/ladspa")))))
(home-page "https://breakfastquay.com/rubberband/")
(synopsis "Audio time-stretching and pitch-shifting library")
(description
@@ -3727,22 +3724,21 @@ input/output.")
(define-public sratom
(package
(name "sratom")
- (version "0.6.6")
+ (version "0.6.16")
(source (origin
(method url-fetch)
(uri (string-append "https://download.drobilla.net/sratom-"
- version ".tar.bz2"))
+ version ".tar.xz"))
(sha256
(base32
- "178v90qvsp6lw4sqdmdz0bzyjkgwhv9m75ph1d1z8say5bv0p4gv"))))
- (build-system waf-build-system)
- (arguments `(#:tests? #f)) ;no check target
+ "1i12wcnv52r05zr5wjmpvbsvbjbm3hkv8frral2kvrc326cmghbi"))))
+ (build-system meson-build-system)
(propagated-inputs
;; In Requires of sratom-0.pc.
(list lv2 serd sord))
(native-inputs
(list pkg-config))
- (home-page "https://drobilla.net/software/sratom/")
+ (home-page "https://drobilla.net/software/sratom.html")
(synopsis "Library for serialising LV2 atoms to/from RDF")
(description
"Sratom is a library for serialising LV2 atoms to/from RDF, particularly
@@ -3869,16 +3865,16 @@ disks as various audio file formats.")
(define-public vamp
(package
(name "vamp")
- (version "2.6")
+ (version "2.10.0")
(source (origin
(method url-fetch)
(uri (string-append
- "https://code.soundsoftware.ac.uk"
- "/attachments/download/1520/vamp-plugin-sdk-"
- version ".tar.gz"))
+ "https://code.soundsoftware.ac.uk/attachments/download/"
+ "2691" ; This mysterious number changes with each update
+ "/vamp-plugin-sdk-" version ".tar.gz"))
(sha256
(base32
- "0pzq0yy2kdl3jgfc2aqmh5m55nk1ild0hq8mydiiw35c6y0mglyh"))))
+ "0pzpkxrz71fzqd2m83kjyafzqzrifzsq5phcn7mqq52blii3gbxf"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
@@ -6231,20 +6227,15 @@ systems.")
(define-public mda-lv2
(package
(name "mda-lv2")
- (version "1.2.6")
+ (version "1.2.10")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.drobilla.net/mda-lv2-"
- version ".tar.bz2"))
+ version ".tar.xz"))
(sha256
- (base32 "1nspk2j11l65m5r9z5isw8j749vh9a89wgx8mkrrq15f4iq12rnd"))))
- (build-system waf-build-system)
- (arguments
- `(#:tests? #f ; There are no tests.
- #:configure-flags
- (list (string-append "--prefix="
- (assoc-ref %outputs "out")))))
+ (base32 "0nm7qahkrxjydv1wii46ca6948srwhjilhlp54z9bpcnln35ksmf"))))
+ (build-system meson-build-system)
(inputs
(list lv2))
(native-inputs
@@ -6253,7 +6244,7 @@ systems.")
(list (search-path-specification
(variable "LV2_PATH")
(files '("lib/lv2")))))
- (home-page "https://drobilla.net/software/mda-lv2")
+ (home-page "https://drobilla.net/software/mda-lv2.html")
(synopsis "Audio plug-in pack for LV2")
(description
"MDA-LV2 is an LV2 port of the MDA plugins. It includes effects and a few
@@ -6411,3 +6402,96 @@ be separated.")
(description "Cubeb is Mozilla's cross-platform audio library.")
(home-page "https://github.com/mozilla/cubeb")
(license license:isc))))
+
+(define-public easyeffects
+ (package
+ (name "easyeffects")
+ (version "7.0.1") ; later version require gtk 4.10
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wwmm/easyeffects")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0c49yd4dfh7qarq5h651dgxdbs71is4pp1sl8r0gfswqji6bv39w"))))
+ (build-system meson-build-system)
+ (native-inputs
+ (list `(,glib "bin") ;for glib-compile-resources
+ gettext-minimal
+ itstool
+ pkg-config))
+ (inputs
+ (list fftwf
+ fmt
+ gsl
+ gtk
+ json-modern-cxx ;nlohmann_json
+ libadwaita
+ libbs2b
+ libebur128
+ libportal
+ libsamplerate
+ libsigc++
+ libsndfile
+ lilv
+ pango
+ pipewire
+ rnnoise
+ speex
+ speexdsp
+ tbb
+ zita-convolver))
+ ;; Propagating these allows EasyEffects to find the plugins via their
+ ;; search-path specification
+ (propagated-inputs
+ (list calf
+ lsp-plugins
+ lv2
+ mda-lv2
+ rubberband
+ zam-plugins))
+ (arguments
+ `(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-gtk-update-icon-cache
+ (lambda _ ; Remove dependency on needless desktop cache stuff.
+ (substitute* "meson.build"
+ (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false")
+ (("update_desktop_database: true") "update_desktop_database: false")))))))
+ (home-page "https://github.com/wwmm/easyeffects")
+ (synopsis "Realtime Audio effects interface for Pipewire")
+ (description "EasyEffects is an advanced audio manipulation tool providing
+a graphical user interface to apply various effects and filters to audio
+streams using Pipewire. Effects can be applied in real time to audio inputs or
+outputs such as a microphone to reduce noise or apply many other effects
+including:
+
+@itemize
+@item Auto gain
+@item Bass enhancer
+@item Bass loudness
+@item Compressor
+@item Convolver
+@item Crossfeed
+@item Crystalizer
+@item De-esser
+@item Delay
+@item Echo Canceller
+@item Equalizer
+@item Exciter
+@item Filter (low-pass, high-pass, band-pass and band-reject modes)
+@item Gate
+@item Limiter
+@item Loudness
+@item Maximizer
+@item Multiband compressor
+@item Multiband gate
+@item Noise reduction
+@item Pitch
+@item Reverberation
+@item Speech Processor
+@item Stereo tools
+@end itemize")
+ (license license:gpl3+)))
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index a7af5c42ce..d82a73ac51 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -59,6 +59,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages statistics)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
@@ -157,6 +158,25 @@ descriptions can discover new relationships between genes and disease, and new
functions for previous uncharacteried genes and alleles.")
(license license:artistic2.0)))
+(define-public r-jaspar2020
+ (package
+ (name "r-jaspar2020")
+ (version "0.99.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "JASPAR2020" version 'annotation))
+ (sha256
+ (base32 "0nrp63z7q2ivv5h87f7inpp2qll2dfgj4227l4rbnzii38a2vfdr"))))
+ (properties `((upstream-name . "JASPAR2020")))
+ (build-system r-build-system)
+ (native-inputs (list r-knitr))
+ (home-page "https://jaspar.elixir.no/")
+ (synopsis "Data package for JASPAR database (version 2020)")
+ (description "Data package for JASPAR2020. To explore these databases,
+utilize the TFBSTools package (version 1.23.1 or higher).")
+ (license license:gpl2)))
+
(define-public r-mafh5-gnomad-v3-1-2-grch38
(package
(name "r-mafh5-gnomad-v3-1-2-grch38")
@@ -1127,6 +1147,46 @@ Ensembl.")
Ensembl.")
(license license:artistic2.0)))
+(define-public r-escape
+ (package
+ (name "r-escape")
+ (version "1.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "escape" version))
+ (sha256
+ (base32 "0bmin69ax7l5x3a0k9mv183277a0hl4znx02y79v2ilkgqkdm7fn"))))
+ (properties `((upstream-name . "escape")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-biocparallel
+ r-broom
+ r-data-table
+ r-dplyr
+ r-ggplot2
+ r-ggridges
+ r-gseabase
+ r-gsva
+ r-matrix
+ r-matrixgenerics
+ r-msigdbr
+ r-patchwork
+ r-reshape2
+ r-rlang
+ r-singlecellexperiment
+ r-stringr
+ r-summarizedexperiment
+ r-ucell))
+ (native-inputs (list r-knitr))
+ (home-page "https://bioconductor.org/packages/escape")
+ (synopsis "Single cell analysis platform for enrichment")
+ (description
+ "R-escape streamlines gene set enrichment analysis for single-cell RNA
+sequencing. Using raw count information, Seurat objects, or
+@code{SingleCellExperiment} format, users can perform and visualize GSEA
+across individual cells.")
+ (license license:gpl2)))
+
(define-public r-snplocs-hsapiens-dbsnp144-grch37
(package
(name "r-snplocs-hsapiens-dbsnp144-grch37")
@@ -5599,6 +5659,35 @@ identification of cells from empty droplets, removal of barcode-swapped
pseudo-cells, and downsampling of the count matrix.")
(license license:gpl3)))
+;; This is a CRAN package, but it depends on r-limma from Bioconductor.
+(define-public r-dsb
+ (package
+ (name "r-dsb")
+ (version "1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "dsb" version))
+ (sha256
+ (base32 "1xzhd4q04c1vql49r6m4zskpx7f5hkl5hmdgr3gsbxb73xfs51v2"))))
+ (properties `((upstream-name . "dsb")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-limma r-magrittr r-mclust))
+ (native-inputs (list r-knitr r-rmarkdown))
+ (home-page "https://github.com/niaid/dsb")
+ (synopsis
+ "Normalize & denoise droplet single cell protein data (CITE-Seq)")
+ (description
+ "R-dsb improves protein expression analysis in droplet-based single-cell
+studies. The package specifically addresses noise in raw protein UMI counts
+from methods like CITE-seq. It identifies and removes two main sources of
+noise—protein-specific noise from unbound antibodies and droplet/cell-specific
+noise. The package is applicable to various methods, including CITE-seq,
+REAP-seq, ASAP-seq, TEA-seq, and Mission Bioplatform data. Check the vignette
+for tutorials on integrating dsb with Seurat and Bioconductor, and using dsb
+in Python.")
+ (license license:cc0)))
+
(define-public r-dss
(package
(name "r-dss")
@@ -7324,13 +7413,13 @@ global-scaling and full-quantile normalization.")
(define-public r-edger
(package
(name "r-edger")
- (version "4.0.5")
+ (version "4.0.6")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "edgeR" version))
(sha256
(base32
- "16cghh83v14jdq5n6xkm3jxj87n6l6zrxjgqdwb2ffgc26vkpb7w"))))
+ "0vksak7rv0agar0gplpj2fcp3183l3iyvbqjmx64c7dwpzjh3lb5"))))
(properties `((upstream-name . "edgeR")))
(build-system r-build-system)
(propagated-inputs
@@ -7668,13 +7757,13 @@ names in their natural, rather than lexicographic, order.")
(define-public r-genomicalignments
(package
(name "r-genomicalignments")
- (version "1.38.0")
+ (version "1.38.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicAlignments" version))
(sha256
(base32
- "06xa3dcdk6jprvpyvr3pfbv6qv8xrqw2n6rrfp8q8qizx3ifj431"))))
+ "0y54kdgb77xqni46pgff1by2ska2jaxfcpq6gk86wb2rym37wlxj"))))
(properties
`((upstream-name . "GenomicAlignments")))
(build-system r-build-system)
@@ -13131,14 +13220,14 @@ accessiblity for new Bioconductor users is hopefully increased.")
(define-public r-inspect
(package
(name "r-inspect")
- (version "1.31.0")
+ (version "1.32.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "INSPEcT" version))
(sha256
(base32
- "0c7bw9cnav41vals2scv2gh5mj5nx2mgzagdb8g99sprdqv5924n"))))
+ "04znack6p50cmc2qyk4hf45m6v70p0bv7h3xs87j0x0h4mb920ch"))))
(properties `((upstream-name . "INSPEcT")))
(build-system r-build-system)
(propagated-inputs
@@ -13147,7 +13236,6 @@ accessiblity for new Bioconductor users is hopefully increased.")
r-biocparallel
r-deseq2
r-desolve
- r-gdata
r-genomeinfodb
r-genomicalignments
r-genomicfeatures
@@ -13156,6 +13244,7 @@ accessiblity for new Bioconductor users is hopefully increased.")
r-kernsmooth
r-plgem
r-proc
+ r-readxl
r-rootsolve
r-rsamtools
r-rtracklayer
@@ -13229,14 +13318,14 @@ samples.")
(define-public r-biocneighbors
(package
(name "r-biocneighbors")
- (version "1.20.1")
+ (version "1.20.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "BiocNeighbors" version))
(sha256
(base32
- "0w7hd6w0lmj1jaaq9zd5gwnnpkzcr0byqm5q584wjg4xgvsb981j"))))
+ "0lvsw920i75di5pwq7yvk8wcxp01wrh7863xmwbrmk5jrvl3y4h4"))))
(properties `((upstream-name . "BiocNeighbors")))
(build-system r-build-system)
(propagated-inputs
@@ -17668,9 +17757,31 @@ of the analyses while minimizing technical noise.")
(uri (bioconductor-uri "cytolib" version))
(sha256
(base32
- "1r2slhzrp3gf45k5gknqgj3vjz7p0rx2yjzrbp020inj82fp4mgi"))))
+ "1r2slhzrp3gf45k5gknqgj3vjz7p0rx2yjzrbp020inj82fp4mgi"))
+ ;; Remove bundled boost sources
+ (modules '((guix build utils)))
+ (snippet
+ '(delete-file-recursively "src/boost"))))
(properties `((upstream-name . "cytolib")))
(build-system r-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'unbundle
+ (lambda _
+ (substitute* "src/Makevars.in"
+ (("\\$\\(USERLIB\\): \\$\\{boost_fs_objs\\}")
+ "$(USERLIB):")
+ (("\\$\\{cytolib_objs\\} \\$\\{boost_fs_objs\\} \\$\\{boost_sys_objs\\}")
+ "${cytolib_objs}")
+ (("PKG_CPPFLAGS =")
+ "PKG_CPPFLAGS = -lboost_filesystem")
+ #;
+ (("^BOOSTFSLIB.*")
+ (string-append "BOOSTFSLIB="
+ #$(this-package-input "boost") "/libboost_filesystem.so\n"))))))))
+ (inputs (list boost openblas protobuf zlib))
(native-inputs
(list r-knitr))
(propagated-inputs
@@ -21322,13 +21433,13 @@ libraries.")
(define-public r-singler
(package
(name "r-singler")
- (version "2.4.0")
+ (version "2.4.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "SingleR" version))
(sha256
- (base32 "0s7m3qdbgrqaq93k6rvyj34h36kdjvppn9ilflrcaa5w498fzfhf"))))
+ (base32 "0zlv45diasff5ipxp99dddswclrzzdcmkqp278fm2cj7aibvb3sd"))))
(properties `((upstream-name . "SingleR")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 41cdcc1de6..173b488c3d 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
@@ -1923,6 +1923,8 @@ biological activities from omics data within a unified framework.")
(base32
"1bhyxqjk44bmyd26m1smapf68wyf7252kk65i27k50dd3kswgnd6"))))
(build-system pyproject-build-system)
+ ;; There are no tests.
+ (arguments (list #:tests? #false))
(propagated-inputs
(list python-docopt
python-importlib-metadata
@@ -2112,6 +2114,29 @@ matplotlib Axes objects, making them easy to style and incorporate into
multi-panel figures.")
(license license:expat)))
+(define-public python-parabam
+ (package
+ (name "python-parabam")
+ (version "3.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "parabam" version))
+ (sha256
+ (base32 "1cy9q3gzdawi1kilycpd7waymjmrwsg8czwycfp13g301ir9xyp3"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "setup.py"
+ (("'argparse',") "")))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-numpy python-pysam))
+ (home-page "https://github.com/cancerit/parabam")
+ (synopsis "Parallel BAM File Analysis")
+ (description "Parabam is a tool for processing sequencing files in
+parallel. It uses Python's native multiprocessing framework to apply a user
+defined rule on an input file.")
+ (license license:gpl3)))
+
(define-public python-peaks2utr
(package
(name "python-peaks2utr")
@@ -2159,6 +2184,8 @@ three prime UTR.")
(base32
"0gqygspdy398vjymdy6756jmk99s7fhwav9rivdx59kpqjcdxaz9"))))
(build-system pyproject-build-system)
+ ;; There are no tests.
+ (arguments (list #:tests? #false))
(propagated-inputs
(list python-anndata
python-docopt
@@ -2426,6 +2453,31 @@ operations:
@end itemize")
(license license:asl2.0)))
+(define-public python-telomerecat
+ (package
+ (name "python-telomerecat")
+ (version "4.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "telomerecat" version))
+ (sha256
+ (base32 "16mfdqmp0j6g3h26h59334w9lqb4qihqrlzwvgznj0fiqs1rkxn2"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
+ (propagated-inputs (list python-click python-numpy python-pandas
+ python-parabam python-pysam))
+ (home-page "https://github.com/cancerit/telomerecat")
+ (synopsis "Telomere computational analysis tool")
+ (description "Telomerecat is a tool for estimating the average telomere
+length (TL) for a paired end, whole genome sequencing (WGS) sample.
+
+Telomerecat is adaptable, accurate and fast. The algorithm accounts for
+sequencing amplification artifacts, anneouploidy (common in cancer samples)
+and noise generated by WGS. For a high coverage WGS BAM file of around 100GB
+telomerecat can produce an estimate in ~1 hour.")
+ (license license:gpl3)))
+
(define-public python-bioframe
(package
(name "python-bioframe")
@@ -2601,6 +2653,7 @@ alignments and perform the following operations:
(base32
"15m6ffks4zwpp1ycwk6n02py6mw2yh7qr0vhpc178b91gldr97ia"))))
(build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
(propagated-inputs (list python-pandas))
(home-page "https://github.com/alexomics/read-paf")
(synopsis "Minimap2 PAF file reader")
@@ -3967,19 +4020,27 @@ UCSC genome browser.")
(define-public python-plastid
(package
(name "python-plastid")
- (version "0.6.0")
+ (version "0.6.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/joshuagryphon/plastid")
- (commit (string-append "v" version))))
+ (commit "d97f239d73b3a7c2eff46f71928b777431891f90")))
(file-name (git-file-name name version))
(sha256
(base32
- "1ka9j08j6i105l89w8b7sg0l8lm3lcrxzy4cjl5dp4cxdmycap62"))))
+ "0iccpywlpf1ws46279z9rl0l29pil0rj0g2j5nvqq7jfbnq581cf"))))
(build-system pyproject-build-system)
(arguments
(list
+ #:test-flags
+ '(list "plastid/test"
+ ;; These four failures look like errors in the test wrapper
+ ;; class.
+ "-k" (string-append "not test_chrom_sizes"
+ " and not test_no_crash_if_file_not_exist"
+ " and not test_fiveprime_variable"
+ " and not test_fiveprime_variable_from_file"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'unpack-test-data
@@ -4675,58 +4736,43 @@ and record oriented data modeling and the Semantic Web.")
(define-public python-scikit-bio
(package
(name "python-scikit-bio")
- (version "0.5.7")
+ (version "0.5.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "scikit-bio" version))
(sha256
(base32
- "1a8xbp3vrw8wfpm3pa2nb4rcar0643iqnb043ifwqbqyc86clhv3"))))
+ "0429060pkyq1pm19zb2n1la7czh7b633mp4a4h01j8zfigf49q3s"))
+ (patches (search-patches "python-scikit-bio-1887.patch"))))
(build-system pyproject-build-system)
(arguments
(list
+ ;; Accuracy problem
+ #:test-flags '(list "-k" "not test_fisher_alpha")
#:phases
'(modify-phases %standard-phases
- ;; See https://github.com/biocore/scikit-bio/pull/1826
(add-after 'unpack 'compatibility
(lambda _
- (substitute* "skbio/sequence/tests/test_sequence.py"
- (("def test_concat_strict_many")
- "def _do_not_test_concat_strict_many"))
- (substitute* "skbio/stats/distance/_mantel.py"
- (("from scipy.stats import PearsonRConstantInputWarning")
- "from scipy.stats import ConstantInputWarning")
- (("from scipy.stats import PearsonRNearConstantInputWarning")
- "from scipy.stats import NearConstantInputWarning")
- (("from scipy.stats import SpearmanRConstantInputWarning") "")
- (("warnings.warn\\(PearsonRConstantInputWarning\\(\\)\\)")
- "warnings.warn(ConstantInputWarning())")
- (("warnings.warn\\(PearsonRNearConstantInputWarning\\(\\)\\)")
- "warnings.warn(NearConstantInputWarning())")
- (("warnings.warn\\(SpearmanRConstantInputWarning\\(\\)\\)")
- "warnings.warn(ConstantInputWarning())"))
- (substitute* "skbio/diversity/alpha/tests/test_base.py"
- (("self.assertEqual\\(pielou_e")
- "self.assertAlmostEqual(pielou_e"))))
+ (substitute* "skbio/diversity/__init__.py"
+ ((", numeric_only=True") ""))))
(add-before 'check 'build-extensions
(lambda _
;; Cython extensions have to be built before running the tests.
(invoke "python3" "setup.py" "build_ext" "--inplace")))
(replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests? (invoke "python3" "-m" "skbio.test")))))))
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
+ (when tests?
+ (apply invoke "python3" "-m" "skbio.test" test-flags)))))))
(propagated-inputs
- (list python-cachecontrol
- python-decorator
+ (list python-decorator
python-h5py
python-hdmedians
python-ipython
- python-lockfile
python-matplotlib
python-natsort
python-numpy
python-pandas
- python-scikit-learn
+ python-requests
python-scipy))
(native-inputs
(list python-coverage python-pytest))
@@ -5752,6 +5798,8 @@ Illumina paired-end data (for CASAVA 1.8+).")
(base32
"124kdg7168nbh4a5wisfws1fgkd89dd4js9v6dml2lvgclbv4mjg"))))
(build-system pyproject-build-system)
+ ;; This contains two test data files but no way to run the tests.
+ (arguments (list #:tests? #false))
(propagated-inputs
(list python-biopython python-matplotlib python-pandas
python-scipy python-seaborn))
@@ -7109,7 +7157,7 @@ performance.")
(define-public htscodecs
(package
(name "htscodecs")
- (version "1.5.1")
+ (version "1.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/samtools/htscodecs/"
@@ -7117,7 +7165,7 @@ performance.")
version "/htscodecs-" version ".tar.gz"))
(sha256
(base32
- "0nykdf08wil6iiihgf5qlb04n70yv4zqqj7c27vpnpwpr2r2ns62"))))
+ "1h0827g9svil9jnjbpdlxjbl44rai5b95m61hs9ifbqrz9nvnjjb"))))
(build-system gnu-build-system)
(inputs (list bzip2 zlib))
(home-page "https://github.com/samtools/htscodecs")
@@ -7135,7 +7183,7 @@ name/ID compression and quality score compression derived from fqzcomp.")
(define-public htslib
(package
(name "htslib")
- (version "1.16")
+ (version "1.19")
(source (origin
(method url-fetch)
(uri (string-append
@@ -7143,7 +7191,7 @@ name/ID compression and quality score compression derived from fqzcomp.")
version "/htslib-" version ".tar.bz2"))
(sha256
(base32
- "093r1n4s134k50m9a925yn95gyi90ps5dlgc6gq4qwvkzxx7qsv0"))
+ "0dh79lwpspwwfbkmllrrhbk8nkvlfc5b5ib4d0xg5ld79w6c8lc7"))
(snippet
#~(begin
(use-modules (guix build utils))
@@ -8428,20 +8476,20 @@ to the user's query of interest.")
(define-public samtools
(package
(name "samtools")
- (version "1.14")
+ (version "1.19")
(source
(origin
(method url-fetch)
(uri
- (string-append "mirror://sourceforge/samtools/samtools/"
- version "/samtools-" version ".tar.bz2"))
+ (string-append "https://github.com/samtools/samtools"
+ "/releases/download/" version
+ "/samtools-" version ".tar.bz2"))
(sha256
(base32
- "0x3xdda78ac5vx66b3jdsv9sfhyz4npl4znl1zbaf3lbm6xdlhck"))
+ "10wby07w33rfypy4kf73v9wwnbyh0lrazbsmrgrvcl88w8c3nszs"))
(modules '((guix build utils)))
- (snippet '(begin
- ;; Delete bundled htslib.
- (delete-file-recursively "htslib-1.14")))))
+ ;; Delete bundled htslib.
+ (snippet '(delete-file-recursively "htslib-1.19"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--with-ncurses")
@@ -8464,6 +8512,26 @@ variant calling (in conjunction with bcftools), and a simple alignment
viewer.")
(license license:expat)))
+(define-public samtools-1.14
+ (package/inherit samtools
+ (version "1.14")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://sourceforge/samtools/samtools/"
+ version "/samtools-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0x3xdda78ac5vx66b3jdsv9sfhyz4npl4znl1zbaf3lbm6xdlhck"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ ;; Delete bundled htslib.
+ (delete-file-recursively "htslib-1.14")))))
+ (native-inputs (list pkg-config))
+ (inputs
+ (list htslib-1.14 ncurses perl python zlib))))
+
(define-public samtools-1.12
(package/inherit samtools
(version "1.12")
@@ -11116,6 +11184,65 @@ single-cell data.")
"This package is designed to streamline scATAC analyses in R.")
(license license:gpl2+))))
+(define-public r-azimuth
+ (let ((commit "243ee5db80fcbffa3452c944254a325a3da2ef9e")
+ (revision "1"))
+ (package
+ (name "r-azimuth")
+ (version (git-version "0.5.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/satijalab/azimuth")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0vs4813kf2cv2j1z800ihwk62bw4dgmwgkd47rln58581chv39zm"))))
+ (properties `((upstream-name . "Azimuth")))
+ (build-system r-build-system)
+ (propagated-inputs (list r-bsgenome-hsapiens-ucsc-hg38
+ r-dt
+ r-ensdb-hsapiens-v86
+ r-future
+ r-ggplot2
+ r-glmgampoi
+ r-googlesheets4
+ r-hdf5r
+ r-htmltools
+ r-httr
+ r-jaspar2020
+ r-jsonlite
+ r-matrix
+ r-patchwork
+ r-plotly
+ r-presto
+ r-rcpp
+ r-rlang
+ r-scales
+ r-seurat
+ r-seuratdata
+ r-seuratdisk
+ r-seuratobject
+ r-shiny
+ r-shinybs
+ r-shinydashboard
+ r-shinyjs
+ r-signac
+ r-stringr
+ r-tfbstools
+ r-withr))
+ (home-page "https://github.com/satijalab/azimuth")
+ (synopsis
+ "Shiny app showcasing a single-cell data query-reference mapping algorithm")
+ (description "Azimuth utilizes an annotated reference dataset. It
+automates the processing, analysis, and interpretation. This applies
+specifically to new single-cell RNA-seq or ATAC-seq experiments. Azimuth
+leverages a reference-based mapping pipeline that inputs acounts matrix and
+performs normalization, visualization, cell annotation, and differential
+expression.")
+ (license license:gpl3))))
+
(define-public r-icellnet
;; v1.0 tagged in 2020, last commit contains many fixes.
;; DESCRIPTION says Version: 0.0.0.9000.
@@ -13070,6 +13197,7 @@ applications for tackling some common problems in a user-friendly way.")
(invoke "python3" "test/test_all.py")))))))
(native-inputs
(list `(,glib "bin") ;for gtester
+ glib
pkg-config))
(inputs
;; TODO: add Chimera for visualization
@@ -16335,7 +16463,7 @@ implementation differs in these ways:
(define-public python-scanpy
(package
(name "python-scanpy")
- (version "1.9.1")
+ (version "1.9.6")
(source
(origin
(method git-fetch)
@@ -16345,21 +16473,28 @@ implementation differs in these ways:
(file-name (git-file-name name version))
(sha256
(base32
- "0k524xnx3dvpz5yx65p316wghvi01zs17is8w2m3w2qywiswk0sl"))))
+ "12rz0a9151fkry6ws1a8p5wnc4n5qbjl6xlynj7kxy223iz8isds"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
'(list "-k"
;; Plot tests that fail.
- (string-append "not test_dotplot_matrixplot_stacked_violin"
- " and not test_violin_without_raw"
- " and not test_correlation"
- " and not test_scatterplots"
- " and not test_scatter_embedding_add_outline_vmin_vmax_norm"
- " and not test_paga"
+ (string-append "not test_clustermap"
+ " and not test_dotplot_matrixplot_stacked_violin"
" and not test_paga_compare"
- " and not test_clustermap"
+ " and not test_paga_path"
+ " and not test_paga_pie"
+ " and not test_paga_plots"
+ " and not test_violin"
+ " and not test_scatter_no_basis_per_obs"
+
+ ;; Type mismatch
+ " and not test_obs_df"
+ " and not test_var_df"
+
+ ;; Minor accuracy problem
+ " and not test_consistency[morans_i-allclose]"
;; These try to connect to the network
" and not test_scrublet_plots"
@@ -16391,10 +16526,6 @@ implementation differs in these ways:
;; These two fail with "ValueError: I/O operation on closed file."
(delete-file "scanpy/tests/test_neighbors_key_added.py")
- ;; TODO: these fail with TypingError and "Use of unsupported
- ;; NumPy function 'numpy.split'".
- (delete-file "scanpy/tests/test_metrics.py")
-
;; The following tests requires 'scanorama', which isn't
;; packaged yet.
(delete-file "scanpy/tests/external/test_scanorama_integrate.py")
@@ -16435,8 +16566,11 @@ implementation differs in these ways:
`(;; This package needs anndata.tests, which is not installed.
("python-anndata:source" ,(package-source python-anndata))
("python-flit" ,python-flit)
+ ("python-hatchling" ,python-hatchling)
+ ("python-hatch-vcs" ,python-hatch-vcs)
("python-leidenalg" ,python-leidenalg)
("python-pytest" ,python-pytest)
+ ("python-pytest-nunit" ,python-pytest-nunit)
("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/theislab/scanpy")
(synopsis "Single-Cell Analysis in Python")
@@ -16450,36 +16584,34 @@ million cells.")
(define-public python-bbknn
(package
(name "python-bbknn")
- (version "1.5.1")
+ (version "1.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bbknn" version))
(sha256
(base32
- "0q11xdmjr2kf6f179a6kjizj3lllfrq743gslgw67qyzimvrrnhn"))))
- (build-system python-build-system)
+ "06q43cpi7wi6f2d2jqs8f9rbd94pg1hh7978gm92mi9gvzbaj08w"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:tests? #f ; no tests are included
- #:phases
- (modify-phases %standard-phases
+ (list
+ #:tests? #f ;no tests are included
+ #:phases
+ '(modify-phases %standard-phases
;; Numba needs a writable dir to cache functions.
(add-before 'check 'set-numba-cache-dir
(lambda _
- (setenv "NUMBA_CACHE_DIR" "/tmp")))
- (add-after 'unpack 'do-not-fail-to-find-sklearn
- (lambda _
- ;; XXX: I have no idea why it cannot seem to find sklearn.
- (substitute* "setup.py"
- (("'sklearn'") "")))))))
+ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
(propagated-inputs
(list python-annoy
python-cython
python-numpy
python-pandas
+ python-pynndescent
python-scikit-learn
python-scipy
python-umap-learn))
+ (native-inputs (list python-flit-core))
(home-page "https://github.com/Teichlab/bbknn")
(synopsis "Batch balanced KNN")
(description "BBKNN is a batch effect removal tool that can be directly
@@ -16784,55 +16916,26 @@ fasta subsequences.")
(define-public python-cooler
(package
(name "python-cooler")
- (version "0.8.11")
+ (version "0.9.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cooler" version))
(sha256
(base32
- "1i96fmpsimj4wrx51rxn8lw2gqxf5a2pvrj5rwdd6ivnm3pmhyrn"))))
- (build-system python-build-system)
+ "0capn4jj3mkxfwcc65cg644zvrv4sqr2wxr0ylx5w767jx3yb7p2"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; cooler requests cytoolz<0.11. It only uses cytoolz for "compose",
- ;; which composes two functions.
- (add-after 'unpack 'use-recent-cytoolz
- (lambda _
- (substitute* '("requirements.txt"
- "cooler.egg-info/requires.txt")
- (("cytoolz.*<.*0.11") "cytoolz"))))
- ;; This version of flake8 just won't work with this version of
- ;; pytest, because of dependency pinning.
- (add-after 'unpack 'do-not-use-flake8
- (lambda _
- (substitute* "setup.cfg"
- (("addopts = --flake8") "addopts = "))))
- (add-after 'unpack 'patch-tests
- (lambda _
- (substitute* "tests/test_create.py"
- (("def test_roundtrip")
- (string-append "@pytest.mark.skip(reason=\"requires network "
- "access to genome.ucsc.edu\")\n"
- "def test_roundtrip")))
- (substitute* "tests/test_util.py"
- (("def test_fetch_chromsizes")
- (string-append "@pytest.mark.skip(reason=\"requires network "
- "access to genome.ucsc.edu\")\n"
- "def test_fetch_chromsizes"))
- ;; See https://github.com/open2c/cooler/issues/287
- (("skipif\\(six.PY2, reason=\"Scipy on Py2 is too old\"")
- "skip(reason=\"Scipy is too new\""))
- ;; This test depends on ipytree, which contains a lot of minified
- ;; JavaScript.
- (substitute* "tests/test_fileops.py"
- (("def test_print_trees")
- "def _test_print_trees"))))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "python" "-m" "pytest" "-v")))))))
+ (list
+ #:test-flags
+ '(list "-k"
+ (string-append
+ ;; These tests download files from the internet.
+ "not test_fetch_chromsizes"
+ " and not test_roundtrip"
+ ;; This test depends on ipytree, which contains a lot of
+ ;; minified JavaScript.
+ " and not test_print_trees"))))
(propagated-inputs
(list python-asciitree
python-biopython
@@ -16848,12 +16951,13 @@ fasta subsequences.")
python-pysam
python-pyyaml
python-scipy
- python-simplejson
- python-six
- python-sparse))
+ python-simplejson))
(native-inputs
- (list python-codecov python-mock python-pytest python-pytest-cov
- python-pytest-flake8))
+ (list python-coverage
+ python-hatchling
+ python-isort
+ python-pytest
+ python-pytest-cov))
;; Almost all the projects of the Mirnylab are moved under Open2C umbrella
(home-page "https://github.com/open2c/cooler")
(synopsis "Sparse binary format for genomic interaction matrices")
@@ -16910,7 +17014,7 @@ includes operations like compartment, insulation or peak calling.")
(define-public python-hicmatrix
(package
(name "python-hicmatrix")
- (version "16")
+ (version "17.1")
(source
(origin
;;Pypi sources do not contain any test
@@ -16921,16 +17025,8 @@ includes operations like compartment, insulation or peak calling.")
(file-name (git-file-name name version))
(sha256
(base32
- "00b9l62j4knrsdp7l3pawi9cqcsl09diycbhmmnar850bzssmq4f"))))
+ "14gq7r9b64ff56l5f8h8zc2i2y3xri646jl0anb74japqxrwvlna"))))
(build-system pyproject-build-system)
- (arguments
- (list
- #:phases
- '(modify-phases %standard-phases
- (add-after 'unpack 'remove-invalid-syntax
- (lambda _
- (substitute* "setup.py"
- ((".\\*\"") "\"")))))))
(propagated-inputs
(list python-cooler
python-intervaltree
@@ -17048,7 +17144,18 @@ the HiCExplorer and pyGenomeTracks packages.")
"general/test_hicHyperoptDetectLoopsHiCCUPS.py"
"general/test_hicAggregateContacts.py"
"general/test_hicInterIntraTAD.py")
- (("^memory =.*") "memory = 1\n"))))))))
+ (("^memory =.*") "memory = 1\n")))))
+ ;; This is fixed in version 3.7.3, but we cannot upgrade yet as we
+ ;; don't have Pandas 2.
+ (add-after 'unpack 'scipy-compatibility
+ (lambda _
+ (substitute* "hicexplorer/hicAverageRegions.py"
+ (("from scipy.sparse import csr_matrix, save_npz, lil_matrix")
+ "from scipy.sparse import csr_matrix, save_npz, lil_matrix, coo_matrix")
+ (("summed_matrix = np.array\\(summed_matrix\\)")
+ "summed_matrix = coo_matrix(summed_matrix)")
+ (("data = summed_matrix\\[np.nonzero\\(summed_matrix\\)\\]")
+ "data = summed_matrix.toarray()[np.nonzero(summed_matrix)]")))))))
(propagated-inputs
(list python-biopython
python-cleanlab-1
@@ -17785,7 +17892,7 @@ polymorphisms) and indels with respect to a reference genome and more.")
(define-public cnvkit
(package
(name "cnvkit")
- (version "0.9.9")
+ (version "0.9.10")
(source
(origin
(method git-fetch)
@@ -17794,17 +17901,8 @@ polymorphisms) and indels with respect to a reference genome and more.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1q4l7jhr1k135an3n9aa9wsid5lk6fwxb0hcldrr6v6y76zi4gj1"))))
+ (base32 "0r303pqjg70zpxa564bavbfj99c6di0dafgqqwx2vh4vfsiif94q"))))
(build-system pyproject-build-system)
- (arguments
- (list
- #:phases
- '(modify-phases %standard-phases
- ;; See upstream commit eee0f6eaec57d5c6e58142d661979f3aacc5f76a
- (add-after 'unpack 'compatibility
- (lambda _
- (substitute* "setup.py"
- (("'joblib.*") "")))))))
(propagated-inputs
(list python-biopython
python-future
@@ -17819,6 +17917,7 @@ polymorphisms) and indels with respect to a reference genome and more.")
python-scipy
;; R packages
r-dnacopy))
+ (inputs (list r-minimal)) ;for tests
(home-page "https://cnvkit.readthedocs.org/")
(synopsis "Copy number variant detection from targeted DNA sequencing")
(description
@@ -20305,11 +20404,11 @@ translates between different variant encodings.")
(license license:asl2.0))))
(define-public r-signac
- (let ((commit "af4142724b72574d957f7fe3d422ed5828ec3ad0")
+ (let ((commit "8ecdde291676102bb3b503f48926c993354b5471")
(revision "1"))
(package
(name "r-signac")
- (version (git-version "1.9.0" revision commit))
+ (version (git-version "1.12.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -20318,7 +20417,7 @@ translates between different variant encodings.")
(file-name (git-file-name name version))
(sha256
(base32
- "0ps0lp1dcy20r6lakil6ih81m04r0s6fnirvfjf01sfs0gsyddww"))))
+ "0idkcqb1i13m164nxbdwgs3vflw0cxzm2ir84aw0i811vx9lqz8c"))))
(properties `((upstream-name . "Signac")))
(build-system r-build-system)
(inputs (list zlib))
@@ -20704,6 +20803,11 @@ aligner.")
'(list "-k" "not test_perfect_fit and not test_perfect_fit_2d")
#:phases
#~(modify-phases %standard-phases
+ (add-after 'unpack 'matplotlib-compatibility
+ (lambda _
+ (substitute* "scvelo/settings.py"
+ (("warnings.filterwarnings\\(\"ignore\", category=cbook.mplDeprecation\\)")
+ ""))))
;; Numba needs a writable dir to cache functions.
(add-before 'check 'set-numba-cache-dir
(lambda _
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 683bbf2fa1..15fc7579c4 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -55,9 +55,12 @@
#:use-module (gnu packages man)
#:use-module (gnu packages mtools)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages ninja)
+ #:use-module (gnu packages package-management)
#: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 texinfo)
#:use-module (gnu packages tls)
@@ -71,6 +74,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system trivial)
#:use-module (guix download)
@@ -631,7 +635,7 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for
(define-public dtc
(package
(name "dtc")
- (version "1.6.1")
+ (version "1.7.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -639,42 +643,56 @@ The SUBDIR argument defaults to \"efi/Guix\", as it is also the case for
"dtc-" version ".tar.gz"))
(sha256
(base32
- "0xm38h31jb29xfh2sfyk48d8wdfq4b8lmb412zx9vjr35izjb9iq"))))
- (build-system gnu-build-system)
+ "0cij9399snpn672pdbda8qbxljdkfg068kvv3g5811rz6yslx124"))
+ (patches
+ (search-patches "dtc-meson-cell-overflow.patch"))))
+ (build-system meson-build-system)
(arguments
(list
- #:modules `(,@%default-gnu-imported-modules (srfi srfi-26))
- #:make-flags
- #~(list (string-append "CC=" #$(cc-for-target))
- ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1.
- (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
- (string-append "PREFIX=" #$output)
- (string-append "SETUP_PREFIX=" #$output)
- "INSTALL=install")
+ #:modules '((guix build meson-build-system)
+ (guix build utils)
+ (srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'patch-pkg-config
+ (add-after 'unpack 'preparations
(lambda _
- (substitute* '("Makefile"
- "tests/run_tests.sh")
- (("pkg-config")
- #$(pkg-config-for-target)))))
- (delete 'configure) ;no configure script
- (add-before 'build 'install-doc
+ ;; The version string is usually derived via setuptools-scm, but
+ ;; without the git metadata available this fails.
+ (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)
+
+ ;; Needed by setup.py.
+ (setenv "DESTDIR" "/")
+
+ ;; Native gcc needed by run_test.sh.
+ (setenv "CC" "gcc")
+
+ ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1.
+ (setenv "LDFLAGS"
+ (string-append "-Wl,-rpath=" #$output "/lib"))))
+ (add-after 'unpack 'install-doc
(lambda _
(with-directory-excursion "Documentation"
(for-each (cut install-file <> (string-append
#$output "/share/doc/dtc/"))
'("dts-format.txt"
"dt-object-internal.txt"
- "manual.txt"))))))))
+ "manual.txt")))))
+ (add-after 'unpack 'patch-pkg-config
+ (lambda _
+ (substitute* '("tests/run_tests.sh")
+ (("pkg-config")
+ #$(pkg-config-for-target))))))))
(native-inputs
(append
(list bison
flex
libyaml
+ ninja
pkg-config
- swig)
+ python
+ python-setuptools-scm
+ swig
+ which)
(if (member (%current-system) (package-supported-systems valgrind))
(list valgrind)
'())))
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 9e6ed6eec6..15d88ded80 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@@ -346,13 +346,13 @@ resembles Python.")
(define-public meson-python
(package
(name "meson-python")
- (version "0.12.1")
+ (version "0.15.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "meson_python" version))
(sha256
(base32
- "1hpjw9qj6ff8ixjs0pz7qysc8v57jxgaf5n1p6bqm9bh3mc3wnrx"))))
+ "0vyjhjabvm41hqijifk33idbdl62i76kfyf884f9rs29rpp77nzx"))))
(build-system pyproject-build-system)
(arguments
;; The project is configured to use itself to build ('mesonpy') and fails;
@@ -361,13 +361,22 @@ resembles Python.")
#:test-flags #~(list "tests"
;; The test_pep518 tries to install
;; dependencies from the network using pip.
- "-k" "not test_pep518")))
+ "-k" "not test_pep518")
+ #:phases
+ '(modify-phases %standard-phases
+ ;; This additional top directory confuses setuptools. We could
+ ;; work around this by overriding the detection of the project
+ ;; directory, but deleting this directory is easier.
+ (add-after 'unpack 'delete-directory
+ (lambda _ (delete-file-recursively "LICENSES"))))))
(propagated-inputs
(list meson
ninja
python-colorama
- python-pyproject-metadata
+ python-cython
+ python-pyproject-metadata-0.7
python-tomli
+ python-typing-extensions
python-wheel))
(native-inputs
(list python-pypa-build
@@ -380,6 +389,7 @@ resembles Python.")
python-cython
python-gitpython
python-pytest
+ python-pytest-cov
python-pytest-mock))
(home-page "https://github.com/mesonbuild/meson-python")
(synopsis "Meson-based build backend for Python")
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 80e0b94d01..4de5b1c0d4 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -24,7 +24,7 @@
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2015, 2017, 2018, 2020, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2018, 2020, 2021, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@@ -47,6 +47,7 @@
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
+;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -107,6 +108,7 @@
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix deprecation)
+ #:use-module (ice-9 match)
#:use-module (srfi srfi-1))
(define-public pict
@@ -602,10 +604,10 @@ It allows the specification of behaviour scenarios using a given-when-then
pattern.")
(license license:apsl2))))
-(define-public catch2-3.3
+(define-public catch2-3
(package
(name "catch2")
- (version "3.4.0")
+ (version "3.5.1")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method git-fetch)
@@ -615,12 +617,19 @@ pattern.")
(file-name (git-file-name name version))
(sha256
(base32
- "1gdfsva6mnd66px85fmm3s65h8qzqnmgbmws2i3nygfav1y8d88f"))))
+ "0p7rk01n4qfnnm1bgakllyqi83n1kbpz11gh65z1vspfz58hs9iv"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
- #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
+ #~(list #$@(match (%current-system)
+ ((or "x86_64-linux" "i686-linux")
+ ;; Tests fail on i686-linux without SSE2 for floats, see
+ ;; upstream report
+ ;; <https://github.com/catchorg/Catch2/issues/2796>.
+ '("-DCMAKE_CXX_FLAGS=-msse2 -mfpmath=sse"))
+ (_ '()))
+ "-DCATCH_DEVELOPMENT_BUILD=ON"
"-DCATCH_ENABLE_WERROR=OFF"
"-DBUILD_SHARED_LIBS=ON")))
(inputs (list python-wrapper))
@@ -1416,6 +1425,30 @@ distributed testing in both @code{load} and @code{each} modes. It also
supports coverage of subprocesses.")
(license license:expat)))
+(define-public python-pytest-dotenv
+ (package
+ (name "python-pytest-dotenv")
+ (version "0.5.2")
+ (source
+ (origin
+ ;; No tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/quiqua/pytest-dotenv")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0bdxwaak5clhsd63b9q65nf2amqqv5hfn7dskfakyldxsqnnh0y6"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-dotenv))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/quiqua/pytest-dotenv")
+ (synopsis "Automatically detect and load a .env file before running tests")
+ (description
+ "This Pytest plugin automatically detects and loads environment variables
+from a .env file before running tests.")
+ (license license:expat)))
+
(define-public python-pytest-httpserver
(package
(name "python-pytest-httpserver")
@@ -1447,6 +1480,27 @@ supports coverage of subprocesses.")
contacting the real http server.")
(license license:expat)))
+(define-public python-pytest-nunit
+ (package
+ (name "python-pytest-nunit")
+ (version "1.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-nunit" version))
+ (sha256
+ (base32 "1gw3a33myq9yncjixs3kkcrr1xkjzvvf3xk6x955p3i79wlwkswx"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;no tests included
+ (propagated-inputs (list python-attrs python-pytest))
+ (native-inputs (list python-pytest python-pytest-cov python-xmlschema))
+ (home-page "https://github.com/pytest-dev/pytest-nunit")
+ (synopsis "Pytest plugin for generating NUnit3 test result XML output")
+ (description
+ "This package provides a pytest plugin for generating NUnit3 test result
+XML output")
+ (license license:expat)))
+
(define-public python-pytest-param-files
(package
(name "python-pytest-param-files")
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index e177b27e9d..df96a2f5c1 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -263,7 +263,7 @@ molecules.")
(arguments '(#:tests? #f))
;; There is no support for modern msgpack versions yet (see:
;; https://github.com/rcsb/mmtf-cpp/issues/44).
- (propagated-inputs (list msgpack)) ;included by mmtf/structure_data.hpp
+ (propagated-inputs (list msgpack-3)) ;included by mmtf/structure_data.hpp
(home-page "https://mmtf.rcsb.org/")
(synopsis "C++ API for the Macromolecular Transmission Format")
(description "This package is a library for the
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 4b1254932c..f470b7918c 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2023 David Pflug <david@pflug.io>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -60,8 +61,8 @@
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR)))
(define-public cuirass
- (let ((commit "bdc1f9f304a3f5931ec507dcfe0b91b185b70708")
- (revision "1"))
+ (let ((commit "7bcd3d079f0ec45ac50f0dbc14eb4ec68c6a6b53")
+ (revision "2"))
(package
(name "cuirass")
(version (git-version "1.2.0" revision commit))
@@ -74,7 +75,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "031vv3rk7vzal611iq8sgq5yackp78kdpz8qn78j561pl9bip80n"))))
+ "0x92dsck8ryyqz5cbs6i11wdrsbagrl85jddzc52rmwzqzrig9j2"))))
(build-system gnu-build-system)
(arguments
(list #:modules `((guix build utils)
@@ -174,7 +175,7 @@ intended as a replacement for Hydra.")
(define-public laminar
(package
(name "laminar")
- (version "1.2")
+ (version "1.3")
(source
(origin (method git-fetch)
(uri (git-reference
@@ -183,7 +184,7 @@ intended as a replacement for Hydra.")
(file-name (git-file-name name version))
(sha256
(base32
- "1sg0kccp3nczkn2vxcsqv10vyvmjnhpaykc1nfhh55jyda4xzf9w"))))
+ "0ya5nzl1qf11if564xd49l8ajxyish7pbn875js4f153z775d3ks"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; TODO Can't build tests
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 2004605c63..ba72e76a8a 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -31,7 +31,7 @@
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022, 2023 David Elsing <david.elsing@posteo.net>
;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
-;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2023 Sughosha <Sughosha@proton.me>
;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
@@ -327,6 +327,28 @@ the @code{Clang/LLVM} infrastructure to extract the data, and emits it in
various formats, including @code{json}.")
(license license:gpl2+)))
+(define-public expected-lite
+ (package
+ (name "expected-lite")
+ (version "0.6.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/martinmoene/expected-lite")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0d58nqh2fwdzdpln2wlnf898wyfxdnskq6ff33azbg92d5ibzys2"))))
+ (build-system cmake-build-system)
+ (home-page "https://github.com/martinmoene/expected-lite")
+ (synopsis "Expected objects in C++11 and later")
+ (description "@i{expected lite} is a single-file header-only library for
+objects that either represent a valid value or an error that can be passed by
+value. It is intended for use with C++11 and later. The library is based on
+the @code{std::expected} proposal (@url{http://wg21.link/p0323}).")
+ (license license:boost1.0)))
+
(define-public libzen
(package
(name "libzen")
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 85c527dc32..95bd62b5a7 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -290,16 +290,17 @@ automatically pruning objects to maintain the constraints.")
(define-public r-castor
(package
(name "r-castor")
- (version "1.7.11")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri (cran-uri "castor" version))
(sha256
(base32
- "1cxjgwbsacjcc10qdch6pndjxqnk20hhamxqg0lckszvkyb67yn3"))))
+ "0caw206hndfzypj33w6npvppdc5hhq1q71wriqd0ck9f238rfi3c"))))
(properties `((upstream-name . "castor")))
(build-system r-build-system)
- (propagated-inputs (list r-matrix r-naturalsort r-rcpp r-rspectra))
+ (propagated-inputs (list r-jsonlite r-matrix r-naturalsort r-rcpp
+ r-rspectra))
(home-page "https://cran.r-project.org/package=castor")
(synopsis "Efficient phylogenetics on large trees")
(description
@@ -2117,13 +2118,13 @@ known as Dynamic Linear Models.")
(define-public r-zcompositions
(package
(name "r-zcompositions")
- (version "1.5")
+ (version "1.5.0-1")
(source (origin
(method url-fetch)
(uri (cran-uri "zCompositions" version))
(sha256
(base32
- "1hfgw3h3si5qkynzc520648pskw26bckcji1qgi5fkag6fd8l08p"))))
+ "0sx6i03iyg4jxmjiyzkssz3i6c8nv29wwhbl7yd0wxapwpakmlj8"))))
(properties `((upstream-name . "zCompositions")))
(build-system r-build-system)
(propagated-inputs
@@ -2268,14 +2269,14 @@ variables.")
(define-public r-ggpp
(package
(name "r-ggpp")
- (version "0.5.5")
+ (version "0.5.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggpp" version))
(sha256
(base32
- "0nysan87vgy0pbcks3bychm84zcwx9pf4p250b45ghimhvxh5cvm"))))
+ "0xnjbxd1lkg85c2hsx7cgxqsqb3dc0pma8jwdlqfgg7d519d60xa"))))
(properties `((upstream-name . "ggpp")))
(build-system r-build-system)
(propagated-inputs
@@ -3485,13 +3486,13 @@ read a protected key.")
(define-public r-astsa
(package
(name "r-astsa")
- (version "2.0")
+ (version "2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "astsa" version))
(sha256
- (base32 "0rv4fnz5bbd6f8b6fwa2ljdjq5yx0qi7hcbhrgvrbibl2pzfm7w7"))))
+ (base32 "0rnbacq5vbnlzfssj13ixgkg0d1wixh2m3dcsi66c63wx65rm3d3"))))
(properties `((upstream-name . "astsa")))
(build-system r-build-system)
(home-page "https://github.com/nickpoison/astsa/")
@@ -3788,14 +3789,14 @@ sources.")
(define-public r-reprex
(package
(name "r-reprex")
- (version "2.0.2")
+ (version "2.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "reprex" version))
(sha256
(base32
- "14khx09yzn97xhags48lvym1g37h1l2ymvw6r1jlldhjc7i1cnx8"))))
+ "0ld90pkw2r7z115xdnyqk4p39vnxrc8jnn57sl4bkpg5frczw38a"))))
(build-system r-build-system)
(propagated-inputs
(list r-callr
@@ -5981,14 +5982,14 @@ colors are provided.")
(define-public r-glue
(package
(name "r-glue")
- (version "1.6.2")
+ (version "1.7.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "glue" version))
(sha256
(base32
- "1gzxk5jgdh2xq9r7z09xs306ygzf27vhg3pyfl7ck1755gqii9cx"))))
+ "1p4699p68k9f8d76bmgx5xabay6xjrcgajckzqxyn6icym8ipx8s"))))
(build-system r-build-system)
(properties
;; knitr depends on glue, so we can't add knitr here to build the
@@ -6267,13 +6268,13 @@ value for each cluster in a dendrogram.")
(define-public r-rcpp
(package
(name "r-rcpp")
- (version "1.0.11")
+ (version "1.0.12")
(source
(origin
(method url-fetch)
(uri (cran-uri "Rcpp" version))
(sha256
- (base32 "0pzssba79z90rax2v02r5m1a6ysljfnvq03r6q2nr72rd0q7qxfz"))))
+ (base32 "1l1b0q2r6q2bjr4wvj98kp9844fyrsn2ppx339v05vmy8g65jwqc"))))
(build-system r-build-system)
(home-page "https://www.rcpp.org")
(synopsis "Seamless R and C++ integration")
@@ -8356,20 +8357,20 @@ similar to finite mixture models.")
(define-public r-rpostgresql
(package
(name "r-rpostgresql")
- (version "0.7-5")
+ (version "0.7-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "RPostgreSQL" version))
(sha256
(base32
- "18czy93l9dg321pbvrfmlwrjahpbkiw0sll4pkkqm55xapp02m3b"))))
- (properties `((upstream-name . "RPostgreSQL")))
+ "0b1dmx5pcd4v1xg25ihxilkga3zdblb1xy896ik5fdkaidq3jn9q"))))
+ (properties
+ '((upstream-name . "RPostgreSQL")
+ (updater-extra-inputs . ("postgresql"))))
(build-system r-build-system)
- (inputs
- (list postgresql))
- (propagated-inputs
- (list r-dbi))
+ (inputs (list postgresql))
+ (propagated-inputs (list r-dbi))
(home-page "https://github.com/tomoakin/RPostgreSQL")
(synopsis "R interface to the PostgreSQL database system")
(description
@@ -8733,14 +8734,14 @@ for certain use cases.")
(define-public r-ggrepel
(package
(name "r-ggrepel")
- (version "0.9.4")
+ (version "0.9.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggrepel" version))
(sha256
(base32
- "0gngsx87rcqijdr684bgpnazdlz3vj4brzw0fic0jdsrf1rb9aw1"))))
+ "1alcrw304bn6c2i64rxxjkzk3il19gq30gyj3sb4blradkjh1rni"))))
(build-system r-build-system)
(propagated-inputs
(list r-ggplot2 r-rcpp r-rlang r-scales r-withr))
@@ -14236,13 +14237,13 @@ libxlsxwriter.")
(define-public r-writexls
(package
(name "r-writexls")
- (version "6.4.0")
+ (version "6.5.0")
(source (origin
(method url-fetch)
(uri (cran-uri "WriteXLS" version))
(sha256
(base32
- "1dqr98kx930y6mcvb9b39xiwshhs250gkd2vw2v6iil34sl90jv4"))))
+ "1rkc0r6l7cfz7h83i7gw6g0nlyy347mdh6bj73j0f8mdv3nmwwn4"))))
(properties `((upstream-name . "WriteXLS")))
(build-system r-build-system)
(inputs (list perl))
@@ -16136,13 +16137,13 @@ handle data from simple random samples as well as complex surveys.")
(define-public r-tarchetypes
(package
(name "r-tarchetypes")
- (version "0.7.10")
+ (version "0.7.11")
(source (origin
(method url-fetch)
(uri (cran-uri "tarchetypes" version))
(sha256
(base32
- "14k9p98yv5vgpi1bxngqzmaibdx9h7wyn8k1hw5imvlg4cbwm675"))))
+ "1iqrz27n8ndazx97ngqbz5yz5ppyimpbxam30zgdwnnzf963s5ym"))))
(properties `((upstream-name . "tarchetypes")))
(build-system r-build-system)
(propagated-inputs (list r-digest
@@ -16170,13 +16171,13 @@ were influenced by the drake R package by Will Landau (2018)
(define-public r-targets
(package
(name "r-targets")
- (version "1.4.0")
+ (version "1.4.1")
(source (origin
(method url-fetch)
(uri (cran-uri "targets" version))
(sha256
(base32
- "0nbvyh1v88lz1fv09ap9p6qw4zw23f1rvmv2f01w1r17z53z7w3c"))))
+ "0kax8nj66jbcp8sbv7zl68hzf4clz5m50fibrcypnzvpamhafw1q"))))
(properties `((upstream-name . "targets")))
(build-system r-build-system)
(propagated-inputs (list r-base64url
@@ -21690,14 +21691,14 @@ users of rARPACK are advised to switch to the RSpectra package.")
(define-public r-compositions
(package
(name "r-compositions")
- (version "2.0-6")
+ (version "2.0-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "compositions" version))
(sha256
(base32
- "0d0wlrwfpjvz02cwrqpg5bnrf8isz359dl9qqxn9yb6czpmp9ls5"))))
+ "1j1qa0lkb7ywh0q79dklhw4gvkxgvk3qhw3rx9srrlrc7jv22hml"))))
(build-system r-build-system)
(propagated-inputs
(list r-bayesm r-mass r-robustbase r-tensora))
@@ -24037,14 +24038,14 @@ package.")
(define-public r-yulab-utils
(package
(name "r-yulab-utils")
- (version "0.1.2")
+ (version "0.1.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "yulab.utils" version))
(sha256
(base32
- "0pjm4fnc30kv8xl6akh9y0jpqdsww83558cvyfl4j3xxnafrk8cs"))))
+ "0yh29d28i67z3wyif72lr35ki92rqv6rljdjwj28559f7n864yjv"))))
(properties `((upstream-name . "yulab.utils")))
(build-system r-build-system)
(propagated-inputs
@@ -24533,14 +24534,14 @@ graphics using Vega.")
(define-public r-gbm
(package
(name "r-gbm")
- (version "2.1.8.1")
+ (version "2.1.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "gbm" version))
(sha256
(base32
- "02z85d7zp3i5x8r8q005hyw2rx1ck7lw81q7a3lqwraj8l95c94d"))))
+ "1r5d8mkg4z14l3743h39r35r0qqjx5p40ixdkcc5iyjab0fzm24x"))))
(build-system r-build-system)
(propagated-inputs
(list r-lattice r-survival))
@@ -26498,14 +26499,14 @@ on graphs of millions of nodes (as long as they can fit in memory).")
(define-public r-patchwork
(package
(name "r-patchwork")
- (version "1.1.3")
+ (version "1.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "patchwork" version))
(sha256
(base32
- "07npkbalfl2d9aix02m2srxgmd8ymar6v0x65ighg3nq9d7l4xp9"))))
+ "18b83gsv8idi5d062m9dvb46r7kxda97sa72pzllshhcaq9ylcfc"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli r-ggplot2 r-gtable r-rlang))
@@ -31133,18 +31134,19 @@ machine learning, visually representing text and text analyses, and more.")
(define-public r-topicmodels
(package
(name "r-topicmodels")
- (version "0.2-15")
+ (version "0.2-16")
(source
(origin
(method url-fetch)
(uri (cran-uri "topicmodels" version))
(sha256
(base32
- "1l3pmz6n0sd57bf3d16m9766285d2pmndmv36rf5pffpwiw0zdbi"))))
- (properties `((upstream-name . "topicmodels")))
+ "01g9avk0ldqnz15n8112vad31c1n7r6rih5dh6x3383vvmjrqp0d"))))
+ (properties
+ '((upstream-name . "topicmodels")
+ (updater-extra-inputs . ("gsl"))))
(build-system r-build-system)
- (inputs
- (list gsl))
+ (inputs (list gsl))
(propagated-inputs
(list r-modeltools r-slam r-tm))
(home-page "https://cran.r-project.org/package=topicmodels")
@@ -31432,14 +31434,14 @@ perform @dfn{exploratory mediation} (XMed).")
(define-public r-stanheaders
(package
(name "r-stanheaders")
- (version "2.26.28")
+ (version "2.32.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "StanHeaders" version))
(sha256
(base32
- "1s1xgvn5c1vjikm1dx9g0qm2k8m24clylgp7zssmfhx6sfb8v2lk"))))
+ "0wqps6xy2xypxsg3p3grdiw67a0xla3vh9x9hcf2ln03yhgkn4jl"))))
(properties `((upstream-name . "StanHeaders")))
(build-system r-build-system)
(inputs (list pandoc))
@@ -32190,15 +32192,17 @@ techniques to average Bayesian predictive distributions.")
(define-public r-rstan
(package
(name "r-rstan")
- (version "2.32.3")
+ (version "2.32.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "rstan" version))
(sha256
(base32
- "17alp92kj9mnlkzplk7zd83sv2zi2h7yc44fx5f7nz3dpwd9x7d2"))))
- (properties `((upstream-name . "rstan")))
+ "0m655pf0lrhqh2mzylximd2vch9wy252k4zwyfqn1sfwmx642dva"))))
+ (properties
+ '((upstream-name . "rstan")
+ (updater-extra-native-inputs . ("tzdata-for-tests"))))
(build-system r-build-system)
(arguments
`(#:phases
@@ -37115,13 +37119,13 @@ implemented as @code{R6} classes.")
(define-public r-mlr3
(package
(name "r-mlr3")
- (version "0.17.1")
+ (version "0.17.2")
(source (origin
(method url-fetch)
(uri (cran-uri "mlr3" version))
(sha256
(base32
- "0q6px0l0ab3xcrf6ylnw9a3i50mnks3hlgqj424d6bpqdjqyh5s4"))))
+ "0kcny3wxc7qc2538hxxdzs9bw4pq55s4abhlnpf1r13b2gkns323"))))
(build-system r-build-system)
(propagated-inputs
(list r-backports
@@ -39518,14 +39522,14 @@ fully reproducible.")
(define-public r-paws-common
(package
(name "r-paws-common")
- (version "0.6.4")
+ (version "0.7.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.common" version))
(sha256
(base32
- "1pzgwljrk3maxcbmiy3yiccijm6c2ach8f9kzpqr7w5k5vkyhpvx"))))
+ "05rld34brjc32p9f9cbqyyh208rh9idnyih33cpw7bz7bfyicnqm"))))
(properties `((upstream-name . "paws.common")))
(build-system r-build-system)
(propagated-inputs
@@ -39549,14 +39553,14 @@ Service (S3).")
(define-public r-paws-customer-engagement
(package
(name "r-paws-customer-engagement")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.customer.engagement" version))
(sha256
(base32
- "0skfya3m9i36dd0jqvnnc72k1h3lb4s3fjkvg7na6aq6xgpjh4jv"))))
+ "1380waqavwga17fvdzfpag4snzynkykh3pnia5bi73476y7myj5h"))))
(properties
`((upstream-name . "paws.customer.engagement")))
(build-system r-build-system)
@@ -39597,13 +39601,13 @@ more.")
(define-public r-paws-developer-tools
(package
(name "r-paws-developer-tools")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.developer.tools" version))
(sha256
- (base32 "13i5yi23xsrks1dsw0k3cqzr2gqj8p23yajb3a7drim6d4rpsaxl"))))
+ (base32 "177q7x8l9asyidpc7j20xwpyk0bd9x9m20cy4qzlnnmr14anyvjm"))))
(properties `((upstream-name . "paws.developer.tools")))
(build-system r-build-system)
(propagated-inputs
@@ -39619,13 +39623,13 @@ deployment, and more.")
(define-public r-paws-end-user-computing
(package
(name "r-paws-end-user-computing")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.end.user.computing" version))
(sha256
- (base32 "0v3ng20vrp5cvpbgipwwpvyhi995n2rp8jls0kklkrjax41x62cn"))))
+ (base32 "0qz5kps9819yfqjdqjmv7wx70ll7xayfxmd5dc867k14i41f91cm"))))
(properties `((upstream-name . "paws.end.user.computing")))
(build-system r-build-system)
(propagated-inputs
@@ -39641,14 +39645,14 @@ and more.")
(define-public r-paws-application-integration
(package
(name "r-paws-application-integration")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.application.integration" version))
(sha256
(base32
- "0hilnczvamdv3bi1v6hdki05h8qqh0wlgvh5ilh09113005fpz98"))))
+ "1sgzp0yr1jsmbyzyk26m762rhpxb89wrwqqvrrw3xr1ib0cg06ah"))))
(properties
`((upstream-name . "paws.application.integration")))
(build-system r-build-system)
@@ -39665,14 +39669,14 @@ Simple Notification Service (SNS) publish/subscribe messaging, and more.")
(define-public r-paws-security-identity
(package
(name "r-paws-security-identity")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.security.identity" version))
(sha256
(base32
- "081339201j19y8y28h0dhr876ii82zpfyqddc21lvmg27z53hj4x"))))
+ "01gh761ykc4h81whn649bm28b01njqm1kjqkn9l4n7hhnalddy06"))))
(properties
`((upstream-name . "paws.security.identity")))
(build-system r-build-system)
@@ -39690,14 +39694,14 @@ more.")
(define-public r-paws-analytics
(package
(name "r-paws-analytics")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.analytics" version))
(sha256
(base32
- "1x7ix8x0ks357b7gf2skixsd0najjbn8hnq7p6a354p5h7bz39b4"))))
+ "07nwa39mn749a9rqb683wf19kd8si7ksws87annbldmd57r072l8"))))
(properties
`((upstream-name . "paws.analytics")))
(build-system r-build-system)
@@ -39714,14 +39718,14 @@ Elasticsearch search engine, and more.")
(define-public r-paws-machine-learning
(package
(name "r-paws-machine-learning")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.machine.learning" version))
(sha256
(base32
- "0cwmriprwrz446q4d5ljkpvwdhmamnl98g1ks6p35vbjiv4imk21"))))
+ "0zcw758xsw2360571dj215gyd1amaxx07i58h1r6r5zys940lxis"))))
(properties
`((upstream-name . "paws.machine.learning")))
(build-system r-build-system)
@@ -39738,14 +39742,14 @@ natural language processing, speech recognition, translation, and more.")
(define-public r-paws-management
(package
(name "r-paws-management")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.management" version))
(sha256
(base32
- "0lp8s4caxppwxsra6ijcz1dzkmnznwrrs92y87387vq53y3icc6m"))))
+ "0k40lrgxx91bijj3648zsgj55x120mhmx8dyx3hm2yvh2k96ks7h"))))
(properties
`((upstream-name . "paws.management")))
(build-system r-build-system)
@@ -39762,14 +39766,14 @@ monitoring, Auto Scaling for automatically scaling resources, and more.")
(define-public r-paws-networking
(package
(name "r-paws-networking")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.networking" version))
(sha256
(base32
- "1imq29nxy5hxz2vlijdj2jl0lllvm3plb3jwpvsx1wlcvhpz0in3"))))
+ "0qs6bp0vlbazxir9jmdcnazh90yrvhrw6k9046id73hw1j7h5zaf"))))
(properties
`((upstream-name . "paws.networking")))
(build-system r-build-system)
@@ -39786,14 +39790,14 @@ CloudFront content delivery, load balancing, and more.")
(define-public r-paws-database
(package
(name "r-paws-database")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.database" version))
(sha256
(base32
- "1rnjjdb4l7a943cawkkzfjkg8shy2vy5d9mcl2p5ms191lw056bn"))))
+ "0nlkbnyxd3znmvqxqb3w43sznacmikq32d9fihyc1dx7ghvmf61z"))))
(properties `((upstream-name . "paws.database")))
(build-system r-build-system)
(propagated-inputs
@@ -39810,14 +39814,14 @@ database, and more.")
(define-public r-paws-storage
(package
(name "r-paws-storage")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.storage" version))
(sha256
(base32
- "0yr99328rwm6i95xhp4yds6dzfvrvbr7ys2hy17iqbyij958j0m4"))))
+ "0v2g1shv9m4h2fz2lvjad479g3nmxc92wlyrxj4s7fifzzs2pd97"))))
(properties `((upstream-name . "paws.storage")))
(build-system r-build-system)
(propagated-inputs
@@ -39832,14 +39836,14 @@ services, including Simple Storage Service (S3).")
(define-public r-paws-compute
(package
(name "r-paws-compute")
- (version "0.4.0")
+ (version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "paws.compute" version))
(sha256
(base32
- "0q0xikrq7095l8fhii2jyjxfbihhnlm7nzzbspfqdh8xbr7g4kld"))))
+ "1vsxwzqgk0004nmfy79pd0zc208fczay95p7h16mzqgds9586ma1"))))
(properties `((upstream-name . "paws.compute")))
(build-system r-build-system)
(propagated-inputs
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index adc39b1157..f1c137711b 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -65,14 +65,14 @@
(define-public curl
(package
(name "curl")
- (version "8.4.0")
+ (version "8.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://curl.se/download/curl-"
version ".tar.xz"))
(sha256
(base32
- "0bd8y8v66biyqvg70ka1sdd0aixs6yzpnvfsig907xzh9af2mihn"))
+ "1sqfflilf7mcz1g03lazyr6v6pf1rsrzprrknsir10hdwawqvas2"))
(patches (search-patches "curl-use-ssl-cert-env.patch"))))
(build-system gnu-build-system)
(outputs '("out"
@@ -127,15 +127,20 @@
(if parallel-tests?
(number->string (parallel-job-count))
"1")))
+ ;; Ignore test 1477 due to a missing file in the 8.5.0
+ ;; release. See
+ ;; <https://github.com/curl/curl/issues/12462>.
(arguments `("-C" "tests" "test"
,@make-flags
,(if #$(or (system-hurd?)
(target-arm32?)
(target-aarch64?))
;; protocol FAIL
- (string-append "TFLAGS=\"~1474 "
- job-count "\"")
- (string-append "TFLAGS=" job-count)))))
+ (string-append "TFLAGS=~1474 "
+ "!1477 "
+ job-count)
+ (string-append "TFLAGS=\"~1477 "
+ job-count "\"")))))
;; The top-level "make check" does "make -C tests quiet-test", which
;; is too quiet. Use the "test" target instead, which is more
;; verbose.
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 4fa4ba573a..e1114535da 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -28,7 +28,7 @@
;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017, 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2015, 2017, 2018, 2019, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2018, 2019, 2021, 2022, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
@@ -577,6 +577,35 @@ the API, and provides features such as:
@end itemize")
(license license:bsd-3)))
+(define-public python-prisma
+ (package
+ (name "python-prisma")
+ (version "0.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "prisma" version))
+ (sha256
+ (base32 "1y9m3bailnvid59dl4vx31vysaqbcg6gsppskyymaxg3m96808pc"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs
+ (list python-cached-property
+ python-click
+ python-dotenv
+ python-httpx
+ python-jinja2
+ python-nodeenv
+ python-pydantic
+ python-strenum
+ python-tomlkit
+ python-typing-extensions))
+ (home-page "https://github.com/RobertCraigie/prisma-client-py")
+ (synopsis "Fully type-safe database client")
+ (description
+ "Prisma Client Python is an auto-generated and fully type-safe database
+client.")
+ (license license:asl2.0)))
+
(define-public python-pylibmc
(package
(name "python-pylibmc")
@@ -5217,7 +5246,7 @@ mechanism of @code{dogpile}.")
(define-public datasette
(package
(name "datasette")
- (version "0.64.2")
+ (version "1.0a7")
(source (origin
(method git-fetch) ;for tests
(uri (git-reference
@@ -5226,7 +5255,7 @@ mechanism of @code{dogpile}.")
(file-name (git-file-name name version))
(sha256
(base32
- "1c8ajdaraynrjvsb8xxxnkb7zgm5fwq60qczaz00n465ki80j4h3"))))
+ "1wwdx2xqkxygbww1nzpr6h702ims6zcxpjskh8fldn1kby591qgg"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -5265,6 +5294,7 @@ mechanism of @code{dogpile}.")
(list python-aiofiles
python-asgi-csrf
python-asgiref
+ python-asyncinject
python-click
python-click-default-group
python-httpx
@@ -5276,6 +5306,7 @@ mechanism of @code{dogpile}.")
python-pint
python-pluggy
python-pyyaml
+ python-sqlite-utils
python-uvicorn))
(native-inputs
(list python-beautifulsoup4
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 00f263b841..5bba213922 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2020-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2020-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
@@ -87,7 +87,7 @@ contains the archive keys used for that.")
(define-public debian-ports-archive-keyring
(package
(name "debian-ports-archive-keyring")
- (version "2023.02.01")
+ (version "2024.01.05")
(source
(origin
(method url-fetch)
@@ -96,7 +96,7 @@ contains the archive keys used for that.")
"/debian-ports-archive-keyring_" version ".tar.xz"))
(sha256
(base32
- "1xq7i6plgfbf4drqdmmk1yija48x11jmhnk2av3cajn2cdhkw73s"))))
+ "010yaxc6ngq4ygh7mjyz2bk3w8ialxzya1bqwc7knavaixz9gfpp"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; No test suite.
@@ -189,7 +189,7 @@ contains the archive keys used for that.")
(define-public debootstrap
(package
(name "debootstrap")
- (version "1.0.132")
+ (version "1.0.134")
(source
(origin
(method git-fetch)
@@ -198,7 +198,7 @@ contains the archive keys used for that.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1l6mc3i2wqfhmhj85x9qiiqchqp9br6gg54hv1xs08h8xndmfchf"))))
+ (base32 "0k9gi6gn8qlqs81r2q1hx5wfyax3nvpkk450girdra7dh54iidr4"))))
(build-system gnu-build-system)
(arguments
(list
@@ -210,9 +210,7 @@ contains the archive keys used for that.")
(let ((debian #$(this-package-input "debian-archive-keyring"))
(ubuntu #$(this-package-input "ubuntu-keyring")))
(substitute* "Makefile"
- (("/usr") "")
- (("-o root -g root") "")
- (("chown root.*") "\n"))
+ (("/usr") ""))
(substitute* '("scripts/etch"
"scripts/potato"
"scripts/sarge"
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 40668f69bb..e59831b3b3 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -54,7 +54,7 @@
;; Note - when changing Docker versions it is important to update the versions
;; of several associated packages (docker-libnetwork and go-sctp).
-(define %docker-version "20.10.25")
+(define %docker-version "20.10.27")
(define-public python-docker
(package
@@ -264,9 +264,9 @@ network attachments.")
;; the branch that Docker uses, as can be seen in the 'vendor.conf' Docker
;; source file. NOTE - It is important that this version is kept in sync
;; with the version of Docker being used.
- (let ((commit "3f0048413d95802b9c6c836eba06bfc54f9dbd03")
+ (let ((commit "3797618f9a38372e8107d8c06f6ae199e1133ae8")
(version (version-major+minor %docker-version))
- (revision "2"))
+ (revision "3"))
(package
(name "docker-libnetwork")
(version (git-version version revision commit))
@@ -279,7 +279,7 @@ network attachments.")
(file-name (git-file-name name version))
(sha256
(base32
- "185i5ji7dwkv41zmb8s3d7i5gg72wivcj1l4bhr1lb3a1vy2hcxc"))
+ "1km3p6ya9az0ax2zww8wb5vbifr1gj5n9l82i273m9f3z9f2mq2p"))
;; Delete bundled ("vendored") free software source code.
(modules '((guix build utils)))
(snippet '(delete-file-recursively "vendor"))))
@@ -333,7 +333,7 @@ built-in registry server of Docker.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1q5vc6f5fzzxsvv1kwdky56fr1jiy9199m3vxqh4mz85qr067cmn"))))
+ (base32 "017frilx35w3m4dz3n6m2f293q4fq4jrk6hl8f7wg5xs3r8hswvq"))))
(build-system gnu-build-system)
(arguments
(list
@@ -594,7 +594,7 @@ runcexecutor/executor.go"
xz))
(native-inputs
(list eudev ; TODO: Should be propagated by lvm2 (.pc -> .pc)
- go-1.19 gotestsum pkg-config))
+ go-1.20 gotestsum pkg-config))
(synopsis "Container component library and daemon")
(description "This package provides a framework to assemble specialized
container systems. It includes components for orchestration, image
@@ -615,7 +615,7 @@ provisioning etc.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0qy35vvnl4lf9w6dr9n7yfqvzhzm7m3sl2ai275apbhygwgcsbss"))))
+ (base32 "0szwaxiasy77mm90wj2qg747zb9lyiqndg5halg7qbi41ng6ry0h"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/docker/cli"
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 2fd1d4a632..7b72ed0349 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@@ -564,7 +564,7 @@ a pen-tablet display and a beamer.")
(define-public fet
(package
(name "fet")
- (version "6.9.0")
+ (version "6.15.0")
(source
(origin
(method url-fetch)
@@ -573,7 +573,7 @@ a pen-tablet display and a beamer.")
(list (string-append directory base)
(string-append directory "old/" base))))
(sha256
- (base32 "1lnw58ga1ldhqfznclmk9l21698pg152w3slq2cwmr69ywqr5wys"))))
+ (base32 "0mmk9f0b23lmmk40mv25wf9vgb7wdgfn5zsa1qrkvkh7dh1hjpax"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index e313859e45..3205f6de9f 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -29932,14 +29932,14 @@ buffer and launches Magit from the status buffer for the project at point.")
(define-public emacs-repology
(package
(name "emacs-repology")
- (version "1.2.3")
+ (version "1.2.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"repology-" version ".tar"))
(sha256
- (base32 "1ngx23b7dilyps20nznrrn867kbxyn6nryf4p1sy5m576hkw18kn"))))
+ (base32 "0l53wl0bk8rnqwsjdh1hwvkvbay080l10bslcj3scn42bgbi59j1"))))
(build-system emacs-build-system)
(arguments
(list
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index d04426dc99..a23ee7f06f 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -31,6 +31,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix memoization)
#:use-module (guix packages)
+ #:use-module (guix platform)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix utils)
@@ -284,21 +285,27 @@ driver.")
`(,glib "bin")
help2man
gettext-minimal))
- (inputs (list bash-completion
- libgudev
- libxmlb
- sqlite
- polkit
- eudev
- libelf
- tpm2-tss
- cairo
- efivar
- pango
- protobuf-c
- mingw-w64-tools
- libsmbios
- gnu-efi))
+ (inputs (append
+ (list bash-completion
+ libgudev
+ libxmlb
+ sqlite
+ polkit
+ eudev
+ libelf
+ tpm2-tss
+ cairo
+ efivar
+ pango
+ protobuf-c
+ mingw-w64-tools
+ gnu-efi)
+ (if (supported-package? libsmbios
+ (or (and=> (%current-target-system)
+ platform-target->system)
+ (%current-system)))
+ (list libsmbios)
+ '())))
;; In Requires of fwupd*.pc.
(propagated-inputs (list curl
gcab
@@ -876,7 +883,7 @@ Executables included are:
(let ((toolchain-ver "GCC5"))
(package
(name "ovmf")
- (version "202308")
+ (version "202311")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -887,7 +894,7 @@ Executables included are:
(file-name (git-file-name name version))
(sha256
(base32
- "04rnfnaqr2c7ayplj7ib730zp1snw157zx5rmykz5hz1zz2vb20j"))))
+ "136dl5cxpjpg37whzlqq7jrrjsgybmwrgkbbmks8xaixqmzwhbw0"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 49b7c4df06..40e9bf1105 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -123,6 +123,29 @@
titling.")
(license license:silofl1.1)))
+(define-public font-cardo
+ (package
+ (name "font-cardo")
+ (version "1.04")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://scholarsfonts.net/cardo"
+ (string-delete #\. version) ".zip"))
+ (sha256
+ (base32
+ "0ps55zjva4fzmg47w2i8srrh8sqxz1wkcclihwgzlwfbaxixn0cl"))))
+ (build-system font-build-system)
+ (home-page "https://scholarsfonts.net/cardofnt.html")
+ (synopsis "Unicode font for classical scholarship")
+ (description
+ "Cardo is a large unicode font specifically designed for the needs of
+classicists, biblical scholars, medievalists, and linguists. Since it may be
+used to prepare materials for publication, it also contains features that are
+required for high-quality typography, such as ligatures, text figures (also
+known as old style numerals), true small capitals and a variety of punctuation
+and space characters.")
+ (license license:silofl1.1)))
+
(define-public font-chivo
(let ((commit "dc61c468d79781eb5183426e88e844af16cdc3e5")
(revision "0"))
@@ -1952,15 +1975,15 @@ weights and five widths in both Roman and Italic, plus variable fonts.")
(define-public font-sarasa-gothic
(package
(name "font-sarasa-gothic")
- (version "0.42.6")
+ (version "1.0.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/be5invis/Sarasa-Gothic"
"/releases/download/v" version
- "/sarasa-gothic-ttc-" version ".7z"))
+ "/Sarasa-TTC-" version ".7z"))
(sha256
- (base32 "0czx10yph2lxg2k4w6qjnil73zb2pgg3g400apm9gay41m04990v"))))
+ (base32 "1cgqf15fhg567s2bwjpal3xfcdnbgyy0iav5181zkn6b4k56dgl4"))))
(build-system font-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 1f4204fb94..411a9769d9 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 2019, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
@@ -233,7 +233,11 @@ them as it goes.")
(when tests?
(setenv "HOME" "/tmp")
(invoke "pytest" "-vv" "--dist" "loadfile" "-n"
- (number->string (parallel-job-count))))))
+ (number->string (parallel-job-count))
+ ;; This test fails because of a different date in the
+ ;; copyright header of an expected file since an
+ ;; update to ffmpeg.
+ "-k" "not test_alt_missing_glyph"))))
(add-after 'check 'wrap
(assoc-ref %standard-phases 'wrap))
(add-before 'wrap 'wrap-PATH
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 43fde60a98..66a7e30f1c 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
;;; Copyright © 2014, 2015, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2014, 2015, 2016, 2024 宋文武 <iyzsong@envs.net>
;;; Copyright © 2014, 2015, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
@@ -4119,7 +4119,8 @@ Widgets, and allows users to create more.")
"fifengine/tar.gz/" version))
(file-name (string-append name "-" version ".tar.gz"))
(patches (search-patches "fifengine-swig-compat.patch"
- "fifengine-boost-compat.patch"))
+ "fifengine-boost-compat.patch"
+ "fifengine-python-3.9-compat.patch"))
(sha256
(base32
"1y4grw25cq5iqlg05rnbyxw1njl11ypidnlsm3qy4sm3xxdvb0p8"))))
@@ -4454,7 +4455,9 @@ also available.")
(sha256
(base32
"1n747p7h0qp48szgp262swg0xh8kxy1bw8ag1qczs4i26hyzs5x4"))
- (patches (search-patches "unknown-horizons-python-3.8-distro.patch"))))
+ (patches (search-patches "unknown-horizons-python-3.8-distro.patch"
+ "unknown-horizons-python-3.9.patch"
+ "unknown-horizons-python-3.10.patch"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -4574,16 +4577,16 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.16.9")
+ (version "1.16.11")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wesnoth/wesnoth")
(commit version)))
- (file-name (string-append name "-" version ".tar.bz2"))
+ (file-name (git-file-name name version))
(sha256
(base32
- "06gfgkg8f98jsj9vnbglw5lqflqzf0229n6wf3xl12carjzgaq9g"))))
+ "0z0y2il4xq8fdj20fwfggpf6286hb099jh1kdywap9rlrybq142d"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f)) ;no test target
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 516dc3f302..f8965bc187 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017, 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018, 2019, 2020, 2021 Julien Lepiller <julien@lepiller.eu>
@@ -939,14 +939,14 @@ pyproj, Rtree, and Shapely.")
(define-public python-geopandas
(package
(name "python-geopandas")
- (version "0.13.2")
+ (version "0.14.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "geopandas" version))
(sha256
(base32
- "0s59jjk02l1zajz95n1c7fr3fyj44wzxn569q2y7f34042f6vdg5"))))
+ "1nycf79nzris058lz1fyg0byj874wxq33an3y74zvybnhdxxawbf"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -955,6 +955,8 @@ pyproj, Rtree, and Shapely.")
;; Test files are missing
"--ignore=geopandas/tests/test_overlay.py"
"--ignore=geopandas/io/tests/test_file.py"
+ ;; Number of open figures changed during test
+ "-k" "not test_pandas_kind"
;; Disable tests that require internet access.
"-m" "not web")))
(propagated-inputs
@@ -1290,40 +1292,46 @@ utilities for data translation and processing.")
(define-public python-cartopy
(package
(name "python-cartopy")
- ;; This is a post-release fix that adds build_ext to setup.py.
- (version "0.21.1")
+ (version "0.22.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Cartopy" version))
(sha256
- (base32 "02i5rjhvrsi3vgj8kfsdx77g1xl59jh2a671qqqj4n682abn9mc9"))))
- (build-system python-build-system)
+ (base32 "0jdv92az0b7qxdvalh29kasw3knsl570cz7q3vql67ck400zj05k"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (when tests?
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "-m" "pytest" "--pyargs" "cartopy"
- ;; These tests require online data.
- "-m" "not natural_earth and not network"
- "-k"
- (string-append
- ;; This one too but it's not marked as such.
- "not test_gridliner_labels_bbox_style"
- ;; Those tests fail with proj 9.2.0
- ;; https://github.com/SciTools/cartopy/issues/2145
- " and not test_epsg"
- " and not test_default"
- " and not test_eccentric_globe"
- " and not test_ellipsoid_transform"
- " and not test_eccentric_globe"))))))))
+ (list
+ #:test-flags
+ '(list
+ "--pyargs" "cartopy"
+ ;; These tests require online data.
+ "-m" "not natural_earth and not network"
+ "-k"
+ (string-append
+ ;; This one too but it's not marked as such.
+ "not test_gridliner_labels_bbox_style"
+ ;; Accuracy problems
+ " and not test_single_spole"
+ " and not test_single_npole"
+ ;; Incomplete shapefile definition
+ " and not test_gshhs"
+ " and not test_geometry"
+ " and not test_record"
+ " and not test_bounds"))
+ #:phases
+ '(modify-phases %standard-phases
+ ;; We don't want to create an entrypoint for
+ ;; tools/cartopy_feature_download.py, because that file is not
+ ;; installed.
+ (add-after 'unpack 'remove-endpoint
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("^feature_download = .*") "")))))))
(propagated-inputs
(list python-matplotlib
python-numpy
- python-pykdtree
+ python-packaging
python-pyproj
python-pyshp
python-scipy
@@ -1331,10 +1339,12 @@ utilities for data translation and processing.")
(inputs
(list geos))
(native-inputs
- (list python-cython
- python-flufl-lock
+ (list python-coveralls
+ python-cython
python-pytest
- python-pytest-mpl))
+ python-pytest-cov
+ python-pytest-mpl
+ python-pytest-xdist))
(home-page "https://scitools.org.uk/cartopy/docs/latest/")
(synopsis "Cartographic library for visualisation")
(description
@@ -1485,13 +1495,13 @@ to create databases that are optimized for rendering/tile/map-services.")
(define-public python-metpy
(package
(name "python-metpy")
- (version "1.5.1")
+ (version "1.6.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "MetPy" version))
(sha256
(base32
- "1is6rradl97k04hf27dhzla4y4j98hibran3rbz6xh226q1r9vmb"))))
+ "125nb1bmkqpdf19fq0mbbgzdjczn46lr9yqi7zgn6k62dzjm1gm7"))))
(build-system pyproject-build-system)
(arguments
;; Too many of the tests in the files below require online data.
@@ -1514,7 +1524,23 @@ to create databases that are optimized for rendering/tile/map-services.")
" and not test_zoom_xarray"
" and not test_parse_wpc_surface_bulletin"
" and not test_add_timestamp_xarray"
- " and not test_parse_wpc_surface_bulletin_highres"))))
+ " and not test_parse_wpc_surface_bulletin_highres"))
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'fix-version-check
+ (lambda _
+ (substitute* "src/metpy/testing.py"
+ (("^( +)match = pattern.*" m indent)
+ (string-append indent "\
+version_spec = re.sub('[()]', '', version_spec)\n" m)))))
+ ;; The deprecation warning from python-future's use of imp breaks the
+ ;; tests.
+ (add-after 'unpack 'hide-imp-deprecation-warnings
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("\"ignore:numpy.ndarray size changed:RuntimeWarning\"," m)
+ (string-append m "
+\"ignore:the imp module is deprecated\","))))))))
(propagated-inputs (list python-importlib-resources
python-matplotlib
python-numpy
@@ -1525,8 +1551,8 @@ to create databases that are optimized for rendering/tile/map-services.")
python-scipy
python-traitlets
python-xarray))
- (native-inputs (list python-cartopy python-netcdf4 python-pytest
- python-pytest-mpl python-shapely))
+ (native-inputs (list python-netcdf4 python-packaging python-pytest
+ python-pytest-mpl))
(home-page "https://github.com/Unidata/MetPy")
(synopsis "Collection of tools to deal with weather data")
(description "MetPy is a collection of tools in Python for reading,
@@ -2233,7 +2259,7 @@ data.")
(define-public qmapshack
(package
(name "qmapshack")
- (version "1.16.1")
+ (version "1.17.1")
(source
(origin
(method git-fetch)
@@ -2242,7 +2268,7 @@ data.")
(commit (string-append "V_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "184fqmsfzr3b333ssizjk6gvv7mncmygq8dj5r7rsvs5md26z2ys"))))
+ (base32 "1ckadklk67dp1pvkacfkr8379g2pwk73q85jfzm8viclcqmfvb62"))))
(build-system qt-build-system)
(native-inputs
(list pkg-config qttools-5))
@@ -3227,3 +3253,31 @@ For maps, it can uses its own \"binfile\" map format, or Garmin map
file format, and data from OpenStreetMap, Garmin maps, Marco Polo
Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.")
(license license:gpl2)))
+
+(define-public laszip
+ (package
+ (name "laszip")
+ (version "3.4.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LASzip/LASzip")
+ (commit "3.4.3")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "09lcsgxwv0jq50fhsgfhx0npbf1zcwn3hbnq6q78fshqksbxmz7m"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(list "-DLASZIP_BUILD_STATIC=NO")
+ #:build-type "Release"
+ ;; No tests.
+ #:tests? #f))
+ (home-page "https://laszip.org/")
+ (synopsis "Compression library for LAS files")
+ (description
+ "LASzip is a library for compressing @code{LAS} files and uncompressing
+@code{LAZ} files. The @code{LAS} format is a file format designed for the
+interchange and archiving of lidar point cloud data.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index b0ee413acd..49dc878c02 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
-;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -62,6 +62,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
+ #:use-module (gnu packages cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
@@ -294,7 +295,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa
(package
(name "mesa")
- (version "23.2.1")
+ (version "23.3.2")
(source
(origin
(method url-fetch)
@@ -304,7 +305,7 @@ also known as DXTn or DXTC) for Mesa.")
"mesa-" version ".tar.xz")))
(sha256
(base32
- "1k61pgw0vcjrlb4299q98cy7iqmk2r7jmb5ika91z01dzhb0dpk4"))))
+ "1p4swrbmz3kb1805kdj973hf8virgmix4m9qprmcb2bgl4gviz1w"))))
(build-system meson-build-system)
(propagated-inputs
;; The following are in the Requires.private field of gl.pc.
@@ -338,7 +339,8 @@ also known as DXTn or DXTC) for Mesa.")
python-wrapper
(@ (gnu packages base) which)
(if (%current-target-system)
- (list pkg-config-for-build
+ (list cmake-minimal-cross
+ pkg-config-for-build
wayland
wayland-protocols)
'())))
@@ -351,16 +353,16 @@ also known as DXTn or DXTC) for Mesa.")
((target-aarch64?)
;; TODO: Fix svga driver for non-Intel architectures.
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\
-panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
+panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
((target-arm32?)
;; Freedreno FTBFS when built on a 64-bit machine.
'("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\
-r300,r600,swrast,tegra,v3d,vc4,virgl"))
+r300,r600,swrast,tegra,v3d,vc4,virgl,zink"))
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
- '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl"))
+ '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl,zink"))
(else
'("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\
-svga,swrast,virgl")))
+svga,swrast,virgl,zink")))
;; Enable various optional features. TODO: opencl requires libclc,
;; omx requires libomxil-bellagio
"-Dplatforms=x11,wayland"
@@ -415,10 +417,16 @@ svga,swrast,virgl")))
#~(modify-phases %standard-phases
#$@(if (%current-target-system)
#~((add-after 'unpack 'fix-cross-compiling
- (lambda* (#:key inputs #:allow-other-keys)
- ;; It isn't a problem to use the host's llvm-config.
- (setenv "LLVM_CONFIG"
- (search-input-file inputs "/bin/llvm-config")))))
+ (lambda* (#:key native-inputs #:allow-other-keys)
+ ;; When cross compiling, we use cmake to find llvm, not
+ ;; llvm-config, because llvm-config cannot be executed
+ ;; see https://github.com/llvm/llvm-project/issues/58984
+ (substitute* "meson.build"
+ (("method : host_machine\\.system.*")
+ "method : 'cmake',\n"))
+ (setenv "CMAKE"
+ (search-input-file
+ native-inputs "/bin/cmake")))))
#~())
(add-after 'unpack 'disable-failing-test
(lambda _
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index fb41ed18c9..6cb60ff628 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -11,7 +11,7 @@
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2015-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
@@ -4772,12 +4772,15 @@ GLib and GObject, and integrates JSON with GLib data types.")
(string-append #$output:doc
"/share/gtk-doc"))))))))))
(native-inputs
- (modify-inputs (package-native-inputs json-glib-minimal)
- (prepend docbook-xml-4.3
- docbook-xsl
- gobject-introspection
- gtk-doc
- libxslt)))))
+ (if (%current-target-system)
+ ;; No docs, no additional inputs.
+ (package-native-inputs json-glib-minimal)
+ (modify-inputs (package-native-inputs json-glib-minimal)
+ (prepend docbook-xml-4.3
+ docbook-xsl
+ gobject-introspection
+ gtk-doc
+ libxslt))))))
(define-public libxklavier
(package
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 691a785a10..86d6347c9e 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr>
;;; Copyright © 2022 SeerLite <seerlite@disroot.org>
+;;; Copyright © 2024 Aleksandr Vityazev <avityazew@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2093,7 +2094,7 @@ associated with their name."))
(call-with-output-file exe
(lambda (port)
(format port "#!~a
- MOZ_ENABLE_WAYLAND=1 exec ~a $@"
+ MOZ_ENABLE_WAYLAND=1 exec ~a \"$@\""
#$(file-append bash-minimal "/bin/bash")
#$(file-append icedove "/bin/icedove"))))
(chmod exe #o555)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 58681af958..e7306a585c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -41,7 +41,8 @@
;;; Copyright © 2022 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
-;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2559,6 +2560,77 @@ translated keywords and acts.")
Go.")
(license license:cc0)))
+(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib
+ (package
+ (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib")
+ (version "1.5.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kmdpxrbnxnpsi7dkgk85z005vjyj74b3wxxqrf68wg3svy69620"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib"))
+ (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib")
+ (synopsis "Go pluggable transports library")
+ (description "GoPtLib is a library for writing Tor pluggable transports in
+Go.")
+ (license license:cc0)))
+
+(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird
+ (package
+ (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird")
+ (version "0.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird")
+ (commit (string-append "lyrebird-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0rifg5kgqp4c3b44j48fjmx00m00ai7fa4gaqrgphiqs1fc5586s"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:unpack-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird"
+ #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/cmd/lyrebird"
+ #:go ,go-1.20
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'substitutions
+ (lambda _
+ (with-directory-excursion
+ "src/gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird"
+ (for-each
+ (lambda (file)
+ (substitute* file
+ (("edwards25519-extra.git") "edwards25519-extra")))
+ (list "common/ntor/ntor_test.go"
+ "internal/x25519ell2/x25519ell2.go"))
+ (substitute* "internal/x25519ell2/x25519ell2.go"
+ (("gitlab.com/yawning/obfs4.git")
+ "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird"))))))))
+ (propagated-inputs
+ (list go-filippo-io-edwards25519
+ go-github-com-dchest-siphash
+ go-github-com-refraction-networking-utls
+ go-gitlab-com-yawning-edwards25519-extra
+ go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib
+ go-golang-org-x-crypto
+ go-golang-org-x-net
+ go-golang-org-x-text))
+ (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird")
+ (synopsis "Look-like nothing obfuscation protocol")
+ (description "This is a look-like nothing obfuscation protocol that
+incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol.")
+ (license (list license:bsd-2 license:bsd-3))))
+
(define-public go-github-com-sevlyar-go-daemon
(package
(name "go-github-com-sevlyar-go-daemon")
@@ -3673,6 +3745,42 @@ for the Go language.")
(home-page "https://go.googlesource.com/crypto/")
(license license:bsd-3)))
+(define-public go-github-com-refraction-networking-utls
+ (package
+ (name "go-github-com-refraction-networking-utls")
+ (version "1.6.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/refraction-networking/utls")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1iywar5vqsml4b177k2nkcxmjm8mw92g3p112yjsrpmikiwpwpyw"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/refraction-networking/utls"
+ #:go ,go-1.20
+ #:tests? #f)) ;requires internet access
+ (propagated-inputs
+ (list go-github-com-andybalholm-brotli
+ go-github-com-cloudflare-circl
+ go-github-com-gaukas-godicttls
+ go-github-com-klauspost-compress
+ go-github-com-quic-go-quic-go
+ go-golang-org-x-crypto
+ go-golang-org-x-net
+ go-golang-org-x-sys))
+ (home-page "https://github.com/refraction-networking/utls")
+ (synopsis "Fork of the Go standard TLS library, providing low-level access
+to the ClientHello for mimicry purposes")
+ (description "uTLS is a fork of “crypto/tls”, which provides ClientHello
+fingerprinting resistance, low-level access to handshake, fake session tickets
+and some other features. Handshake is still performed by “crypto/tls”, this
+library merely changes ClientHello part of it and provides low-level access.")
+ (license license:bsd-3)))
+
(define-public govulncheck
(package
(name "govulncheck")
@@ -5836,6 +5944,35 @@ Architecture Processors\" by J. Guilford et al.")
(description "Various cryptographic utilities used by IPFS")
(license license:expat))))
+(define-public go-github-com-cloudflare-circl
+ (package
+ (name "go-github-com-cloudflare-circl")
+ (version "1.3.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cloudflare/circl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05hk5svprcjrj6k4mg4kd732pnb658llqv04z6xrcl5v77jda2kd"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/cloudflare/circl"))
+ (propagated-inputs
+ (list go-github-com-bwesterb-go-ristretto
+ go-golang-org-x-crypto
+ go-golang-org-x-sys))
+ (home-page "https://blog.cloudflare.com/introducing-circl")
+ (synopsis "Cloudflare Interoperable Reusable Cryptographic Library")
+ (description "CIRCL (Cloudflare Interoperable, Reusable Cryptographic
+Library) is a collection of cryptographic primitives written in Go. The goal
+of this library is to be used as a tool for experimental deployment of
+cryptographic algorithms targeting Post-Quantum (PQ) and Elliptic Curve
+Cryptography (ECC).")
+ (license license:bsd-3)))
+
(define-public go-github-com-mr-tron-base58
(let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
(revision "0"))
@@ -7259,6 +7396,29 @@ Go 1.20.")
(home-page "https://github.com/quic-go/qtls-go1-20")
(license license:expat)))
+(define-public go-github-com-gaukas-godicttls
+ (package
+ (name "go-github-com-gaukas-godicttls")
+ (version "0.0.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gaukas/godicttls")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0n9i0b9nbwq7ms36r34kfc346prrif78hhp55gmbkvlgvsc3m2af"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/gaukas/godicttls"))
+ (home-page "https://github.com/gaukas/godicttls")
+ (synopsis "dictionary for TLS")
+ (description "This package provides a dictionary for TLS written in Go
+providing bidirectional mapping values to their names, plus enum convenience
+for values.")
+ (license license:bsd-3)))
+
(define-public go-github-com-quic-go-qpack
(package
(name "go-github-com-quic-go-qpack")
@@ -9004,7 +9164,20 @@ size of the terminal.")
"1idq8d13rp1hx2a1xak31fwl9fmi09p2x4ymvzl7aj850saw5w0z"))))
(build-system go-build-system)
(arguments
- `(#:import-path "github.com/charmbracelet/glamour"))
+ (list #:import-path "github.com/charmbracelet/glamour"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ ;; Some tests fail due to different number of '^[0m' symbols at
+ ;; the beginning and the end of paragraphs. To fix that we
+ ;; re-generate 'readme.test' so the test output will match the
+ ;; 'readme.test' contents.
+ (chmod "src/github.com/charmbracelet/glamour/testdata/readme.test"
+ #o644)
+ (substitute* "src/github.com/charmbracelet/glamour/glamour_test.go"
+ ((" generate = false")
+ " generate = true")))))))
(native-inputs
(list go-github-com-alecthomas-chroma
go-github-com-danwakefield-fnmatch
@@ -9897,6 +10070,94 @@ composability.")
the necessary APIs to build a wide array of higher-level primitives.")
(license license:bsd-3)))
+(define-public go-gitlab-com-yawning-edwards25519-extra
+ (let ((commit "2149dcafc266f66d2487f45b156f6397f9c4760b")
+ (revision "0"))
+ (package
+ (name "go-gitlab-com-yawning-edwards25519-extra")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/yawning/edwards25519-extra")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "08mz1qyi8ig515hh5blnzxhiwsav564ah7mzyhvmr6i48ndhhv98"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:unpack-path "gitlab.com/yawning/edwards25519-extra"
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda arguments
+ (for-each
+ (lambda (directory)
+ (apply (assoc-ref %standard-phases 'build)
+ `(,@arguments #:import-path ,directory)))
+ (list
+ "gitlab.com/yawning/edwards25519-extra/elligator2"
+ "gitlab.com/yawning/edwards25519-extra/h2c"
+ "gitlab.com/yawning/edwards25519-extra/internal/montgomery"
+ "gitlab.com/yawning/edwards25519-extra/vrf"))))
+ (replace 'check
+ (lambda arguments
+ (for-each
+ (lambda (directory)
+ (apply (assoc-ref %standard-phases 'check)
+ `(,@arguments #:import-path ,directory)))
+ (list
+ "gitlab.com/yawning/edwards25519-extra/elligator2"
+ "gitlab.com/yawning/edwards25519-extra/h2c"
+ "gitlab.com/yawning/edwards25519-extra/internal/montgomery"
+ "gitlab.com/yawning/edwards25519-extra/vrf"))))
+ (replace 'install
+ (lambda arguments
+ (for-each
+ (lambda (directory)
+ (apply (assoc-ref %standard-phases 'install)
+ `(,@arguments #:import-path ,directory)))
+ (list
+ "gitlab.com/yawning/edwards25519-extra/elligator2"
+ "gitlab.com/yawning/edwards25519-extra/h2c"
+ "gitlab.com/yawning/edwards25519-extra/internal/montgomery"
+ "gitlab.com/yawning/edwards25519-extra/vrf")))))))
+ (propagated-inputs (list go-golang-org-x-crypto
+ go-filippo-io-edwards25519))
+ (home-page "https://gitlab.com/yawning/edwards25519-extra")
+ (synopsis "edwards25519-extra")
+ (description
+ "This package provides extensions to the Go standard library's Ed25519 and
+curve25519 implementations, primarily extracted from
+@@url{https://github.com/oasisprotocol/curve25519-voi,curve25519-voi}. This
+package is intended for interoperability with the standard library and the
+@@url{https://filippo.io/edwards25519,edwards25519} package as much as possible.")
+ (license license:bsd-3))))
+
+(define-public go-github-com-bwesterb-go-ristretto
+ (package
+ (name "go-github-com-bwesterb-go-ristretto")
+ (version "1.2.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bwesterb/go-ristretto")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0h508v790wk6g8jq0gh18296xl87vmgc4fhwnac7mk6i5g3mz6v4"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:unpack-path "github.com/bwesterb/go-ristretto"
+ #:import-path "github.com/bwesterb/go-ristretto/edwards25519"))
+ (home-page "https://github.com/bwesterb/go-ristretto")
+ (synopsis "operations on the Ristretto prime-order group")
+ (description "This is a pure Go implementation of the group operations on
+the Ristretto prime-order group built from Edwards25519.")
+ (license license:expat)))
+
(define-public go-github-com-rogpeppe-go-internal
(package
(name "go-github-com-rogpeppe-go-internal")
@@ -11129,7 +11390,7 @@ dependencies and a simple API.")
(define-public go-github-com-arceliar-ironwood
(package
(name "go-github-com-arceliar-ironwood")
- (version "v0.0.0-20231028101932-ceac99571f43")
+ (version "v0.0.0-20231127131626-465b82dfb5bd")
(source
(origin
(method git-fetch)
@@ -11139,7 +11400,7 @@ dependencies and a simple API.")
(file-name (git-file-name name version))
(sha256
(base32
- "1shxpmi847jf7rfa5mb0m4nflwmlg65hjgjm9v7ynjvcp0licsi4"))))
+ "0sywrcvrpkkzi1jxfz2ahqs855h4bmdn1l79q5sdgqiaczr7q4b7"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/Arceliar/ironwood"
@@ -11769,6 +12030,56 @@ implementation.")
using shell-style rules for quoting and commenting.")
(license license:asl2.0)))
+(define-public go-github-com-google-btree
+ (package
+ (name "go-github-com-google-btree")
+ (version "1.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/btree")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cqa8ck26p3wqz877hcvmfss17xm8wcbwd68shxv795ppahpdd9b"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/google/btree"))
+ (home-page "https://github.com/google/btree")
+ (synopsis "Simple, ordered, in-memory data structure for Go programs")
+ (description
+ "This package provides an in-memory B-Tree implementation for Go, useful as an
+ordered, mutable data structure.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-peterbourgon-diskv
+ (package
+ (name "go-github-com-peterbourgon-diskv")
+ (version "3.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/peterbourgon/diskv")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0pdy8f7bkm65gx4vknwcvfa619hknflqxkdlvmf427k2mzm91gmh"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/peterbourgon/diskv"
+ #:go ,go-1.18))
+ (propagated-inputs (list go-github-com-google-btree))
+ (home-page "https://github.com/peterbourgon/diskv")
+ (synopsis "Disk-backed key-value store")
+ (description
+ "Diskv (disk-vee) is a simple, persistent key-value store written in the Go
+language. It starts with a simple API for storing arbitrary data on a filesystem by
+key, and builds several layers of performance-enhancing abstraction on top. The end
+result is a conceptually simple, but highly performant, disk-backed storage system.")
+ (license license:expat)))
+
(define-public go-github-com-disintegration-imaging
(package
(name "go-github-com-disintegration-imaging")
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 8b1e4b4542..48435eb1b5 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -727,7 +727,7 @@ transformed into common image formats for display or printing.")
(define-public python-graph-tool
(package
(name "python-graph-tool")
- (version "2.57")
+ (version "2.58")
(source (origin
(method url-fetch)
(uri (string-append
@@ -735,7 +735,7 @@ transformed into common image formats for display or printing.")
version ".tar.bz2"))
(sha256
(base32
- "0wmvzx509lvigja6cfxh45r4b7wns64vmik0x4rz4y4fnxrhw2m2"))))
+ "05vsk2600wn790hk7gr2f0609bzcslyhhv9x157n43vxy4y6r8vj"))))
(build-system gnu-build-system)
(arguments
`(#:imported-modules (,@%default-gnu-imported-modules
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5798455d54..7ce755e708 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1173,7 +1173,11 @@ application suites.")
;; The unaligned-offscreen test fails for unknown reasons, also
;; on different distributions (see:
;; https://gitlab.gnome.org/GNOME/gtk/-/issues/4889).
- ((" 'unaligned-offscreen',") ""))
+ ((" 'unaligned-offscreen',") "")
+ ;; This test, 'gtk:tools / validate', started failing for
+ ;; unknown reasons after updating mesa to 23.3.1 and xorgproto
+ ;; to 2023.2.
+ ((" 'validate',") ""))
(substitute* "testsuite/reftests/meson.build"
(("[ \t]*'label-wrap-justify.ui',") "")
;; The inscription-markup.ui fails due to /etc/machine-id
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index bd7be0237a..267dfae919 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017, 2022 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
@@ -816,7 +816,8 @@ tables.")
(base32
"0wvdi4l58f9a5c9wi3cdc9l1bniscsixb6w2zj86mch7j7j814lc"))
(patches
- (search-patches "guile-fibers-libevent-32-bit.patch"))))
+ (search-patches "guile-fibers-libevent-32-bit.patch"
+ "guile-fibers-libevent-timeout.patch"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
@@ -1839,6 +1840,33 @@ written in pure Scheme by using Guile's foreign function interface.")
library}.")
(license license:gpl3+)))
+(define-public guile-yamlpp
+ (package
+ (name "guile-yamlpp")
+ (version "0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/yorgath/guile-yamlpp")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14mlqi7hw7pi9scwk1g432issnqcn185pd8na2plijxq55cy0iq7"))))
+ (build-system gnu-build-system)
+ (native-inputs (list autoconf automake libtool pkg-config))
+ (inputs (list guile-3.0 yaml-cpp))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GUILE_EXTENSIONS_PATH")
+ (files (list "lib/guile/3.0")))))
+ (home-page "https://gitlab.com/yorgath/guile-yamlpp")
+ (synopsis "Guile YAML reader/writer based on @code{yaml-cpp}")
+ (description
+ "A module for GNU Guile to read and write YAML files. It works using
+bindings to the @code{yaml-cpp} C++ library.")
+ (license license:gpl3+)))
+
(define-public guile-dbi
(package
(name "guile-dbi")
@@ -3834,6 +3862,64 @@ Either represents the concept of values which are either correct (Right)
or errors (Left).")
(license license:expat))))
+(define-public guile-srfi-197
+ ;; There is minor fix to the documention after the final tag, so use
+ ;; the newest commit instead.
+ (let ((commit "d31b8be86460bf837cccf2737a1b9b9c01788573")
+ (revision "0"))
+ (package
+ (name "guile-srfi-197")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/scheme-requests-for-implementation/srfi-197")
+ (commit commit)))
+ (sha256
+ (base32
+ "1c1jjzqgavjwfzs352wssdbjga5ymv4g3lkl0zxhjw7pfrr5xx1m"))
+ (file-name (git-file-name name version))))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:source-directory "src"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'create-module
+ (lambda _
+ (use-modules (ice-9 textual-ports))
+ (mkdir-p "src/srfi")
+ (call-with-output-file "src/srfi/srfi-197.scm"
+ (lambda (port)
+ (write '(define-module (srfi srfi-197)
+ #:use-module (scheme base)
+ #:export (chain
+ chain-and
+ chain-when
+ chain-lambda
+ nest
+ nest-reverse))
+ port)
+ (call-with-input-file "srfi-197-syntax-case.scm"
+ (lambda (in-port)
+ (display (get-string-all in-port) port)))))))
+ (add-after 'install 'check-installed
+ (lambda _
+ (define-values (scm go) (target-guile-scm+go #$output))
+ (invoke "guile" "-L" scm "-C" go
+ "--use-srfi=197" "./test.scm"))))))
+ (native-inputs
+ (list guile-3.0))
+ (home-page "https://srfi.schemers.org/srfi-197/")
+ (synopsis "Pipeline operators for Guile")
+ (description
+ "This library provides a reference implementation for SRFI-197. This
+SRFI defines a family of chain and nest pipeline operators, which can rewrite
+nested expressions like @code{(a b (c d (e f g)))} as a sequence of
+operations: @code{(chain g (e f _) (c d _) (a b _))}.")
+ (license license:expat))))
+
(define-public guile-srfi-232
(package
(name "guile-srfi-232")
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 59b95ab7c8..4765d1c55d 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -806,6 +806,7 @@ information can be viewed in real time and/or logged to a file.")
also provides extensions for proprietary methods of interfacing with Dell
specific SMBIOS tables.")
(home-page "https://github.com/dell/libsmbios")
+ (supported-systems (list "i686-linux" "x86_64-linux"))
(license
(list license:osl2.1 license:gpl2+ license:bsd-3 license:boost1.0))))
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index db120f223e..1ef840845a 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
-;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,6 +38,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages markup)
#:use-module (gnu packages networking)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -54,6 +55,7 @@
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
+ #:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
@@ -68,307 +70,33 @@
#:use-module (guix packages)
#:use-module (guix utils))
-(define %jami-version "20230323.0")
+;;; We use nightlies as stable versions are a bit far in-between, and often
+;;; have bugs anyway. When the nightly version change, do not forget to
+;;; retrieve the associated daemon submodule commit and update it in
+;;; %jami-daemon-commit variable below.
-(define %jami-sources
- ;; Return an origin object of the tarball release sources archive of the
- ;; Jami project.
- (origin
- (method url-fetch)
- (uri (string-append "https://dl.jami.net/release/tarballs/jami-"
- %jami-version ".tar.gz"))
- (modules '((guix build utils)))
- (snippet
- ;; Delete multiple MiBs of bundled tarballs. The daemon/contrib
- ;; directory contains the custom patches for pjproject and other
- ;; libraries used by Jami.
- '(delete-file-recursively "daemon/contrib/tarballs"))
- (sha256
- (base32
- "0vjsjr37cb87j9hqbmipyxn4877k1wn3l0vzca3l3ldgknglz7v2"))
- (patches (search-patches "jami-disable-integration-tests.patch"
- "jami-libjami-headers-search.patch"))))
-
-;; Jami maintains a set of patches for some key dependencies (currently
-;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream.
-;; This procedure simplifies the process of applying them.
-(define jami-apply-custom-patches
- #~(lambda* (#:key dep-name patches)
- (let ((patches-directory "patches"))
- (mkdir-p patches-directory)
- (invoke "tar" "-xvf" #$%jami-sources
- "-C" patches-directory
- "--strip-components=5"
- "--wildcards"
- (string-append "jami-*/daemon/contrib/src/" dep-name))
- (for-each (lambda (f)
- (invoke "patch" "--force" "--ignore-whitespace" "-p1" "-i"
- (string-append patches-directory "/" f ".patch")))
- patches))))
-
-(define-public pjproject-jami
- (let ((commit "e4b83585a0bdf1523e808a4fc1946ec82ac733d0")
- (revision "3"))
- (package
- (inherit pjproject)
- (name "pjproject-jami")
- (version (git-version "2.12" revision commit))
- (source (origin
- (inherit (package-source pjproject))
- ;; The Jami development team regularly issues patches to
- ;; pjproject to extend the its functionality and fix bugs;
- ;; they are submitted for inclusion upstream but larger
- ;; patches take time to be reviewed and merged, hence this
- ;; forked repository.
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/savoirfairelinux/pjproject")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0gky5idyyqxhqk959lzys5l7x1i925db773lfdpvxxmkmfizdq21"))))
- (arguments
- (substitute-keyword-arguments (package-arguments pjproject)
- ((#:phases phases '%standard-phases)
- #~(modify-phases #$phases
- (add-after 'unpack 'apply-patches
- (lambda _
- (#$jami-apply-custom-patches
- #:dep-name "pjproject"
- #:patches
- ;; This adds a config_site.h configuration file that sets
- ;; constants such as PJ_ICE_MAX_CAND that cannot be
- ;; configured at build time.
- '("0009-add-config-site")))))))))))
-
-;; The following variables are configure flags used by ffmpeg-jami. They're
-;; from the jami/daemon/contrib/src/ffmpeg/rules.mak file. We try to keep it
-;; as close to the official Jami package as possible, to provide all the
-;; codecs and extra features that are expected (see:
-;; https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak).
-;; An exception are the ffnvcodec-related switches, which is not packaged in
-;; Guix and would not work with Mesa.
-(define %ffmpeg-default-configure-flags
- '("--disable-everything"
- "--enable-zlib"
- "--enable-gpl"
- "--enable-swscale"
- "--enable-bsfs"
- "--disable-filters"
- "--disable-programs"
- "--disable-postproc"
- "--disable-protocols"
- "--enable-protocol=crypto"
- "--enable-protocol=file"
- "--enable-protocol=rtp"
- "--enable-protocol=srtp"
- "--enable-protocol=tcp"
- "--enable-protocol=udp"
- "--enable-protocol=unix"
- "--enable-protocol=pipe"
-
- ;; Enable muxers/demuxers.
- "--disable-demuxers"
- "--disable-muxers"
- "--enable-muxer=rtp"
- "--enable-muxer=g722"
- "--enable-muxer=g726"
- "--enable-muxer=g726le"
- "--enable-muxer=h263"
- "--enable-muxer=h264"
- "--enable-muxer=hevc"
- "--enable-muxer=matroska"
- "--enable-muxer=wav"
- "--enable-muxer=webm"
- "--enable-muxer=ogg"
- "--enable-muxer=pcm_s16be"
- "--enable-muxer=pcm_s16le"
- "--enable-demuxer=rtp"
- "--enable-demuxer=mjpeg"
- "--enable-demuxer=mjpeg_2000"
- "--enable-demuxer=mpegvideo"
- "--enable-demuxer=gif"
- "--enable-demuxer=image_jpeg_pipe"
- "--enable-demuxer=image_png_pipe"
- "--enable-demuxer=image_webp_pipe"
- "--enable-demuxer=matroska"
- "--enable-demuxer=m4v"
- "--enable-demuxer=mp3"
- "--enable-demuxer=ogg"
- "--enable-demuxer=flac"
- "--enable-demuxer=wav"
- "--enable-demuxer=ac3"
- "--enable-demuxer=g722"
- "--enable-demuxer=g723_1"
- "--enable-demuxer=g726"
- "--enable-demuxer=g726le"
- "--enable-demuxer=pcm_mulaw"
- "--enable-demuxer=pcm_alaw"
- "--enable-demuxer=pcm_s16be"
- "--enable-demuxer=pcm_s16le"
- "--enable-demuxer=h263"
- "--enable-demuxer=h264"
- "--enable-demuxer=hevc"
-
- ;; Enable parsers.
- "--enable-parser=h263"
- "--enable-parser=h264"
- "--enable-parser=hevc"
- "--enable-parser=mpeg4video"
- "--enable-parser=vp8"
- "--enable-parser=vp9"
- "--enable-parser=opus"
-
- ;; Encoders/decoders.
- "--enable-encoder=adpcm_g722"
- "--enable-decoder=adpcm_g722"
- "--enable-encoder=adpcm_g726"
- "--enable-decoder=adpcm_g726"
- "--enable-encoder=adpcm_g726le"
- "--enable-decoder=adpcm_g726le"
- "--enable-decoder=g729"
- "--enable-encoder=g723_1"
- "--enable-decoder=g723_1"
- "--enable-encoder=rawvideo"
- "--enable-decoder=rawvideo"
- "--enable-encoder=libx264"
- "--enable-decoder=h264"
- "--enable-encoder=pcm_alaw"
- "--enable-decoder=pcm_alaw"
- "--enable-encoder=pcm_mulaw"
- "--enable-decoder=pcm_mulaw"
- "--enable-encoder=mpeg4"
- "--enable-decoder=mpeg4"
- "--enable-encoder=libvpx_vp8"
- "--enable-decoder=vp8"
- "--enable-decoder=vp9"
- "--enable-encoder=h263"
- "--enable-encoder=h263p"
- "--enable-decoder=h263"
- "--enable-encoder=mjpeg"
- "--enable-decoder=mjpeg"
- "--enable-decoder=mjpegb"
- "--enable-libspeex"
- "--enable-libopus"
- "--enable-libvpx"
- "--enable-libx264"
- "--enable-encoder=libspeex"
- "--enable-decoder=libspeex"
- "--enable-encoder=libopus"
- "--enable-decoder=libopus"
-
- ;; Encoders/decoders for ringtones and audio streaming.
- "--enable-decoder=flac"
- "--enable-decoder=vorbis"
- "--enable-decoder=aac"
- "--enable-decoder=ac3"
- "--enable-decoder=eac3"
- "--enable-decoder=mp3"
- "--enable-decoder=pcm_u24le"
- "--enable-decoder=pcm_u32le"
- "--enable-decoder=pcm_u8"
- "--enable-decoder=pcm_f16le"
- "--enable-decoder=pcm_f32le"
- "--enable-decoder=pcm_f64le"
- "--enable-decoder=pcm_s16le"
- "--enable-decoder=pcm_s24le"
- "--enable-decoder=pcm_s32le"
- "--enable-decoder=pcm_s64le"
- "--enable-decoder=pcm_u16le"
- "--enable-encoder=pcm_u8"
- "--enable-encoder=pcm_f32le"
- "--enable-encoder=pcm_f64le"
- "--enable-encoder=pcm_s16le"
- "--enable-encoder=pcm_s32le"
- "--enable-encoder=pcm_s64le"
-
- ;; Encoders/decoders for images.
- "--enable-encoder=gif"
- "--enable-decoder=gif"
- "--enable-encoder=jpegls"
- "--enable-decoder=jpegls"
- "--enable-encoder=ljpeg"
- "--enable-decoder=jpeg2000"
- "--enable-encoder=png"
- "--enable-decoder=png"
- "--enable-encoder=bmp"
- "--enable-decoder=bmp"
- "--enable-encoder=tiff"
- "--enable-decoder=tiff"
-
- ;; Filters.
- "--enable-filter=scale"
- "--enable-filter=overlay"
- "--enable-filter=amix"
- "--enable-filter=amerge"
- "--enable-filter=aresample"
- "--enable-filter=format"
- "--enable-filter=aformat"
- "--enable-filter=fps"
- "--enable-filter=transpose"
- "--enable-filter=pad"))
-
-(define %ffmpeg-linux-configure-flags
- '("--enable-pic"
- "--extra-cxxflags=-fPIC"
- "--extra-cflags=-fPIC"
- "--target-os=linux"
- "--enable-indev=v4l2"
- "--enable-indev=xcbgrab"
- "--enable-vdpau"
- "--enable-hwaccel=h264_vdpau"
- "--enable-hwaccel=mpeg4_vdpau"
- "--enable-vaapi"
- "--enable-hwaccel=h264_vaapi"
- "--enable-hwaccel=mpeg4_vaapi"
- "--enable-hwaccel=h263_vaapi"
- "--enable-hwaccel=vp8_vaapi"
- "--enable-hwaccel=mjpeg_vaapi"
- "--enable-hwaccel=hevc_vaapi"
- "--enable-encoder=h264_vaapi"
- "--enable-encoder=vp8_vaapi"
- "--enable-encoder=mjpeg_vaapi"
- "--enable-encoder=hevc_vaapi"))
-
-(define (ffmpeg-compose-configure-flags)
- "Compose the configure flag lists of ffmpeg-jami."
- #~(append '#$%ffmpeg-default-configure-flags
- (if (string-contains #$(%current-system) "linux")
- '#$%ffmpeg-linux-configure-flags
- '())))
-
-(define-public ffmpeg-jami
- (package
- (inherit ffmpeg)
- (name "ffmpeg-jami")
- (arguments
- (substitute-keyword-arguments (package-arguments ffmpeg)
- ((#:configure-flags _ '())
- #~(cons* "--disable-static"
- "--enable-shared"
- "--disable-stripping"
- #$(ffmpeg-compose-configure-flags)))
- ((#:phases phases)
- #~(modify-phases #$phases
- (add-after 'unpack 'apply-patches
- (lambda _
- ;; These patches come from:
- ;; "jami-project/daemon/contrib/src/ffmpeg/rules.mak".
- (#$jami-apply-custom-patches
- #:dep-name "ffmpeg"
- #:patches '("remove-mjpeg-log"
- "change-RTCP-ratio"
- "rtp_ext_abs_send_time"
- "libopusdec-enable-FEC"
- "libopusenc-reload-packet-loss-at-encode"
- "screen-sharing-x11-fix"))))))))))
+;;; When updating Jami, make sure that the patches used for ffmpeg-jami are up
+;;; to date with those listed in
+;;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/rules.mak>.
+(define %jami-nightly-version "20231222.2")
+(define %jami-daemon-commit "317b7317dcda4afb733ddb9bd5b450d4635941ae")
(define-public libjami
(package
(name "libjami")
- (version %jami-version)
- (source %jami-sources)
+ (version %jami-nightly-version)
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/jami-daemon")
+ (commit %jami-daemon-commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "16qx50xz2mkw894irjsvql82iw7wpc5xncxpvw1nqd2sxhgfiq0i"))
+ (patches (search-patches
+ "libjami-ac-config-files.patch"
+ "jami-disable-integration-tests.patch"))))
(outputs '("out" "bin" "debug")) ;"bin' contains jamid
(build-system gnu-build-system)
(arguments
@@ -378,13 +106,25 @@
;; user scripts too, until more general purpose Scheme bindings are made
;; available (see: test/agent/README.md).
#:configure-flags #~(list "--enable-agent" "--enable-debug")
- #:make-flags #~(list "V=1") ;build verbosely
+ #:make-flags
+ #~(list
+ "V=1" ;build verbosely
+ ;; The 'ut_media_player' is known to fail (see:
+ ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/935).
+ "XFAIL_TESTS=ut_media_player")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'change-directory/maybe
(lambda _
;; Allow building from the tarball or a git checkout.
(false-if-exception (chdir "daemon"))))
+ (add-after 'change-directory/maybe 'extend-scheduler-test-timeout
+ (lambda _
+ ;; The ut_scheduler unit test may fail on slower machines (see:
+ ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/939).
+ (substitute* "test/unitTest/scheduler.cpp"
+ (("std::chrono::seconds\\(3)")
+ "std::chrono::seconds(30)"))))
(add-after 'install 'delete-static-libraries
;; Remove 100+ MiB of static libraries. "--disable-static" cannot
;; be used as the test suite requires access to private symbols
@@ -409,14 +149,14 @@
(inputs
(list alsa-lib
asio
- dbus-c++
+ dhtnet
eudev
ffmpeg-jami
guile-3.0
jack-1
jsoncpp
libarchive
- libgit2
+ libgit2-1.6
libnatpmp
libsecp256k1
libupnp
@@ -424,6 +164,7 @@
openssl
pjproject-jami
pulseaudio
+ sdbus-c++
speex
speexdsp
webrtc-audio-processing
@@ -447,18 +188,71 @@ service definitions.")
(home-page "https://jami.net/")
(license license:gpl3+)))
+;;; Private package; this is used in source form: the project build system has
+;;; no install target.
+(define sortfilterproxymodel
+ ;; Use the latest commit available from the 'qt-6' branch.
+ (let ((commit "6cc21205dbf36640613f0e6e67b2b13b1855c377")
+ (revision "0"))
+ (package
+ (name "sortfilterproxymodel")
+ ;; There are no recent release tag; the module version defined in the
+ ;; source is used (see:
+ ;; https://github.com/oKcerG/SortFilterProxyModel/blob/
+ ;; 5a930885b7ea99f7f41c25fce08bf8006ee54e3f/
+ ;; qqmlsortfilterproxymodel.cpp#L574C15-L574C15).
+ (version (git-version "0.2" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ ;; The upstream is
+ ;; https://github.com/oKcerG/SortFilterProxyModel, but
+ ;; it lacks Qt 6 support, so use this fork, which is the
+ ;; one used by Jami.
+ (url "https://github.com/atraczyk/SortFilterProxyModel")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1n54jkimr3a818i3w7w3lnbqn47x72nnr5xi9vk0mdnbwri3viwy"))))
+ (build-system qt-build-system)
+ (arguments
+ (list #:qtbase qtbase ;use Qt 6
+ #:tests? #f ;no test suite
+ #:configure-flags #~(list "BUILD_SFPM_PIC=ON")))
+ (inputs (list qtdeclarative))
+ (home-page "https://github.com/oKcerG/SortFilterProxyModel")
+ (synopsis "Improved QSortFilterProxyModel implementation for QML")
+ (description "SortFilterProxyModel is an implementation of
+QSortFilterProxyModel conveniently exposed for QML.")
+ (license license:expat))))
+
(define-public jami
(package
(name "jami")
- (version %jami-version)
- (source %jami-sources)
+ (version %jami-nightly-version)
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://review.jami.net/jami-client-qt")
+ (commit (string-append "nightly/" %jami-nightly-version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ypbbyqmq6x9zq4sr550k38v8pg7yq685bmwqmigqzhqgfazcg97"))
+ (patches (search-patches
+ "jami-libjami-headers-search.patch"
+ "jami-qml-tests-discovery.patch"
+ "jami-skip-tests-requiring-internet.patch"
+ "jami-unbundle-dependencies.patch"))))
(build-system qt-build-system)
(outputs '("out" "debug"))
(arguments
(list
#:qtbase qtbase
#:configure-flags
- #~(list "-DENABLE_TESTS=ON"
+ #~(list "-DWITH_DAEMON_SUBMODULE=OFF"
+ "-DENABLE_TESTS=ON"
;; Disable the webengine since it grows the closure size by
;; about 450 MiB and requires more resources.
"-DWITH_WEBENGINE=OFF"
@@ -467,11 +261,7 @@ service definitions.")
"-DENABLE_LIBWRAP=ON")
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'change-directory/maybe
- (lambda _
- ;; Allow building from the tarball or a git checkout.
- (false-if-exception (chdir "client-qt"))))
- (add-after 'change-directory/maybe 'fix-version-string
+ (add-after 'unpack 'fix-version-string
(lambda _
(substitute* "src/app/version.h"
(("VERSION_STRING")
@@ -480,6 +270,17 @@ service definitions.")
(string-append "const char VERSION_STRING[] = \""
#$version "\";\n"
anchor)))))
+ (add-after 'unpack 'copy-3rdparty-source-dependencies
+ (lambda _
+ (copy-recursively #$(package-source sortfilterproxymodel)
+ "3rdparty/SortFilterProxyModel")))
+ (add-before 'configure 'fake-x11-environment
+ (lambda _
+ ;; This works around the lack of configuration for the X11
+ ;; push-to-talk feature, which is auto-detected via the
+ ;; XDG_SESSION_TYPE environment variable (see:
+ ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1504).
+ (setenv "XDG_SESSION_TYPE" "x11")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
@@ -488,22 +289,13 @@ service definitions.")
;; The tests require a writable HOME.
(setenv "HOME" "/tmp")
- (display "Running unittests...\n")
- (invoke "tests/unittests" "-mutejamid")
+ (display "Running unit tests...\n")
+ (invoke "tests/unit_tests")
- ;; XXX: There are currently multiple failures with the
- ;; functional tests (see:
- ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883),
- ;; so the code below is disabled for now.
- ;;
+ ;; XXX: The QML test suite fails, exiting with status code 1 (see:
+ ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/883).
;; (display "Running functional tests...\n")
- ;; ;; This is to allow building from the source tarball or
- ;; ;; directly from the git repository.
- ;; (let ((tests-qml (if (file-exists? "../client-qt/tests")
- ;; "../client-qt/tests/qml"
- ;; "../tests/qml")))
- ;; (invoke "tests/qml_tests" "-mutejamid"
- ;; "-input" tests-qml))
+ ;; (invoke "tests/qml_tests")
))))))
(native-inputs
(list googletest
@@ -518,6 +310,7 @@ service definitions.")
libnotify
libxcb
libxkbcommon
+ md4c
network-manager
qrencode
qt5compat
@@ -526,6 +319,7 @@ service definitions.")
qtnetworkauth
qtpositioning
qtsvg
+ tidy-html ;used by src/app/htmlparser.h
vulkan-loader))
(home-page "https://jami.net")
(synopsis "Qt Jami client")
@@ -538,8 +332,8 @@ P2P-DHT.")
(define-public jami-docs
;; There aren't any tags, so use the latest commit.
- (let ((revision "1")
- (commit "ff466ebadb9b99a1672a814126793de670c3099b"))
+ (let ((revision "2")
+ (commit "a48997de84cc4933bd111fa93fbf6a58189b166d"))
(package
(name "jami-docs")
(version (git-version "0.0.0" revision commit))
@@ -551,7 +345,7 @@ P2P-DHT.")
(file-name (git-file-name name version))
(sha256
(base32
- "1n8a9dk8mi617rk3ycz5jrzbwv9ybfynlci5faz1klckx0aqdf6q"))))
+ "0a1kcflvk39aag2vk83cn4m0ifkgb3gvwkr8pbbvf0hcd2cj2j31"))))
(build-system copy-build-system)
(arguments
(list
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index b05fe2db49..dc3e730817 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -100,13 +100,14 @@
(define-public icedtea-7
(let* ((version "2.6.13")
- (drop (lambda (name hash)
+ (drop (lambda* (name hash #:optional (patches '()))
(origin
(method url-fetch)
(uri (string-append
"http://icedtea.classpath.org/download/drops"
"/icedtea7/" version "/" name ".tar.bz2"))
- (sha256 (base32 hash))))))
+ (sha256 (base32 hash))
+ (patches patches)))))
(package
(name "icedtea")
(version version)
@@ -614,7 +615,8 @@
"110j7jlz47x2gg6f7653x12mssan5kvj9l9h1m1c8c92drfxbqyk"))
("jdk-drop"
,(drop "jdk"
- "0d1mca38ksxvdskp9im3pp7fdijhj1n3lwq9w13r9s4v3qyskgdd"))
+ "0d1mca38ksxvdskp9im3pp7fdijhj1n3lwq9w13r9s4v3qyskgdd"
+ (search-patches "jdk-currency-time-bomb.patch")))
("langtools-drop"
,(drop "langtools"
"0nq5236fzxn3p6x8cgncl56mzcmsj07q9gymysnws4c8byc6n0qj"))
@@ -687,13 +689,14 @@ IcedTea build harness.")
(define-public icedtea-8
(let* ((version "3.19.0")
- (drop (lambda (name hash)
+ (drop (lambda* (name hash #:optional (patches '()))
(origin
(method url-fetch)
(uri (string-append
"http://icedtea.classpath.org/download/drops"
"/icedtea8/" version "/" name ".tar.xz"))
- (sha256 (base32 hash))))))
+ (sha256 (base32 hash))
+ (patches patches)))))
(package (inherit icedtea-7)
(version "3.19.0")
(source (origin
@@ -844,7 +847,8 @@ new Date();"))
"1pc0pv4v2mn2mjc0vp19d94v2150xigyhxsmckqasy647zcm6w0r"))
("jdk-drop"
,(drop "jdk"
- "1742lcm55l8zhi522x83v65ccr0rd6511q9rj7crw44x3ymdrhrv"))
+ "1742lcm55l8zhi522x83v65ccr0rd6511q9rj7crw44x3ymdrhrv"
+ (search-patches "jdk-currency-time-bomb2.patch")))
("langtools-drop"
,(drop "langtools"
"08iz7p2xcddlphipf6gahyabr5cawlnydap12p1n4f0md069b50b"))
@@ -874,14 +878,14 @@ new Date();"))
(changeset "jdk-9+181")))
(file-name (hg-file-name name version))
(modules '((guix build utils)))
- (snippet `(begin
- (for-each delete-file
- (find-files "." ".*.(bin|exe|jar)$"))))
+ (snippet '(for-each delete-file
+ (find-files "." ".*.(bin|exe|jar)$")))
(sha256
(base32
"1v92nzdqx07c35x945awzir4yk0fk22vky6fpp8mq9js930sxsz0"))
(patches (search-patches "openjdk-9-pointer-comparison.patch"
- "openjdk-9-setsignalhandler.patch"))))
+ "openjdk-9-setsignalhandler.patch"
+ "openjdk-currency-time-bomb.patch"))))
(build-system gnu-build-system)
(outputs '("out" "jdk" "doc"))
(arguments
@@ -916,8 +920,7 @@ new Date();"))
;; This file was "fixed" by patch-source-shebangs, but it requires
;; this exact first line.
(substitute* "jdk/make/data/blacklistedcertsconverter/blacklisted.certs.pem"
- (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n"))
- #t))
+ (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n"))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
;; TODO: unbundle libpng and lcms
@@ -933,14 +936,12 @@ new Date();"))
"--disable-hotspot-gtest"
"--with-giflib=system"
"--with-libjpeg=system"
- (string-append "--prefix=" (assoc-ref outputs "out")))
- #t))
+ (string-append "--prefix=" (assoc-ref outputs "out")))))
(add-before 'build 'write-source-revision-file
(lambda _
(with-output-to-file ".src-rev"
(lambda _
- (display ,version)))
- #t))
+ (display ,version)))))
(replace 'build
(lambda* (#:key make-flags parallel-build? #:allow-other-keys)
(apply invoke "make"
@@ -983,8 +984,7 @@ new Date();"))
"warning: failed to substitute: ~a~%"
file))))
(find-files "."
- "\\.c$|\\.h$"))
- #t)))
+ "\\.c$|\\.h$")))))
;; By default OpenJDK only generates an empty keystore. In order to
;; be able to use certificates in Java programs we need to generate a
;; keystore from a set of certificates. For convenience we use the
@@ -1078,8 +1078,7 @@ new Date();"))
(symlink (string-append lib-jdk "/server/libjvm.so")
(string-append lib-jdk "/libjvm.so"))
(symlink (string-append lib-out "/server/libjvm.so")
- (string-append lib-out "/libjvm.so")))
- #t))
+ (string-append lib-out "/libjvm.so")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
@@ -1089,8 +1088,7 @@ new Date();"))
#:directories? #t))))
(copy-recursively (string-append images "/images/jdk") jdk)
(copy-recursively (string-append images "/images/jre") out)
- (copy-recursively (string-append images "/images/docs") doc))
- #t))
+ (copy-recursively (string-append images "/images/docs") doc))))
(add-after 'install 'strip-zip-timestamps
(lambda* (#:key outputs #:allow-other-keys)
(for-each (lambda (zip)
@@ -1107,8 +1105,7 @@ new Date();"))
(with-directory-excursion dir
(let ((files (find-files "." ".*" #:directories? #t)))
(apply invoke "zip" "-0" "-X" zip files)))))
- (find-files (assoc-ref outputs "doc") ".*.zip$"))
- #t)))))
+ (find-files (assoc-ref outputs "doc") ".*.zip$")))))))
(inputs
`(("alsa-lib" ,alsa-lib)
("cups" ,cups)
@@ -1162,7 +1159,8 @@ new Date();"))
(patches (search-patches
"openjdk-10-idlj-reproducibility.patch"
"openjdk-10-pointer-comparison.patch"
- "openjdk-10-setsignalhandler.patch"))))
+ "openjdk-10-setsignalhandler.patch"
+ "openjdk-currency-time-bomb2.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments openjdk9)
((#:phases phases)
@@ -1184,8 +1182,7 @@ new Date();"))
;; This file was "fixed" by patch-source-shebangs, but it requires
;; this exact first line.
(substitute* "make/data/blacklistedcertsconverter/blacklisted.certs.pem"
- (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n"))
- #t))
+ (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n"))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(invoke "bash" "./configure"
@@ -1234,7 +1231,9 @@ new Date();"))
"1prvqy0ysz0999wrhsrbz6vrknpqfihl9l74l16ph93g89dqi5ia"))
(modules '((guix build utils)))
(snippet
- '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))))
+ '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))
+ (patches (search-patches
+ "openjdk-currency-time-bomb2.patch"))))
(build-system gnu-build-system)
(outputs '("out" "jdk" "doc"))
(arguments
@@ -3411,9 +3410,10 @@ declaratively, to be used in other frameworks. Typical scenarios include
testing frameworks, mocking libraries and UI validation rules.")
(license license:bsd-2)))
-(define java-hamcrest-parent-pom
+(define-public java-hamcrest-parent-pom
(package
(inherit java-hamcrest-core)
+ (properties '((hidden? . #t)))
(name "java-hamcrest-parent-pom")
(propagated-inputs '())
(native-inputs '())
@@ -4971,7 +4971,7 @@ transformations and analysis algorithms allow easily assembling custom
complex transformations and code analysis tools.")
(license license:bsd-3)))
-(define java-org-ow2-parent-pom-1.3
+(define-public java-org-ow2-parent-pom-1.3
(package
(name "java-org-ow2-parent-pom")
(version "1.3")
@@ -4995,12 +4995,14 @@ complex transformations and code analysis tools.")
(synopsis "Ow2.org parent pom")
(description "This package contains the parent pom for projects from ow2.org,
including java-asm.")
+ (properties '((hidden? . #t)))
(license license:lgpl2.1+)))
-(define java-asm-bootstrap
+(define-public java-asm-bootstrap
(package
(inherit java-asm)
(name "java-asm-bootstrap")
+ (properties '((hidden? . #t)))
(arguments
(substitute-keyword-arguments (package-arguments java-asm)
((#:tests? _) #f)))
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 3974bbdd2a..f8e3ac86cb 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -2314,7 +2314,7 @@ using finite difference.")
(define-public julia-fitsio
(package
(name "julia-fitsio")
- (version "0.17.0")
+ (version "0.17.1")
(source
(origin
(method git-fetch)
@@ -2323,7 +2323,7 @@ using finite difference.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "10w7cdb2cvcwpkcfdz2fwl4ji5rfdv8w9msc9gfd8d34k58bk8c5"))))
+ (base32 "1mvrr13qvzdpqdp01hzqqyx84cxagyvjwkbizsp3xaabckg48pnz"))))
(build-system julia-build-system)
(native-inputs
(list julia-aqua julia-orderedcollections))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index b80d53a8b2..5cfd2025f6 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -494,7 +494,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
-(define-public linux-libre-6.6-version "6.6.9")
+(define-public linux-libre-6.6-version "6.6.10")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
@@ -504,7 +504,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0kavbby960k7wg355p3hjb9v1c4gnk8dv3lkfhpz44ayhv7kihg5")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
- (hash (base32 "1cs8ym3yq9czjx6sbxpmn16l6a577mc4c1ff7nk1p2gw1jpnbg4f")))
+ (hash (base32 "0v2l0l90w7scv7bxkxxjgqnay0fjh678k9gdlgycgbh9q7j2grly")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
@@ -512,7 +512,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-6.1-version "6.1.70")
+(define-public linux-libre-6.1-version "6.1.71")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -522,82 +522,82 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1jg2v1nxd6i5x536vmd1l14xhpzrcimpmjfipb1zkrwil102y25f")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "1vxgardfm2fi4c7zkxpljqicllfqqnp835a9lyb7dh2nchk6a4zd")))
+ (hash (base32 "0hghnwsa282js9hy4krhdbgrb4khjzslr05zgvjx9zzragfp9xrd")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
-(define-public linux-libre-5.15-version "5.15.145")
+(define-public linux-libre-5.15-version "5.15.146")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
linux-libre-5.15-version
linux-libre-5.15-gnu-revision
(base32 "18ac30kxg2mf2f6gk3p935hzhz2qs110jy4xwk21kblnnkskbxj8")
- (base32 "1idjrn2w8jrixj8ifkk1awxyyq5042nc4p2mld4rda96azlnp948")))
+ (base32 "14pw0yl0yxdgcdp01rpi91ylil9irwzxfq04kfvn3gg2abaq37bn")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "086nssif66s86wkixz4yb7xilz1k49g32l0ib28r8fjzc23rv95j")))
+ (hash (base32 "14nijbspmzd4r38l8cpl4vn9dhawzcfnhyc0gnaxl2m8l9gpm02s")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
-(define-public linux-libre-5.10-version "5.10.205")
+(define-public linux-libre-5.10-version "5.10.206")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
linux-libre-5.10-version
linux-libre-5.10-gnu-revision
(base32 "1b33rkn32b923025iiz4xzxiy8y5ii9j5qk4021mg575890rl4ch")
- (base32 "0xrrnmb5kcc5r21bdm24aq0fnkk1imn367c1cxlj78b6l6gigx4b")))
+ (base32 "0zmmqj5gyiy2q81f199c29b14isfiqbvl87y72k14yy0q5398276")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "0qw8g0h4k0b4dyvspbj51cwr68ihwjzsi2b2261ipy3l1nl1fln5")))
+ (hash (base32 "0ns8qxcrxj9i76b93xcghl002l8vbkg7ksd435sikig62qr62gf4")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.265")
+(define-public linux-libre-5.4-version "5.4.266")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
linux-libre-5.4-version
linux-libre-5.4-gnu-revision
(base32 "0xg5cz82k2cb0ikxvwv1hp5c3h377jkb5sd6aszvsk7hnabhk62v")
- (base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1")))
+ (base32 "08wn4rjrmi8asmdkg92xbbm6v0sw44kackp69agbw57zy6fp2zys")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "05cvvwjiznn7hfd02qklklalg0chahvh5v18w64lcva6kzj9kbjd")))
+ (hash (base32 "1dmcn9i3nvf1gldm1a32gnl5ybwbk2lizb3wa4gc06g7dxz2y1ys")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.303")
+(define-public linux-libre-4.19-version "4.19.304")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
linux-libre-4.19-version
linux-libre-4.19-gnu-revision
(base32 "0pjal2cc2f99cvw8r4icb4l24j41k48jkj6bqk7pcahzcgx33ycb")
- (base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl")))
+ (base32 "07j33w4pq319gaypfsym6v0i2xqc5jagm47nxyy2010zn8k6y8kd")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "0dlbl47xs7z4yf9cxbxqzd7zs1f9070jr6ck231wgppa6lwwwb82")))
+ (hash (base32 "165mljr8v1cf4vf4a4b44hx089rprkssvi2azq5wbxxg3basbind")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.334")
+(define-public linux-libre-4.14-version "4.14.335")
(define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
linux-libre-4.14-version
linux-libre-4.14-gnu-revision
(base32 "1vbgykwzf7j0yjqcwn747cfhwj0rgw3s9h627q94wb9a19x9p0fr")
- (base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd")))
+ (base32 "1ir96bbhw77xw6lmsnh42gi130nnzjklpgfyd46pxmqckrpydcvx")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "0iaaqdkszmfarvjfszc9rf7y9zsv3w82934xmvmzmsbiz86547ca")))
+ (hash (base32 "0aa0xi1sn4rw9ichgmvxp0s9hsi6rfzhzd9wgbvzvc90md2qfs19")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
@@ -7483,15 +7483,16 @@ running boot option, and more.")
(define-public sysstat
(package
(name "sysstat")
- (version "12.4.4")
+ (version "12.7.5")
(source
(origin
(method url-fetch)
- (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/"
+ (uri (string-append "https://sysstat.github.io/sysstat-packages/"
"sysstat-" version ".tar.xz"))
(sha256
- (base32 "091xjip7l52dxal8dsfh5chksr4g9gclnssw3hjjxy84kr3yf4lm"))))
+ (base32 "0ssdrm3k0fclq5b5i0aznfwdkbac9l9cf88idaq3pls9lm040rjp"))))
(build-system gnu-build-system)
+ (native-inputs (list gettext-minimal))
(arguments
`(#:tests? #f ; no test suite.
;; Without this flag, it tries to install the man pages with group 'root'
@@ -7508,7 +7509,7 @@ running boot option, and more.")
(substitute* "Makefile"
(("mkdir -p \\$\\(DESTDIR\\)\\$\\(SA_DIR\\)")
"")))))))
- (home-page "http://sebastien.godard.pagesperso-orange.fr/")
+ (home-page "https://sysstat.github.io")
(synopsis "Performance monitoring tools for Linux")
(description "The sysstat utilities are a collection of performance
monitoring tools for Linux. These include @code{mpstat}, @code{iostat},
@@ -9453,7 +9454,7 @@ tools for managing PipeWire.")
(define-public ell
(package
(name "ell")
- (version "0.59")
+ (version "0.61")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -9462,7 +9463,7 @@ tools for managing PipeWire.")
(file-name (git-file-name name version))
(sha256
(base32
- "11xlkdvw7pyd9idq1zsnl946dry9aksnz29wbpzxqjc97xhhd5xq"))))
+ "1lkjf24ap40wk747z1iv8ds8z40alc5x8rzsgczjj1707x2ik6mj"))))
(build-system gnu-build-system)
(arguments
;; Tests launch dbus-daemon instances that all try to bind to
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index aa3ea7c9ce..05fa38ac02 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
-;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019-2024 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
@@ -23,10 +23,10 @@
;;; Copyright © 2020-2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2022 Aurora <rind38@disroot.org>
;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
-;;; Copyright © 2021, 2022, 2023 André A. Gomes <andremegafone@gmail.com>
+;;; Copyright © 2021-2024 André A. Gomes <andremegafone@gmail.com>
;;; Copyright © 2021, 2022, 2023 Cage <cage-dev@twistfold.it>
;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com>
-;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
+;;; Copyright © 2021, 2024 Charles Jackson <charles.b.jackson@protonmail.com>
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2021, 2022, 2023 jgart <jgart@dismail.de>
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
@@ -168,29 +168,30 @@
(sbcl-package->ecl-package sbcl-alexandria-plus))
(define-public sbcl-alexandria
- (package
- (name "sbcl-alexandria")
- (version "1.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
- (commit (string-append "v" version))))
- (sha256
- (base32
- "0r1adhvf98h0104vq14q7y99h0hsa8wqwqw92h7ghrjxmsvz2z6l"))
- (file-name (git-file-name name version))))
- (build-system asdf-build-system/sbcl)
- (native-inputs
- (list sbcl-rt))
- (synopsis "Collection of portable utilities for Common Lisp")
- (description
- "Alexandria is a collection of portable utilities. It does not contain
+ (let ((commit "009b7e532071d9777bdbd63b82d776555da95916")
+ (revision "0"))
+ (package
+ (name "sbcl-alexandria")
+ (version (git-version "1.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
+ (commit commit)))
+ (file-name (git-file-name "cl-alexandria" version))
+ (sha256
+ (base32 "0pdj779j3nwzn8f1661vf00rrjrbks1xgiq0rvwjw6qyxsfqfnl9"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-rt))
+ (synopsis "Collection of portable utilities for Common Lisp")
+ (description
+ "Alexandria is a collection of portable utilities. It does not contain
conceptual extensions to Common Lisp. It is conservative in scope, and
portable between implementations.")
- (home-page "https://common-lisp.net/project/alexandria/")
- (license license:public-domain)))
+ (home-page "https://common-lisp.net/project/alexandria/")
+ (license license:public-domain))))
(define-public cl-alexandria
(sbcl-package->cl-source-package sbcl-alexandria))
@@ -1067,6 +1068,42 @@ options, e.g., by looking up an external key/value store
(define-public ecl-clingon
(sbcl-package->ecl-package sbcl-clingon))
+(define-public sbcl-command-line-args
+ (package
+ (name "sbcl-command-line-args")
+ (version "0.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~whereiseveryone/command-line-args")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-command-line-args" version))
+ (sha256
+ (base32 "01p52zxr1b49c15ichlc3zadd1mrmwxzria53j949ayl2j6k8w1b"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:asd-systems '("whereiseveryone.command-line-args")))
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-str
+ sbcl-serapeum
+ sbcl-trivia))
+ (home-page "https://git.sr.ht/~whereiseveryone/command-line-args")
+ (synopsis "Automatically generate command line interfaces")
+ (description "Command-Line-Args provides a main macro (@code{command})
+that wraps a @code{defun} form and creates a new function that parses the
+command line arguments. It has support for command-line options, positional,
+and variadic arguments. It also generates a basic help message. The
+interface is meant to be easy and non-intrusive.")
+ (license license:agpl3+)))
+
+(define-public cl-command-line-args
+ (sbcl-package->cl-source-package sbcl-command-line-args))
+
+(define-public ecl-command-line-args
+ (sbcl-package->ecl-package sbcl-command-line-args))
+
(define-public sbcl-cl-irc
(let ((commit "963823537c7bfcda2edd4c44d172192da6722175")
(revision "0"))
@@ -1280,14 +1317,14 @@ timeouts.")
(define-public sbcl-bordeaux-threads
(package
(name "sbcl-bordeaux-threads")
- (version "0.9.2")
+ (version "0.9.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sionescu/bordeaux-threads")
(commit (string-append "v" version))))
(sha256
- (base32 "0d9sd7pm91yhln95z8nclhn6n4l5b2cp3pxpggpmpv7rsq84ssmh"))
+ (base32 "0pp3w5hsph47sqagr4j2pbg3ddb29jx93zg8kvxsp2c4flp0qz0f"))
(file-name (git-file-name "cl-bordeaux-threads" version))))
(inputs (list sbcl-alexandria
sbcl-global-vars
@@ -1299,16 +1336,6 @@ timeouts.")
(list
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'silence-deprecation-warning
- (lambda _
- ;; The deprecation warning for APIv1 makes the build of some
- ;; of the dependents of bordeaux-threads fail because they
- ;; interpret it as an error instead of a simple indication.
- ;; Let's silence this warning for now.
- (substitute* (cons* "apiv1/default-implementations.lisp"
- (find-files "apiv1" "impl-.*\\.lisp"))
- (("\\(warn \"Bordeaux-Threads APIv1 is deprecated\\. Please migrate to APIv2\\.\"\\)")
- ""))))
(add-after 'unpack 'adjust-test-sleep
(lambda _
;; 0.001 is too short for some slower machines.
@@ -1360,35 +1387,37 @@ thin compatibility layer for gray streams.")
(sbcl-package->ecl-package sbcl-trivial-gray-streams))
(define-public sbcl-flexi-streams
- (package
- (name "sbcl-flexi-streams")
- (version "1.0.19")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/edicl/flexi-streams")
- (commit (string-append "v" version))))
- (file-name (git-file-name "flexi-streams" version))
- (sha256
- (base32 "0v7lh4nrldzczd4mwylvmxfdxk7wfsli24iv1axd6mkb833llr70"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'make-git-checkout-writable
- (lambda _
- (for-each make-file-writable (find-files "."))
- #t)))))
- (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
- (synopsis "Implementation of virtual bivalent streams for Common Lisp")
- (description "Flexi-streams is an implementation of \"virtual\" bivalent
+ (let ((commit "74a1027311371a57258eba1bc908e050f5702277")
+ (revision "0"))
+ (package
+ (name "sbcl-flexi-streams")
+ (version (git-version "1.0.19" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/edicl/flexi-streams")
+ (commit commit)))
+ (file-name (git-file-name "cl-flexi-streams" version))
+ (sha256
+ (base32 "04azqvz11s8dngy49bjl19hrfn0ip1b7m0szm4hlppq364msil7b"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'make-git-checkout-writable
+ (lambda _
+ (for-each make-file-writable (find-files ".")))))))
+ (inputs
+ (list sbcl-trivial-gray-streams))
+ (synopsis "Implementation of virtual bivalent streams for Common Lisp")
+ (description "Flexi-streams is an implementation of \"virtual\" bivalent
streams that can be layered atop real binary or bivalent streams and that can
be used to read and write character data in various single- or multi-octet
encodings which can be changed on the fly. It also supplies in-memory binary
streams which are similar to string streams.")
- (home-page "http://weitz.de/flexi-streams/")
- (license license:bsd-3)))
+ (home-page "http://weitz.de/flexi-streams/")
+ (license license:bsd-3))))
(define-public cl-flexi-streams
(sbcl-package->cl-source-package sbcl-flexi-streams))
@@ -4843,27 +4872,29 @@ precisely controls the behavior of the parser via Common Lisp restarts.")
(sbcl-package->ecl-package sbcl-unix-opts))
(define-public sbcl-trivial-garbage
- (package
- (name "sbcl-trivial-garbage")
- (version "0.21")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/trivial-garbage/trivial-garbage")
- (commit (string-append "v" version))))
- (file-name (git-file-name "trivial-garbage" version))
- (sha256
- (base32 "0122jicfg7pca1wxw8zak1n92h5friqy60988ns0ysksj3fphw9n"))))
- (build-system asdf-build-system/sbcl)
- (native-inputs
- (list sbcl-rt))
- (home-page "https://common-lisp.net/project/trivial-garbage/")
- (synopsis "Portable GC-related APIs for Common Lisp")
- (description "@command{trivial-garbage} provides a portable API to
+ (let ((commit "3474f6414b73d4e3aa2d5c53080f4247a34f6380")
+ (revision "0"))
+ (package
+ (name "sbcl-trivial-garbage")
+ (version (git-version "0.21" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/trivial-garbage/trivial-garbage")
+ (commit commit)))
+ (file-name (git-file-name "cl-trivial-garbage" version))
+ (sha256
+ (base32 "0rfwxvwg0kpcaa0hsi035yrkfdfks4bq8d9azmrww2f0rmv9g6sd"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-rt))
+ (home-page "https://common-lisp.net/project/trivial-garbage/")
+ (synopsis "Portable GC-related APIs for Common Lisp")
+ (description "@command{trivial-garbage} provides a portable API to
finalizers, weak hash-tables and weak pointers on all major implementations of
the Common Lisp programming language.")
- (license license:public-domain)))
+ (license license:public-domain))))
(define-public cl-trivial-garbage
(sbcl-package->cl-source-package sbcl-trivial-garbage))
@@ -5108,39 +5139,40 @@ WebKit browsing engine.")
(sbcl-package->ecl-package sbcl-cl-webkit))
(define-public sbcl-lparallel
- (package
- (name "sbcl-lparallel")
- (version "2.8.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/lmj/lparallel/")
- (commit (string-append "lparallel-" version))))
- (file-name (git-file-name "lparallel" version))
- (sha256
- (base32
- "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9"))))
- (build-system asdf-build-system/sbcl)
- (inputs
- `(("alexandria" ,sbcl-alexandria)
- ("bordeaux-threads" ,sbcl-bordeaux-threads)
- ("trivial-garbage" ,sbcl-trivial-garbage)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-dependency
- ;; lparallel loads a SBCL specific system in its asd file. This is
- ;; not carried over into the fasl which is generated. In order for
- ;; it to be carried over, it needs to be listed as a dependency.
- (lambda _
- (substitute* "lparallel.asd"
- ((":depends-on \\(:alexandria" all)
- (string-append all " #+sbcl :sb-cltl2"))))))))
- (home-page "https://lparallel.org/")
- (synopsis "Parallelism for Common Lisp")
- (description
- "@command{lparallel} is a library for parallel programming in Common
+ (let ((commit "80fc2952a074776abd343d6b5d3ab157f0e1df7a")
+ (revision "1"))
+ (package
+ (name "sbcl-lparallel")
+ (version (git-version "2.8.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sharplispers/lparallel/")
+ (commit commit)))
+ (file-name (git-file-name "cl-lparallel" version))
+ (sha256
+ (base32 "0nv2dx8cl25g68icqhw95yr5mygm86lcjzmzijql51na1p60g6y9"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-bordeaux-threads
+ sbcl-trivial-garbage))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-dependency
+ ;; lparallel loads a SBCL specific system in its asd file. This is
+ ;; not carried over into the fasl which is generated. In order for
+ ;; it to be carried over, it needs to be listed as a dependency.
+ (lambda _
+ (substitute* "lparallel.asd"
+ ((":depends-on \\(:alexandria" all)
+ (string-append all " #+sbcl :sb-cltl2"))))))))
+ (home-page "https://lparallel.org/")
+ (synopsis "Parallelism for Common Lisp")
+ (description
+ "@command{lparallel} is a library for parallel programming in Common
Lisp, featuring:
@itemize
@@ -5155,17 +5187,13 @@ Lisp, featuring:
@item task killing by category,
@item integrated timeouts.
@end itemize\n")
- (license license:expat)))
+ (license license:expat))))
(define-public cl-lparallel
(sbcl-package->cl-source-package sbcl-lparallel))
(define-public ecl-lparallel
- (package
- (inherit (sbcl-package->ecl-package sbcl-lparallel))
- (arguments
- ;; TODO: Find why the tests get stuck forever; disable them for now.
- `(#:tests? #f))))
+ (sbcl-package->ecl-package sbcl-lparallel))
(define-public sbcl-cl-markup
(let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390"))
@@ -6134,6 +6162,38 @@ BTCPay, Paypal, and Stripe.")
(define-public ecl-lisp-pay
(sbcl-package->ecl-package sbcl-lisp-pay))
+(define-public sbcl-stripe
+ (let ((commit "b59631d21d63e101de6eb96b56941471504ba644")
+ (revision "0"))
+ (package
+ (name "sbcl-stripe")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas-engineer/stripe")
+ (commit commit)))
+ (file-name (git-file-name "cl-stripe" version))
+ (sha256
+ (base32 "00sfq2f6dnpwa6pf7rgw5hazbwx4yf1g0jrkfz9h4kq5zyxwk1cy"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-dexador
+ sbcl-golden-utils
+ sbcl-local-time
+ sbcl-yason))
+ (home-page "https://github.com/atlas-engineer/stripe")
+ (synopsis "Stripe payment API client for Common Lisp")
+ (description "A client for the Stripe payment API.")
+ (license license:expat))))
+
+(define-public cl-stripe
+ (sbcl-package->cl-source-package sbcl-stripe))
+
+(define-public ecl-stripe
+ (sbcl-package->ecl-package sbcl-stripe))
+
(define-public sbcl-drakma
(package
(name "sbcl-drakma")
@@ -16336,8 +16396,8 @@ directly.")
(sbcl-package->ecl-package sbcl-custom-hash-table))
(define-public sbcl-concurrent-hash-tables
- (let ((commit "1b9f0b5da54fece4f42296e1bdacfcec0c370a5a")
- (revision "0"))
+ (let ((commit "6ad539b8970ff94b1e1369b59065ed7d0660904c")
+ (revision "1"))
(package
(name "sbcl-concurrent-hash-tables")
(version (git-version "0.0.0" revision commit))
@@ -16349,7 +16409,7 @@ directly.")
(commit commit)))
(file-name (git-file-name "cl-concurrent-hash-tables" version))
(sha256
- (base32 "03g24ycr1ngzg8bv10iwp1bmnldz5bxbfdqrzhfxhicpibh49r96"))))
+ (base32 "0wgbv3wl33rlfbywmjag0gk7igzfksmib30r8cbnd5n47ic09iip"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-atomics sbcl-bordeaux-threads))
@@ -26292,43 +26352,45 @@ extra features like type inference.")
(sbcl-package->cl-source-package sbcl-nclasses))
(define-public sbcl-prompter
- (package
- (name "sbcl-prompter")
- (version "0.1.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/atlas-engineer/prompter")
- (commit version)))
- (file-name (git-file-name "cl-prompter" version))
- (sha256
- (base32
- "008bq36siza9qwmz6b1pvpm53lxmzryahnhy372l18gl3180in03"))))
- (build-system asdf-build-system/sbcl)
- (inputs
- (list
- sbcl-alexandria
- sbcl-calispel
- sbcl-cl-containers
- sbcl-cl-str
- sbcl-closer-mop
- sbcl-lparallel
- sbcl-moptilities
- sbcl-nclasses
- sbcl-serapeum
- sbcl-trivial-package-local-nicknames))
- (native-inputs
- (list sbcl-lisp-unit2))
- (home-page "https://github.com/atlas-engineer/prompter")
- (synopsis "Live-narrowing, fuzzy-matching, extensible prompt framework")
- (description
- "This prompter library is heavily inspired by Emacs' minibuffer and
+ (let ((commit "7890ed5d02e70aba01ceb964c6ee4f40776e7dc0")
+ (revision "0"))
+ (package
+ (name "sbcl-prompter")
+ (version (git-version "0.1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas-engineer/prompter")
+ (commit commit)))
+ (file-name (git-file-name "cl-prompter" version))
+ (sha256
+ (base32
+ "0r15a6cagyp5x8aqx92ln2anni737h73bdshkvpzrac04ajss4md"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list
+ sbcl-alexandria
+ sbcl-calispel
+ sbcl-cl-containers
+ sbcl-cl-str
+ sbcl-closer-mop
+ sbcl-lparallel
+ sbcl-moptilities
+ sbcl-nclasses
+ sbcl-serapeum
+ sbcl-trivial-package-local-nicknames))
+ (native-inputs
+ (list sbcl-lisp-unit2))
+ (home-page "https://github.com/atlas-engineer/prompter")
+ (synopsis "Live-narrowing, fuzzy-matching, extensible prompt framework")
+ (description
+ "This prompter library is heavily inspired by Emacs' minibuffer and
Helm (@url{https://emacs-helm.github.io/helm/}). It only deals with the
backend side of things, it does not handle any display. Features include
asynchronous suggestion computation, multiple sources, actions and resumable
prompters.")
- (license license:bsd-3)))
+ (license license:bsd-3))))
(define-public cl-prompter
(sbcl-package->cl-source-package sbcl-prompter))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 4a895984e7..4f89779d8d 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
-;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019-2024 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2021, 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
@@ -439,14 +439,17 @@ an interpreter, a compiler, a debugger, and much more.")
(define-public sbcl
(package
(name "sbcl")
- (version "2.3.7")
+ (version "2.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2"))
(sha256
- (base32 "1xwr1pnwd3xj375ainlad7mm479rk2mrks8dc6d92cash3xl90b9"))
+ (base32 "0xhpdnsg8idzxkn20iw8gd2rk470d7vc22vrp5clq9fj117vgn43"))
+ ;; TODO: Remove these patches when updating to sbcl > 2.4.0.
+ (patches (search-patches "sbcl-fix-ppc64-build.patch"
+ "sbcl-fix-riscv-build.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1485,7 +1488,7 @@ includes a compiler as well as an interpreter.")
(define-public s7-bootstrap
;; Need s7-bootstrap to build libc_s7.so (for the REPL) and run tests
- (let ((commit "a5b4bb49f8bcd7c33ae2366065fc8c254b734460") ;no releases
+ (let ((commit "618de30e0f9851515724245e3ebbfa1be4de6906") ;no releases
(revision "0"))
(hidden-package
(package
@@ -1499,7 +1502,7 @@ includes a compiler as well as an interpreter.")
(file-name (git-file-name name version))
(sha256
(base32
- "03n1axdlypzmbgzrhlwfqwa1xiw36hi25j2hwc7vw77mz90cd9f8"))))
+ "0kh1f49g24ppjpr16v1nc9lr7pvr5nzb82bpw8c6q8ll7pqalqaf"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no tests in bootstrap
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index c65f9e2e94..1635525185 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018–2022 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2021-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -27,6 +27,7 @@
;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
+;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -901,42 +902,17 @@ Library.")
(base32
"1pzx9zrmd7r3481sbhwvkms68fwhffpp4mmz45dgrkjpyl2q96kx"))))
(arguments
- ;; TODO(core-updates): Unconditionally use quasiquote
- `(#:configure-flags
- ,#~(#$(if (%current-target-system)
- #~quasiquote
- #~quote)
- ;; These options are required for cross-compiling LLVM according to
- ;; https://llvm.org/docs/HowToCrossCompileLLVM.html.
- (#$@(if (%current-target-system)
- #~(,(string-append "-DLLVM_TABLEGEN="
- #+(file-append this-package
- "/bin/llvm-tblgen"))
- #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
- (%current-target-system))
- #$(string-append "-DLLVM_TARGET_ARCH="
- (system->llvm-target-arch))
- #$(string-append "-DLLVM_TARGETS_TO_BUILD="
- (system->llvm-target)))
- #~())
- "-DCMAKE_SKIP_BUILD_RPATH=FALSE"
- "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
- "-DBUILD_SHARED_LIBS:BOOL=TRUE"
- "-DLLVM_ENABLE_FFI:BOOL=TRUE"
- "-DLLVM_ENABLE_RTTI:BOOL=TRUE" ; For some third-party utilities
- "-DLLVM_INSTALL_UTILS=ON")) ; Needed for rustc.
- ;; Don't use '-g' during the build, to save space.
- #:build-type "Release"
- #:phases
- (modify-phases %standard-phases
- ,@(if (assoc "config" (package-native-inputs this-package))
- `((add-after 'unpack 'update-config
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
- (let ((config.guess (search-input-file
- (or inputs native-inputs)
- "/bin/config.guess")))
- (copy-file config.guess "cmake/config.guess")))))
- '())
+ (substitute-keyword-arguments (package-arguments llvm-13)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ #$@(if (assoc "config" (package-native-inputs this-package))
+ #~((add-after 'unpack 'update-config
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (let ((config.guess (search-input-file
+ (or inputs native-inputs)
+ "/bin/config.guess")))
+ (copy-file config.guess "cmake/config.guess")))))
+ #~())
(add-before 'build 'shared-lib-workaround
;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
;; doesn't seem to get the correct rpath to be able to run
@@ -944,18 +920,7 @@ Library.")
;; workaround.
(lambda _
(setenv "LD_LIBRARY_PATH"
- (string-append (getcwd) "/lib"))
- #t))
- (add-after 'install 'install-opt-viewer
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (opt-viewer-out (assoc-ref outputs "opt-viewer"))
- (opt-viewer-share-dir (string-append opt-viewer-out "/share"))
- (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
- (mkdir-p opt-viewer-share-dir)
- (rename-file (string-append out "/share/opt-viewer")
- opt-viewer-dir))
- #t)))))))
+ (string-append (getcwd) "/lib"))))))))))
(define-public clang-runtime-12
(clang-runtime-from-llvm
@@ -1129,7 +1094,7 @@ Library.")
(if (target-riscv64?)
(substitute-keyword-arguments (package-arguments llvm-10)
((#:phases phases)
- `(modify-phases ,phases
+ #~(modify-phases #$phases
(add-after 'unpack 'patch-dsymutil-link
(lambda _
(substitute* "tools/dsymutil/CMakeLists.txt"
@@ -2158,20 +2123,31 @@ using @code{clang-rename}.")))
;; AMDGPU is needed by the vulkan drivers.
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target) ";AMDGPU")
+ #$@(if (%current-target-system)
+ '("-DBUILD_SHARED_LIBS:BOOL=TRUE"
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
+ '())
;; Skipping tools and utils decreases the output by ~100 MiB.
"-DLLVM_BUILD_TOOLS=NO"
- (remove (cut string-match
- "-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*" <>)
+ (remove
+ (cut string-match
+ #$(if (%current-target-system)
+ "-DLLVM_(LINK_LLVM_DYLIB|TARGETS_TO_BUILD|INSTALL_UTILS).*"
+ "-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*") <>)
#$cf)))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
- (add-after 'install 'delete-static-libraries
- ;; If these are just relocated then llvm-config can't find them.
- (lambda* (#:key outputs #:allow-other-keys)
- (for-each delete-file
- (find-files (string-append
- (assoc-ref outputs "out") "/lib")
- "\\.a$"))))
+ #$@(if (%current-target-system)
+ '()
+ #~((add-after 'install 'delete-static-libraries
+ ;; If these are just relocated then llvm-config
+ ;; can't find them.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each delete-file
+ (find-files
+ (string-append
+ (assoc-ref outputs "out") "/lib")
+ "\\.a$"))))))
;; llvm-config is how mesa and others find the various
;; libraries and headers they use.
(add-after 'install 'build-and-install-llvm-config
@@ -2280,9 +2256,9 @@ LLVM."))))
"-DLLVM_BUILD_LLVM_DYLIB=ON"
"-DLLVM_LINK_LLVM_DYLIB=ON"))
((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (delete 'shared-lib-workaround)
- (delete 'install-opt-viewer))))))))
+ #~(modify-phases #$phases
+ (delete 'shared-lib-workaround)
+ (delete 'install-opt-viewer))))))))
(define clang-cling-runtime
(let ((base clang-runtime-9))
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index c204a013b4..0efd828f8a 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -232,7 +232,7 @@ output in multiple windows in a terminal.")
(list "-DSPDLOG_BUILD_BENCH=OFF"
"-DSPDLOG_BUILD_SHARED=ON"
"-DSPDLOG_BUILD_TESTS=ON")))
- (native-inputs (list catch2-3.3))
+ (native-inputs (list catch2-3))
(home-page "https://github.com/gabime/spdlog")
(synopsis "Fast C++ logging library")
(description "Spdlog is a very fast header-only/compiled C++ logging
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 8336fe460c..364abe8eef 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
;;; Copyright © 2023 Navid Afkhami <navid.afkhami@mdc-berlin.de>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -812,6 +813,94 @@ SentencePiece allows us to make a purely end-to-end system that does not
depend on language-specific pre- or post-processing.")
(license license:asl2.0)))
+(define-public python-hopcroftkarp
+ ;; This commit fixes a broken import, but has not been released to PyPI.
+ (let ((commit "2846e1dd3265d95d2bddb0cf4190b830cbb4efe6")
+ (revision "1"))
+ (package
+ (name "python-hopcroftkarp")
+ (version (git-version "1.2.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sofiatolaosebikan/hopcroftkarp")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "018ilrp41fcclmb5lsml3aijwbmhbq3m7wy65hr1fryj0avic8fr"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/sofiatolaosebikan/hopcroftkarp")
+ (synopsis "Implementation of the Hopcroft-Karp algorithm")
+ (description
+ "This package implements the Hopcroft-Karp algorithm, producing a maximum
+cardinality matching from a bipartite graph.")
+ (license license:gpl3))))
+
+(define-public python-persim
+ (package
+ (name "python-persim")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "persim" version))
+ (sha256
+ (base32 "0q8wfakx8q4h3ryvw8cba0v6z7xn9139qkrzs3mi1ggyzacnx9d7"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-deprecated
+ python-hopcroftkarp
+ python-joblib
+ python-matplotlib
+ python-numpy
+ python-scikit-learn
+ python-scipy))
+ (native-inputs (list python-pytest python-pytest-cov))
+ (home-page "https://persim.scikit-tda.org")
+ (synopsis "Tools for analyzing persistence diagrams in Python")
+ (description
+ "This package includes a variety of tools used to analyze persistence diagrams.
+It currently houses implementations of
+@itemize
+@item Persistence images
+@item Persistence landscapes
+@item Bottleneck distance
+@item Modified Gromov–Hausdorff distance
+@item Sliced Wasserstein kernel
+@item Heat kernel
+@item Diagram plotting
+@end itemize
+")
+ (license license:expat))) ; MIT License
+
+(define-public python-ripser
+ (package
+ (name "python-ripser")
+ (version "0.6.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ripser" version))
+ (sha256
+ (base32 "1575nwsn6b29z7w1mjk23ri83bxq2b4ld979hpgm174642a3x6vs"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-numpy python-persim python-scikit-learn
+ python-scipy))
+ (native-inputs (list python-cython python-pytest))
+ (home-page "https://ripser.scikit-tda.org")
+ (synopsis "Persistent homology library for Python")
+ (description
+ "This package implements a variety of persistent homology algorithms. It
+provides an interface for
+@itemize
+@item computing persistence cohomology of sparse and dense data sets
+@item visualizing persistence diagrams
+@item computing lowerstar filtrations on images
+@item computing representative cochains
+@end itemize
+")
+ (license license:expat))) ; MIT License
+
(define-public python-sacrebleu
(package
(name "python-sacrebleu")
@@ -1524,7 +1613,7 @@ computing environments.")
(define-public python-scikit-learn
(package
(name "python-scikit-learn")
- (version "1.2.2")
+ (version "1.3.2")
(source
(origin
(method git-fetch)
@@ -1534,20 +1623,25 @@ computing environments.")
(file-name (git-file-name name version))
(sha256
(base32
- "0x7gfzvcdadf8jnvpz8m373bi37bc6sndfbjh9lzmn3p39pwm2hl"))))
- (build-system python-build-system)
+ "1hr024vcilbjwlwn32ppadri0ypnzjmkfxhkkw8gih0qjvcvjbs7"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
+ (list
+ #:test-flags
+ '(list "-m" "not network"
+ ;; This test tries to access the internet.
+ "-k" "not test_load_boston_alternative")
+ #:phases
+ '(modify-phases %standard-phases
(add-before 'build 'configure
(lambda _
(setenv "SKLEARN_BUILD_PARALLEL"
(number->string (parallel-job-count)))))
(add-after 'build 'build-ext
(lambda _ (invoke "python" "setup.py" "build_ext" "--inplace"
- "-j" (number->string (parallel-job-count)))))
+ "-j" (number->string (parallel-job-count)))))
(replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests?
;; Restrict OpenBLAS threads to prevent segfaults while testing!
(setenv "OPENBLAS_NUM_THREADS" "1")
@@ -1558,14 +1652,11 @@ computing environments.")
;; Step out of the source directory to avoid interference;
;; we want to run the installed code with extensions etc.
(with-directory-excursion "/tmp"
- (invoke "pytest" "-vv" "--pyargs" "sklearn"
- "-m" "not network"
- "-n" (number->string (parallel-job-count))
- ;; This test tries to access the internet.
- "-k" "not test_load_boston_alternative"))))))))
+ (apply invoke "pytest" "--pyargs" "sklearn"
+ test-flags))))))))
(inputs (list openblas))
(native-inputs
- (list python-cython
+ (list python-cython-0.29.35
python-pandas
python-pytest
python-pytest-xdist))
@@ -1687,73 +1778,6 @@ number of threads used in the threadpool-backed of common native libraries used
for scientific computing and data science (e.g. BLAS and OpenMP).")
(license license:bsd-3)))
-(define-public python-tslearn
- (package
- (name "python-tslearn")
- (version "0.6.2")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/tslearn-team/tslearn")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0l9l21jy78mhajdfwyx8rskw08597vg55ff22bjkv6xrjjr9g4ac"))))
- (build-system pyproject-build-system)
- (arguments
- (list
- #:test-flags
- '(list "-k"
- (string-append
- ;; This one fails because of a difference in accuracy.
- "not test_all_estimators[LearningShapelets-LearningShapelets]"
- ;; XXX: It's embarrassing to disable these two, but the truth is
- ;; that there's only so much we can do to force this package to
- ;; work with Tensorflow 1.9. It's still worth having this
- ;; package, because it can be used without the Tensorflow
- ;; backend.
- ;; TypeError: cannot pickle '_thread.RLock' object
- " and not test_shapelets"
- ;; TypeError: Expected binary or unicode string, got 2
- " and not test_serialize_shapelets"))
- #:phases
- '(modify-phases %standard-phases
- (add-after 'unpack 'compatibility
- (lambda _
- (substitute* "tslearn/tests/sklearn_patches.py"
- (("_pairwise_estimator_convert_X")
- "_enforce_estimator_tags_X")
- (("pairwise_estimator_convert_X\\(([^,]+), ([^,\\)]+)" _ a b)
- (string-append "pairwise_estimator_convert_X(" b ", " a)))
- (substitute* "tslearn/tests/test_shapelets.py"
- (("tf.optimizers.Adam")
- "tf.keras.optimizers.Adam"))
- (substitute* "tslearn/shapelets/shapelets.py"
- (("tf.keras.utils.set_random_seed")
- "tf.set_random_seed")
- (("def __call__\\(self, shape, dtype=None\\):")
- "def __call__(self, shape, dtype=None, partition_info=None):")
- (("tf.math.is_finite")
- "tf.is_finite")))))))
- (propagated-inputs (list python-cesium
- python-h5py
- python-joblib
- python-numba
- python-numpy
- python-pandas
- python-scipy
- python-scikit-learn
- tensorflow
- python-wheel))
- (native-inputs (list python-pytest))
- (home-page "https://github.com/tslearn-team/tslearn")
- (synopsis "Machine learning toolkit for time series data")
- (description "This is a Python library for time series data mining.
-It provides tools for time series classification, clustering
-and forecasting.")
- (license license:bsd-2)))
-
(define-public python-imbalanced-learn
(package
(name "python-imbalanced-learn")
@@ -1800,27 +1824,18 @@ It is compatible with @code{scikit-learn}.")
(define-public python-pynndescent
(package
(name "python-pynndescent")
- (version "0.5.10")
+ (version "0.5.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pynndescent" version))
(sha256
- (base32 "1bc8aa6jfw28y6sb0nvfdrfgh66a42bqb4znvpimzx9yq21wcpax"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'check
- (lambda* (#:key inputs outputs tests? #:allow-other-keys)
- (when tests?
- (invoke "python" "-m" "pytest" "--pyargs" "pynndescent"
- ;; wminkowski no longer exists in scipy 1.8.0 (see:
- ;; https://github.com/lmcinnes/pynndescent/issues/177)
- "-k" "not test_weighted_minkowski")))))))
+ (base32 "0l5dpdsk5vg7rpay81bncp04119hnl5z7zxjv63jrnm9spcwwi3g"))))
+ (build-system pyproject-build-system)
(native-inputs (list python-pytest))
(propagated-inputs
- (list python-joblib
+ (list python-importlib-metadata
+ python-joblib
python-llvmlite
python-numba
python-scikit-learn
@@ -1913,16 +1928,14 @@ standard feature selection algorithms.")
(build-system pyproject-build-system)
(arguments
(list
- #:phases
- '(modify-phases %standard-phases
- (add-after 'unpack 'disable-bad-tests
- (lambda _
- ;; XXX This requires pytest lazy_fixture
- (delete-file "tests/test_multilabel_classification.py")
- ;; Requires tensorflow
- (delete-file "tests/test_frameworks.py")
+ #:test-flags
+ ;; This test fails because the newer version of scikit learn returns one
+ ;; more classification result than expected. This should be harmless.
+ '(list "-k" "not test_aux_inputs"
+ ;; Requires Tensorflow
+ "--ignore=tests/test_frameworks.py"
;; Tries to download datasets from the internet at runtime.
- (delete-file "tests/test_dataset.py"))))))
+ "--ignore=tests/test_dataset.py")))
(propagated-inputs
(list python-numpy
python-pandas
@@ -1931,6 +1944,7 @@ standard feature selection algorithms.")
python-tqdm))
(native-inputs
(list python-pytest
+ python-pytest-lazy-fixture
python-pytorch
python-torchvision))
(home-page "https://cleanlab.ai")
@@ -3772,46 +3786,26 @@ methodxs at scale on CPU or GPU.")
(define-public python-umap-learn
(package
(name "python-umap-learn")
- (version "0.5.3")
+ (version "0.5.5")
(source
(origin
(method git-fetch) ;no tests in pypi release
(uri (git-reference
(url "https://github.com/lmcinnes/umap")
- (commit version)))
+ (commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "1315jkb0h1b579y9m59632f0nnpksilm01nxx46in0rq8zna8vsb"))))
- (build-system python-build-system)
+ "0ijyiaqycynwj1383cxp519c765gjbg1f6fjwbvqj1gims710w3d"))))
+ (build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'numpy-compatibility
- (lambda _
- (substitute* "umap/tests/test_umap_metrics.py"
- ;; See commit a714b59bd9e2ca2e63312bc3491b2b037a42f2f2
- (("sparse_binary_data.todense\\(\\),")
- "np.asarray(sparse_binary_data.todense()),")
- ;; See commit c7d05683325589ad432a55e109cacb9d631cfaa9
- (("sparse_spatial_data.todense\\(\\),")
- "np.asarray(sparse_spatial_data.todense()),"))
- ;; See commit 949abd082524fce8c45dfb147bcd8e8ef49eade3
- (substitute* "umap/tests/test_umap_ops.py"
- (("np.random,") "None,"))))
;; Numba needs a writable dir to cache functions.
(add-before 'check 'set-numba-cache-dir
(lambda _
- (setenv "NUMBA_CACHE_DIR" "/tmp")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (setenv "HOME" "/tmp")
- (invoke "pytest" "-vv" "umap"
- ;; This test can fail because trust may only be
- ;; 0.9679405204460967 >= 0.97
- "-k" "not test_densmap_trustworthiness_on_iris_supervised")))))))
+ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
(native-inputs (list python-pytest))
(propagated-inputs
(list python-numba
@@ -4205,7 +4199,7 @@ Actions for the Lightning suite of libraries.")
(define-public python-captum
(package
(name "python-captum")
- (version "0.6.0")
+ (version "0.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -4214,7 +4208,7 @@ Actions for the Lightning suite of libraries.")
(file-name (git-file-name name version))
(sha256
(base32
- "1h4n91ivhjxm6wj0vgqpfss2dmq4sjcp0appd08cd5naisabjyb5"))))
+ "0bgfwnlsi50hbmknn7qljiy93fi6ggwz3k7yk9kj7s37mhzaylym"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -4224,7 +4218,8 @@ Actions for the Lightning suite of libraries.")
;; accuracy problems.
"not test_softmax_classification_batch_multi_target\
and not test_softmax_classification_batch_zero_baseline")))
- (propagated-inputs (list python-matplotlib python-numpy python-pytorch))
+ (propagated-inputs
+ (list python-matplotlib python-numpy python-pytorch python-tqdm))
(native-inputs (list jupyter
python-annoy
python-black
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 20ffb01bde..e5732e58ee 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014-2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
-;;; Copyright © 2015–2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015–2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015-2023 Efraim Flashner <efraim@flashner.co.il>
@@ -3637,14 +3637,16 @@ bindings to almost all functions of PETSc.")
(define-public python-kiwisolver
(package
(name "python-kiwisolver")
- (version "1.0.1")
+ (version "1.4.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "kiwisolver" version))
(sha256
(base32
- "0y22ci86znwwwfhbmvbgdfnbi6lv5gv2xkdlxvjw7lml43ayafyf"))))
- (build-system python-build-system)
+ "1v6nc0z9dg4am0bibji9pijci9f15z68mwrlv91a28pvawx5czp5"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-typing-extensions))
+ (native-inputs (list python-cppy python-pytest python-setuptools-scm))
(home-page "https://github.com/nucleic/kiwi")
(synopsis "Fast implementation of the Cassowary constraint solver")
(description
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 14c47430e3..831ccf6e72 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -44,6 +44,7 @@
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix git-download)
+ #:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system minetest)
@@ -154,6 +155,41 @@ in different ways.")
(home-page "https://www.minetest.net/")
(license license:lgpl2.1+)))
+(define-public minetest-server
+ (package
+ (inherit minetest)
+ (name "minetest-server")
+ (arguments
+ (substitute-keyword-arguments (package-arguments minetest)
+ ((#:configure-flags configure-flags)
+ #~(cons* "-DBUILD_CLIENT=FALSE"
+ "-DBUILD_SERVER=TRUE"
+ #$configure-flags))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ (invoke "src/minetestserver" "--run-unittests"))))))))
+ (inputs
+ (modify-inputs (package-inputs minetest)
+ (delete "libjpeg-turbo"
+ "libpng"
+ "libogg"
+ "libvorbis"
+ "libxxf86vm"
+ "mesa"
+ "openal")))
+ (synopsis "Infinite-world block sandbox game (server)")
+ (description
+ "Minetest is a sandbox construction game. Players can create and destroy
+various types of blocks in a three-dimensional open world. This allows
+forming structures in every possible creation, on multiplayer servers or as a
+single player. Mods and texture packs allow players to personalize the game
+in different ways. This package provides @command{minetestserver} to run a
+Minetest server.")))
+
(define minetest-data
(package
(name "minetest-data")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 33d1590c3c..a779fc9652 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1789,7 +1789,7 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
python-pytest-cov
python-pytest-helpers-namespace))
(propagated-inputs
- (list abjad jupyter))
+ (list abjad jupyter python-sphinx-autodoc-typehints))
(home-page "https://abjad.github.io")
(synopsis "Abjad IPython Extension")
(description
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 85c69ee5b1..851076be97 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -26,7 +26,7 @@
;;; Copyright © 2018, 2020-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018, 2020, 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
@@ -113,6 +113,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
@@ -164,8 +165,10 @@
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tcl)
+ #:use-module (gnu packages telephony)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages upnp)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
@@ -1415,39 +1418,50 @@ files contain direct mappings of the abstractions provided by the ØMQ C API.")
(license license:expat)))
(define-public libnatpmp
- (package
- (name "libnatpmp")
- (version "20230423")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://miniupnp.free.fr/files/"
- name "-" version ".tar.gz"))
- (sha256
- (base32
- "0w7wvf4yi8qv659dg9d3ndqvh3bqhgm21gd135spwhq6hhnfv106"))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'check)) ; no tests
- #:make-flags
- (let* ((target ,(%current-target-system))
- (gcc (if target
- (string-append target "-gcc")
- "gcc")))
- (list
- (string-append "CC=" gcc)
- (string-append "INSTALLPREFIX=" (assoc-ref %outputs "out"))
- (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")))))
- (home-page "http://miniupnp.free.fr/libnatpmp.html")
- (synopsis "C library implementing NAT-PMP")
- (description
- "@code{libnatpmp} is a portable and asynchronous implementation of
+ ;; Install the latest commit as it provides a pkg-config (.pc) file.
+ (let ((base-version "20230423")
+ (commit "6a850fd2bd9b08e6edc886382a1dbae2a7df55ec")
+ (revision "0"))
+ (package
+ (name "libnatpmp")
+ (version (git-version base-version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/miniupnp/libnatpmp")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "18hf9a3i3mncl3w80nzi1684iac3by86bv0hgmbm1v2w8gbfjyw0"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-build-system
+ ;; Have CMake install the natpmp_declspec.h missing header file
+ ;; that is referenced by natpmp.h (see:
+ ;; https://github.com/miniupnp/libnatpmp/issues/41).
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("install\\(FILES natpmp.h")
+ "install(FILES natpmp.h natpmp_declspec.h"))))
+ (add-after 'unpack 'fix-version
+ (lambda _
+ (with-output-to-file "VERSION"
+ (lambda ()
+ (display #$base-version))))))))
+ (native-inputs (list which))
+ (home-page "https://miniupnp.tuxfamily.org/libnatpmp.html")
+ (synopsis "C library implementing NAT-PMP")
+ (description
+ "@code{libnatpmp} is a portable and asynchronous implementation of
the Network Address Translation - Port Mapping Protocol (NAT-PMP)
written in the C programming language.")
- (license license:bsd-3)))
+ (license license:bsd-3))))
(define-public librdkafka
(package
@@ -3389,14 +3403,14 @@ eight bytes) tools
(define-public asio
(package
(name "asio")
- (version "1.22.2")
+ (version "1.28.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asio/asio/"
version " (Stable)/asio-" version ".tar.bz2"))
(sha256
- (base32 "0v5w9j4a02j2rkc7mrdj3ms0kfpqbgq2ipkixlz2l0p8xs0vfsvp"))))
+ (base32 "0cp2c4v0kz0ln4bays0s3fr1mcxl527ay2lp7s14qbxx38vc5pfh"))))
(build-system gnu-build-system)
(inputs
(list boost openssl))
@@ -3708,61 +3722,103 @@ communication over HTTP.")
(license license:agpl3+)))
(define-public restinio
- ;; Temporarily use an unreleased commit, which includes fixes to be able to
- ;; run the test suite in the resolver-less Guix build environment.
- (let ((revision "0")
- (commit "eda471ec3a2815965ca02ec93a1124a342b7601d"))
- (package
- (name "restinio")
- (version (git-version "0.6.18" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Stiffstream/restinio")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0f4w7714r0ic7csgxydw2vzfh35ssk34pns9jycmc08dzc3r7whb"))))
- (build-system cmake-build-system)
- (arguments
- (list
- #:configure-flags #~(list "-DRESTINIO_FIND_DEPS=ON"
- "-DRESTINIO_INSTALL=ON"
- "-DRESTINIO_TEST=ON"
- "-DRESTINIO_USE_EXTERNAL_HTTP_PARSER=ON"
- "-DRESTINIO_USE_EXTERNAL_SOBJECTIZER=ON")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'change-directory
- (lambda _
- (chdir "dev"))))))
- (native-inputs
- (list catch2
- clara
- json-dto))
- (inputs
- (list openssl
- sobjectizer))
- (propagated-inputs
- ;; These are all #include'd by restinio's .hpp header files.
- (list asio
- fmt
- http-parser
- pcre
- pcre2
- zlib))
- (home-page "https://stiffstream.com/en/products/restinio.html")
- (synopsis "C++14 library that gives you an embedded HTTP/Websocket server")
- (description "RESTinio is a header-only C++14 library that gives you an embedded
+ (package
+ (name "restinio")
+ (version "0.7.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Stiffstream/restinio")
+ (commit (string-append "v." version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "06p9gcnzgynsgfxxa1lk58pq5755px7sn00x2xh21qjnspwld1sy"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list "-DRESTINIO_INSTALL=ON"
+ "-DRESTINIO_TEST=ON"
+ "-DRESTINIO_DEP_LLHTTP=system"
+ "-DRESTINIO_DEP_FMT=system"
+ "-DRESTINIO_DEP_EXPECTED_LITE=system"
+ "-DRESTINIO_DEP_CATCH2=system"
+ ;; No support to use a system provided so_5
+ ;; (see:
+ ;; https://github.com/Stiffstream/restinio/issues/207).
+ "-DRESTINIO_WITH_SOBJECTIZER=OFF")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "dev")))
+ (add-after 'change-directory 'use-system-catch2
+ ;; It's not currently possible to select a system-provided catch2,
+ ;; so patch the build system (see:
+ ;; https://github.com/Stiffstream/restinio/issues/208).
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(catch2\\)")
+ "find_package(Catch2 REQUIRED)")))))))
+ (native-inputs
+ (list catch2-3
+ expected-lite
+ json-dto))
+ (inputs
+ (list openssl
+ sobjectizer))
+ (propagated-inputs
+ ;; These are all #include'd by restinio's .hpp header files.
+ (list asio
+ fmt
+ llhttp
+ pcre
+ pcre2
+ zlib))
+ (home-page "https://stiffstream.com/en/products/restinio.html")
+ (synopsis "C++14 library that gives you an embedded HTTP/Websocket server")
+ (description "RESTinio is a header-only C++14 library that gives you an embedded
HTTP/Websocket server. It is based on standalone version of ASIO
and targeted primarily for asynchronous processing of HTTP-requests.")
- (license license:bsd-3))))
+ (license license:bsd-3)))
+
+(define-public restinio-0.6
+ (package
+ (inherit restinio)
+ (name "restinio")
+ (version "0.6.19")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Stiffstream/restinio")
+ (commit (string-append "v." version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qrb1qr075r5059w984c4slgpsiwv94j6fmi9naa5l48dbi1p7jz"))))
+ (arguments
+ (list
+ #:configure-flags #~(list "-DRESTINIO_FIND_DEPS=ON"
+ "-DRESTINIO_INSTALL=ON"
+ "-DRESTINIO_TEST=ON"
+ "-DRESTINIO_USE_EXTERNAL_HTTP_PARSER=ON"
+ "-DRESTINIO_USE_EXTERNAL_SOBJECTIZER=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "dev"))))))
+ (native-inputs (list catch2 clara json-dto))
+ ;; These are all #include'd by restinio's .hpp header files.
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs restinio)
+ (replace "llhttp" http-parser)))))
(define-public opendht
(package
(name "opendht")
- (version "2.4.12")
+ (version "3.1.7")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3771,7 +3827,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(file-name (git-file-name name version))
(sha256
(base32
- "0yji5pziqxfvyfizk3fn9j59bqlfdwfa1a0y9jjfknb2mmlwwb9w"))))
+ "15jx62fm1frbbvpkxysvvwz1a8d605xi53aacf0bvp4mb1dzpddn"))))
(outputs '("out" "python" "tools" "debug"))
(build-system gnu-build-system)
(arguments
@@ -3799,6 +3855,14 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(substitute* "tests/Makefile.am"
(("\\bdhtrunnertester\\.(h|cpp)\\b")
""))))
+ (add-after 'unupack 'relax-test-timeouts
+ (lambda _
+ ;; At least the 'test_send_json' has been seen to fail
+ ;; non-deterministically, but it seems hard to reproducible that
+ ;; failure.
+ (substitute* "tests/httptester.cpp"
+ (("std::chrono::seconds\\(10)")
+ "std::chrono::seconds(30)"))))
(add-after 'unpack 'fix-python-installation-prefix
;; Specify the installation prefix for the compiled Python module
;; that would otherwise attempt to installs itself to Python's own
@@ -3842,8 +3906,8 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
fmt
readline))
(propagated-inputs
- (list msgpack ;included in several installed headers
- restinio ;included in opendht/http.h
+ (list msgpack-cxx ;included in several installed headers
+ restinio-0.6 ;included in opendht/http.h
;; The following are listed in the 'Requires.private' field of
;; opendht.pc:
argon2
@@ -3887,6 +3951,60 @@ A very simple IM client working over the DHT.
@end table")
(license license:gpl3+)))
+(define-public dhtnet
+ ;; There is no tag nor release; use the latest available commit.
+ (let ((revision "0")
+ (commit "8b6e99fd34f150fde5f21f3a57e0e9f28174c70c"))
+ (package
+ (name "dhtnet")
+ ;; The base version is taken from the CMakeLists.txt file.
+ (version (git-version "0.0.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/savoirfairelinux/dhtnet")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1yhygsimcl9j6hbww1b77am1kgbcriczslcrfb838nbfh18n1780"))))
+ (outputs (list "out" "debug"))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~(list "-DBUILD_DEPENDENCIES=OFF"
+ "-DBUILD_SHARED_LIBS=ON"
+ "-DBUILD_TESTING=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-problematic-tests
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ ;; The connectionManager test currently segfaults (see:
+ ;; https://git.jami.net/savoirfairelinux/dhtnet/-/issues/18).
+ ((".*tests_connectionManager.*") "")
+ ;; The fileutils test fail, asserting an unexpected returned
+ ;; value for the removeAll call when the directory to be
+ ;; removed is missing (see:
+ ;; https://git.jami.net/savoirfairelinux/dhtnet/-/issues/17).
+ ((".*tests_fileutils.*") "")))))))
+ (native-inputs (list cppunit pkg-config))
+ ;; This library depends on the Jami fork of pjproject that adds ICE
+ ;; support.
+ (inputs
+ (list asio
+ fmt
+ msgpack-cxx
+ opendht
+ libupnp
+ pjproject-jami
+ readline))
+ (home-page "https://github.com/savoirfairelinux/dhtnet/")
+ (synopsis "OpenDHT network library for C++")
+ (description "The @code{dhtnet} is a C++ library providing abstractions
+for interacting with an OpenDHT distributed network.")
+ (license license:gpl3+))))
+
(define-public frrouting
(package
(name "frrouting")
@@ -3944,7 +4062,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
(define-public iwd
(package
(name "iwd")
- (version "2.8")
+ (version "2.12")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3953,10 +4071,10 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
(file-name (git-file-name name version))
(sha256
(base32
- "0bpksqyaqr624bj7zm9hi22rnp6wnjbngx4q08l7lbd0r7r93vcb"))))
+ "199pcs20054xhp5c0dnxf9ny5cf5cynkqpx68dpn46nq8ly76n2y"))))
(build-system gnu-build-system)
(inputs
- (list dbus ell (package-source ell) readline))
+ (list dbus ell (package-source ell) openresolv readline))
(native-inputs
(list autoconf
automake
@@ -3966,38 +4084,45 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
python-docutils
openssl))
(arguments
- `(#:configure-flags
- ,#~(list "--disable-systemd-service"
- "--enable-external-ell"
- "--enable-hwsim"
- "--enable-tools"
- "--enable-wired"
- "--localstatedir=/var"
- (string-append "--with-dbus-datadir=" #$output "/share/")
- (string-append "--with-dbus-busdir="
- #$output "/share/dbus-1/system-services"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'copy-ell-header-files
- ;; Copy into the source tree two of ell's private header files that
- ;; it shares with iwd, as is required to build with the
- ;; "--enable-external-ell" configure option.
- ;; See the definition of "ell_shared" in iwd's Makefile.am.
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((ell-header-dir (search-input-directory inputs "/ell"))
- (target-dir "ell"))
- (mkdir target-dir)
- (for-each
- (lambda (file-name)
- (copy-file (string-append ell-header-dir "/" file-name)
- (string-append target-dir "/" file-name)))
- '("asn1-private.h" "useful.h")))))
- (add-after 'configure 'patch-Makefile
- (lambda _
- (substitute* "Makefile"
- ;; Don't try to 'mkdir /var'.
- (("\\$\\(MKDIR_P\\) -m 700") "true")))))))
- (home-page "https://git.kernel.org/pub/scm/network/wireless/iwd.git/")
+ (list #:configure-flags
+ #~(list "--disable-systemd-service"
+ "--enable-external-ell"
+ "--enable-hwsim"
+ "--enable-tools"
+ "--enable-wired"
+ "--localstatedir=/var"
+ (string-append "--with-dbus-datadir=" #$output "/share/")
+ (string-append "--with-dbus-busdir="
+ #$output "/share/dbus-1/system-services"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'copy-ell-header-files
+ ;; Copy into the source tree two of ell's private header files
+ ;; that it shares with iwd, as is required to build with the
+ ;; "--enable-external-ell" configure option. See the
+ ;; definition of "ell_shared" in iwd's Makefile.am.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((ell-header-dir (search-input-directory inputs "/ell"))
+ (target-dir "ell"))
+ (mkdir target-dir)
+ (for-each
+ (lambda (file-name)
+ (copy-file (string-append ell-header-dir "/" file-name)
+ (string-append target-dir "/" file-name)))
+ '("asn1-private.h" "useful.h")))))
+ (add-after 'unpack 'patch-resolvconf-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/resolve.c"
+ (("getenv\\(\"PATH\"\\)")
+ (format #f "\"~a\""
+ (dirname (search-input-file
+ inputs "sbin/resolvconf")))))))
+ (add-after 'configure 'patch-Makefile
+ (lambda _
+ (substitute* "Makefile"
+ ;; Don't try to 'mkdir /var'.
+ (("\\$\\(MKDIR_P\\) -m 700") "true")))))))
+ (home-page "https://iwd.wiki.kernel.org/")
(synopsis "iNet Wireless Daemon")
(description "iwd is a wireless daemon for Linux that aims to replace WPA
Supplicant. It optimizes resource utilization by not depending on any external
@@ -4414,7 +4539,7 @@ QUIC protocol.")
(define-public yggdrasil
(package
(name "yggdrasil")
- (version "0.5.2")
+ (version "0.5.4")
(source
(origin
(method git-fetch)
@@ -4425,7 +4550,7 @@ QUIC protocol.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "0ahgb94s30sq1wwyc8h53mjj3j43ifr0aanj8262rsm6rqk04kzq"))
+ (base32 "1vfzzj9vxsc41dkaasz4fg3mz8iab86xyy925mp51zqmvx79ggx2"))
(patches (search-patches "yggdrasil-extra-config.patch"))))
(build-system go-build-system)
(arguments
diff --git a/gnu/packages/nutrition.scm b/gnu/packages/nutrition.scm
index 90a70753de..1cfce633b5 100644
--- a/gnu/packages/nutrition.scm
+++ b/gnu/packages/nutrition.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -36,6 +37,7 @@
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages image)
#: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)
@@ -150,7 +152,8 @@ in the @url{https://schema.org/Recipe} format.")
python-pygobject
python-requests
python-scrape-schema-recipe
- python-sqlalchemy))
+ python-sqlalchemy
+ python-toml))
(home-page "https://thinkle.github.io/gourmet/")
(synopsis "Recipe organizer")
(description
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 351efb64a9..138840104c 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1713,7 +1713,7 @@ full_split, cut, rcut, etc..")
;; where it says `mit'.
(license license:expat)))
-(define dune-bootstrap
+(define-public dune-bootstrap
(package
(name "dune")
(version "3.6.1")
@@ -1745,12 +1745,13 @@ full_split, cut, rcut, etc..")
(description "Dune is a build system that was designed to simplify the
release of Jane Street packages. It reads metadata from @file{dune} files
following a very simple s-expression syntax.")
+ (properties '((hidden? . #t)))
(license license:expat)))
-(define ocaml4.09-dune-bootstrap
+(define-public ocaml4.09-dune-bootstrap
(package-with-ocaml4.09 dune-bootstrap))
-(define ocaml5.0-dune-bootstrap
+(define-public ocaml5.0-dune-bootstrap
(package-with-ocaml5.0 dune-bootstrap))
(define-public dune-configurator
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 20464bb40d..55e930e510 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1512,8 +1512,8 @@ environments.")
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
(define-public guix-build-coordinator
- (let ((commit "e4af682452580298b34681d37818a16771a17c66")
- (revision "93"))
+ (let ((commit "c4c4f5ae043562276b11c2bd1174d3e24bedcd6e")
+ (revision "94"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@@ -1524,7 +1524,7 @@ environments.")
(commit commit)))
(sha256
(base32
- "1i8x9nfpvg832lxwbpjl1kadldpkcnjlxdxl4c5jqx2hz680ylf3"))
+ "1212iskqlxgpyib1p7p1204a0kxmpxqyjv6q0pkypx6jg7f4lmjx"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -1608,9 +1608,9 @@ environments.")
guile-prometheus
guile-fibers
guile-lib
- (first (assoc-ref (package-native-inputs guix) "guile"))))
+ guile-next))
(inputs
- (list (first (assoc-ref (package-native-inputs guix) "guile"))
+ (list guile-next
sqlite
bash-minimal
(libc-utf8-locales-for-target)
@@ -1650,9 +1650,9 @@ outputs of those builds.")
guix
guile-prometheus
guile-lib
- (first (assoc-ref (package-native-inputs guix) "guile"))))
+ guile-next))
(inputs
- (list (first (assoc-ref (package-native-inputs guix) "guile"))
+ (list guile-next
bash-minimal
(libc-utf8-locales-for-target)))
(propagated-inputs
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index e12035e47d..8f59331a02 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -64,14 +64,14 @@
(define-public parallel
(package
(name "parallel")
- (version "20231122")
+ (version "20231222")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/parallel/parallel-"
version ".tar.bz2"))
(sha256
- (base32 "1qpa3dhmdddw7l5906y8ck8rnri66kqkxcbxhsnj058pmbw9qb42"))
+ (base32 "1alvva2dlnlq5rbbklzc2a7l84mg550l1xc632zdgfx9dzf6sihr"))
(snippet
'(begin
(use-modules (guix build utils))
diff --git a/gnu/packages/patches/curl-use-ssl-cert-env.patch b/gnu/packages/patches/curl-use-ssl-cert-env.patch
index 24be6e31d9..c39c1f7e98 100644
--- a/gnu/packages/patches/curl-use-ssl-cert-env.patch
+++ b/gnu/packages/patches/curl-use-ssl-cert-env.patch
@@ -5,37 +5,37 @@ must be called when no other threads exist).
This fixes network functionality in rust:cargo, and probably removes the need
for other future workarounds.
===================================================================
---- curl-7.66.0.orig/lib/easy.c 2020-01-02 15:43:11.883921171 +0100
-+++ curl-7.66.0/lib/easy.c 2020-01-02 16:18:54.691882797 +0100
-@@ -134,6 +134,9 @@
- # pragma warning(default:4232) /* MSVC extension, dllimport identity */
+--- curl-8.5.0.orig/lib/easy.c 2023-12-17 00:36:32.400468561 -0500
++++ curl-8.5.0/lib/easy.c 2023-12-17 00:39:08.898612331 -0500
+@@ -137,6 +137,9 @@
+ static char *leakpointer;
#endif
-
+
+char * Curl_ssl_cert_dir = NULL;
+char * Curl_ssl_cert_file = NULL;
+
/**
* curl_global_init() globally initializes curl given a bitwise set of the
* different features of what to initialize.
-@@ -155,6 +158,9 @@
- #endif
+@@ -163,6 +166,9 @@
+ goto fail;
}
-
+
+ Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR");
+ Curl_ssl_cert_file = curl_getenv("SSL_CERT_FILE");
+
if(!Curl_ssl_init()) {
DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n"));
- return CURLE_FAILED_INIT;
-@@ -260,6 +266,9 @@
+ goto fail;
+@@ -287,6 +293,9 @@
Curl_ssl_cleanup();
Curl_resolver_global_cleanup();
-
+
+ free(Curl_ssl_cert_dir);
+ free(Curl_ssl_cert_file);
+
- #ifdef WIN32
- Curl_win32_cleanup(init_flags);
+ #ifdef _WIN32
+ Curl_win32_cleanup(easy_init_flags);
#endif
diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c
--- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100
diff --git a/gnu/packages/patches/dtc-meson-cell-overflow.patch b/gnu/packages/patches/dtc-meson-cell-overflow.patch
new file mode 100644
index 0000000000..1c319312f7
--- /dev/null
+++ b/gnu/packages/patches/dtc-meson-cell-overflow.patch
@@ -0,0 +1,32 @@
+Taken from upstream:
+https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=32174a66efa4ad19fc6a2a6422e4af2ae4f055cb
+
+From 32174a66efa4ad19fc6a2a6422e4af2ae4f055cb Mon Sep 17 00:00:00 2001
+From: David Gibson <david@gibson.dropbear.id.au>
+Date: Tue, 28 Feb 2023 10:33:58 +1100
+Subject: [PATCH] meson: Fix cell overflow tests when running from meson
+
+Because meson always builds out-of-tree we need to reference things in the
+original source tree via $SRCDIR from run_tests.sh. We forgot a couple of
+cases for the cell overflow tests. Fix them.
+
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+---
+ tests/run_tests.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/run_tests.sh b/tests/run_tests.sh
+index 91350ad3..f899d8cb 100755
+--- a/tests/run_tests.sh
++++ b/tests/run_tests.sh
+@@ -519,8 +519,8 @@ libfdt_tests () {
+ check_tests "$SRCDIR/phandle-args-overflow.dts" clocks_property
+
+ ## https://github.com/dgibson/dtc/issues/74
+- run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb cell-overflow-results.dts
+- run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb cell-overflow.dts
++ run_dtc_test -I dts -O dtb -o cell-overflow-results.test.dtb "$SRCDIR/cell-overflow-results.dts"
++ run_dtc_test -I dts -O dtb -o cell-overflow.test.dtb "$SRCDIR/cell-overflow.dts"
+ run_test dtbs_equal_ordered cell-overflow.test.dtb cell-overflow-results.test.dtb
+
+ # check full tests
diff --git a/gnu/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch b/gnu/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch
new file mode 100644
index 0000000000..6248165d8c
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch
@@ -0,0 +1,27 @@
+From a884b62c9e6f23b9f4369d724e25db2f42dad28d Mon Sep 17 00:00:00 2001
+From: Pierre LESPAGNOL <pierre.lespagnol@savoirfairelinux.com>
+Date: Tue, 28 May 2019 16:18:20 -0400
+Subject: [PATCH] Changement du ratio de 0.5% a 5%
+
+---
+ libavformat/rtp.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/rtp.h b/libavformat/rtp.h
+index 54512c6f71..16916ff86a 100644
+--- a/libavformat/rtp.h
++++ b/libavformat/rtp.h
+@@ -78,8 +78,8 @@ enum AVCodecID ff_rtp_codec_id(const char *buf, enum AVMediaType codec_type);
+ #define RTP_VERSION 2
+ #define RTP_MAX_SDES 256 /**< maximum text length for SDES */
+
+-/* RTCP packets use 0.5% of the bandwidth */
+-#define RTCP_TX_RATIO_NUM 5
++/* RTCP packets use 2.5% of the bandwidth */
++#define RTCP_TX_RATIO_NUM 25
+ #define RTCP_TX_RATIO_DEN 1000
+
+ /* An arbitrary id value for RTP Xiph streams - only relevant to indicate
+--
+2.17.1
+
diff --git a/gnu/packages/patches/ffmpeg-jami-libopusdec-enable-FEC.patch b/gnu/packages/patches/ffmpeg-jami-libopusdec-enable-FEC.patch
new file mode 100644
index 0000000000..fb9466a4fc
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-jami-libopusdec-enable-FEC.patch
@@ -0,0 +1,127 @@
+diff --git a/libavcodec/libopusdec.c b/libavcodec/libopusdec.c
+index 9b9a610343..8ec5bfc1ad 100644
+--- a/libavcodec/libopusdec.c
++++ b/libavcodec/libopusdec.c
+@@ -45,6 +45,8 @@ struct libopus_context {
+ #ifdef OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST
+ int apply_phase_inv;
+ #endif
++ int decode_fec;
++ int64_t expected_next_pts;
+ };
+
+ #define OPUS_HEAD_SIZE 19
+@@ -141,6 +143,8 @@ static av_cold int libopus_decode_init(AVCodecContext *avc)
+ /* Decoder delay (in samples) at 48kHz */
+ avc->delay = avc->internal->skip_samples = opus->pre_skip;
+
++ opus->expected_next_pts = AV_NOPTS_VALUE;
++
+ return 0;
+ }
+
+@@ -161,27 +165,82 @@ static int libopus_decode(AVCodecContext *avc, AVFrame *frame,
+ int *got_frame_ptr, AVPacket *pkt)
+ {
+ struct libopus_context *opus = avc->priv_data;
+- int ret, nb_samples;
++ uint8_t *outptr;
++ int ret, nb_samples = 0, nb_lost_samples = 0, nb_samples_left;
++
++ // If FEC is enabled, calculate number of lost samples
++ if (opus->decode_fec &&
++ opus->expected_next_pts != AV_NOPTS_VALUE &&
++ pkt->pts != AV_NOPTS_VALUE &&
++ pkt->pts != opus->expected_next_pts) {
++ // Cap at recovering 120 ms of lost audio.
++ nb_lost_samples = pkt->pts - opus->expected_next_pts;
++ nb_lost_samples = FFMIN(nb_lost_samples, MAX_FRAME_SIZE);
++ }
+
+- frame->nb_samples = MAX_FRAME_SIZE;
++ frame->nb_samples = MAX_FRAME_SIZE + nb_lost_samples;
+ if ((ret = ff_get_buffer(avc, frame, 0)) < 0)
+ return ret;
+
++ outptr = frame->data[0];
++ nb_samples_left = frame->nb_samples;
++
++ if (opus->decode_fec && nb_lost_samples) {
++ // Try to recover the lost samples with FEC data from this one.
++ // If there's no FEC data, the decoder will do loss concealment instead.
++ if (avc->sample_fmt == AV_SAMPLE_FMT_S16)
++ nb_samples = opus_multistream_decode(opus->dec, pkt->data, pkt->size,
++ (opus_int16 *)outptr,
++ nb_lost_samples, 1);
++ else
++ nb_samples = opus_multistream_decode_float(opus->dec, pkt->data, pkt->size,
++ (float *)outptr,
++ nb_lost_samples, 1);
++
++ if (nb_samples < 0) {
++ av_log(avc, AV_LOG_ERROR, "Decoding error: %s\n",
++ opus_strerror(nb_samples));
++ return ff_opus_error_to_averror(nb_samples);
++ }
++
++ av_log(avc, AV_LOG_WARNING, "Recovered %d samples with FEC/PLC\n",
++ nb_samples);
++
++ outptr += nb_samples * avc->channels * av_get_bytes_per_sample(avc->sample_fmt);
++ nb_samples_left -= nb_samples;
++ if (pkt->pts != AV_NOPTS_VALUE) {
++ pkt->pts -= nb_samples;
++ frame->pts = pkt->pts;
++ }
++ }
++
++ // Decode the actual, non-lost data.
+ if (avc->sample_fmt == AV_SAMPLE_FMT_S16)
+- nb_samples = opus_multistream_decode(opus->dec, pkt->data, pkt->size,
+- (opus_int16 *)frame->data[0],
+- frame->nb_samples, 0);
++ ret = opus_multistream_decode(opus->dec, pkt->data, pkt->size,
++ (opus_int16 *)outptr,
++ nb_samples_left, 0);
+ else
+- nb_samples = opus_multistream_decode_float(opus->dec, pkt->data, pkt->size,
+- (float *)frame->data[0],
+- frame->nb_samples, 0);
++ ret = opus_multistream_decode_float(opus->dec, pkt->data, pkt->size,
++ (float *)outptr,
++ nb_samples_left, 0);
+
+- if (nb_samples < 0) {
++ if (ret < 0) {
+ av_log(avc, AV_LOG_ERROR, "Decoding error: %s\n",
+- opus_strerror(nb_samples));
+- return ff_opus_error_to_averror(nb_samples);
++ opus_strerror(ret));
++ return ff_opus_error_to_averror(ret);
+ }
+
++ nb_samples += ret;
++
++ if (opus->decode_fec)
++ {
++ // Calculate the next expected pts
++ if (pkt->pts == AV_NOPTS_VALUE) {
++ opus->expected_next_pts = AV_NOPTS_VALUE;
++ } else {
++ opus->expected_next_pts = pkt->pts + nb_samples;
++ }
++ }
+ #ifndef OPUS_SET_GAIN
+ {
+ int i = avc->ch_layout.nb_channels * nb_samples;
+@@ -220,6 +279,7 @@ static const AVOption libopusdec_options[] = {
+ #ifdef OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST
+ { "apply_phase_inv", "Apply intensity stereo phase inversion", OFFSET(apply_phase_inv), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, FLAGS },
+ #endif
++ { "decode_fec", "Decode FEC data or use PLC", OFFSET(decode_fec), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
+ { NULL },
+ };
+
+--
+2.34.1
+
diff --git a/gnu/packages/patches/ffmpeg-jami-libopusenc-enable-FEC.patch b/gnu/packages/patches/ffmpeg-jami-libopusenc-enable-FEC.patch
new file mode 100644
index 0000000000..43b786c567
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-jami-libopusenc-enable-FEC.patch
@@ -0,0 +1,50 @@
+diff --git a/libavcodec/libopusencc.c b/libavcodec/libopusencc.c
+index 2a97811d18..40ee7b8fec 100644
+--- a/libavcodec/libopusenc.c
++++ b/libavcodec/libopusenc.c
+@@ -33,6 +33,7 @@
+ typedef struct LibopusEncOpts {
+ int vbr;
+ int application;
++ int enable_fec;
+ int packet_loss;
+ int complexity;
+ float frame_duration;
+@@ -143,6 +144,13 @@
+ "Unable to set constrained VBR: %s\n", opus_strerror(ret));
+
+ ret = opus_multistream_encoder_ctl(enc,
++ OPUS_SET_INBAND_FEC(opts->enable_fec));
++ if (ret != OPUS_OK)
++ av_log(avctx, AV_LOG_WARNING,
++ "Unable to set enable FEC flag percentage: %s\n",
++ opus_strerror(ret));
++
++ ret = opus_multistream_encoder_ctl(enc,
+ OPUS_SET_PACKET_LOSS_PERC(opts->packet_loss));
+ if (ret != OPUS_OK)
+ av_log(avctx, AV_LOG_WARNING,
+@@ -452,6 +460,15 @@
+ int ret;
+ int discard_padding;
+
++ // Reload packet loss setting
++ ret = opus_multistream_encoder_ctl(opus->enc,
++ OPUS_SET_PACKET_LOSS_PERC(opus->opts.packet_loss));
++ if (ret != OPUS_OK)
++ av_log(avctx, AV_LOG_WARNING,
++ "Unable to set expected packet loss percentage: %s\n",
++ opus_strerror(ret));
++
++
+ if (frame) {
+ ret = ff_af_queue_add(&opus->afq, frame);
+ if (ret < 0)
+@@ -543,6 +560,7 @@
+ { "audio", "Favor faithfulness to the input", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_AUDIO }, 0, 0, FLAGS, "application" },
+ { "lowdelay", "Restrict to only the lowest delay modes", 0, AV_OPT_TYPE_CONST, { .i64 = OPUS_APPLICATION_RESTRICTED_LOWDELAY }, 0, 0, FLAGS, "application" },
+ { "frame_duration", "Duration of a frame in milliseconds", OFFSET(frame_duration), AV_OPT_TYPE_FLOAT, { .dbl = 20.0 }, 2.5, 120.0, FLAGS },
++ { "enable_fec", "Enable forward error correction", OFFSET(enable_fec), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
+ { "packet_loss", "Expected packet loss percentage", OFFSET(packet_loss), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, FLAGS },
+ { "vbr", "Variable bit rate mode", OFFSET(vbr), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 2, FLAGS, "vbr" },
+ { "off", "Use constant bit rate", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FLAGS, "vbr" },
diff --git a/gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch b/gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch
new file mode 100644
index 0000000000..5c4bd4d3eb
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch
@@ -0,0 +1,44 @@
+From dba13d03bc8e827fededc20b0ab1f574a1500f2a Mon Sep 17 00:00:00 2001
+From: Philip-Dylan Gleonec <philip-dylan.gleonec@savoirfairelinux.com>
+Date: Thu, 11 Feb 2021 12:25:14 +0100
+Subject: [PATCH 2/2] avcodec/libopusenc: reload packet loss at encode
+
+An estimation of packet loss is required by libopus to compute its FEC
+data. Currently, this estimation is constant, and can not be changed
+after configuration. This means an application using libopus through
+ffmpeg can not adapt the packet loss estimation when the network
+quality degrades.
+
+This patch makes the encoder reload the packet_loss AVOption before
+encoding samples, if fec is enabled. This way an application can modify
+the packet loss estimation by changing the AVOption. Typical use-case
+is a RTP stream, where packet loss can be estimated from RTCP packets.
+
+Signed-off-by: Philip-Dylan Gleonec <philip-dylan.gleonec@savoirfairelinux.com>
+---
+ libavcodec/libopusenc.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
+index 70d17f802b..c18e8ae7fa 100644
+--- a/libavcodec/libopusenc.c
++++ b/libavcodec/libopusenc.c
+@@ -460,6 +460,15 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt,
+ int ret;
+ int discard_padding;
+
++ if (opus->opts.fec) {
++ ret = opus_multistream_encoder_ctl(opus->enc,
++ OPUS_SET_PACKET_LOSS_PERC(opus->opts.packet_loss));
++ if (ret != OPUS_OK)
++ av_log(avctx, AV_LOG_WARNING,
++ "Unable to set expected packet loss percentage: %s\n",
++ opus_strerror(ret));
++ }
++
+ if (frame) {
+ ret = ff_af_queue_add(&opus->afq, frame);
+ if (ret < 0)
+--
+2.25.1
+
diff --git a/gnu/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch b/gnu/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch
new file mode 100644
index 0000000000..595baea9c9
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch
@@ -0,0 +1,26 @@
+From c557a6211f5a29d89fc2ab561e0fb3d8878fb6ad Mon Sep 17 00:00:00 2001
+From: philippegorley <gorley.philippe@gmail.com>
+Date: Mon, 17 Dec 2018 15:27:57 -0500
+Subject: [PATCH] remove mjpeg log
+
+---
+ libavcodec/mjpegdec.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
+index d1dca84d36..4a26c23cd4 100644
+--- a/libavcodec/mjpegdec.c
++++ b/libavcodec/mjpegdec.c
+@@ -2294,9 +2294,7 @@ int ff_mjpeg_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
+ "restart marker: %d\n", start_code & 0x0f);
+ /* APP fields */
+ } else if (start_code >= APP0 && start_code <= APP15) {
+- if ((ret = mjpeg_decode_app(s)) < 0)
+- av_log(avctx, AV_LOG_ERROR, "unable to decode APP fields: %s\n",
+- av_err2str(ret));
++ ret = mjpeg_decode_app(s);
+ /* Comment */
+ } else if (start_code == COM) {
+ ret = mjpeg_decode_com(s);
+--
+2.17.1
diff --git a/gnu/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch b/gnu/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch
new file mode 100644
index 0000000000..cf52cf972a
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch
@@ -0,0 +1,71 @@
+diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
+index 63047beccc..d59ec3dc8c 100644
+--- a/libavformat/rtpenc.c
++++ b/libavformat/rtpenc.c
+@@ -28,6 +28,8 @@
+
+ #include "rtpenc.h"
+
++#define EXT_ABS_SEND_TIME
++
+ static const AVOption options[] = {
+ FF_RTP_FLAG_OPTS(RTPMuxContext, flags),
+ { "payload_type", "Specify RTP payload type", offsetof(RTPMuxContext, payload_type), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 127, AV_OPT_FLAG_ENCODING_PARAM },
+@@ -146,7 +148,11 @@ static int rtp_write_header(AVFormatContext *s1)
+ s1->pb->max_packet_size);
+ } else
+ s1->packet_size = s1->pb->max_packet_size;
++#ifdef EXT_ABS_SEND_TIME
++ if (s1->packet_size <= 20) {
++#else
+ if (s1->packet_size <= 12) {
++#endif
+ av_log(s1, AV_LOG_ERROR, "Max packet size %u too low\n", s1->packet_size);
+ return AVERROR(EIO);
+ }
+@@ -154,7 +160,11 @@ static int rtp_write_header(AVFormatContext *s1)
+ if (!s->buf) {
+ return AVERROR(ENOMEM);
+ }
++#ifdef EXT_ABS_SEND_TIME
++ s->max_payload_size = s1->packet_size - 20;
++#else
+ s->max_payload_size = s1->packet_size - 12;
++#endif
+
+ if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+ avpriv_set_pts_info(st, 32, 1, st->codecpar->sample_rate);
+@@ -332,16 +342,34 @@ static void rtcp_send_sr(AVFormatContext *s1, int64_t ntp_time, int bye)
+ void ff_rtp_send_data(AVFormatContext *s1, const uint8_t *buf1, int len, int m)
+ {
+ RTPMuxContext *s = s1->priv_data;
++ uint64_t ntp64_time;
++ uint32_t absoluteSendTime;
+
+ av_log(s1, AV_LOG_TRACE, "rtp_send_data size=%d\n", len);
+
+ /* build the RTP header */
++#ifdef EXT_ABS_SEND_TIME
++ avio_w8(s1->pb, RTP_VERSION << 6 | 0x10); // extention bit
++#else
+ avio_w8(s1->pb, RTP_VERSION << 6);
++#endif
+ avio_w8(s1->pb, (s->payload_type & 0x7f) | ((m & 0x01) << 7));
+ avio_wb16(s1->pb, s->seq);
+ avio_wb32(s1->pb, s->timestamp);
+ avio_wb32(s1->pb, s->ssrc);
+
++#ifdef EXT_ABS_SEND_TIME
++ avio_wb16(s1->pb, 0xBEDE); // magic word
++ avio_wb16(s1->pb, 0x0001); // length=1
++ avio_w8(s1->pb, 0x32); // ID=3 and lenght=2
++ ntp64_time = ff_get_formatted_ntp_time(ff_ntp_time());
++ absoluteSendTime = (uint32_t)((ntp64_time>> 14) & 0x00ffffff);
++ av_log(s1, AV_LOG_TRACE, "ntp64:%lu, abs_time:%u\n", ntp64_time, absoluteSendTime);
++ avio_w8(s1->pb, (uint8_t)(absoluteSendTime >> 16));
++ avio_w8(s1->pb, (uint8_t)(absoluteSendTime >> 8 & 0xff));
++ avio_w8(s1->pb, (uint8_t)(absoluteSendTime & 0xff));
++#endif
++
+ avio_write(s1->pb, buf1, len);
+ avio_flush(s1->pb);
diff --git a/gnu/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch b/gnu/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch
new file mode 100644
index 0000000000..e54a346706
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch
@@ -0,0 +1,302 @@
+From c1b210534b15188c964b31dc47e172f8ed4aca55 Mon Sep 17 00:00:00 2001
+From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com>
+Date: Tue, 19 Jul 2022 13:35:19 -0300
+Subject: [PATCH] Screen sharing x11 fixes
+
++ We can now have a single stream in the x11grab, which can be updated to follow window resizing
++ Due to stream reinit, shm may cause memory issues and was removed
++ Adds one option (is_area) that defines if we are grabing a region of the display/window or the hole screen/window.
+
+note: This is a custom patch for later rebase
+---
+ libavdevice/xcbgrab.c | 186 ++++++++++--------------------------------
+ 1 file changed, 45 insertions(+), 141 deletions(-)
+
+diff --git a/libavdevice/xcbgrab.c b/libavdevice/xcbgrab.c
+index 64a68ba497..76e654b424 100644
+--- a/libavdevice/xcbgrab.c
++++ b/libavdevice/xcbgrab.c
+@@ -29,11 +29,6 @@
+ #include <xcb/xfixes.h>
+ #endif
+
+-#if CONFIG_LIBXCB_SHM
+-#include <sys/shm.h>
+-#include <xcb/shm.h>
+-#endif
+-
+ #if CONFIG_LIBXCB_SHAPE
+ #include <xcb/shape.h>
+ #endif
+@@ -53,9 +48,6 @@ typedef struct XCBGrabContext {
+ xcb_connection_t *conn;
+ xcb_screen_t *screen;
+ xcb_window_t window;
+-#if CONFIG_LIBXCB_SHM
+- AVBufferPool *shm_pool;
+-#endif
+ int64_t time_frame;
+ AVRational time_base;
+ int64_t frame_duration;
+@@ -72,10 +64,9 @@ typedef struct XCBGrabContext {
+ int region_border;
+ int centered;
+ int select_region;
++ int is_area;
+
+ const char *framerate;
+-
+- int has_shm;
+ } XCBGrabContext;
+
+ #define FOLLOW_CENTER -1
+@@ -97,6 +88,7 @@ static const AVOption options[] = {
+ { "show_region", "Show the grabbing region.", OFFSET(show_region), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, D },
+ { "region_border", "Set the region border thickness.", OFFSET(region_border), AV_OPT_TYPE_INT, { .i64 = 3 }, 1, 128, D },
+ { "select_region", "Select the grabbing region graphically using the pointer.", OFFSET(select_region), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, D },
++ { "is_area", "Define if we are grabing a region of the display/window.", OFFSET(is_area), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, D },
+ { NULL },
+ };
+
+@@ -216,99 +208,6 @@ static int64_t wait_frame(AVFormatContext *s, AVPacket *pkt)
+ return curtime;
+ }
+
+-#if CONFIG_LIBXCB_SHM
+-static int check_shm(xcb_connection_t *conn)
+-{
+- xcb_shm_query_version_cookie_t cookie = xcb_shm_query_version(conn);
+- xcb_shm_query_version_reply_t *reply;
+-
+- reply = xcb_shm_query_version_reply(conn, cookie, NULL);
+- if (reply) {
+- free(reply);
+- return 1;
+- }
+-
+- return 0;
+-}
+-
+-static void free_shm_buffer(void *opaque, uint8_t *data)
+-{
+- shmdt(data);
+-}
+-
+-static AVBufferRef *allocate_shm_buffer(void *opaque, size_t size)
+-{
+- xcb_connection_t *conn = opaque;
+- xcb_shm_seg_t segment;
+- AVBufferRef *ref;
+- uint8_t *data;
+- int id;
+-
+- id = shmget(IPC_PRIVATE, size, IPC_CREAT | 0777);
+- if (id == -1)
+- return NULL;
+-
+- segment = xcb_generate_id(conn);
+- xcb_shm_attach(conn, segment, id, 0);
+- data = shmat(id, NULL, 0);
+- shmctl(id, IPC_RMID, 0);
+- if ((intptr_t)data == -1 || !data)
+- return NULL;
+-
+- ref = av_buffer_create(data, size, free_shm_buffer, (void *)(ptrdiff_t)segment, 0);
+- if (!ref)
+- shmdt(data);
+-
+- return ref;
+-}
+-
+-static int xcbgrab_frame_shm(AVFormatContext *s, AVPacket *pkt)
+-{
+- XCBGrabContext *c = s->priv_data;
+- xcb_shm_get_image_cookie_t iq;
+- xcb_shm_get_image_reply_t *img;
+- xcb_drawable_t drawable = c->window_id;
+- xcb_generic_error_t *e = NULL;
+- AVBufferRef *buf;
+- xcb_shm_seg_t segment;
+-
+- buf = av_buffer_pool_get(c->shm_pool);
+- if (!buf) {
+- av_log(s, AV_LOG_ERROR, "Could not get shared memory buffer.\n");
+- return AVERROR(ENOMEM);
+- }
+- segment = (xcb_shm_seg_t)(uintptr_t)av_buffer_pool_buffer_get_opaque(buf);
+-
+- iq = xcb_shm_get_image(c->conn, drawable,
+- c->x, c->y, c->width, c->height, ~0,
+- XCB_IMAGE_FORMAT_Z_PIXMAP, segment, 0);
+- img = xcb_shm_get_image_reply(c->conn, iq, &e);
+-
+- xcb_flush(c->conn);
+-
+- if (e) {
+- av_log(s, AV_LOG_ERROR,
+- "Cannot get the image data "
+- "event_error: response_type:%u error_code:%u "
+- "sequence:%u resource_id:%u minor_code:%u major_code:%u.\n",
+- e->response_type, e->error_code,
+- e->sequence, e->resource_id, e->minor_code, e->major_code);
+-
+- free(e);
+- av_buffer_unref(&buf);
+- return AVERROR(EACCES);
+- }
+-
+- free(img);
+-
+- pkt->buf = buf;
+- pkt->data = buf->data;
+- pkt->size = c->frame_size;
+-
+- return 0;
+-}
+-#endif /* CONFIG_LIBXCB_SHM */
+-
+ #if CONFIG_LIBXCB_XFIXES
+ static int check_xfixes(xcb_connection_t *conn)
+ {
+@@ -462,14 +361,7 @@ static int xcbgrab_read_packet(AVFormatContext *s, AVPacket *pkt)
+ if (c->show_region)
+ xcbgrab_update_region(s, win_x, win_y);
+
+-#if CONFIG_LIBXCB_SHM
+- if (c->has_shm && xcbgrab_frame_shm(s, pkt) < 0) {
+- av_log(s, AV_LOG_WARNING, "Continuing without shared memory.\n");
+- c->has_shm = 0;
+- }
+-#endif
+- if (!c->has_shm)
+- ret = xcbgrab_frame(s, pkt);
++ ret = xcbgrab_frame(s, pkt);
+ pkt->dts = pkt->pts = pts;
+ pkt->duration = c->frame_duration;
+
+@@ -488,11 +380,8 @@ static av_cold int xcbgrab_read_close(AVFormatContext *s)
+ {
+ XCBGrabContext *ctx = s->priv_data;
+
+-#if CONFIG_LIBXCB_SHM
+- av_buffer_pool_uninit(&ctx->shm_pool);
+-#endif
+-
+ xcb_disconnect(ctx->conn);
++ ctx->conn = NULL;
+
+ return 0;
+ }
+@@ -572,7 +461,15 @@ static int pixfmt_from_pixmap_format(AVFormatContext *s, int depth,
+ static int create_stream(AVFormatContext *s)
+ {
+ XCBGrabContext *c = s->priv_data;
+- AVStream *st = avformat_new_stream(s, NULL);
++
++ // If we try to open another stream to x11grab, there is no reason
++ // to keep more than one stream in the context.
++ AVStream *st;
++ if (!s->nb_streams) {
++ st = avformat_new_stream(s, NULL);
++ } else {
++ st = s->streams[0];
++ }
+ xcb_get_geometry_cookie_t gc;
+ xcb_get_geometry_reply_t *geo;
+ int64_t frame_size_bits;
+@@ -594,11 +491,26 @@ static int create_stream(AVFormatContext *s)
+ return AVERROR_EXTERNAL;
+ }
+
++ // av_log(s, AV_LOG_ERROR, "Capture is_area %d\n", c->is_area);
++ // Width and Height are not 0 only when we set a window area to share
++ // This if may be valid only in the first call to create_stream
+ if (!c->width || !c->height) {
++ // av_log(s, AV_LOG_ERROR, "Capture area!\n");
++ c->is_area = 0;
++ c->width = geo->width;
++ c->height = geo->height;
++ }
++ // If not a predefined area, then we should follow geometry changes
++ // This can be valid only on the second call onwards
++ if (!c->is_area && (c->width != geo->width || c->height != geo->height)) {
+ c->width = geo->width;
+ c->height = geo->height;
+ }
+
++ // av_log(s, AV_LOG_ERROR, "Capture area %dx%d at position %d.%d\n",
++ // c->width, c->height,
++ // c->x, c->y);
++
+ if (c->x + c->width > geo->width ||
+ c->y + c->height > geo->height) {
+ av_log(s, AV_LOG_ERROR,
+@@ -628,13 +540,6 @@ static int create_stream(AVFormatContext *s)
+ }
+ c->frame_size = frame_size_bits / 8;
+
+-#if CONFIG_LIBXCB_SHM
+- c->shm_pool = av_buffer_pool_init2(c->frame_size + AV_INPUT_BUFFER_PADDING_SIZE,
+- c->conn, allocate_shm_buffer, NULL);
+- if (!c->shm_pool)
+- return AVERROR(ENOMEM);
+-#endif
+-
+ st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
+ st->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO;
+ st->codecpar->width = c->width;
+@@ -829,23 +734,26 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
+ sscanf(s->url, "+%d,%d", &c->x, &c->y);
+ }
+
+- c->conn = xcb_connect(display_name[0] ? display_name : NULL, &screen_num);
+- av_freep(&display_name);
++ if (!c->conn || !c->screen) {
++ xcbgrab_read_close(s);
++ c->conn = xcb_connect(display_name[0] ? display_name : NULL, &screen_num);
++ av_freep(&display_name);
+
+- if ((ret = xcb_connection_has_error(c->conn))) {
+- av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n",
+- s->url[0] ? s->url : "default", ret);
+- return AVERROR(EIO);
+- }
++ if ((ret = xcb_connection_has_error(c->conn))) {
++ av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n",
++ s->url[0] ? s->url : "default", ret);
++ return AVERROR(EIO);
++ }
+
+- setup = xcb_get_setup(c->conn);
++ setup = xcb_get_setup(c->conn);
+
+- c->screen = get_screen(setup, screen_num);
+- if (!c->screen) {
+- av_log(s, AV_LOG_ERROR, "The screen %d does not exist.\n",
+- screen_num);
+- xcbgrab_read_close(s);
+- return AVERROR(EIO);
++ c->screen = get_screen(setup, screen_num);
++ if (!c->screen) {
++ av_log(s, AV_LOG_ERROR, "The screen %d does not exist.\n",
++ screen_num);
++ xcbgrab_read_close(s);
++ return AVERROR(EIO);
++ }
+ }
+
+ if (c->window_id == XCB_NONE)
+@@ -876,10 +784,6 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
+ return ret;
+ }
+
+-#if CONFIG_LIBXCB_SHM
+- c->has_shm = check_shm(c->conn);
+-#endif
+-
+ #if CONFIG_LIBXCB_XFIXES
+ if (c->draw_mouse) {
+ if (!(c->draw_mouse = check_xfixes(c->conn))) {
+--
+2.34.1
+
diff --git a/gnu/packages/patches/fifengine-python-3.9-compat.patch b/gnu/packages/patches/fifengine-python-3.9-compat.patch
new file mode 100644
index 0000000000..2def4681cd
--- /dev/null
+++ b/gnu/packages/patches/fifengine-python-3.9-compat.patch
@@ -0,0 +1,81 @@
+Fix runtime error when using Python 3.9 or newer.
+
+Taken from upstream:
+https://github.com/fifengine/fifengine/commit/cf295fd98a8fba080f6305c27be56d10ab7ce94d
+
+diff --git a/engine/python/fife/extensions/serializers/simplexml.py b/engine/python/fife/extensions/serializers/simplexml.py
+index c4e10f4f8..d05567936 100644
+--- a/engine/python/fife/extensions/serializers/simplexml.py
++++ b/engine/python/fife/extensions/serializers/simplexml.py
+@@ -200,7 +200,7 @@ def get(self, module, name, defaultValue=None):
+ #get the module tree: for example find tree under module FIFE
+ moduleTree = self._getModuleTree(module)
+ element = None
+- for e in moduleTree.getchildren():
++ for e in moduleTree:
+ if e.tag == "Setting" and e.get("name", "") == name:
+ element = e
+ break
+@@ -275,7 +275,7 @@ def set(self, module, name, value, extra_attrs={}):
+ e_type = "str"
+ value = str(value)
+
+- for e in moduleTree.getchildren():
++ for e in moduleTree:
+ if e.tag != "Setting": continue
+ if e.get("name", "") == name:
+ e.text = value
+@@ -305,7 +305,7 @@ def remove(self, module, name):
+
+ moduleTree = self._getModuleTree(module)
+
+- for e in moduleTree.getchildren():
++ for e in moduleTree:
+ if e.tag != "Setting": continue
+ if e.get("name", "") == name:
+ moduleTree.remove(e)
+@@ -321,7 +321,7 @@ def getModuleNameList(self):
+ self._initialized = True
+
+ moduleNames = []
+- for c in self._root_element.getchildren():
++ for c in self._root_element:
+ if c.tag == "Module":
+ name = c.get("name","")
+ if not isinstance(name, basestring):
+@@ -344,7 +344,7 @@ def getAllSettings(self, module):
+
+ # now from the tree read every value, and put the necessary values
+ # to the list
+- for e in moduleTree.getchildren():
++ for e in moduleTree:
+ if e.tag == "Setting":
+ name = e.get("name", "")
+
+@@ -383,7 +383,7 @@ def _validateTree(self):
+
+ Raises an InvalidFormat exception if there is a format error.
+ """
+- for c in self._root_element.getchildren():
++ for c in self._root_element:
+ if c.tag != "Module":
+ raise InvalidFormat("Invalid tag in " + self._file + \
+ ". Expected Module, got: " + c.tag)
+@@ -391,7 +391,7 @@ def _validateTree(self):
+ raise InvalidFormat("Invalid tag in " + self._file + \
+ ". Module name is empty.")
+ else:
+- for e in c.getchildren():
++ for e in c:
+ if e.tag != "Setting":
+ raise InvalidFormat("Invalid tag in " + self._file + \
+ " in module: " + c.tag + \
+@@ -414,7 +414,7 @@ def _getModuleTree(self, module):
+ raise AttributeError("Settings:_getModuleTree: Invalid type for "
+ "module argument.")
+
+- for c in self._root_element.getchildren():
++ for c in self._root_element:
+ if c.tag == "Module" and c.get("name", "") == module:
+ return c
+
diff --git a/gnu/packages/patches/guile-fibers-libevent-timeout.patch b/gnu/packages/patches/guile-fibers-libevent-timeout.patch
new file mode 100644
index 0000000000..c33678eea3
--- /dev/null
+++ b/gnu/packages/patches/guile-fibers-libevent-timeout.patch
@@ -0,0 +1,61 @@
+commit 2ca397bfcca94c106380368b5b0ce920b0a62a95
+Author: Ludovic Courtès <ludo@gnu.org>
+Date: Sat Jan 6 16:22:45 2024 +0100
+
+ libevent: Fix computation of the timeout value.
+
+diff --git a/extensions/libevent.c b/extensions/libevent.c
+index 134460a..62e50a3 100644
+--- a/extensions/libevent.c
++++ b/extensions/libevent.c
+@@ -192,30 +192,27 @@ scm_primitive_resize (SCM lst, SCM eventsv)
+ }
+ #undef FUNC_NAME
+
+-static uint64_t time_units_per_microsec;
++static uint64_t time_units_per_microsec, microsec_per_time_units;
+
+ static void*
+ run_event_loop (void *p)
+ #define FUNC_NAME "primitive-event-loop"
+ {
+- int ret = 0;
+- int microsec = 0;
+- struct timeval tv;
+-
++ int ret;
+ struct loop_data *data = p;
+
+- if (data->timeout < 0)
+- microsec = -1;
+- else if (data->timeout >= 0)
++ if (data->timeout >= 0)
+ {
+- microsec = (time_units_per_microsec == 0)
+- ? 0 : data->timeout / time_units_per_microsec;
+- tv.tv_sec = 0;
+- tv.tv_usec = microsec;
+- }
++ struct timeval tv;
++
++ tv.tv_sec = data->timeout / scm_c_time_units_per_second;
++ tv.tv_usec =
++ time_units_per_microsec > 0
++ ? ((data->timeout % scm_c_time_units_per_second)
++ / time_units_per_microsec)
++ : ((data->timeout % scm_c_time_units_per_second)
++ * microsec_per_time_units);
+
+- if (microsec >= 0)
+- {
+ ret = event_base_loopexit (data->base, &tv);
+ if (ret == -1)
+ SCM_MISC_ERROR ("event loop exit failed", SCM_EOL);
+@@ -307,6 +304,7 @@ void
+ init_fibers_libevt (void)
+ {
+ time_units_per_microsec = scm_c_time_units_per_second / 1000000;
++ microsec_per_time_units = 1000000 / scm_c_time_units_per_second;
+
+ scm_c_define_gsubr ("primitive-event-wake", 1, 0, 0,
+ scm_primitive_event_wake);
diff --git a/gnu/packages/patches/jami-disable-integration-tests.patch b/gnu/packages/patches/jami-disable-integration-tests.patch
index 1efb7d552e..18f13800ac 100644
--- a/gnu/packages/patches/jami-disable-integration-tests.patch
+++ b/gnu/packages/patches/jami-disable-integration-tests.patch
@@ -1,3 +1,5 @@
+This issue is tracked at https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/824.
+
From 3fd7acc6e5a8c316c366827956d7c06affdc9685 Mon Sep 17 00:00:00 2001
From: Olivier Dion <olivier.dion@savoirfairelinux.com>
Date: Fri, 7 Oct 2022 15:20:37 -0400
@@ -17,8 +19,8 @@ With file names adjusted for the source tarball.
diff --git a/configure.ac b/configure.ac
index 27215d044..aaeef1c1b 100644
---- a/daemon/configure.ac
-+++ b/daemon/configure.ac
+--- a/configure.ac
++++ b/configure.ac
@@ -40,6 +40,11 @@ AS_IF([test "x$enable_debug" = "xyes"],
[DAEMONCFLAGS+=" -DNDEBUG=1 -O3"
DAEMONCXXFLAGS+=" -DNDEBUG=1 -O3 -Wno-deprecated"])
@@ -33,8 +35,8 @@ index 27215d044..aaeef1c1b 100644
[Build fuzzing tools]))
diff --git a/test/unitTest/Makefile.am b/test/unitTest/Makefile.am
index f2b0fd994..ab232ddb7 100644
---- a/daemon/test/unitTest/Makefile.am
-+++ b/daemon/test/unitTest/Makefile.am
+--- a/test/unitTest/Makefile.am
++++ b/test/unitTest/Makefile.am
@@ -13,30 +13,6 @@ check_PROGRAMS =
####### Unit Test ########
diff --git a/gnu/packages/patches/jami-libjami-headers-search.patch b/gnu/packages/patches/jami-libjami-headers-search.patch
index 92cc92a4a6..3e7e19d703 100644
--- a/gnu/packages/patches/jami-libjami-headers-search.patch
+++ b/gnu/packages/patches/jami-libjami-headers-search.patch
@@ -1,4 +1,7 @@
-Upstream status: https://review.jami.net/c/jami-client-qt/+/24273.
+It was applied, then reverted (by mistake?) in 4d2c55348bc014.
+
+It's been resubmitted here:
+https://lists.gnu.org/archive/html/jami/2024-01/msg00005.html
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8d71b84b..36729698 100644
diff --git a/gnu/packages/patches/jami-qml-tests-discovery.patch b/gnu/packages/patches/jami-qml-tests-discovery.patch
new file mode 100644
index 0000000000..11fd69571c
--- /dev/null
+++ b/gnu/packages/patches/jami-qml-tests-discovery.patch
@@ -0,0 +1,15 @@
+Upstream status: https://review.jami.net/c/jami-client-qt/+/25640
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index d50908cf..587c9d15 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -73,6 +73,8 @@ endif()
+
+ string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE)
+
++set(QUICK_TEST_SOURCE_DIR "${CMAKE_SOURCE_DIR}tests/qml/src")
++
+ set(QML_TESTS_SOURCE_FILES
+ ${CMAKE_SOURCE_DIR}/tests/qml/main.cpp
+ ${TEST_QML_RESOURCES}
diff --git a/gnu/packages/patches/jami-skip-tests-requiring-internet.patch b/gnu/packages/patches/jami-skip-tests-requiring-internet.patch
new file mode 100644
index 0000000000..1abc0e80cb
--- /dev/null
+++ b/gnu/packages/patches/jami-skip-tests-requiring-internet.patch
@@ -0,0 +1,51 @@
+Forwarded upstream: https://lists.gnu.org/archive/html/jami/2024-01/msg00010.html
+
+From 1d3b044c85c32341cca392254fe8bbf34a4639e1 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Tue, 9 Jan 2024 11:14:04 -0500
+Subject: [PATCH] tests: Skip tests that need Internet when there's none.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* tests/unittests/messageparser_unittest.cpp (ALinkIsParsedCorrectly)
+(YoutubeLinkIsParsedCorrectly): Skip when there is no Internet.
+
+Series-to: jami@gnu.org
+Series-cc: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
+Fixes: <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1507>
+Change-Id: I0a5b57cd82f93fd7edf3fbeb73fb3db5a04c628c
+---
+ tests/unittests/messageparser_unittest.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/tests/unittests/messageparser_unittest.cpp b/tests/unittests/messageparser_unittest.cpp
+index c10b0d0b..df7a0692 100644
+--- a/tests/unittests/messageparser_unittest.cpp
++++ b/tests/unittests/messageparser_unittest.cpp
+@@ -69,6 +69,9 @@ TEST_F(MessageParserFixture, TextIsParsedCorrectly)
+ */
+ TEST_F(MessageParserFixture, ALinkIsParsedCorrectly)
+ {
++ if (!globalEnv.connectivityMonitor->isOnline())
++ GTEST_SKIP() << "ALinkIsParsedCorrectly requires Internet connectivity";
++
+ auto linkColor = QColor::fromRgb(0, 0, 255);
+ auto backgroundColor = QColor::fromRgb(0, 0, 255);
+
+@@ -174,6 +177,9 @@ TEST_F(MessageParserFixture, FencedCodeIsParsedCorrectly)
+ */
+ TEST_F(MessageParserFixture, YoutubeLinkIsParsedCorrectly)
+ {
++ if (!globalEnv.connectivityMonitor->isOnline())
++ GTEST_SKIP() << "YoutubeLinkIsParsedCorrectly requires Internet connectivity";
++
+ auto url = "https://www.youtube.com/watch?v=1234567890";
+ auto msg = "blah blah " + QString(url) + " blah blah";
+
+
+base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
+prerequisite-patch-id: 90a419e7de1f4fa5bb68bc58ad0da2817ed268e0
+--
+2.41.0
+
diff --git a/gnu/packages/patches/jami-unbundle-dependencies.patch b/gnu/packages/patches/jami-unbundle-dependencies.patch
new file mode 100644
index 0000000000..dab82b26cb
--- /dev/null
+++ b/gnu/packages/patches/jami-unbundle-dependencies.patch
@@ -0,0 +1,71 @@
+Forwarded here: https://lists.gnu.org/archive/html/jami/2024-01/msg00007.html
+
+From a302dc0a0faf2778331745a1d01bc3071e182d4d Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Mon, 8 Jan 2024 16:07:05 -0500
+Subject: [PATCH] build: Allow using system-provided md4c and tidy libraries.
+
+* CMakeLists.txt <md4c, tidy>: Search for libraries in the system
+first, falling back to bundled copies in case they aren't found.
+
+Series-to: jami@gnu.org
+Fixes: <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1506>
+Change-Id: I637959fefce6a21b0ee73a793acb6c3c42dcdce0
+---
+ CMakeLists.txt | 36 +++++++++++++++++++++++++-----------
+ 1 file changed, 25 insertions(+), 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 38e7a4e2..3f1bd599 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -545,19 +545,33 @@ add_subdirectory(3rdparty/SortFilterProxyModel)
+ set(SFPM_OBJECTS $<TARGET_OBJECTS:SortFilterProxyModel>)
+
+ # md4c
+-set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE)
+-add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL)
+-list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src)
+-list(APPEND CLIENT_INCLUDE_DIRS ${MD4C_SOURCE_DIR}/src)
+-list(APPEND CLIENT_LIBS md4c-html)
++find_package(md4c)
++if(md4c_FOUND)
++ message(STATUS "Using system-provided md4c-html")
++ list(APPEND CLIENT_LIBS md4c::md4c-html)
++else()
++ message("Using bundled md4c-html library")
++ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE)
++ add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL)
++ list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src)
++ list(APPEND CLIENT_INCLUDE_DIRS ${MD4C_SOURCE_DIR}/src)
++ list(APPEND CLIENT_LIBS md4c-html)
++endif()
+
+ # tidy-html5
+-set(BUILD_SHARED_LIB OFF CACHE BOOL "Don't build shared tidy library" FORCE)
+-set(SUPPORT_CONSOLE_APP OFF CACHE BOOL "Don't build tidy console app" FORCE)
+-add_subdirectory(3rdparty/tidy-html5 EXCLUDE_FROM_ALL)
+-list(APPEND CLIENT_LINK_DIRS ${tidy_BINARY_DIR}/Release)
+-list(APPEND CLIENT_INCLUDE_DIRS ${tidy_SOURCE_DIR}/include)
+-list(APPEND CLIENT_LIBS tidy-static)
++pkg_check_modules(tidy IMPORTED_TARGET tidy)
++if(tidy_FOUND)
++ message(STATUS "Using system-provided tidy")
++ list(APPEND CLIENT_LIBS PkgConfig::tidy)
++else()
++ message("Using bundled tidy library")
++ set(BUILD_SHARED_LIB OFF CACHE BOOL "Don't build shared tidy library" FORCE)
++ set(SUPPORT_CONSOLE_APP OFF CACHE BOOL "Don't build tidy console app" FORCE)
++ add_subdirectory(3rdparty/tidy-html5 EXCLUDE_FROM_ALL)
++ list(APPEND CLIENT_LINK_DIRS ${tidy_BINARY_DIR}/Release)
++ list(APPEND CLIENT_INCLUDE_DIRS ${tidy_SOURCE_DIR}/include)
++ list(APPEND CLIENT_LIBS tidy-static)
++endif()
+
+ # common executable sources
+ qt_add_executable(
+
+base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
+--
+2.41.0
+
diff --git a/gnu/packages/patches/jdk-currency-time-bomb.patch b/gnu/packages/patches/jdk-currency-time-bomb.patch
new file mode 100644
index 0000000000..8e6bce6fcd
--- /dev/null
+++ b/gnu/packages/patches/jdk-currency-time-bomb.patch
@@ -0,0 +1,13 @@
+Fix a time bomb present in the jdk "drop" of IcedTea.
+
+--- a/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
++++ b/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
+@@ -284,7 +284,7 @@ public class GenerateCurrencyData {
+ String timeString = currencyInfo.substring(4, length - 4);
+ long time = format.parse(timeString).getTime();
+ if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) {
+- throw new RuntimeException("time is more than 10 years from present: " + time);
++ System.err.println("note: time is more than 10 years from \"present\": " + time);
+ }
+ specialCaseCutOverTimes[specialCaseCount] = time;
+ specialCaseOldCurrencies[specialCaseCount] = oldCurrency;
diff --git a/gnu/packages/patches/jdk-currency-time-bomb2.patch b/gnu/packages/patches/jdk-currency-time-bomb2.patch
new file mode 100644
index 0000000000..94454626c4
--- /dev/null
+++ b/gnu/packages/patches/jdk-currency-time-bomb2.patch
@@ -0,0 +1,13 @@
+Fix a time bomb present in the jdk "drop" of IcedTea 8.
+
+--- a/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
++++ b/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
+@@ -284,7 +284,7 @@ public class GenerateCurrencyData {
+ String timeString = currencyInfo.substring(4, length - 4);
+ long time = format.parse(timeString).getTime();
+ if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) {
+- throw new RuntimeException("time is more than 10 years from present: " + time);
++ System.err.println("note: time is more than 10 years from \"present\": " + time);
+ }
+ specialCaseCutOverTimes[specialCaseCount] = time;
+ specialCaseOldCurrencies[specialCaseCount] = oldCurrency;
diff --git a/gnu/packages/patches/libjami-ac-config-files.patch b/gnu/packages/patches/libjami-ac-config-files.patch
new file mode 100644
index 0000000000..8508d55ee1
--- /dev/null
+++ b/gnu/packages/patches/libjami-ac-config-files.patch
@@ -0,0 +1,52 @@
+Forwarded here: https://lists.gnu.org/archive/html/jami/2024-01/msg00003.html
+
+From 20a1702d881b381979d31c456f1b8cf5e0f728ad Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Sun, 7 Jan 2024 16:40:41 -0500
+Subject: [PATCH] configure.ac: Expand AC_CONFIG_FILES to fix a race.
+
+The commands apparently run for each file listed, or something
+similar, leading to:
+
+ configure: creating ./config.status
+ config.status: creating test/agent/Makefile
+ chmod: cannot access 'test/agent/pre-inst-env': No such file or directory
+ chmod: cannot access 'test/agent/scenarios/bulk-calls/run-scenario': No such file or directory
+ config.status: creating test/agent/pre-inst-env
+ chmod: cannot access 'test/agent/scenarios/bulk-calls/run-scenario': No such file or directory
+
+* configure.ac [ENABLE_AGENT]: Separate AC_CONFIG_FILES uses per file.
+
+Series-to: jami@gnu.org
+Series-postfix: daemon
+Change-Id: Ib283955b73540248e09bf31ef44ef3d178b216fa
+---
+ configure.ac | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index cdea5ff1c..2ab96d817 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -61,11 +61,11 @@ AC_ARG_ENABLE([agent],
+ [Build agent]))
+ AM_CONDITIONAL([ENABLE_AGENT], [test "x$enable_agent" = "xyes"])
+ AM_COND_IF([ENABLE_AGENT],
+- [AC_CONFIG_FILES([test/agent/Makefile
+- test/agent/pre-inst-env:test/agent/build-aux/pre-inst-env.in
+- test/agent/scenarios/bulk-calls/run-scenario],
+- [chmod +x test/agent/pre-inst-env
+- chmod +x test/agent/scenarios/bulk-calls/run-scenario])])
++ [AC_CONFIG_FILES([test/agent/Makefile])
++ AC_CONFIG_FILES([test/agent/pre-inst-env:test/agent/build-aux/pre-inst-env.in],
++ [chmod +x test/agent/pre-inst-env])
++ AC_CONFIG_FILES([test/agent/scenarios/bulk-calls/run-scenario],
++ [chmod +x test/agent/scenarios/bulk-calls/run-scenario])])
+
+ AC_ARG_ENABLE([tracepoints], AS_HELP_STRING([--enable-tracepoints], [Enable tracepoints]))
+
+
+base-commit: e246fb2e090c9b3de55e2d455eee5a6f05a5b286
+--
+2.41.0
+
diff --git a/gnu/packages/patches/openjdk-currency-time-bomb.patch b/gnu/packages/patches/openjdk-currency-time-bomb.patch
new file mode 100644
index 0000000000..7738eb1595
--- /dev/null
+++ b/gnu/packages/patches/openjdk-currency-time-bomb.patch
@@ -0,0 +1,13 @@
+Fix a time bomb present in the OpenJDK tools.
+
+--- a/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
++++ b/jdk/make/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
+@@ -285,7 +285,7 @@ public class GenerateCurrencyData {
+ String timeString = currencyInfo.substring(4, length - 4);
+ long time = format.parse(timeString).getTime();
+ if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) {
+- throw new RuntimeException("time is more than 10 years from present: " + time);
++ System.err.println("note: time is more than 10 years from \"present\": " + time);
+ }
+ specialCaseCutOverTimes[specialCaseCount] = time;
+ specialCaseOldCurrencies[specialCaseCount] = oldCurrency;
diff --git a/gnu/packages/patches/openjdk-currency-time-bomb2.patch b/gnu/packages/patches/openjdk-currency-time-bomb2.patch
new file mode 100644
index 0000000000..d2ea04d63b
--- /dev/null
+++ b/gnu/packages/patches/openjdk-currency-time-bomb2.patch
@@ -0,0 +1,13 @@
+Fix a time bomb present in the OpenJDK tools.
+
+--- a/make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
++++ b/make/jdk/src/classes/build/tools/generatecurrencydata/GenerateCurrencyData.java
+@@ -285,7 +285,7 @@ public class GenerateCurrencyData {
+ String timeString = currencyInfo.substring(4, length - 4);
+ long time = format.parse(timeString).getTime();
+ if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) {
+- throw new RuntimeException("time is more than 10 years from present: " + time);
++ System.err.println("note: time is more than 10 years from \"present\": " + time);
+ }
+ specialCaseCutOverTimes[specialCaseCount] = time;
+ specialCaseOldCurrencies[specialCaseCount] = oldCurrency;
diff --git a/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch
new file mode 100644
index 0000000000..1af9868b9a
--- /dev/null
+++ b/gnu/packages/patches/openssh-gcc-13-ppc64le-fzero-call-used-regs.patch
@@ -0,0 +1,61 @@
+From 1036d77b34a5fa15e56f516b81b9928006848cbd Mon Sep 17 00:00:00 2001
+From: Damien Miller <djm@mindrot.org>
+Date: Fri, 22 Dec 2023 17:56:26 +1100
+Subject: [PATCH] better detection of broken -fzero-call-used-regs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc 13.2.0 on ppc64le refuses to compile some function, including
+cipher.c:compression_alg_list() with an error:
+
+> sorry, unimplemented: argument ‘used’ is not supportedcw
+> for ‘-fzero-call-used-regs’ on this target
+
+This extends the autoconf will-it-work test with a similarly-
+structured function that seems to catch this.
+
+Spotted/tested by Colin Watson; bz3645
+---
+
+Taken from upsteam, and for Guix by jackhill@jackhill.us
+Thanks Marcel van der Boom for noticing: https://issues.guix.gnu.org/67948#2
+
+m4/openssh.m4 | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/m4/openssh.m4 b/m4/openssh.m4
+index 5d4c56280..033df501c 100644
+--- a/m4/openssh.m4
++++ b/m4/openssh.m4
+@@ -20,18 +20,24 @@ char *f2(char *s, ...) {
+ va_end(args);
+ return strdup(ret);
+ }
++const char *f3(int s) {
++ return s ? "good" : "gooder";
++}
+ int main(int argc, char **argv) {
+- (void)argv;
+ char b[256], *cp;
++ const char *s;
+ /* Some math to catch -ftrapv problems in the toolchain */
+ int i = 123 * argc, j = 456 + argc, k = 789 - argc;
+ float l = i * 2.1;
+ double m = l / 0.5;
+ long long int n = argc * 12345LL, o = 12345LL * (long long int)argc;
++ (void)argv;
+ f(1);
+- snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o);
++ s = f3(f(2));
++ snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s);
+ if (write(1, b, 0) == -1) exit(0);
+- cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o);
++ cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s);
++ if (write(1, cp, 0) == -1) exit(0);
+ free(cp);
+ /*
+ * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does
+--
+2.41.0
+
diff --git a/gnu/packages/patches/python-pyls-black-41.patch b/gnu/packages/patches/python-pyls-black-41.patch
new file mode 100644
index 0000000000..5a1ebd2f54
--- /dev/null
+++ b/gnu/packages/patches/python-pyls-black-41.patch
@@ -0,0 +1,45 @@
+From ada6a999e4f5cca21a2133e449f4576dbe9a64d2 Mon Sep 17 00:00:00 2001
+From: Isaac Dadzie <4581114+idadzie@users.noreply.github.com>
+Date: Fri, 4 Feb 2022 21:18:37 +0000
+Subject: [PATCH] Add support for black 22.1.0
+
+Make changes to support black 22.1.0, which changed the return type
+of 'find_project_root' to a tuple.
+
+Resolves: #40
+---
+ pyls_black/plugin.py | 8 +++++++-
+ setup.cfg | 2 +-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/pyls_black/plugin.py b/pyls_black/plugin.py
+index dc5d482..e4f4d98 100644
+--- a/pyls_black/plugin.py
++++ b/pyls_black/plugin.py
+@@ -73,7 +73,13 @@ def load_config(filename: str) -> Dict:
+
+ root = black.find_project_root((filename,))
+
+- pyproject_filename = root / "pyproject.toml"
++ # Note: find_project_root returns a tuple in 22.1.0+
++ try:
++ # Keeping this to not break backward compatibility.
++ pyproject_filename = root / "pyproject.toml"
++ except TypeError:
++ _root, _ = root
++ pyproject_filename = _root / "pyproject.toml"
+
+ if not pyproject_filename.is_file():
+ return defaults
+diff --git a/setup.cfg b/setup.cfg
+index 036cec2..57fbe4f 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -1,6 +1,6 @@
+ [metadata]
+ name = pyls-black
+-version = 0.4.7
++version = 0.4.8
+ author = Rupert Bedford
+ author_email = rupert@rupertb.com
+ description = Black plugin for the Python Language Server
diff --git a/gnu/packages/patches/python-pyreadstat-link-libiconv.patch b/gnu/packages/patches/python-pyreadstat-link-libiconv.patch
new file mode 100644
index 0000000000..7efd71faeb
--- /dev/null
+++ b/gnu/packages/patches/python-pyreadstat-link-libiconv.patch
@@ -0,0 +1,15 @@
+To ensure libiconv can be found by Guix, we need to link the library.
+
+--- a/setup.py
++++ b/setup.py
+@@ -81,8 +81,7 @@ else:
+ libraries.extend(["m", "z"])
+ _platform = sys.platform
+ # Mac: iconv needs to be linked statically
+- if _platform.lower().startswith("darwin"):
+- libraries.append("iconv")
++ libraries.append("iconv")
+
+ # Extensions
+ sources.sort()
+
diff --git a/gnu/packages/patches/python-scikit-bio-1887.patch b/gnu/packages/patches/python-scikit-bio-1887.patch
new file mode 100644
index 0000000000..7ee7518128
--- /dev/null
+++ b/gnu/packages/patches/python-scikit-bio-1887.patch
@@ -0,0 +1,109 @@
+From 290da0472e3a0af01b242cd1d3dd6a24588db0e5 Mon Sep 17 00:00:00 2001
+From: qiyunzhu <qiyunzhu@gmail.com>
+Date: Sat, 4 Nov 2023 12:59:54 -0700
+Subject: [PATCH 1/2] removed kulsinski
+
+---
+ CHANGELOG.md | 6 ++++++
+ ci/aarch64.conda_requirements.txt | 2 +-
+ ci/conda_requirements.txt | 2 +-
+ setup.py | 2 +-
+ skbio/diversity/_driver.py | 2 --
+ 5 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/CHANGELOG.md b/CHANGELOG.md
+index 0ce69c2c6..cd9adea6c 100644
+--- a/CHANGELOG.md
++++ b/CHANGELOG.md
+@@ -2,6 +2,12 @@
+
+ ## Version 0.5.10
+
++### Features
++* SciPy 1.11+ is now supported.
++
++### Backward-incompatible changes [experimental]
++* Beta diversity metric `kulsinski` was removed. This was motivated by that SciPy replaced this distance metric with `kulczynski1` in version 1.11 (see SciPy issue [#2009](https://github.com/scipy/scipy/issues/2009)), and that both metrics do not return 0 on two identical vectors.
++
+ ### Bug fixes
+
+ * Re-enabled OpenMP support, which has been mistakenly disabled in 0.5.8 ([#1874](https://github.com/biocore/scikit-bio/pull/1874))
+diff --git a/ci/aarch64.conda_requirements.txt b/ci/aarch64.conda_requirements.txt
+index a329bc666..3564f4c3c 100644
+--- a/ci/aarch64.conda_requirements.txt
++++ b/ci/aarch64.conda_requirements.txt
+@@ -5,5 +5,5 @@ matplotlib >= 1.4.3
+ natsort >= 4.0.3
+ numpy >= 1.9.2
+ pandas >= 1.5.0
+-scipy <= 1.10.1
++scipy >= 1.9.0
+ h5py >= 3.6.0
+diff --git a/ci/conda_requirements.txt b/ci/conda_requirements.txt
+index 4402e4ebb..0f1bd715c 100644
+--- a/ci/conda_requirements.txt
++++ b/ci/conda_requirements.txt
+@@ -5,6 +5,6 @@ matplotlib >= 1.4.3
+ natsort >= 4.0.3
+ numpy >= 1.9.2
+ pandas >= 1.5.0
+-scipy <= 1.10.1
++scipy >= 1.9.0
+ h5py >= 3.6.0
+ hdmedians >= 0.14.1
+diff --git a/setup.py b/setup.py
+index 36600e427..fa4d5e0a7 100644
+--- a/setup.py
++++ b/setup.py
+@@ -221,7 +221,7 @@ def check_bin(ccbin, source, allow_dash):
+ 'natsort >= 4.0.3',
+ 'numpy >= 1.9.2',
+ 'pandas >= 1.5.0',
+- 'scipy <= 1.10.1',
++ 'scipy >= 1.9.0',
+ 'h5py >= 3.6.0',
+ 'hdmedians >= 0.14.1',
+ ],
+diff --git a/skbio/diversity/_driver.py b/skbio/diversity/_driver.py
+index 016020743..1a792efb6 100644
+--- a/skbio/diversity/_driver.py
++++ b/skbio/diversity/_driver.py
+@@ -296,7 +296,6 @@ def partial_beta_diversity(metric, counts, ids, id_pairs, validate=True,
+ "dice",
+ "hamming",
+ "jaccard",
+- "kulsinski",
+ "mahalanobis",
+ "manhattan", # aliases to "cityblock" in beta_diversity
+ "matching",
+@@ -314,7 +313,6 @@ def partial_beta_diversity(metric, counts, ids, id_pairs, validate=True,
+ _qualitative_beta_metrics = [
+ "dice",
+ "jaccard",
+- "kulsinski",
+ "matching",
+ "rogerstanimoto",
+ "russellrao",
+
+From 9dd9c6dd68a015f1159f884c57878b8a00fad14c Mon Sep 17 00:00:00 2001
+From: Qiyun Zhu <qiyunzhu@gmail.com>
+Date: Tue, 7 Nov 2023 22:42:10 -0700
+Subject: [PATCH 2/2] fixing numpy exception
+
+---
+ skbio/stats/tests/test_composition.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/skbio/stats/tests/test_composition.py b/skbio/stats/tests/test_composition.py
+index 90921be5b..e720a594f 100644
+--- a/skbio/stats/tests/test_composition.py
++++ b/skbio/stats/tests/test_composition.py
+@@ -1222,7 +1222,7 @@ def test_ancom_fail_alpha(self):
+ ancom(self.table1, self.cats1, alpha=1.1)
+
+ def test_ancom_fail_multiple_groups(self):
+- with self.assertRaises(TypeError):
++ with self.assertRaises((TypeError, np.AxisError)):
+ ancom(self.table4, self.cats4,
+ significance_test=scipy.stats.ttest_ind)
+
diff --git a/gnu/packages/patches/sbcl-fix-ppc64-build.patch b/gnu/packages/patches/sbcl-fix-ppc64-build.patch
new file mode 100644
index 0000000000..a7d4d9a21e
--- /dev/null
+++ b/gnu/packages/patches/sbcl-fix-ppc64-build.patch
@@ -0,0 +1,27 @@
+commit 255f3ead060129aa097b62f10d054cdc4997a431
+Author: Douglas Katzman <dougk@google.com>
+Date: Mon Jan 1 23:59:50 2024 -0500
+
+ Fix ppc64 failure-to-build (from a few weeks ago)
+
+ Git rev 7354472bb5 caused NIL to get a bogus widetag.
+
+diff --git a/make-target-2-load.lisp b/make-target-2-load.lisp
+index 6571ec27d..daef942ea 100644
+--- a/make-target-2-load.lisp
++++ b/make-target-2-load.lisp
+@@ -339,7 +339,13 @@ Please check that all strings which were not recognizable to the compiler
+
+
+ (do-all-symbols (symbol)
+- (sb-kernel:logior-header-bits symbol sb-vm::+symbol-initial-core+)
++ ;; Don't futz with the header of static symbols.
++ ;; Technically LOGIOR-HEADER-BITS can only be used on an OTHER-POINTER-LOWTAG
++ ;; objects, so modifying NIL should not ever work, but it's especially wrong
++ ;; on ppc64 where OTHER- and LIST- pointer lowtags are 10 bytes apart instead
++ ;; of 8, so this was making a random alteration to the header.
++ (unless (eq (heap-allocated-p symbol) :static)
++ (sb-kernel:logior-header-bits symbol sb-vm::+symbol-initial-core+))
+
+ ;; A symbol whose INFO slot underwent any kind of manipulation
+ ;; such that it now has neither properties nor globaldb info,
diff --git a/gnu/packages/patches/sbcl-fix-riscv-build.patch b/gnu/packages/patches/sbcl-fix-riscv-build.patch
new file mode 100644
index 0000000000..3e01ee6579
--- /dev/null
+++ b/gnu/packages/patches/sbcl-fix-riscv-build.patch
@@ -0,0 +1,19 @@
+commit b286d92af7468164c155c70d38213211b296fdfe
+Author: Douglas Katzman <dougk@google.com>
+Date: Wed Jan 10 11:46:55 2024 -0500
+
+ Fix riscv build
+
+diff --git a/src/compiler/riscv/float.lisp b/src/compiler/riscv/float.lisp
+index ce46d24ac..a16380293 100644
+--- a/src/compiler/riscv/float.lisp
++++ b/src/compiler/riscv/float.lisp
+@@ -578,7 +578,7 @@
+ (:results (res :scs (double-reg)))
+ (:arg-types signed-num)
+ (:result-types double-float)
+- (:translate make-double-float)
++ (:translate %make-double-float)
+ (:policy :fast-safe)
+ (:generator 2
+ (inst fmvx-> :double res bits)))
diff --git a/gnu/packages/patches/unknown-horizons-python-3.10.patch b/gnu/packages/patches/unknown-horizons-python-3.10.patch
new file mode 100644
index 0000000000..599de1fec5
--- /dev/null
+++ b/gnu/packages/patches/unknown-horizons-python-3.10.patch
@@ -0,0 +1,32 @@
+From 4ff605d6c55fcf3e9b4777ffbcb0c24ef17ba4ca Mon Sep 17 00:00:00 2001
+From: Arti <artism90@googlemail.com>
+Date: Mon, 28 Feb 2022 21:19:50 +0100
+Subject: [PATCH] Rename instances of `collections.Iterable` into
+ `collections.abc.Iterable` (#2956)
+
+---
+ horizons/ai/aiplayer/combat/unitmanager.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/horizons/ai/aiplayer/combat/unitmanager.py b/horizons/ai/aiplayer/combat/unitmanager.py
+index 8449d5563c5..57db0d47061 100644
+--- a/horizons/ai/aiplayer/combat/unitmanager.py
++++ b/horizons/ai/aiplayer/combat/unitmanager.py
+@@ -151,7 +151,7 @@ def _ship_state_rule(self, state_dict, ship_states):
+ """
+ Rule stating that ship has to be in any of given states.
+ """
+- if not isinstance(ship_states, collections.Iterable):
++ if not isinstance(ship_states, collections.abc.Iterable):
+ ship_states = (ship_states,)
+ return lambda ship: (state_dict[ship] in ship_states)
+
+@@ -178,7 +178,7 @@ def filter_ships(self, ships, rules):
+ @param rules: conditions each ship has to meet (AND)
+ @type rules: iterable of lambda(ship) or single lambda(ship)
+ """
+- if not isinstance(rules, collections.Iterable):
++ if not isinstance(rules, collections.abc.Iterable):
+ rules = (rules,)
+ return [ship for ship in ships if all((rule(ship) for rule in rules))]
+
diff --git a/gnu/packages/patches/unknown-horizons-python-3.9.patch b/gnu/packages/patches/unknown-horizons-python-3.9.patch
new file mode 100644
index 0000000000..8b93a71b6c
--- /dev/null
+++ b/gnu/packages/patches/unknown-horizons-python-3.9.patch
@@ -0,0 +1,41 @@
+From 7f6f613826aef9810999c1599c8354e8a78fbdb4 Mon Sep 17 00:00:00 2001
+From: Lukas1818 <44570204+Lukas1818@users.noreply.github.com>
+Date: Fri, 19 Feb 2021 21:08:44 +0100
+Subject: [PATCH] fixs for Phyton 3.9 (#2955)
+
+* change deprecated isAlive() to is_alive()
+
+* remove unsupported keyword "encoding"
+
+Co-authored-by: Lukas1818 <git@lukas1818.de>
+---
+ horizons/util/loaders/jsondecoder.py | 2 +-
+ horizons/util/preloader.py | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/horizons/util/loaders/jsondecoder.py b/horizons/util/loaders/jsondecoder.py
+index ea2ddfb3308..138a948f42a 100644
+--- a/horizons/util/loaders/jsondecoder.py
++++ b/horizons/util/loaders/jsondecoder.py
+@@ -37,4 +37,4 @@ def _decode_dict(dct):
+ return newdict
+
+ with open(path, "r") as f:
+- return json.load(f, encoding="ascii", object_hook=_decode_dict)
++ return json.load(f, object_hook=_decode_dict)
+diff --git a/horizons/util/preloader.py b/horizons/util/preloader.py
+index 5689cc68152..2e072fcc642 100644
+--- a/horizons/util/preloader.py
++++ b/horizons/util/preloader.py
+@@ -79,9 +79,9 @@ def wait_for_finish(self):
+ """
+ self.lock.acquire()
+ # wait until it finished its current action
+- if self.isAlive():
++ if self.is_alive():
+ self.join()
+- assert not self.isAlive()
++ assert not self.is_alive()
+ else:
+ try:
+ self.lock.release()
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 95b19b60b1..667d8edba4 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2021, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Nikita <nikita@n0.is>
@@ -371,7 +371,23 @@ please install the @code{flyer-composer-gui} package.")))
(setenv "PKG_CONFIG" #$(pkg-config-for-target))))))))
(synopsis "PDF rendering library")
(description
- "Poppler is a PDF rendering library based on the xpdf-3.0 code base.")
+ "Poppler is a PDF rendering library based on the xpdf-3.0 code base.
+Poppler gives access to the following binary programs:
+@itemize
+@item pdfattach
+@item pdfdetach
+@item pdffonts
+@item pdfimages
+@item pdfinfo
+@item pdfseparate
+@item pdfsig
+@item pdftocairo
+@item pdftohtml
+@item pdftoppm
+@item pdftops
+@item pdftotext
+@item pdfunite
+@end itemize")
(license license:gpl2+)
(home-page "https://poppler.freedesktop.org/")))
@@ -1119,38 +1135,28 @@ optimize toolbar for portrait / landscape
(define-public python-reportlab
(package
(name "python-reportlab")
- (version "3.5.42")
+ (version "4.0.8")
(source (origin
(method url-fetch)
(uri (pypi-uri "reportlab" version))
(sha256
(base32
- "0i17qgm7gzy7pzp240mkpsx9rn8rr67jh5npp5bylv3sd41g48cw"))))
+ "0lq8fibbgp7bfasxjf33s4hzqr405y655bkxggxmjxqsga0lb68n"))))
(build-system python-build-system)
(arguments
- '(;; FIXME: There is one test failure, building the pdf manual from source,
- ;; but it does not cause the build to fail.
- #:test-target "tests"
- #:configure-flags (list "--use-system-libart")
- #:phases
- (modify-phases %standard-phases
+ (list
+ #:test-target "tests"
+ #:configure-flags '(list "--no-download-t1-files")
+ #:phases
+ #~(modify-phases %standard-phases
(add-after 'unpack 'find-libraries
(lambda* (#:key inputs #:allow-other-keys)
- (let ((libart (assoc-ref inputs "libart-lgpl"))
- (freetype (assoc-ref inputs "freetype"))
- (dlt1 (assoc-ref inputs "font-curve-files")))
+ (let ((dlt1 (assoc-ref inputs "font-curve-files")))
(substitute* "setup.py"
- (("/usr/include/libart-\\*")
- (string-append libart "/include/libart-2.0"))
- (("/usr/include/freetype2")
- (string-append freetype "/include"))
(("http://www.reportlab.com/ftp/pfbfer-20180109.zip")
- (string-append "file://" dlt1)))
- #t))))))
+ (string-append "file://" dlt1)))))))))
(inputs
- `(("freetype" ,freetype)
- ("libart-lgpl" ,libart-lgpl)
- ("font-curve-files"
+ `(("font-curve-files"
,(origin
(method url-fetch)
(uri "http://www.reportlab.com/ftp/pfbfer-20180109.zip")
@@ -1158,7 +1164,7 @@ optimize toolbar for portrait / landscape
(base32
"1v0gy4mbx02ys96ssx89420y0njknlrxs2bx64bv4rp8a0al66w5"))))))
(propagated-inputs
- (list python-pillow))
+ (list python-chardet python-pillow))
(home-page "https://www.reportlab.com")
(synopsis "Python library for generating PDFs and graphics")
(description "This is the ReportLab PDF Toolkit. It allows rapid creation
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index 884da3c99f..f2ee27db99 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2022, 2023 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2023 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2023 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -209,7 +210,7 @@ satisfiability checking (SAT).")
"unpool-ast-v2" "parse_term"
"propagator" "propgator-sequence-mining"
"symbol" "visitor"))))))))))
- (inputs (list catch2-3.3 clasp libpotassco))
+ (inputs (list catch2-3 clasp libpotassco))
(native-inputs (list mpark-variant
pkg-config
tl-optional
@@ -429,7 +430,7 @@ logic programs based on clingo.")
(define-public python-clingraph
(package
(name "python-clingraph")
- (version "1.1.0")
+ (version "1.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -438,7 +439,7 @@ logic programs based on clingo.")
(file-name (git-file-name name version))
(sha256
(base32
- "0bdhli20nw9qnyxmpisgz7m97d7bwx6lbmxy9bgqvm6mipprnv3n"))))
+ "16q54rkwr84byzy27795rl9z08kcyxsg7lfk017yr8p5axh9a9rr"))))
(build-system pyproject-build-system)
(inputs (list dot2tex graphviz))
(propagated-inputs (list python-clingo
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index f02ca10298..37cabf4cff 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019, 2021-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -2140,20 +2140,29 @@ help in debugging failures and optimizing the scheduler to improve speed.")
(method url-fetch)
(uri (pypi-uri "pytest-sanic" version))
(sha256
- (base32
- "0shq1bqnydj0l3ipb73j1qh5kqcjvzkps30zk8grq3dwmh3wmnkr"))))
+ (base32
+ "0shq1bqnydj0l3ipb73j1qh5kqcjvzkps30zk8grq3dwmh3wmnkr"))))
+ ;; We don't use pyproject-build-system because that would require
+ ;; poetry.masonry.
(build-system python-build-system)
(arguments
;; Tests depend on python-sanic.
- `(#:tests? #f))
+ (list
+ #:tests? #f
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "setup.py"
+ (("websockets.*<11.0")
+ "websockets<12.0")))))))
(propagated-inputs
- (list python-httpx python-async-generator python-pytest
- python-websockets))
- (home-page
- "https://github.com/yunstanford/pytest-sanic")
+ (list python-httpx python-async-generator python-pytest
+ python-websockets))
+ (home-page "https://github.com/yunstanford/pytest-sanic")
(synopsis "Pytest plugin for Sanic")
- (description "A pytest plugin for Sanic. It helps you to test your
-code asynchronously.")
+ (description "This package provides a pytest plugin for Sanic. It helps
+you to test your code asynchronously.")
(license license:expat)))
(define-public python-allpairspy
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index bc96bc05d3..6f249dd3af 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020, 2022, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
+;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -416,6 +417,39 @@ the LZ4 frame format.")
(description "Lz-string is a string compressor library for Python.")
(license license:expat)))
+(define-public python-python-snappy
+ (package
+ ;; PyPI contains both `snappy' and `python-snappy' as completely distinct
+ ;; packages. To avoid a name collision in Guix, we use the variable name
+ ;; `python-python-snappy' for the package called `python-snappy' on PyPI.
+ (name "python-python-snappy")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-snappy" version))
+ (sha256
+ (base32 "0amv12w0ybn6n1lk36x70a3l8bdjv4mn7iflb59wqsi00smhg8dn"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "-k"
+ ;; CFFI is only supported for PyPy builds.
+ (string-append "not test_snappy_cffi_enum "
+ "and not test_snappy_all_cffi"))))))))
+ (inputs (list snappy))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/andrix/python-snappy")
+ (synopsis "Python bindings for the Snappy compression library")
+ (description
+ "@code{python-python-snappy} provides bindings to the Snappy library and
+can be used to compress and decompress files and streams. It can also be used
+directly from the command line.")
+ (license license:bsd-3)))
+
(define-public bitshuffle
(package
(name "bitshuffle")
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 262d5b7b98..f5baea60b5 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2020, 2021, 2022, 2023, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
@@ -84,21 +84,16 @@
(define-public python-scipy
(package
(name "python-scipy")
- (version "1.10.1")
+ (version "1.11.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scipy" version))
(sha256
- (base32 "19gk88nvrxl050nasz25qpmmqvbdk247bkj09jx8jibv1awdzy9c"))))
+ (base32 "1amfxpnni0cagwjpb0i1kdgnh4sh484ryn4gfkgbjcspgy7bg8lh"))))
(build-system pyproject-build-system)
(arguments
(list
- ;; FIXME: The default 'mesonpy' build system doesn't seem to work with
- ;; our pyproject-build-system, errors with: AttributeError: 'list'
- ;; object has no attribute 'items' (see:
- ;; https://issues.guix.gnu.org/62781).
- #:build-backend "setuptools.build_meta"
#:phases
#~(modify-phases %standard-phases
(replace 'check
@@ -141,7 +136,7 @@
(format #t "sphinx-build not found, skipping~%"))))))))
(propagated-inputs
(list python-numpy python-matplotlib python-pyparsing python-pythran))
- (inputs (list openblas pybind11))
+ (inputs (list openblas pybind11-2.10))
(native-inputs
(list gfortran
;; XXX: Adding gfortran shadows GCC headers, causing a compilation
@@ -149,7 +144,11 @@
gcc
meson-python
pkg-config
- python-cython
+ python-click
+ python-cython-0.29.35
+ python-doit
+ python-pooch
+ python-pydevtool
python-pytest
python-pytest-xdist
python-threadpoolctl))
@@ -264,31 +263,31 @@ logic, also known as grey logic.")
(define-public python-scikit-image
(package
(name "python-scikit-image")
- (version "0.19.3")
+ (version "0.22.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "scikit-image" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/scikit-image/scikit-image")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0l645smf7w1kail70z8d9r3xmvz7qh6g7n3d2bpacbbnw5ykdd94"))))
- (build-system python-build-system)
+ (base32 "10fzyq2w1ldvfkmj374l375yrx33xrlw39xc9kmk8fxfi77jpykd"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'build 'change-home-dir
- (lambda _
- ;; Change from /homeless-shelter to /tmp for write permission.
- (setenv "HOME" "/tmp")
- #t))
- (replace 'build
- (lambda _
- (invoke "make")))
- (replace 'check
- (lambda _
- ;; The following tests require online data.
- (invoke "python" "-m" "pytest" "skimage" "--doctest-modules" "-k"
- (string-append "not test_ndim"
- " and not test_skin")))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'change-home-dir
+ (lambda _
+ ;; Change from /homeless-shelter to /tmp for write permission.
+ (setenv "HOME" "/tmp")))
+ (replace 'check
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "/tmp"
+ (apply invoke "pytest" "-v" "--doctest-modules"
+ (append test-flags (list #$output))))))))))
;; See requirements/ for the list of build and run time requirements.
;; NOTE: scikit-image has an optional dependency on python-pooch, however
;; propagating it would enable many more tests that require online data.
@@ -296,6 +295,7 @@ logic, also known as grey logic.")
(list python-cloudpickle
python-dask
python-imageio
+ python-lazy-loader
python-matplotlib
python-networkx
python-numpy
@@ -305,9 +305,13 @@ logic, also known as grey logic.")
python-scipy
python-tifffile))
(native-inputs
- (list python-cython
+ (list meson-python
+ python-cython
+ python-numpydoc
+ python-packaging
python-pytest
- python-pytest-localserver))
+ python-pytest-localserver
+ python-wheel))
(home-page "https://scikit-image.org/")
(synopsis "Image processing in Python")
(description
@@ -331,7 +335,15 @@ logic, also known as grey logic.")
;; These are for compatibility with more recent versions of
;; numpy and scikit-learn.
(search-patches "python-scikit-optimize-1148.patch"
- "python-scikit-optimize-1150.patch"))))
+ "python-scikit-optimize-1150.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Since scikit-learn 1.3 max_features no longer supports
+ ;; 'auto', which is identical to 'sqrt'
+ '(substitute* '("skopt/learning/forest.py"
+ "skopt/learning/tests/test_forest.py")
+ (("max_features=['\"]auto['\"]")
+ "max_features='sqrt'")))))
(build-system pyproject-build-system)
(propagated-inputs
(list python-joblib
@@ -468,71 +480,73 @@ tissue-specificity metrics for gene expression.")
(define-public python-pandas
(package
(name "python-pandas")
- (version "1.4.4")
+ (version "1.5.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pandas" version))
(sha256
- (base32 "0ryv66s9cvd27q6a985vv556k2qlnlrdna2z7qc7bdhphrrhsv5b"))))
- (build-system python-build-system)
+ (base32 "1cdhngylzh352wx5s3sjyznn7a6kmjqcfg97hgqm5h3yb9zgv8vl"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:modules ((guix build utils)
- (guix build python-build-system)
- (ice-9 ftw)
- (srfi srfi-1)
- (srfi srfi-26))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'enable-parallel-build
- (lambda _
- (substitute* "setup.py"
- (("\"-j\", type=int, default=1")
- (format #f "\"-j\", type=int, default=~a"
- (parallel-job-count))))))
- (add-after 'unpack 'patch-which
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((which (assoc-ref inputs "which")))
- (substitute* "pandas/io/clipboard/__init__.py"
- (("^WHICH_CMD = .*")
- (string-append "WHICH_CMD = \"" which "\"\n"))))))
- (add-before 'check 'prepare-x
- (lambda _
- (system "Xvfb &")
- (setenv "DISPLAY" ":0")
- ;; xsel needs to write a log file.
- (setenv "HOME" "/tmp")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (let ((build-directory
- (string-append
- (getcwd) "/build/"
- (first (scandir "build"
- (cut string-prefix? "lib." <>))))))
+ (list
+ #:test-flags
+ '(list "--pyargs" "pandas"
+ "-n" (number->string (parallel-job-count))
+ "-m" "not slow and not network and not db"
+ "-k"
+ (string-append
+ ;; TODO: Missing input
+ "not TestS3"
+ " and not s3"
+ ;; No module named 'pandas.io.sas._sas'
+ " and not test_read_expands_user_home_dir"
+ " and not test_read_non_existent"
+ ;; Unknown failures
+ " and not test_switch_options"
+ ;; Crashes
+ " and not test_bytes_exceed_2gb"
+ ;; get_subplotspec() returns None; possibly related to
+ ;; https://github.com/pandas-dev/pandas/issues/54577
+ " and not test_plain_axes"
+ ;; This test fails when run with pytest-xdist
+ ;; (see https://github.com/pandas-dev/pandas/issues/39096).
+ " and not test_memory_usage"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-build-system
+ (lambda _
(substitute* "pyproject.toml"
;; Not all data files are distributed with the tarball.
- (("--strict-data-files ") ""))
- (with-directory-excursion build-directory
- (when tests?
- (invoke "pytest" "-vv" "pandas" "--skip-slow"
- "--skip-network"
- "-n" (number->string (parallel-job-count))
- "-k"
- (string-append
- ;; These test access the internet (see:
- ;; https://github.com/pandas-dev/pandas/issues/45085).:
- ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml]
- ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree]
- "not test_wrong_url"
- ;; TODO: Missing input
- " and not TestS3"
- " and not s3"
- ;; This test fails when run with pytest-xdist
- ;; (see:
- ;; https://github.com/pandas-dev/pandas/issues/39096).
- " and not test_memory_usage"))))))))))
+ (("--strict-data-files ") "")
+ ;; Unknown property "asyncio_mode"
+ (("asyncio_mode = \"strict\"") ""))))
+ (add-after 'unpack 'patch-which
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "pandas/io/clipboard/__init__.py"
+ (("^WHICH_CMD = .*")
+ (string-append "WHICH_CMD = \""
+ (search-input-file inputs "/bin/which")
+ "\"\n")))))
+ (add-before 'check 'prepare-x
+ (lambda _
+ (system "Xvfb &")
+ (setenv "DISPLAY" ":0")
+ ;; xsel needs to write a log file.
+ (setenv "HOME" "/tmp")))
+ ;; The compiled libraries are only in the output at this point,
+ ;; but they are needed to run tests.
+ ;; FIXME: This should be handled by the pyargs pytest argument,
+ ;; but is not for some reason.
+ (add-before 'check 'pre-check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (copy-recursively
+ (string-append (site-packages inputs outputs)
+ "/pandas/_libs")
+ "pandas/_libs"))))))
(propagated-inputs
(list python-jinja2
+ python-matplotlib
python-numpy
python-openpyxl
python-pytz
@@ -542,7 +556,7 @@ tissue-specificity metrics for gene expression.")
(inputs
(list which xclip xsel))
(native-inputs
- (list python-cython
+ (list python-cython-0.29.35
python-beautifulsoup4
python-lxml
python-html5lib
@@ -817,18 +831,21 @@ multiple deep learning frameworks.")
(define-public python-xarray
(package
(name "python-xarray")
- (version "2023.6.0")
+ (version "2023.12.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "xarray" version))
(sha256
(base32
- "1339fz5gxkizq02h6vn19546x9p4c3nd9ipzpcg39h7gwhg26yi6"))))
+ "0cyldwchcrmbm1y7l1ry70kk8zdh7frxci3c6iwf4iyyj34dnra5"))))
(build-system pyproject-build-system)
+ (arguments
+ ;; This needs a more recent version of python-hypothesis
+ (list #:test-flags '(list "--ignore=xarray/tests/test_strategies.py")))
(native-inputs
(list python-setuptools-scm python-pytest))
(propagated-inputs
- (list python-numpy python-pandas))
+ (list python-numpy python-packaging python-pandas))
(home-page "https://github.com/pydata/xarray")
(synopsis "N-D labeled arrays and datasets")
(description "Xarray (formerly xray) makes working with labelled
@@ -1374,6 +1391,7 @@ Mathematics (GLM) library to Python.")
"test_shutdown"
"test_shutdown_localcluster"
"test_teardown_failure_doesnt_crash_scheduler"
+ "test_tell_workers_when_peers_have_left"
"test_threadpoolworkers_pick_correct_ioloop"
"test_tls_listen_connect"
"test_tls_temporary_credentials_functional"
@@ -1980,7 +1998,20 @@ DICOM data in a pythonic way.")
(base32
"1wqzwh3y0mjdyba5kfbvlamn561d3afz50zi712c7klkysz3mzva"))))
(arguments
- (list #:phases #~(modify-phases %standard-phases
+ ;; XXX: The project may no longer be compatible with the version of
+ ;; numpy packed in Guix.
+ ;; See: https://github.com/uchicago-cs/deepdish/issues/50.
+ ;;
+ ;; However, there is a maintained fork that appears to be a good
+ ;; replacement: https://github.com/portugueslab/flammkuchen.
+ ;;
+ ;; Disable few failing tests to pass the build.
+ (list #:test-flags
+ #~(list "-k" (string-append "not test_pad"
+ " and not test_pad_repeat_border"
+ " and not test_pad_repeat_border_corner"
+ " and not test_pad_to_size"))
+ #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'dont-vendor-six
(lambda _
(delete-file "deepdish/six.py")
@@ -1991,7 +2022,7 @@ DICOM data in a pythonic way.")
"from deepdish import io, __version__
import six
")))))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(native-inputs (list python-pandas))
(propagated-inputs (list python-numpy python-scipy python-six
python-tables))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 14932459ff..e7f37ff517 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2020 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2017, 2019-2023 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
@@ -60,6 +60,7 @@
;;; Copyright © 2022 Baptiste Strazzulla <bstrazzull@hotmail.fr>
;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
+;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -201,6 +202,38 @@ scripting Launchpad via its the web service API.")
reusable library for parsing, manipulating, and generating URIs.")
(license license:lgpl3)))
+(define-public python-portend
+ (package
+ (name "python-portend")
+ (version "3.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "portend" version))
+ (sha256
+ (base32 "0wpvixicc3d0lack65554mvdrrckkn18p1xcgiv9v5cwq59a6l2j"))))
+ (build-system pyproject-build-system)
+ ;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
+ ;; download dependencies.
+ (arguments
+ '(#:test-flags '("-k" "not project")))
+ (propagated-inputs (list python-tempora))
+ ;; TODO: Add python-pytest-ruff to native-inputs once it has been packaged.
+ (native-inputs (list python-pytest
+ python-pytest-black
+ python-pytest-checkdocs
+ python-pytest-cov
+ python-pytest-enabler
+ python-pytest-mypy))
+ (home-page "https://github.com/jaraco/portend")
+ (synopsis "Monitor TCP ports for bound or unbound states")
+ (description
+ "@code{python-portend} can be used to monitor TCP ports for bound or
+unbound states. For example, waiting for a port to be occupied or freed
+within a set timeout. @code{python-portend} can also be used directly from
+the command line.")
+ (license license:expat)))
+
(define-public python-prawcore
(package
(name "python-prawcore")
@@ -2347,33 +2380,30 @@ RFC6455, regardless of your programming paradigm.")
(package
(name "hypercorn")
(version "0.14.4")
- (source (origin
- (method git-fetch) ;PyPI does not have tests
- (uri (git-reference
- (url "https://github.com/pgjones/hypercorn")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0zyf5b8959sd12ycmqzvsb8746i3gn76rz55gxvix5cwj672m7yx"))))
+ (source
+ (origin
+ (method git-fetch) ;PyPI does not have tests
+ (uri (git-reference
+ (url "https://github.com/pgjones/hypercorn")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zyf5b8959sd12ycmqzvsb8746i3gn76rz55gxvix5cwj672m7yx"))))
(build-system pyproject-build-system)
;; Propagate because Hypercorn also exposes functionality over a module.
- (propagated-inputs
- (list python-h11
- python-h2
- python-priority
- python-toml
- python-typing-extensions
- python-wsproto))
- (native-inputs
- (list python-hypothesis
- python-mock
- python-poetry-core
- python-pytest
- python-pytest-asyncio
- python-pytest-cov
- python-pytest-trio
- python-trio))
+ (propagated-inputs (list python-exceptiongroup
+ python-h11
+ python-h2
+ python-priority
+ python-tomli
+ python-wsproto))
+ (native-inputs (list python-hypothesis
+ python-poetry-core
+ python-pytest
+ python-pytest-asyncio
+ python-pytest-cov
+ python-pytest-trio
+ python-trio))
(home-page "https://gitlab.com/pgjones/hypercorn/")
(synopsis "ASGI Server based on Hyper libraries")
(description
@@ -2595,6 +2625,32 @@ your Web app.")
object to help create WSGI responses.")
(license license:expat)))
+(define-public python-zc-lockfile
+ (package
+ (name "python-zc-lockfile")
+ (version "3.0.post1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "zc.lockfile" version))
+ (sha256
+ (base32 "1v41irj7azaag3f14xyviv3l8mvap74v5p3q274k68vakrnyxcmd"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (invoke "zope-testrunner" "--test-path=src")
+ (format #t "test suite not run~%")))))))
+ (native-inputs (list python-zope-testing python-zope-testrunner))
+ (home-page "https://github.com/zopefoundation/zc.lockfile")
+ (synopsis "Interprocess locks using lock files")
+ (description
+ "This package provides an implementation of interprocess locks using lock
+files. These locks can also be used to mediate access to other files.")
+ (license license:zpl2.1)))
+
(define-public python-zope-event
(package
(name "python-zope-event")
@@ -3241,15 +3297,21 @@ than Python’s urllib2 library.")
(package
(name "python-requests-kerberos")
(version "0.14.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "requests-kerberos" version))
- (sha256
- (base32
- "1lbgjs779cjxhz07lfl9dbyp3qfh8a3ir2393042wfg518jd3afd"))))
- (build-system python-build-system)
- (propagated-inputs (list python-cryptography python-pyspnego
- python-requests))
+ ;; No tests in the PyPI tarball.
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/requests/requests-kerberos")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0s30pcnlir3j2jmf7yh065f294cf3x0x5i3ldskn8mm0a3657mv3"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-cryptography
+ python-pyspnego
+ python-requests))
+ (native-inputs (list python-pytest python-pytest-mock))
(home-page "https://github.com/requests/requests-kerberos")
(synopsis "Kerberos authentication handler for python-requests")
(description "This package provides a Kerberos authentication handler for
@@ -7054,14 +7116,14 @@ as a Python package.")
(define-public python-sanic-routing
(package
(name "python-sanic-routing")
- (version "0.7.2")
+ (version "23.12.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sanic-routing" version))
(sha256
- (base32 "0k9paln0jd4sc2bklp977c82n29pk12wiv726siplkh57y5yi70k"))))
- (build-system python-build-system)
+ (base32 "014bhkharcgyprdvlk7wjxhjp1pr0cva1nwj4f2qrr23qiidrjhx"))))
+ (build-system pyproject-build-system)
(arguments
;; PyPi sources does not contain tests, recursive dependency on
;; python-sanic.
@@ -7075,29 +7137,19 @@ the @code{BasicRouter}.")
(define-public python-sanic-testing
(package
(name "python-sanic-testing")
- (version "22.3.0")
+ (version "23.12.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sanic-testing" version))
(sha256
- (base32 "1vkgi9d3xyik507j4jy9s74mkl81hgx3c2d5y3aa1av9h6wjjivp"))))
- (build-system python-build-system)
+ (base32 "0gqkzv90sbj9rw7yfly9c58lq9dq30g5hhcgjl3ihzjb66vm571b"))))
+ (build-system pyproject-build-system)
(arguments
;; PyPi sources does not contain tests, recursive dependency on
;; python-sanic.
- (list #:tests? #f
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'loosen-requirements
- (lambda _
- ;; Don't place an upper boundary on httpx version.
- ;; https://github.com/sanic-org/sanic-testing/pull/39
- (substitute* "setup.py"
- (("httpx>=0\\.18,<0\\.23")
- "httpx>=0.18")))))))
- (propagated-inputs (list python-httpx python-sanic-bootstrap
- python-websockets))
+ (list #:tests? #f))
+ (propagated-inputs (list python-httpx python-sanic-bootstrap))
(home-page "https://github.com/sanic-org/sanic-testing/")
(synopsis "Test clients for Sanic")
(description "Internal package for @code{python-sanic}, which is
@@ -7108,69 +7160,85 @@ applications.")
(define-public python-sanic
(package
(name "python-sanic")
- ;; We provide the latest LTS version of python-sanic.
- (version "21.12.1")
+ (version "23.12.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sanic" version))
(sha256
(base32
- "0b8mcd1q9qkwcv2qz8nlyaacs0bp7a1l31sdq2m8hhkxykzfq5bg"))))
- (build-system python-build-system)
+ "115vnir4qijv89139g5h0i4l0n4w3bgh1ickgnk8xidxsa0wla15"))))
+ (build-system pyproject-build-system)
(arguments
(list
+ #:test-flags
+ '(list "-k"
+ (string-append
+ ;; PyPi sources lack examples module.
+ "not test_gunicorn_"
+ ;; Does not expect brotli and reordered headers.
+ " and not test_raw_headers"
+ ;; These look like buggy testcases.
+ " and not test_zero_downtime"
+ " and not test_non_default_uvloop_config_raises_warning"
+ " and not test_listeners_triggered"
+ " and not test_keep_alive_connection_context"
+ " and not test_keep_alive_client_timeout"
+ ;; Unclear why they fail since core-updates merge.
+ " and not test_missing_sni"
+ " and not test_no_matching_cert"
+ " and not test_wildcards"
+ ;; These tests fail because subprotocols appear to be
+ ;; parameterized as None
+ " and not test_websocket_route_with_subprotocols"
+ ;; AF_UNIX path too long
+ " and not test_setup_and_teardown_unix"
+ " and not test_configure_socket"
+ ;; Freezes
+ " and not test_server_run_with_repl"))
#:phases
- #~(modify-phases %standard-phases
+ #~(modify-phases %standard-phases
(replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests?
- (invoke "pytest" "-vv" "./tests" "-k"
- (string-append
- ;; PyPi sources lack examples module.
- "not test_gunicorn_"
- ;; Does not expect brotli and reordered headers.
- " and not test_raw_headers"
- ;; These look like buggy testcases.
- " and not test_zero_downtime"
- " and not test_non_default_uvloop_config_raises_warning"
- " and not test_listeners_triggered"
- " and not test_keep_alive_connection_context"
- " and not test_keep_alive_client_timeout"
- ;; Unclear why they fail since core-updates merge.
- " and not test_missing_sni"
- " and not test_no_matching_cert"
- " and not test_wildcards"))))))))
+ (apply invoke "pytest" "-vv" "./tests"
+ test-flags)))))))
(propagated-inputs
(list python-aiofiles
+ python-aioquic
+ python-html5tagger
python-httptools
python-multidict
python-sanic-routing
+ python-tracerite
+ python-typing-extensions
python-ujson
python-uvloop
python-websockets))
(native-inputs
- (list gunicorn
- python-bandit
+ (list python-bandit
python-beautifulsoup4
python-chardet
- python-isort
+ python-coverage
+ python-cryptography
+ python-docutils
+ python-mypy
+ python-pygments
python-pytest
python-pytest-benchmark
python-pytest-sanic
- python-pytest-sugar
- python-pytest-asyncio
python-sanic-testing
+ python-slotscheck
+ python-towncrier
+ python-tox
+ python-types-ujson
python-uvicorn))
- (home-page
- "https://github.com/sanic-org/sanic/")
- (synopsis
- "Async Python web server/framework")
+ (home-page "https://github.com/sanic-org/sanic/")
+ (synopsis "Async Python web server/framework")
(description
- "Sanic is a Python web server and web framework
-that's written to go fast. It allows the usage of the
-@code{async/await} syntax added in Python 3.5, which makes
-your code non-blocking and speedy.")
+ "Sanic is a Python web server and web framework that's written to go
+fast. It allows the usage of the @code{async/await} syntax added in Python
+3.5, which makes your code non-blocking and speedy.")
(license license:expat)))
(define-public python-sanic-bootstrap
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 864e7c3537..0b7bf4f825 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com>
;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
-;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015-2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
@@ -145,7 +145,7 @@
;;; Copyright © c4droid <c4droid@foxmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
-;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2023, 2024 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -174,6 +174,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
@@ -256,6 +257,7 @@
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages statistics)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
#:use-module (gnu packages terminals)
@@ -536,6 +538,147 @@ workspaces.
@end itemize")
(license license:gpl3+)))
+(define-public python-databind-core
+ (package
+ (name "python-databind-core")
+ (version "4.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "databind.core" version))
+ (sha256
+ (base32 "130hr19kbzizx9n2q7cwfzfk20ii3cqmqjrzb16psnafll303k2d"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'fix-name
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((sitedir (site-packages inputs outputs))
+ (dist-info
+ (string-append sitedir "/databind_core-" #$version ".dist-info")))
+ (substitute* (string-append dist-info "/METADATA")
+ (("Name: databind-core")
+ "Name: databind.core"))
+ (substitute* (string-append dist-info "/RECORD")
+ (("databind_core") "databind.core"))
+ (rename-file dist-info
+ (string-append sitedir
+ "/databind.core-"
+ #$version ".dist-info"))))))))
+ (propagated-inputs
+ (list python-deprecated
+ python-nr-date
+ python-nr-stream
+ python-typeapi
+ python-typing-extensions))
+ (native-inputs
+ (list python-poetry-core python-pytest))
+ (home-page "https://niklasrosenstein.github.io/python-databind/core/")
+ (synopsis
+ "Library for de-/serializing Python dataclasses")
+ (description
+ "Databind is a library inspired by jackson-databind to de-/serialize
+Python dataclasses.")
+ (license license:expat)))
+
+(define-public python-databind-json
+ (package
+ (name "python-databind-json")
+ (version "4.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "databind.json" version))
+ (sha256
+ (base32 "1lm864d7arfq0pw64hyc83bwn1z94wjg7a22q1xf0qkjynqs70gg"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'fix-name
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((sitedir (site-packages inputs outputs))
+ (dist-info
+ (string-append sitedir "/databind_json-" #$version ".dist-info")))
+ (substitute* (string-append dist-info "/METADATA")
+ (("Name: databind-json")
+ "Name: databind.json"))
+ (substitute* (string-append dist-info "/RECORD")
+ (("databind_json") "databind.json"))
+ (rename-file dist-info
+ (string-append sitedir
+ "/databind.json-"
+ #$version ".dist-info"))))))))
+ (propagated-inputs
+ (list python-databind-core python-nr-date
+ python-typeapi python-typing-extensions))
+ (native-inputs (list python-poetry-core python-pytest))
+ (home-page "https://niklasrosenstein.github.io/python-databind/json/")
+ (synopsis
+ "De-/serialize Python dataclasses to or from JSON payloads")
+ (description
+ "The @code{databind.json} package implements the de-/serialization to or
+from JSON payloads using the @code{databind.core} framework.")
+ (license license:expat)))
+
+(define-public python-docspec
+ (package
+ (name "python-docspec")
+ (version "2.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "docspec" version))
+ (sha256
+ (base32 "1zqmdrc6k8pprra8p3wpzq2ml2gph1cfjmsyg07f8b8fvizffm28"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
+ (propagated-inputs
+ (list python-databind-core
+ python-databind-json
+ python-deprecated))
+ (native-inputs
+ (list python-poetry-core))
+ (home-page "https://github.com/NiklasRosenstein/python-docspec")
+ (synopsis "Represent API documentation of programming languages")
+ (description
+ "Docspec is a JSON object specification for representing API
+documentation of programming languages.")
+ (license license:expat)))
+
+(define-public python-docspec-python
+ (package
+ (name "python-docspec-python")
+ (version "2.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "docspec_python" version))
+ (sha256
+ (base32 "0n8m52vxmlvkj7p5jmd4rfdks65rrp4q4vzak44y6kbg9l5qa6y4"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #false ;there are none
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ ;; We don't have black 23.
+ (substitute* "pyproject.toml"
+ (("23.1.0") "22.3.0")))))))
+ (propagated-inputs (list python-black python-docspec python-nr-util))
+ (native-inputs (list python-poetry-core))
+ (home-page "https://github.com/NiklasRosenstein/docspec/")
+ (synopsis "Produce docspec data from Python source code")
+ (description
+ "This package provides a parser based on @code{lib2to3} producing
+@code{docspec} data from Python source code.")
+ (license license:expat)))
+
(define-public python-fire
(package
(name "python-fire")
@@ -588,6 +731,7 @@ and variables you'll need already imported and created.
(build-system pyproject-build-system)
(arguments
(list
+ #:tests? #false ;there are none
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'remove-invalid-syntax
@@ -689,6 +833,7 @@ features of the Python's built-in dict.")
(base32
"05zf0xn7ab40dan213fwbp1z4rybih8dphf9mzb2ddmbafxq41mv"))))
(build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
(propagated-inputs (list python-matplotlib python-numpy))
(home-page "https://github.com/Phlya/adjustText")
(synopsis "Adjust text position in matplotlib plots to minimize overlaps")
@@ -863,6 +1008,46 @@ as functions or string constants to form colored terminal output.")
into dataclasses.")
(license license:expat)))
+(define-public python-contourpy
+ (package
+ (name "python-contourpy")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "contourpy" version))
+ (sha256
+ (base32 "088bhyh6m6q0h637wiq2paqhwn76hqvvbhqwacfx4a1qhv1lcc75"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ ;; All these tests require matplotlib, but matplotlib requires contourpy
+ ;; now.
+ '(list "-k" "not test_mypy"
+ "--ignore=tests/test_config.py"
+ "--ignore=tests/test_filled.py"
+ "--ignore=tests/test_lines.py"
+ "--ignore=tests/test_renderer.py")))
+ (propagated-inputs (list python-mypy
+ python-numpy
+ python-pillow
+ python-pytest
+ python-pytest-cov
+ python-pytest-xdist
+ python-selenium
+ python-sphinx
+ python-sphinx-copybutton
+ python-wurlitzer))
+ (native-inputs (list meson-python pybind11-2.10 pkg-config))
+ (home-page "https://contourpy.readthedocs.io/")
+ (synopsis
+ "Python library for calculating contours of 2D quadrilateral grids")
+ (description
+ "ContourPy is a Python library for calculating contours of 2D
+quadrilateral grids. It is written in C++11 and wrapped using pybind11.")
+ (license license:bsd-3)))
+
(define-public python-yaspin
(package
(name "python-yaspin")
@@ -1124,10 +1309,26 @@ variables into the markdown template")
(substitute* "tests/test_bugs.py"
(("def test_change_user") "def _do_not_test_change_user")
(("def test_lost_connection") "def _do_not_test_lost_connection")
- (("def test_kill_query") "def _do_not_test_kill_query"))
+ (("def test_kill_query") "def _do_not_test_kill_query")
+ ;; These all fail because of expired certificates.
+ (("def test_cext_verify_server_certificate")
+ "def _do_not_test_cext_verify_server_certificate")
+ (("def test_pure_verify_server_certificate")
+ "def _do_not_test_pure_verify_server_certificate")
+ (("def test_verify_server_name_cext_cnx")
+ "def _do_not_test_verify_server_name_cext_cnx")
+ (("def test_verify_server_name_pure_cnx")
+ "def _do_not_test_verify_server_name_pure_cnx"))
(substitute* "tests/test_connection.py"
(("def test_allow_local_infile_in_path")
- "def _do_not_test_allow_local_infile_in_path"))
+ "def _do_not_test_allow_local_infile_in_path")
+ ;; This fails because of expired certificates.
+ (("def test_connect_with_unix_socket")
+ "def _do_not_test_connect_with_unix_socket"))
+ (substitute* "tests/test_mysqlx_connection.py"
+ ;; This fails because of expired certificates.
+ (("def test_ssl_connection")
+ "def _do_not_test_ssl_connection"))
(substitute* "tests/test_constants.py"
(("def test_deprecated")
"def _do_not_test_deprecated"))
@@ -1223,30 +1424,30 @@ Markdown. All extensions are found under the module namespace of pymdownx.")
(define-public python-pint
(package
(name "python-pint")
- (version "0.22")
+ (version "0.23")
(source (origin
(method url-fetch)
(uri (pypi-uri "Pint" version))
(sha256
(base32
- "0cs4lsvngrkfzpnrmxcwz728m47y0xbw1knksz51cc6gpdm9y4rd"))))
+ "1d69dqs0j907x4hgz2k8f3zjzhgs9zvlw2k0gi955g3dc28rnl71"))))
(build-system pyproject-build-system)
(arguments
- ;; This single test tries to write to $HOME/.cache/pint.
- (list #:test-flags #~'("-k" "not test_auto")))
- (native-inputs
- (list python-dask
- python-distributed
- python-importlib-metadata
- python-pytest ;for pytest-subtests
- python-pytest-cov
- python-pytest-mpl
- python-pytest-subtests
- python-setuptools-scm
- python-sparse
- python-uncertainties
- python-xarray))
- (propagated-inputs (list python-typing-extensions))
+ (list
+ #:test-flags
+ '(list "-k" (string-append
+ ;; This test tries to write to $HOME/.cache/pint.
+ "not test_auto"
+ ;; Fails with "Group USCSLengthInternational already
+ ;; present in registry"
+ " and not test_load_definitions_stage_2"))))
+ (native-inputs
+ (list python-pytest python-pytest-benchmark python-pytest-cov
+ python-pytest-mpl python-pytest-subtests
+ python-setuptools-scm))
+ (propagated-inputs
+ (list python-typing-extensions
+ python-uncertainties))
(home-page "https://github.com/hgrecco/pint")
(synopsis "Physical quantities module")
(description
@@ -1429,6 +1630,87 @@ generator MkDocs.")
bindings to the C++ random forest implementation, ranger, using Cython.")
(license license:gpl3+)))
+(define-public python-nr-date
+ (package
+ (name "python-nr-date")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nr_date" version))
+ (sha256
+ (base32 "1rnjyykjp41mqz6h1vx18jblq97gi5m5x7dgasyaihnd7fhswhq6"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
+ (propagated-inputs (list python-dataclasses))
+ (native-inputs (list python-poetry-core))
+ (home-page "https://github.com/NiklasRosenstein/python-nr.date")
+ (synopsis "Fast, regex-based date parsing library in plain Python")
+ (description "This package provides a fast, regex-based date parsing
+library in pure Python.")
+ (license license:expat)))
+
+(define-public python-nr-stream
+ (package
+ (name "python-nr-stream")
+ (version "1.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nr_stream" version))
+ (sha256
+ (base32 "0rag4vbjnalkyfcarx6yipn11ih2hmc3pfldava4c6n6pz31c0pb"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
+ (native-inputs (list python-poetry-core))
+ (home-page "https://github.com/NiklasRosenstein/python-nr.stream")
+ (synopsis "Stream and Optional classes for Python")
+ (description "This package provides a @code{Stream} and @code{Optional}
+class.")
+ (license license:expat)))
+
+(define-public python-nr-util
+ (package
+ (name "python-nr-util")
+ (version "0.8.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nr.util" version))
+ (sha256
+ (base32 "1x0l4811dskwrk83l2xzdcldx2iazlrx5wxkg41jz7fr6ch9qm54"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #false ;there are none
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-build-system
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("^config =.*") "config = []\n"))))
+ (add-after 'install 'fix-name
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((sitedir (site-packages inputs outputs))
+ (dist-info
+ (string-append sitedir "/nr_util-" #$version ".dist-info")))
+ (substitute* (string-append dist-info "/METADATA")
+ (("Name: nr-util")
+ "Name: nr.util"))
+ (substitute* (string-append dist-info "/RECORD")
+ (("nr_util") "nr.util"))
+ (rename-file dist-info
+ (string-append sitedir
+ "/nr.util-"
+ #$version ".dist-info"))))))))
+ (propagated-inputs (list python-deprecated python-typing-extensions))
+ (native-inputs (list python-poetry-core))
+ (home-page "https://github.com/NiklasRosenstein/python-nr.util")
+ (synopsis "General purpose Python utility library")
+ (description "This package provides a general purpose Python utility
+library.")
+ (license license:expat)))
+
(define-public python-slixmpp
(package
(name "python-slixmpp")
@@ -2250,25 +2532,21 @@ library.")
(version "3.8.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "h5py" version))
- (sha256
- (base32
- "0pyr6z4h2xqbp49yx2i1401gl6yqh03h771zslwcy0201hpxiskg"))))
+ (method url-fetch)
+ (uri (pypi-uri "h5py" version))
+ (sha256
+ (base32 "0pyr6z4h2xqbp49yx2i1401gl6yqh03h771zslwcy0201hpxiskg"))))
(build-system python-build-system)
(arguments
- `(#:tests? #f ; no test target
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-hdf5-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "HDF5_DIR" (assoc-ref inputs "hdf5")))))))
- (propagated-inputs
- (list python-six python-numpy))
- (inputs
- (list hdf5-1.10))
- (native-inputs
- (list python-cython python-pkgconfig pkg-config))
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-hdf5-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "HDF5_DIR"
+ (assoc-ref inputs "hdf5")))))))
+ (propagated-inputs (list python-six python-numpy))
+ (inputs (list hdf5-1.10))
+ (native-inputs (list pkg-config python-cython python-ipython
+ python-pkgconfig python-pytest))
(home-page "https://www.h5py.org/")
(synopsis "Read and write HDF5 files from Python")
(description
@@ -2279,6 +2557,30 @@ access to HDF5 files, datasets and groups using established Python and NumPy
concepts.")
(license license:bsd-3)))
+(define-public python-hdf5storage
+ (package
+ (name "python-hdf5storage")
+ (version "0.1.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "hdf5storage" version))
+ (sha256
+ (base32 "11pgxsqap9l7jsf52649q9mpj8a0w6p9im929lpr9s26ynnnn6ks"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-h5py python-numpy))
+ (native-inputs (list python-nose))
+ (home-page "https://github.com/frejanordsiek/hdf5storage")
+ (synopsis "Read and write Python data types from and to HDF5 files")
+ (description
+ "This Python package provides high-level utilities to read and write a
+variety of Python types from and to @acronym{HDF5, Hierarchical Data Format}
+formatted files. This package also provides support for MATLAB MAT v7.3
+formatted files, which are HDF5 files with a different extension and some
+extra metadata. Because HDF5 and MAT files might need to be read from
+untrusted sources, pickling is avoided in this package.")
+ (license license:bsd-2)))
+
(define-public python-hjson
;; Using commit from master branch as the PyPI version does not contain
;; the hjson/tests/ directory.
@@ -2364,6 +2666,7 @@ Unicode-to-LaTeX conversion.")
(file-name (git-file-name name version))
(sha256
(base32 "0bkhfnlik89j3yamr20br4wm8975f20v33wabi2nyxvj10whr5dj"))
+ (patches (search-patches "python-pyls-black-41.patch"))
;; Patch to work with python-lsp-server. Taken from
;; <https://github.com/rupert/pyls-black/pull/37>.
(modules '((guix build utils)))
@@ -2379,9 +2682,11 @@ Unicode-to-LaTeX conversion.")
"pylsp_format_range")
(("from pyls([ \\.])" _ char)
(string-append "from pylsp" char)))))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- `(#:test-target "pytest"))
+ (list
+ #:test-flags
+ '(list "-k" "not test_load_config_target_version")))
(propagated-inputs
(list python-black python-lsp-server python-tomli))
(native-inputs
@@ -2574,18 +2879,18 @@ conventions and aliases in the same expression.")
(uri (pypi-uri "Wand" version))
(sha256
(base32 "1jpwm956vm35hmgjndr2jwrcql0bwvpsl88q5nr0x8ppxa2380gm"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'find-magickwand
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "MAGICK_HOME" (assoc-ref inputs "imagemagick"))
- (setenv "WAND_MAGICK_LIBRARY_SUFFIX" ".Q16")))
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv")))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'hardcode-lib-path
+ (lambda _
+ (substitute* "wand/api.py"
+ (("os\\.environ\\.get\\('MAGICK_HOME'\\)")
+ (string-append "\"" #$(this-package-input "imagemagick") "\""))
+ (("os\\.environ\\.get\\('WAND_MAGICK_LIBRARY_SUFFIX'\\)")
+ "\".Q16\"")))))))
(native-inputs
(list python-pytest))
(inputs
@@ -6968,6 +7273,51 @@ errors when data is invalid.")
Interfaces} via data models provided in the JSON format.")
(license license:expat)))
+(define-public python-pydoc-markdown
+ (package
+ (name "python-pydoc-markdown")
+ (version "4.8.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pydoc_markdown" version))
+ (sha256
+ (base32 "02vzlrd18r8wi0b64vq2gnbhaadysg9rnbylf9sf2v9q65z94v7v"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #false ;there are none
+ #:phases
+ '(modify-phases %standard-phases
+ ;; This is probably not a good idea, but it wants a rather old
+ ;; version of docstring-parser.
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("docstring-parser = .*")
+ "docstring-parser = \"^0\"\n")))))))
+ (propagated-inputs (list python-click
+ python-databind-core
+ python-databind-json
+ python-docspec
+ python-docspec-python
+ python-docstring-parser
+ python-jinja2
+ python-nr-util
+ python-pyyaml
+ python-requests
+ python-tomli
+ python-tomli-w
+ python-watchdog
+ python-yapf))
+ (native-inputs (list python-poetry-core))
+ (home-page "https://pypi.org/project/pydoc-markdown/")
+ (synopsis "Create Python API documentation in Markdown format")
+ (description "Pydoc-Markdown is a tool to create Python API documentation
+in Markdown format. Instead of executing your Python code like so many other
+documentation tools, it parses it using docspec instead.")
+ (license license:expat)))
+
(define-public python-pydocstyle
(package
(name "python-pydocstyle")
@@ -7251,6 +7601,20 @@ programming language and the extended Cython programming language. It makes
writing C extensions for Python as easy as Python itself.")
(license license:asl2.0)))
+;; Needed for scipy
+(define-public python-cython-0.29.35
+ (package
+ (inherit python-cython)
+ (name "python-cython")
+ (version "0.29.35")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "Cython" version))
+ (sha256
+ (base32
+ "09y5r22nyswqpwc02agla1bnzh2jx2db25pnq9pc5cq8pyh1yf3f"))))
+ (properties '())))
+
(define-public python-cython-3
(package
(inherit python-cython)
@@ -7623,7 +7987,7 @@ color scales, and color space conversion easy. It has support for:
(native-inputs
(list python-pytest python-pytest-mock))
(propagated-inputs
- (list python-cryptography python-gssapi python-ruamel.yaml))
+ (list python-cryptography python-gssapi python-krb5 python-ruamel.yaml))
(home-page "https://github.com/jborean93/pyspnego")
(synopsis "Python SPNEGO library")
(description "The @code{pyspnego} Python library handles Negotiate, NTLM,
@@ -8072,16 +8436,25 @@ comparison.
(define-public python-matplotlib
(package
(name "python-matplotlib")
- (version "3.5.2")
+ (version "3.8.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "matplotlib" version))
(sha256
- (base32 "18h78s5ld1i6mz00w258hy29909nfr3ddq6ry9kq18agw468bks8"))))
- (build-system python-build-system)
+ (base32 "18amhxyxa6yzy1nwky4ggdgvvxnbl3qz2lki05vfx0dqf6w7ia81"))))
+ (build-system pyproject-build-system)
(arguments
(list
+ #:test-flags
+ '(list "-m" "not network"
+ "-k"
+ (string-append
+ ;; This one fails with a small difference in the upper left.
+ "not test_figure_legend_outside"
+ ;; The 'test_lazy_auto_backend_selection' fails
+ ;; because it would require an X server; skip it.
+ " and not test_lazy_auto_backend_selection"))
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'pretend-version
@@ -8145,49 +8518,30 @@ backend=Agg
basedirlist = ~a,~a
[packages]
-tests = True~%" (assoc-ref inputs "tcl") (assoc-ref inputs "tk"))))))
+tests = True~%" #$(this-package-input "tcl") #$(this-package-input "tk"))))))
(replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
+ (lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests?
;; Step out of the source directory to avoid interference.
(with-directory-excursion "/tmp"
;; Run the installed tests, which is what we want since not
;; everything gets built in the source directory.
- (invoke "pytest"
- "-n" (number->string (parallel-job-count))
- "-m" "not network" "--pyargs" "matplotlib"
- "-k"
- (string-append
- ;; The 'test_lazy_auto_backend_selection' fails
- ;; because it would require an X server; skip it.
- "not test_lazy_auto_backend_selection"
- ;; test_getattr fails for the GTK backend because
- ;; of an unexpected warning from Python 3.10
- ;; (via the gi module):
- ;; https://gitlab.gnome.org/GNOME/pygobject/-/issues/494
- " and not test_getattr")))))))))
- (propagated-inputs
- (list gobject-introspection
- python-cairocffi
- python-certifi
+ (apply invoke "pytest"
+ "-n" (number->string (parallel-job-count))
+ "--pyargs" "matplotlib"
+ test-flags))))))))
+ (propagated-inputs
+ (list python-contourpy
python-cycler
python-dateutil
python-fonttools-minimal
+ python-importlib-resources
python-kiwisolver
python-numpy
python-packaging
python-pillow
- ;; ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
- ;; ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
- ;; ;; https://cairocffi.readthedocs.io/en/stable/cffi_api.html#converting-pycairo-wrappers-to-cairocffi
- ;; ;; object. For this reason we need to import both libraries.
- ;; python-pycairo
- python-pygobject
python-pyparsing
- python-pytz
- python-six
- `(,python "tk")
- python-wxpython))
+ `(,python "tk")))
(inputs
(list cairo
freetype
@@ -8198,6 +8552,7 @@ tests = True~%" (assoc-ref inputs "tcl") (assoc-ref inputs "tk"))))))
tk))
(native-inputs
(list pkg-config
+ pybind11
python-pytest
python-pytest-timeout
python-pytest-xdist
@@ -8351,7 +8706,9 @@ three-way Venn diagrams in @code{matplotlib}.")
(list
#:test-flags
;; This test fails with ValueError: not enough values to unpack.
- #~(list "--deselect" "tests/test_spy.py::test_cli")))
+ #~(list "--deselect" "tests/test_spy.py::test_cli"
+ ;; XXX: unknown failure
+ "--deselect" "tests/test_spy.py::test_png")))
(home-page "https://github.com/nschloe/matplotx")
(synopsis "Minimal matplotlib styles")
(description
@@ -8384,6 +8741,25 @@ clean plots with a minimalistic style.")
complex-valued functions.")
(license license:gpl3+)))
+(define-public python-cppy
+ (package
+ (name "python-cppy")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cppy" version))
+ (sha256
+ (base32 "06zysv86j7wqb1rl88ab4clbjf7iahhv9gfyqlasr18hggqkpd43"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/nucleic/cppy")
+ (synopsis "C++ header library for Python extension modules")
+ (description "This package is a small C++ header library which makes it
+easier to write Python extension modules. The primary feature is a
+@code{PyObject} smart pointer which automatically handles reference counting
+and provides convenience methods for performing common object operations.")
+ (license license:bsd-3)))
+
(define-public python-perfplot
(package
(name "python-perfplot")
@@ -9184,19 +9560,21 @@ regions of interest, geometric shapes, paths, text, etc for image overlays.")
(define-public python-tifffile
(package
(name "python-tifffile")
- (version "2021.4.8")
+ (version "2023.12.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tifffile" version))
(sha256
(base32
- "16r0hw7shka1bqf28bv198lj2jhf2r9gy3s5zv4nf5cfsfm8pajm"))))
+ "1f6d8qdlq0zlksfdhp1mhj9icpwhw4cz47r4i80m6r0a328xmlcx"))))
(build-system python-build-system)
;; Tests require lfdfiles, which depends on tifffile
(arguments `(#:tests? #f))
(propagated-inputs
- (list python-numpy python-imagecodecs))
+ (list python-numpy))
+ (native-inputs
+ (list python-pytest))
(home-page "https://www.lfd.uci.edu/~gohlke/")
(synopsis "Read and write TIFF(r) files")
(description "This package lets you read image and metadata from many
@@ -9414,14 +9792,14 @@ from FFMPEG, reliably terminating the process when done.")
(define-public python-imageio
(package
(name "python-imageio")
- (version "2.26.0")
+ (version "2.33.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "imageio" version))
(sha256
(base32
- "0dgddhi5dlpry5j4d3256v09pcziyj3ii47yx0zi68xprm11d7qn"))))
+ "1kn1gj9vc1mkirs39x3nkw2d56paiagi24kkxksrig9pn502swkq"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -9448,9 +9826,10 @@ from FFMPEG, reliably terminating the process when done.")
(delete-file "tests/test_freeimage.py"))))))
(inputs (list freeimage))
(propagated-inputs
- (list python-imageio-ffmpeg python-numpy python-pillow python-psutil))
+ (list python-imageio-ffmpeg python-numpy python-pillow python-tifffile))
(native-inputs
- (list python-pytest))
+ (list python-black python-flake8 python-fsspec python-pytest
+ python-pytest-cov))
(home-page "https://imageio.github.io/")
(synopsis "Library for reading and writing a wide range of image data")
(description
@@ -10374,6 +10753,67 @@ finding unresolved symbols in Python code and their corresponding imports.")
class constructs.")
(license license:expat)))
+(define-public python-jaraco-collections
+ (package
+ (name "python-jaraco-collections")
+ (version "5.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jaraco.collections" version))
+ (sha256
+ (base32 "0s7y3jr7c173k38pck1b17kxnvx2fl0qh9m9gdf64pr9kz8fi00n"))))
+ (build-system pyproject-build-system)
+ ;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
+ ;; download dependencies.
+ (arguments
+ '(#:test-flags '("-k" "not project")))
+ (propagated-inputs (list python-jaraco-text))
+ ;; TODO: Add python-pytest-ruff to native-inputs once it has been
+ ;; packaged.
+ (native-inputs (list python-pytest
+ python-pytest-black
+ python-pytest-checkdocs
+ python-pytest-cov
+ python-pytest-enabler
+ python-pytest-mypy))
+ (home-page "https://github.com/jaraco/jaraco.collections")
+ (synopsis "Provides various collection objects")
+ (description
+ "This package provides models and classes to supplement the
+standard library @code{collections} module. Examples include
+@itemize
+@item
+RangeMap: A mapping that accepts a range of values for keys.
+@item
+Projection: A subset over an existing mapping.
+@item
+KeyTransformingDict: Generalized mapping with keys transformed by a function.
+@item
+FoldedCaseKeyedDict: A dict whose string keys are case-insensitive.
+@item
+BijectiveMap: A map where keys map to values and values back to their keys.
+@item
+ItemsAsAttributes: A mapping mix-in exposing items as attributes.
+@item
+IdentityOverrideMap: A map whose keys map by default to themselves unless overridden.
+@item
+FrozenDict: A hashable, immutable map.
+@item
+Enumeration: An object whose keys are enumerated.
+@item
+Everything: A container that contains all things.
+@item
+Least, Greatest: Objects that are always less than or greater than any other.
+@item
+pop_all: Return all items from the mutable sequence and remove them from that sequence.
+@item
+DictStack: A stack of dicts, great for sharing scopes.
+@item
+WeightedLookup: A specialized RangeMap for selecting an item by weights.
+@end itemize")
+ (license license:expat)))
+
;;; Variant used to break a cycle with python-pytest-enabler.
(define-public python-jaraco-context-bootstrap
(hidden-package
@@ -10538,6 +10978,41 @@ releases.")
(description "This package provides testing support by jaraco.")
(license license:expat)))
+(define-public python-jaraco-text
+ (package
+ (name "python-jaraco-text")
+ (version "3.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jaraco.text" version))
+ (sha256
+ (base32 "0b2rmx0sa61f75lkkr4nfaj3mkgmn3x9c1akpwarfbmksk42b7iq"))))
+ (build-system pyproject-build-system)
+ ;; Do not test pyproject.toml with python-pytest-checkdocs as it tries to
+ ;; download dependencies.
+ (arguments
+ '(#:test-flags '("-k" "not project")))
+ (propagated-inputs (list python-autocommand python-inflect
+ python-jaraco-context python-jaraco-functools
+ python-more-itertools))
+ ;; TODO: Add python-pytest-ruff to native-inputs once it has been
+ ;; packaged.
+ (native-inputs (list python-pytest
+ python-pytest-black
+ python-pytest-checkdocs
+ python-pytest-cov
+ python-pytest-enabler
+ python-pytest-mypy))
+ (home-page "https://github.com/jaraco/jaraco.text")
+ (synopsis "Provides various routines for text manipulation")
+ (description
+ "This package provides handy routines for dealing with text,
+such as wrapping, substitution, trimming, stripping, prefix and suffix
+removal, line continuation, indentation, comment processing, identifier
+processing, values parsing, case insensitive comparison, and more.")
+ (license license:expat)))
+
(define-public python-simplegeneric
(package
(name "python-simplegeneric")
@@ -12123,17 +12598,32 @@ SVG, EPS, PNG and terminal output.")
(define-public python-seaborn
(package
(name "python-seaborn")
- (version "0.12.0")
+ (version "0.13.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "seaborn" version))
(sha256
(base32
- "08vvnp4ps86857imxz2l5xi2vir5xdcdp3apq4badb4b5llifgw9"))))
+ "0ycibcs6kvd3xi4zsxna81claqifyb9dn6z6jwc5x7lqqplnbbdz"))))
(build-system pyproject-build-system)
- (propagated-inputs (list python-pandas python-matplotlib python-numpy
- python-scipy))
- (native-inputs (list python-flit-core python-pypa-build python-pytest))
+ (propagated-inputs
+ (list python-ipykernel
+ python-matplotlib
+ python-mypy
+ python-nbconvert
+ python-numpy
+ python-numpydoc
+ python-pandas
+ python-pyyaml
+ python-scipy
+ python-statsmodels))
+ (native-inputs
+ (list python-flake8
+ python-flit-core
+ python-pre-commit
+ python-pytest
+ python-pytest-cov
+ python-pytest-xdist))
(home-page "https://seaborn.pydata.org/")
(synopsis "Statistical data visualization")
(description
@@ -12865,6 +13355,22 @@ validate this input and generate a PEP 643-compliant metadata
file (e.g. @file{PKG-INFO}).")
(license license:expat)))
+(define-public python-pyproject-metadata-0.7
+ (package
+ (inherit python-pyproject-metadata)
+ (name "python-pyproject-metadata")
+ (version "0.7.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/FFY00/python-pyproject-metadata")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0yvs59ymz5gdix34a95wxlxvk9bnvjgrzsnmnc3ws7whpfv3yasm"))))))
+
;; pep621 was renamed to pyproject-metadata.
(define-public python-pep621
(deprecated-package "python-pep621" python-pyproject-metadata))
@@ -13560,6 +14066,24 @@ almost any existing Python modules, and an easy way for outside developers to
add functionality and customization to your projects with their own plugins.")
(license license:expat)))
+(define-public python-strenum
+ (package
+ (name "python-strenum")
+ (version "0.4.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "StrEnum" version))
+ (sha256
+ (base32 "1zrfr1shin5wyfnfxc7jpk013594wasrp4ni9l70fhjlf2mvb3w7"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none.
+ (home-page "https://github.com/irgeek/StrEnum")
+ (synopsis "Enum that inherits from str")
+ (description "StrEnum is a Python @code{enum.Enum} that inherits from
+@code{str} to complement @code{enum.IntEnum} in the standard library.")
+ (license license:expat)))
+
(define-public python-pysendfile
(package
(name "python-pysendfile")
@@ -16521,18 +17045,19 @@ applications.")
(define-public python-click-default-group
(package
(name "python-click-default-group")
- (version "1.2.2")
+ (version "1.2.4")
(source (origin
(method url-fetch)
- (uri (pypi-uri "click-default-group" version))
+ (uri (pypi-uri "click_default_group" version))
(sha256
(base32
- "015r78jk8gznfw0dphpwaqcx5mhg5822b55w5xbb6i7sin70wmnr"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ; no target
+ "07i5w47lbihcb3cvs08vynz725z9skvhhzrarnk6qi8dxjckqgzb"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
(propagated-inputs
(list python-click))
+ (native-inputs
+ (list python-flit-core python-pytest))
(synopsis "Extends click.Group")
(description "This package extends click.Group to invoke a command without
explicit subcommand name.")
@@ -19384,6 +19909,25 @@ and pluralizes English words, and transforms strings from CamelCase to
underscored string.")
(license license:expat)))
+(define-public python-krb5
+ (package
+ (name "python-krb5")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "krb5" version))
+ (sha256
+ (base32 "1jivws8dsscsmyqngbc71r4qw8qmn98pqmhylz01r5dd1ljfw9bi"))))
+ (build-system pyproject-build-system)
+ (inputs (list mit-krb5))
+ (native-inputs (list python-cython python-k5test python-pytest))
+ (home-page "https://github.com/jborean93/pykrb5")
+ (synopsis "Kerberos API bindings for Python")
+ (description "This library provides Python functions that wraps the
+Kerberos 5 C API.")
+ (license license:expat)))
+
(define-public python-pylev
(package
(name "python-pylev")
@@ -19805,6 +20349,36 @@ feels like an AST.")
(arguments '(#:tests? #f))
(native-inputs '()))))
+(define-public python-typeapi
+ (package
+ (name "python-typeapi")
+ (version "2.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "typeapi" version))
+ (sha256
+ (base32 "1652fc04gn6nkw8izim0g7v586f64fla6clinp5xq9rf739w3cs9"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #false ;there are none
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'patch-build-system
+ (lambda _
+ (substitute* "pyproject.toml"
+ (("^docs =.*") "docs = []\n")))))))
+ (propagated-inputs (list python-typing-extensions))
+ (native-inputs (list python-poetry-core))
+ (home-page "https://pypi.org/project/typeapi/")
+ (synopsis "Type hints")
+ (description "The typeapi package provides an object-oriented interface
+for introspecting PEP484 type hints at runtime, including forward references
+that make use of the more recent PEP585 and PEP604 type hint features in
+Python versions that don't natively support them.")
+ (license license:expat)))
+
(define-public python-typing-inspect
(package
(name "python-typing-inspect")
@@ -19829,16 +20403,18 @@ inspection of types defined in the Python standard typing module.")
(define-public python-lazy-loader
(package
(name "python-lazy-loader")
- (version "0.2")
+ (version "0.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "lazy_loader" version))
(sha256
(base32
- "12piaj94m5wbx33cxb80xgnsvzgya6cp90zj12qsq064fm8pmp0f"))))
+ "0dwghffnsjjf4pi4gwbl43rx04jmap375hdamafs5cpm6j78js1v"))))
(build-system pyproject-build-system)
(native-inputs
- (list python-pytest python-pytest-cov))
+ (list python-pre-commit
+ python-pytest
+ python-pytest-cov))
(propagated-inputs
(list python-flit-core))
(home-page "https://scientific-python.org/specs/spec-0001/")
@@ -20664,6 +21240,26 @@ multitouch applications.")
Design spec without sacrificing ease of use or application performance.")
(license license:expat)))
+(define-public python-asyncinject
+ (package
+ (name "python-asyncinject")
+ (version "0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "asyncinject" version))
+ (sha256
+ (base32 "0x57idiy19lzyn32klgm06r223z8gr2aqqk91gysbshq7jg8g3pf"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-pytest-asyncio))
+ (home-page "https://github.com/simonw/asyncinject")
+ (synopsis
+ "Run async workflows using pytest-fixtures-style dependency injection")
+ (description
+ "This package lets you run asynchronous workflows using
+pytest-fixtures-style dependency injection.")
+ (license license:asl2.0)))
+
(define-public python-asynckivy
(package
(name "python-asynckivy")
@@ -20969,6 +21565,26 @@ JSON) codec.")
;; number of files with other licenses.
(list license:gpl2+ license:asl2.0 license:lgpl2.1+ license:cc-by-sa3.0))))
+(define-public python-namex
+ (package
+ (name "python-namex")
+ (version "0.0.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "namex" version))
+ (sha256
+ (base32 "16ynrq245c3nywv476izrc4bcacm9gxjzgr67ng91g929ny6bfl4"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;there are none
+ (home-page "https://github.com/fchollet/namex")
+ (synopsis
+ "Separate implementation and public API surface of Python packages")
+ (description
+ "This package provides a simple utility to separate the
+implementation of your Python package and its public API surface.")
+ (license license:asl2.0)))
+
(define-public python-natsort
(package
(name "python-natsort")
@@ -24019,58 +24635,6 @@ profiling, and getting datetime-aware @acronym{UTC, Coordinated Universal
Time} values as well as an event scheduler.")
(license license:expat)))
-(define-public python-activepapers
- (package
- (name "python-activepapers")
- (version "0.2.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "ActivePapers.Py" version))
- (sha256
- (base32
- "12wkhjh90ffipjzv10swndp2xv9hd7xrxvg6v0n4n3i411pj4xb8"))))
- (build-system python-build-system)
- (arguments
- `(#:modules ((ice-9 ftw)
- (srfi srfi-1)
- (guix build utils)
- (guix build python-build-system))
-
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-python2-code
- (lambda _
- (for-each delete-file
- '("lib/activepapers/builtins2.py"
- "lib/activepapers/standardlib2.py"
- "lib/activepapers/utility2.py"))))
- (replace 'check
- (lambda _
- ;; Deactivate the test cases that download files
- (setenv "NO_NETWORK_ACCESS" "1")
- ;; For some strange reason, some tests fail if nosetests runs all
- ;; test modules in a single execution. They pass if each test
- ;; module is run individually.
- (for-each (lambda (filename)
- (invoke "nosetests"
- (string-append "tests/" filename)))
- (scandir "tests"
- (lambda (filename)
- (string-suffix? ".py" filename)))))))))
- (native-inputs
- (list python-tempdir python-nose))
- (propagated-inputs
- (list python-h5py))
- (home-page "https://www.activepapers.org/")
- (synopsis "Executable papers for scientific computing")
- (description
- "ActivePapers is a tool for working with executable papers, which
-combine data, code, and documentation in single-file packages,
-suitable for publication as supplementary material or on repositories
-such as figshare or Zenodo.")
- (license license:bsd-3)))
-
(define-public python-semver
(package
(name "python-semver")
@@ -24273,15 +24837,19 @@ such as lines length, trailing spaces, indentation, etc.")
(define-public python-yapf
(package
(name "python-yapf")
- (version "0.29.0")
+ (version "0.32.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "yapf" version))
(sha256
(base32
- "1pj3xzblmbssshi889b6n9hwqbjpabw6j0fimlng2sshd3226bki"))))
- (build-system python-build-system)
+ "06vxqski7qss2h2iy4fd04czym0cwjrzkaab9h03wzpg6xfhixd3"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs
+ (list python-importlib-metadata python-platformdirs python-tomli))
+ (native-inputs
+ (list python-pytest))
(home-page "https://github.com/google/yapf")
(synopsis "Formatter for Python code")
(description "YAPF is a formatter for Python code. It's based off of
@@ -25384,6 +25952,22 @@ library: to minimize boilerplate code in traditional extension modules by
inferring type information using compile-time introspection.")
(license license:bsd-3)))
+;; Needed for scipy
+(define-public pybind11-2.10
+ (package
+ (inherit pybind11)
+ (name "pybind11")
+ (version "2.10.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pybind/pybind11")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0rbcfvl7y472sykzdq3vrkw83kar0lpzhk3wq9yj9cdydl8cpfcz"))
+ (file-name (git-file-name name version))))))
+
;; This is needed for python-vaex-core.
(define-public pybind11-2.3
(package
@@ -26490,7 +27074,8 @@ parentdir_prefix = dask-
(add-before 'check 'pre-check
(lambda _ (chdir "/tmp"))))))
(propagated-inputs
- (list python-cloudpickle
+ (list python-click ;needed at runtime
+ python-cloudpickle
python-fsspec
python-importlib-metadata ;needed at runtime for dask/_compatibility.py
python-numpy
@@ -26500,8 +27085,7 @@ parentdir_prefix = dask-
python-toolz
python-pyyaml))
(native-inputs
- (list python-click
- python-importlib-metadata
+ (list python-importlib-metadata
python-pytest python-pytest-runner python-pytest-rerunfailures
python-versioneer))
(home-page "https://github.com/dask/dask/")
@@ -28482,14 +29066,24 @@ lowercase.")
(define-public python-pypng
(package
(name "python-pypng")
- (version "0.0.20")
+ (version "0.20220715.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pypng" version))
(sha256
- (base32 "02qpa22ls41vwsrzw9r9qhj1nhq05p03hb5473pay6y980s86chh"))))
- (build-system python-build-system)
+ (base32 "1hg24zja235bkbny82hx7sy7qlzfbabxph2lvqaq61vgm4xl773k"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ '(modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) "/code:"
+ (getenv "GUIX_PYTHONPATH"))))))))
+ (native-inputs (list python-pytest))
(home-page "https://github.com/drj11/pypng")
(synopsis "Pure Python PNG image encoder/decoder")
(description
@@ -31628,6 +32222,30 @@ graph can be output for rendering by GraphViz or yEd.")
function implementations based on the types of the arguments.")
(license license:bsd-3)))
+(define-public python-multimethod
+ (package
+ (name "python-multimethod")
+ (version "1.10")
+ (source
+ (origin
+ ;; No tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/coady/multimethod")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "07xv92q7f4bkp6dzkqvcv0zxr11729qdak4s3ldmbhdwgsf44g5h"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/coady/multimethod")
+ (synopsis "Python support for multiple argument dispatching")
+ (description
+ "This package provides a decorator for adding multiple argument
+dispatching to functions. The decorator creates a multimethod object as
+needed and registers the function with its annotations.")
+ (license license:asl2.0)))
+
(define-public python-logical-unification
(package
(name "python-logical-unification")
@@ -32545,18 +33163,20 @@ of several plugins.")
(define-public python-doit
(package
(name "python-doit")
- (version "0.34.0")
+ (version "0.36.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "doit" version))
(sha256
- (base32 "0bf0m9n0hyjvjpv051zd26725j8jr23gyvc37v3kkadwbh8dxwcf"))))
- (build-system python-build-system)
+ (base32 "1g1lwaxb9q3a6c24sr3gw5bspsk5frbrk2frb7z25jqljp67rl3i"))))
+ (build-system pyproject-build-system)
+ ;; This is not a serious test failure. It's probably due to the load path
+ ;; at test time.
+ (arguments (list #:test-flags '(list "-k" "not test_execute")))
(propagated-inputs
- (list python-cloudpickle python-pyinotify))
- (native-inputs
- (list python-pytest))
+ (list python-cloudpickle python-importlib-metadata))
+ (native-inputs (list python-pytest))
(home-page "https://pydoit.org")
(synopsis "Automation tool to execute any kind of task in a build-tools
fashion")
@@ -32565,7 +33185,7 @@ build-tools to execute any kind of task.
A task describes some computation to be done (actions), and contains some
extra meta-data. The actions can be external programs or Python functions. A
-single task may define more than one action.doit uses the task’s meta-data
+single task may define more than one action. doit uses the task’s meta-data
to:
@itemize
@@ -32597,6 +33217,26 @@ to:
"This package provides a port of the serialize and unserialize functions of PHP for Python")
(license license:bsd-3)))
+(define-public python-pydevtool
+ (package
+ (name "python-pydevtool")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pydevtool" version))
+ (sha256
+ (base32 "12pwhvvm4pgvfxj18ylb66drxm28b2cpb5rbxqrsrk1k7m7vmqr5"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #false)) ;no tests
+ (propagated-inputs (list python-doit python-rich-click))
+ (home-page "https://github.com/pydoit/pydevtool")
+ (synopsis "CLI dev tools powered by pydoit")
+ (description "This package provides command line tools, powered by pydoit.
+It offers integration with @code{click} and @code{rich} for custom CLI and
+these linters: @code{pycodestlye}, @code{pyflakes}")
+ (license license:expat)))
+
(define-public nikola
(package
(name "nikola")
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 01f0562d1b..9b93553ab1 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -1894,7 +1894,7 @@ their position, altitude, speed, etc.")
(define-public rtl-433
(package
(name "rtl-433")
- (version "22.11")
+ (version "23.11")
(source
(origin
(method git-fetch)
@@ -1903,7 +1903,7 @@ their position, altitude, speed, etc.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0qx89qmf0zn0qa05vraipny4ihx6lm72s830mbfyzw2znyk3wdm8"))))
+ (base32 "11qigwnaa22vgd43jvzk2byiancahdkhxpsh6cp74q2ywb0wy9x8"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config))
@@ -2535,7 +2535,7 @@ transmissions.")
(define-public dsdcc
(package
(name "dsdcc")
- (version "1.9.3")
+ (version "1.9.5")
(source
(origin
(method git-fetch)
@@ -2544,7 +2544,7 @@ transmissions.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0jgzpv4d6ckd0sdq6438rjh3m6knj6gx63627fajch74hxrvclzj"))))
+ (base32 "1rb9r1m4rfi9x5x4h5frpl65xmk5p2bqyfisnrv6nbmnsgds9h0c"))))
(build-system cmake-build-system)
(inputs
(list mbelib serialdv))
@@ -2574,7 +2574,7 @@ voice formats.")
(define-public sdrangel
(package
(name "sdrangel")
- (version "7.17.0")
+ (version "7.17.3")
(source
(origin
(method git-fetch)
@@ -2583,7 +2583,7 @@ voice formats.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "16hpnfzccpj8a3i24ryli870ym6kjih981sjapcqdc8va0q14qdz"))))
+ (base32 "1cvs9nqwx3cqsazxwk9jxlq2bys00zpljhrsbp0sdsnc64ya2din"))))
(build-system qt-build-system)
(native-inputs
(list doxygen graphviz pkg-config))
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 23f020df28..3063ff5887 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015, 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2018, 2024 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
@@ -9,6 +9,7 @@
;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2023 Brendan Tildesley <mail@brendan.scot>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,6 +36,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 build-system waf)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
@@ -43,6 +45,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation)
#:use-module (gnu packages dbm)
#:use-module (gnu packages gnupg)
@@ -279,25 +282,17 @@ and triple stores.")
(define-public serd
(package
(name "serd")
- (version "0.30.16")
+ (version "0.32.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.drobilla.net/serd-"
version ".tar.xz"))
(sha256
(base32
- "0ilimkczibiwwvc12i14b8zi6ng42hjf9j907g8dik8rlmnlh3zm"))))
+ "18cwj8xxsaq6iw45kcljbhrral0cqvav80p4mdv2l7g0d2a6ks6i"))))
(build-system meson-build-system)
- (arguments
- (list
- #:tests? #f ; no check target
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'configure 'set-ldflags
- (lambda _
- (setenv "LDFLAGS"
- (string-append "-Wl,-rpath=" #$output "/lib")))))))
- (home-page "https://drobilla.net/software/serd/")
+ (native-inputs (list python-minimal))
+ (home-page "https://drobilla.net/software/serd.html")
(synopsis "Library for RDF syntax supporting Turtle and NTriples")
(description
"Serd is a lightweight C library for RDF syntax which supports reading
@@ -311,31 +306,22 @@ ideal (e.g. in LV2 implementations or embedded applications).")
(define-public sord
(package
(name "sord")
- (version "0.16.14")
+ (version "0.16.16")
(source (origin
(method url-fetch)
(uri (string-append "https://download.drobilla.net/sord-"
version ".tar.xz"))
(sha256
(base32
- "06vkqk3dnn15zdnzklahib2pvbfspy2zcrnvhmxnw8fbbxyxj3r2"))))
+ "1l2zjz6gypxbf1z32zyqkljdcn9mz452djc4xq1dlhv1fmnqfzr5"))))
(build-system meson-build-system)
- (arguments
- (list
- #:tests? #f ; no check target
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'configure 'set-ldflags
- (lambda _
- (setenv "LDFLAGS"
- (string-append "-Wl,-rpath=" #$output "/lib")))))))
(inputs
(list pcre))
(native-inputs
(list pkg-config))
(propagated-inputs
- (list serd)) ; required by sord-0.pc
- (home-page "https://drobilla.net/software/sord/")
+ (list serd zix)) ;required by sord-0.pc
+ (home-page "https://drobilla.net/software/sord.html")
(synopsis "C library for storing RDF data in memory")
(description
"Sord is a lightweight C library for storing RDF data in memory.")
@@ -468,33 +454,16 @@ C++ library as well as various command-line tools to to work with HDT.")
(define-public python-pyrdfa3
(package
(name "python-pyrdfa3")
- (version "3.5.3")
+ (version "3.6.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyRdfa3" version))
(sha256
- (base32 "1biif5lav3gswkhjzq882s4rgxzmvwsy5gb9dxdk9pw75fln6xhm"))))
- (build-system python-build-system)
- (arguments
- (list
- #:tests? #f ;no test suite
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'fix-python-3-issues
- (lambda _
- ;; Delete files that appear to be versions for older Pythons;
- ;; they fail to byte compile (see:
- ;; https://github.com/RDFLib/pyrdfa3/issues/41).
- (with-directory-excursion "pyRdfaExtras/serializers"
- (for-each delete-file
- (list "prettyXMLserializer_3.py"
- "prettyXMLserializer_3_2.py")))
- ;; See https://github.com/RDFLib/pyrdfa3/issues/42.
- (substitute* "pyRdfaExtras/__init__.py"
- (("from StringIO import StringIO")
- "from io import StringIO")))))))
- (propagated-inputs (list python-html5lib python-rdflib))
+ (base32 "1hhlhgqkc3igzdpxllf41drrqxm5aswqhwvnjqb90q3zjnmiss3k"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ;no test suite
+ (propagated-inputs (list python-html5lib python-rdflib python-requests))
(home-page "https://www.w3.org/2012/pyRdfa/")
(synopsis "RDFa Python distiller/parser library")
(description "This library can extract RDFa 1.1 from (X)HTML, SVG, or XML.
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 8f74ae3046..e7d61f3729 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -61,6 +61,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix download)
+ #:use-module (guix memoization)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@@ -69,6 +70,7 @@
#:use-module (guix gexp)
#:use-module (ice-9 match)
#:use-module (ice-9 optargs)
+ #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
;; This is the hash for the empty file, and the reason it's relevant is not
@@ -161,7 +163,7 @@
;;; Rust 1.54 is special in that it is built with mrustc, which shortens the
;;; bootstrap path.
-(define rust-bootstrap
+(define-public rust-bootstrap
(package
(name "rust")
(version "1.54.0")
@@ -186,7 +188,8 @@
(patches (search-patches "rustc-1.54.0-src.patch"))
(patch-flags '("-p0")))) ;default is -p1
(outputs '("out" "cargo"))
- (properties '((timeout . 72000) ;20 hours
+ (properties '((hidden? . #t)
+ (timeout . 72000) ;20 hours
(max-silent-time . 18000))) ;5 hours (for armel)
(build-system gnu-build-system)
(inputs
@@ -380,7 +383,7 @@ safety and thread safety guarantees.")
;; Dual licensed.
(license (list license:asl2.0 license:expat))))
-(define rust-1.55
+(define-public rust-1.55
(package
(name "rust")
(version "1.55.0")
@@ -408,7 +411,8 @@ safety and thread safety guarantees.")
((" target_arch = \"s390x\"," all)
(string-append all "\n target_arch = \"riscv64\",")))))))
(outputs '("out" "cargo"))
- (properties '((timeout . 72000) ;20 hours
+ (properties '((hidden? . #t)
+ (timeout . 72000) ;20 hours
(max-silent-time . 18000))) ;5 hours (for armel)
(build-system gnu-build-system)
(arguments
@@ -566,7 +570,7 @@ safety and thread safety guarantees.")
;; Dual licensed.
(license (list license:asl2.0 license:expat))))
-(define rust-1.56
+(define-public rust-1.56
(let ((base-rust (rust-bootstrapped-package
rust-1.55 "1.56.1"
"04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3")))
@@ -586,13 +590,13 @@ safety and thread safety guarantees.")
(string-append name "\"" ,%cargo-reference-hash "\"")))
(generate-all-checksums "vendor"))))))))))
-(define rust-1.57
+(define-public rust-1.57
(rust-bootstrapped-package
;; Verified that it *doesn't* build with 1.55. e.g.:
;; * feature `edition2021` is required
rust-1.56 "1.57.0" "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim"))
-(define rust-1.58
+(define-public rust-1.58
(rust-bootstrapped-package
;; Verified that it *doesn't* build with 1.56. e.g.:
;; * error: attributes starting with `rustc` are reserved for use by the
@@ -602,7 +606,7 @@ safety and thread safety guarantees.")
;; `const_eval_select_ct`
rust-1.57 "1.58.1" "1iq7kj16qfpkx8gvw50d8rf7glbm6s0pj2y1qkrz7mi56vfsyfd8"))
-(define rust-1.59
+(define-public rust-1.59
(let ((base-rust
(rust-bootstrapped-package
;; Verified that it *doesn't* build with 1.57. e.g.:
@@ -631,13 +635,13 @@ safety and thread safety guarantees.")
(("\\.insn i 0x0F, 0, x0, x0, 0x010") ".word 0x0100000F")))))))
(package-arguments base-rust))))))
-(define rust-1.60
+(define-public rust-1.60
(rust-bootstrapped-package
;; Verified that it *doesn't* build with 1.58. e.g.:
;; * error: unknown codegen option: `symbol-mangling-version`
rust-1.59 "1.60.0" "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0"))
-(define rust-1.61
+(define-public rust-1.61
(let ((base-rust
(rust-bootstrapped-package
rust-1.60 "1.61.0" "1vfs05hkf9ilk19b2vahqn8l6k17pl9nc1ky9kgspaascx8l62xd")))
@@ -659,15 +663,15 @@ safety and thread safety guarantees.")
(for-each delete-file
(find-files "vendor" ".*\\.(a|dll|exe|lib)$")))))))))
-(define rust-1.62
+(define-public rust-1.62
(rust-bootstrapped-package
rust-1.61 "1.62.1" "0gqkg34ic77dcvsz69qbdng6g3zfhl6hnhx7ha1mjkyrzipvxb3j"))
-(define rust-1.63
+(define-public rust-1.63
(rust-bootstrapped-package
rust-1.62 "1.63.0" "1l4rrbzhxv88pnfq94nbyb9m6lfnjwixma3mwjkmvvs2aqlq158z"))
-(define rust-1.64
+(define-public rust-1.64
(let ((base-rust
(rust-bootstrapped-package
rust-1.63 "1.64.0" "018j720b2n12slp4xk64jc6shkncd46d621qdyzh2a8s3r49zkdk")))
@@ -691,7 +695,7 @@ safety and thread safety guarantees.")
(string-append name "\"" ,%cargo-reference-hash "\"")))
(generate-all-checksums "vendor"))))))))))
-(define rust-1.65
+(define-public rust-1.65
(let ((base-rust
(rust-bootstrapped-package
rust-1.64 "1.65.0" "0f005kc0vl7qyy298f443i78ibz71hmmh820726bzskpyrkvna2q")))
@@ -703,11 +707,11 @@ safety and thread safety guarantees.")
(patches '())
(patch-flags '("-p1")))))))
-(define rust-1.66
+(define-public rust-1.66
(rust-bootstrapped-package
rust-1.65 "1.66.1" "1fjr94gsicsxd2ypz4zm8aad1zdbiccr7qjfbmq8f8f7jhx96g2v"))
-(define rust-1.67
+(define-public rust-1.67
(let ((base-rust
(rust-bootstrapped-package
rust-1.66 "1.67.1" "0vpzv6rm3w1wbni17ryvcw83k5klhghklylfdza3nnp8blz3sj26")))
@@ -716,11 +720,11 @@ safety and thread safety guarantees.")
(inputs (modify-inputs (package-inputs base-rust)
(replace "llvm" llvm-15))))))
-(define rust-1.68
+(define-public rust-1.68
(rust-bootstrapped-package
rust-1.67 "1.68.2" "15ifyd5jj8rd979dkakp887hgmhndr68pqaqvd2hqkfdywirqcwk"))
-(define rust-1.69
+(define-public rust-1.69
(let ((base-rust
(rust-bootstrapped-package
rust-1.68 "1.69.0"
@@ -739,7 +743,7 @@ safety and thread safety guarantees.")
(for-each delete-file
(find-files "vendor" "\\.(a|dll|exe|lib)$")))))))))
-(define rust-1.70
+(define-public rust-1.70
(let ((base-rust
(rust-bootstrapped-package
rust-1.69 "1.70.0"
@@ -756,7 +760,7 @@ safety and thread safety guarantees.")
;; for a precompiled library.
(patches (search-patches "rust-1.70-fix-rustix-build.patch")))))))
-(define rust-1.71
+(define-public rust-1.71
(let ((base-rust
(rust-bootstrapped-package
rust-1.70 "1.71.1" "0bj79syjap1kgpg9pc0r4jxc0zkxwm6phjf3digsfafms580vabg")))
@@ -775,7 +779,7 @@ safety and thread safety guarantees.")
(string-append name "\"" ,%cargo-reference-hash "\"")))
(generate-all-checksums "vendor"))))))))))
-(define rust-1.72
+(define-public rust-1.72
(let ((base-rust
(rust-bootstrapped-package
rust-1.71 "1.72.1" "15gqd1jzhnc16a7gjmav4x1v83jjbzyjh1gvcdfvpkajd9gq8j3z")))
@@ -800,7 +804,7 @@ safety and thread safety guarantees.")
(string-append "rustix = { version = \"=0.37.11\","
" features = [\"use-libc\"] }"))))))))))
-(define rust-1.73
+(define-public rust-1.73
(let ((base-rust (rust-bootstrapped-package rust-1.72 "1.73.0"
"0fmvn7vg3qg9xprgfwv10g3ygy8i4j4bkcxcr1xdy89d3xnjxmln")))
(package
@@ -840,6 +844,7 @@ safety and thread safety guarantees.")
(let ((base-rust rust-1.73))
(package
(inherit base-rust)
+ (properties (alist-delete 'hidden? (package-properties base-rust)))
(outputs (cons* "rust-src" "tools" (package-outputs base-rust)))
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
@@ -1060,7 +1065,10 @@ exec -a \"$0\" \"~a\" \"$@\""
(package-native-inputs base-rust))))))
(define*-public (make-rust-sysroot target)
- (let ((base-rust rust))
+ (make-rust-sysroot/implementation target rust))
+
+(define make-rust-sysroot/implementation
+ (mlambda (target base-rust)
(package
(inherit base-rust)
(name (string-append "rust-sysroot-for-" target))
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 3fcd4f4bc9..8d6602c0a8 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2023 Adam Faiz <adam.faiz@disroot.org>
+;;; Copyright © 2023 David Pflug <david@pflug.io>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -569,14 +570,14 @@ conflict with slocate compatibility.")
(define-public plocate
(package
(name "plocate")
- (version "1.1.19")
+ (version "1.1.21")
(source
(origin
(method url-fetch)
(uri (string-append "https://plocate.sesse.net/download/"
"plocate-" version ".tar.gz"))
(sha256
- (base32 "0rb15sifsmcm756bifs3y8wj282vp0zzagg6kkvbjyczibpchnyr"))))
+ (base32 "1b6khw8lf757wic6pc3w2r8wl9i5c4z98cdmp2qxmyspxhxvbrhd"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index e836b4f8b3..ccafb8e802 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -15,6 +15,8 @@
;;; Copyright © 2023 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2023 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -219,8 +221,60 @@ such as compact binary encodings, XML, or JSON.")
(list doxygen gcc-10
(package-source cereal)))))
+(define-public msgpack-c
+ (package
+ (name "msgpack-c")
+ (version "6.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://github.com/msgpack/msgpack-c/releases/download/"
+ "c-" version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1fmf08babfsjq5qkgw034wk2nw6mayxp1qlkm7h55p2jqvigam1n"))
+ (snippet
+ '(let ((p (open-file "msgpack-c.pc.in" "a")))
+ (display "Requires: zlib\n" p)
+ (close-output-port p)))))
+ (build-system cmake-build-system)
+ (arguments (list #:configure-flags #~(list "-DMSGPACK_BUILD_TESTS=ON")))
+ (native-inputs (list googletest))
+ (propagated-inputs (list zlib)) ;zbuffer.h includes zlib.h
+ (home-page "https://www.msgpack.org")
+ (synopsis "Binary serialization library")
+ (description "Msgpack is a library for C that implements binary
+serialization.")
+ (license license:boost1.0)))
+
+(define-public msgpack-cxx
+ (package
+ (inherit msgpack-c)
+ (name "msgpack-cxx")
+ (version "6.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://github.com/msgpack/msgpack-c/releases/download/"
+ "cpp-" version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1rrrf3nskcv994z3pbq6a5z2021piz118rccmm1y7zlf7klygv93"))))
+ (build-system cmake-build-system)
+ (propagated-inputs (list boost zlib)) ;included in headers
+ (description "Msgpack is a library for C++ that implements binary
+serialization.")))
+
+;;; The msgpack package was split into msgpack-c and msgpack-cxx starting from
+;;; version 4.0.0.
(define-public msgpack
+ (deprecated-package "msgpack" msgpack-c))
+
+(define-public msgpack-3
(package
+ (inherit msgpack-c)
(name "msgpack")
(version "3.3.0")
(source
@@ -234,23 +288,13 @@ such as compact binary encodings, XML, or JSON.")
'(let ((p (open-file "msgpack.pc.in" "a")))
(display
(string-append "Requires: " "zlib" "\n") p)
- (close-output-port p)
- #t))
+ (close-output-port p)))
(sha256
(base32 "0yzhq50ijvwrfkr97knhvn54lj3f4hr3zy39yq8wpf6xll94s4bf"))))
- (build-system cmake-build-system)
- (native-inputs
- (list googletest-1.8 pkg-config))
- (propagated-inputs
- (list zlib)) ;; Msgpack installs two headers (zbuffer.h,
- ;; zbuffer.hpp) which #include <zlib.h>. However, 'guix gc --references'
- ;; does not detect a store reference to zlib since these headers are not
- ;; compiled.
- (home-page "https://www.msgpack.org")
- (synopsis "Binary serialization library")
+ (native-inputs (list googletest-1.8))
(description "Msgpack is a library for C/C++ that implements binary
-serialization.")
- (license license:boost1.0)))
+serialization. This is the legacy version that predates the split into C and
+C++ specific packages.")))
(define-public libmpack
(package
@@ -469,16 +513,16 @@ character limit for implicit keys.")
(define-public yaml-cpp
(package
(name "yaml-cpp")
- (version "0.6.3")
+ (version "0.8.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jbeder/yaml-cpp")
- (commit (string-append "yaml-cpp-" version))))
+ (commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0ykkxzxcwwiv8l8r697gyqh1nl582krpvi7m7l6b40ijnk4pw30s"))))
+ (base32 "0whdn6pqa56532ml20h89p6rchcrrazdrvi5fz6zpmrkl15yiki7"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DYAML_BUILD_SHARED_LIBS=ON")))
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 8d2aadc0aa..e3de0eb205 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2022 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 David Pflug <david@pflug.io>
+;;; Copyright © 2024 Tanguy Le Carrour <tanguy@bioneland.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -273,16 +274,16 @@ and syntax highlighting.")
(define-public fish-foreign-env
(package
(name "fish-foreign-env")
- (version "0.20190116")
+ (version "0.20230823")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/oh-my-fish/plugin-foreign-env")
- (commit "dddd9213272a0ab848d474d0cbde12ad034e65bc")))
+ (commit "7f0cf099ae1e1e4ab38f46350ed6757d54471de7")))
(file-name (git-file-name name version))
(sha256
- (base32 "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs"))))
+ (base32 "0d16mdgjdwln41zk44qa5vcilmlia4w15r8z2rc3p49i5ankksg3"))))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
@@ -298,7 +299,6 @@ and syntax highlighting.")
;; Embed absolute paths.
(substitute* `(,(string-append func-path "/fenv.fish")
- ,(string-append func-path "/fenv.apply.fish")
,(string-append func-path "/fenv.main.fish"))
(("bash")
(search-input-file %build-inputs "/bin/bash"))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index eec9a68e19..4e67845b90 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -205,7 +205,10 @@ a server that supports the SSH-2 protocol.")
(method url-fetch)
(uri (string-append "mirror://openbsd/OpenSSH/portable/"
"openssh-" version ".tar.gz"))
- (patches (search-patches "openssh-trust-guix-store-directory.patch"))
+ (patches (search-patches "openssh-trust-guix-store-directory.patch"
+ ;; Can be removed with next openssh update
+ ;; https://issues.guix.gnu.org/67948#2
+ "openssh-gcc-13-ppc64le-fzero-call-used-regs.patch"))
(sha256
(base32 "0z3pgam8b4z05lvdb78iv06p204qwl7b94a3cnnwba2mfb0120li"))))
(build-system gnu-build-system)
@@ -325,7 +328,7 @@ Additionally, various channel-specific options can be negotiated.")
(define-public guile-ssh
(package
(name "guile-ssh")
- (version "0.16.3")
+ (version "0.16.4")
(home-page "https://github.com/artyom-poptsov/guile-ssh")
(source (origin
(method git-fetch)
@@ -335,7 +338,7 @@ Additionally, various channel-specific options can be negotiated.")
(file-name (git-file-name name version))
(sha256
(base32
- "0b03aizjdj3g15xfkspgvy8k5jl8bgv4q7gwjwr3l2ibqkrm8vrz"))))
+ "127yhjaywais3h2g3cxhqmhdmqgxf9j1jwb6wzx92j0z7asrjqwr"))))
(build-system gnu-build-system)
(outputs '("out" "debug"))
(arguments
@@ -363,8 +366,7 @@ Additionally, various channel-specific options can be negotiated.")
(parallel-job-count)))
(substitute* (find-files "." "\\.scm$")
(("\"libguile-ssh\"")
- (string-append "\"" lib "/libguile-ssh\"")))
- #t)))
+ (string-append "\"" lib "/libguile-ssh\""))))))
,@(if (%current-target-system)
'()
'((add-before 'check 'fix-guile-path
@@ -372,8 +374,7 @@ Additionally, various channel-specific options can be negotiated.")
(let ((guile (assoc-ref inputs "guile")))
(substitute* "tests/common.scm"
(("/usr/bin/guile")
- (string-append guile "/bin/guile")))
- #t)))))
+ (string-append guile "/bin/guile"))))))))
(add-after 'install 'remove-bin-directory
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -385,8 +386,7 @@ Additionally, various channel-specific options can be negotiated.")
(string-append examples "/ssshd.scm"))
(rename-file (string-append bin "/sssh.scm")
(string-append examples "/sssh.scm"))
- (delete-file-recursively bin)
- #t))))))
+ (delete-file-recursively bin)))))))
(native-inputs (list autoconf
automake
libtool
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 95cfc4e652..9df31de659 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2021 Frank Pursel <frank.pursel@gmail.com>
;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
+;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1430,13 +1431,13 @@ R/DBMS implementations.")
(define-public r-bh
(package
(name "r-bh")
- (version "1.81.0-1")
+ (version "1.84.0-0")
(source (origin
(method url-fetch)
(uri (cran-uri "BH" version))
(sha256
(base32
- "0r7zjxpbm2paliplprwf9769a57clqaiskiiadiy10gissnqn77m"))))
+ "1b7igvvy9f13l969a26j2bdzib2laq3m4w1x0xsxjb2pbxsn1dkg"))))
(build-system r-build-system)
(home-page "https://github.com/eddelbuettel/bh")
(synopsis "R package providing subset of Boost headers")
@@ -1781,13 +1782,13 @@ defined in different packages.")
(define-public r-rlang
(package
(name "r-rlang")
- (version "1.1.2")
+ (version "1.1.3")
(source (origin
(method url-fetch)
(uri (cran-uri "rlang" version))
(sha256
(base32
- "14l0dz36wav2jbz0dd3w34va68lrhr7fgd9dqf1v4nawdvff23ia"))))
+ "02mz53g8lk26yi0js6qq57ijhl1mw7xm82vwbwzbvi62bm5l58r4"))))
(build-system r-build-system)
(home-page "http://rlang.tidyverse.org")
(synopsis "Functions for base types, core R and Tidyverse features")
@@ -3032,13 +3033,13 @@ time-of-day values, based on the @code{difftime} class.")
(define-public r-readr
(package
(name "r-readr")
- (version "2.1.4")
+ (version "2.1.5")
(source (origin
(method url-fetch)
(uri (cran-uri "readr" version))
(sha256
(base32
- "03gbzf29kdvf4rdqgdq2jm7c9ifjla3qzpiyqzw1x9jgijj4y54q"))))
+ "02p1jjal73j39r49ba4jlvbx8bdqmm96nsdp47igyv54w1gmm9hg"))))
(build-system r-build-system)
(propagated-inputs
(list r-cli
@@ -3047,9 +3048,9 @@ time-of-day values, based on the @code{difftime} class.")
r-crayon
r-hms
r-lifecycle
- r-tibble
r-r6
r-rlang
+ r-tibble
r-tzdb
r-vroom))
(native-inputs
@@ -3372,13 +3373,13 @@ engine (version 3.8.8.2) is included.")
(define-public r-rcurl
(package
(name "r-rcurl")
- (version "1.98-1.13")
+ (version "1.98-1.14")
(source (origin
(method url-fetch)
(uri (cran-uri "RCurl" version))
(sha256
(base32
- "01pkmip1sllislmp34c25i9m9mlrid9b48xfjbf93sml55ijz985"))))
+ "1kq3ydvm7hvy8pxk9iy13pkq5mxyxqlx4mpjsadzl7a7jj32gbgf"))))
(properties `((upstream-name . "RCurl")))
(build-system r-build-system)
(arguments
@@ -3392,10 +3393,8 @@ engine (version 3.8.8.2) is included.")
certs = Sys.getenv(\"CURL_CA_BUNDLE\")
if (certs != \"\") { .opts = merge.list(.opts, list(cainfo=certs)) }
" m))))))))
- (native-inputs
- (list libxml2))
(inputs
- (list curl))
+ (list curl libxml2))
(propagated-inputs
(list r-bitops))
(home-page "https://www.omegahat.net/RCurl")
@@ -4181,13 +4180,13 @@ computation, bagged clustering, naive Bayes classifier, and more.")
(define-public r-bigmemory-sri
(package
(name "r-bigmemory-sri")
- (version "0.1.6")
+ (version "0.1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "bigmemory.sri" version))
(sha256
- (base32 "03468ak0lgd9m0f7synxms2zzr8f7n2nm1gmhcraj3nfcv4nmyiv"))))
+ (base32 "0wbpk3naipl0ab3wnixnp2n874kazrapv1c31fi3cxm19b94x6h2"))))
(properties
`((upstream-name . "bigmemory.sri")))
(build-system r-build-system)
@@ -4201,14 +4200,14 @@ bigmemory and synchronicity packages.")
(define-public r-synchronicity
(package
(name "r-synchronicity")
- (version "1.3.5")
+ (version "1.3.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "synchronicity" version))
(sha256
(base32
- "1kgsk64aifjm3mfj102y3va7x1abypq2zi0cqbnjhl8fqyzp69hx"))))
+ "12svf4xzb9s3m1h2ddqgl6q2v57ifsj2p80j8cg2k0543a43pww2"))))
(build-system r-build-system)
(propagated-inputs
(list r-bh r-bigmemory-sri r-rcpp r-uuid))
@@ -4223,14 +4222,14 @@ message passing.")
(define-public r-bigmemory
(package
(name "r-bigmemory")
- (version "4.6.1")
+ (version "4.6.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "bigmemory" version))
(sha256
(base32
- "0hainqkm7cs8gjm42vkpdrr0284smsbwdfackp34yv7dhxy1avmm"))))
+ "0b80c2nsgphgr3cnvf75a0z3bzqx4q1a4dplq0h2izc71mn5fgzy"))))
(build-system r-build-system)
(propagated-inputs
(list r-bh r-bigmemory-sri r-rcpp r-uuid))
@@ -6919,6 +6918,50 @@ files, including Rmarkdown files.")
popular stats packages like SAS, Stata and SPSS.")
(license license:expat)))
+(define-public python-pyreadstat
+ (package
+ (name "python-pyreadstat")
+ (version "1.2.4")
+ ;; No tests in the PyPI tarball.
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Roche/pyreadstat")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zysrzixvqw2lwwykxqg5yj8a0zyv5s2bmk22x30f4rj2hgvq1pv"))
+ (patches (search-patches "python-pyreadstat-link-libiconv.patch"))))
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-before 'check 'change-home-dir
+ (lambda _
+ ;; test_sav_expand and test_sav_write_basic_expanduser need a
+ ;; home directory with write permissions.
+ (setenv "HOME" "/tmp")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; The source also contains tests/test_version.py
+ ;; which checks the version in __init__.py against the
+ ;; one in setup.py. Since this requires texlive
+ ;; dependencies to run and is also not mentioned in
+ ;; how_to_test.md, this test is skipped.
+ (invoke "python" "tests/test_basic.py")))))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-pandas))
+ (inputs (list libiconv zlib))
+ (native-inputs (list python-cython-3))
+ (home-page "https://github.com/Roche/pyreadstat")
+ (synopsis
+ "Read and write SAS, SPSS and Stata files into/from Pandas DataFrames")
+ (description
+ "This Python package can be used to read and write SAS, SPSS and Stata
+files into/from Pandas DataFrames. It is a wrapper around the C library
+@code{readstat}.")
+ (license license:asl2.0)))
+
(define-public r-quantpsyc
(package
(name "r-quantpsyc")
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 714225c654..81e2151854 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
+;;; Copyright © 2024 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1115,7 +1116,7 @@ support.")
(define-public sfeed
(package
(name "sfeed")
- (version "1.6")
+ (version "2.0")
(source
(origin
(method git-fetch)
@@ -1125,7 +1126,7 @@ support.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1ax603xxcwvmgizf6ia820fc7fliinx86zv6ggiqj5p59kz75x0r"))))
+ (base32 "0zmgkvq75a7h4rmk7izpsaxswlqh9zg446wxv7qcw0bh5xdckg0d"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm
index 3f38cd9f9f..7025d05038 100644
--- a/gnu/packages/swig.scm
+++ b/gnu/packages/swig.scm
@@ -79,7 +79,7 @@ you tailor the wrapping process to suit your application.")
(package
(inherit swig)
(name "swig")
- (version "4.1.1")
+ (version "4.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
@@ -87,5 +87,5 @@ you tailor the wrapping process to suit your application.")
name "-" version ".tar.gz"))
(sha256
(base32
- "16xc767gf5ip40jh698wbdrxrghli5v2c966bkdmrmpwv378mw1a"))))
+ "15wwh9215rdkflpr85r7zxr2nmrib03jr4bvh5i0f9lyb3bs4716"))))
(inputs (list pcre2))))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 3092c39b24..41e83384ec 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@@ -855,6 +855,75 @@ your calls and messages.")
Initiation Protocol (SIP) and a multimedia framework.")
(license license:gpl2+)))
+(define-public pjproject-jami
+ (let ((commit "d044ad6c5b4221648c555da16196804e4721299c")
+ (revision "0"))
+ (package
+ (inherit pjproject)
+ (name "pjproject-jami")
+ ;; The version is taken from
+ ;; <https://raw.githubusercontent.com/savoirfairelinux/pjproject/master/version.mak>.
+ (version (git-version "2.13.1" revision commit))
+ (source (origin
+ (inherit (package-source pjproject))
+ ;; The Jami development team regularly issues patches to
+ ;; pjproject to extend the its functionality and fix bugs;
+ ;; they are submitted for inclusion upstream but larger
+ ;; patches take time to be reviewed and merged, hence this
+ ;; forked repository.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/savoirfairelinux/pjproject")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0z4d7wdpa2mlaygb283k0j8n3l6q68gn0xqd62b5ngqvkhlaf775"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments pjproject)
+ ((#:configure-flags _ ''())
+ ;; This package is tailored for DhtNet; see how it is built for its
+ ;; CI in
+ ;; <https://git.jami.net/savoirfairelinux/dhtnet/-/raw/master/Dockerfile>.
+ #~(list
+ ;; Some flags preserved flags from parent package.
+ "--with-external-srtp"
+ #$@(if (string-contains (or (%current-system)
+ (%current-target-system)) "linux")
+ #~("--enable-epoll")
+ #~())
+ "--with-gnutls" ;disable OpenSSL checks
+ ;; -DNDEBUG is set to prevent pjproject from raising
+ ;; assertions that aren't critical, crashing
+ ;; applications as the result.
+ "CFLAGS=-DNDEBUG"
+ ;; Specify a runpath reference to itself, which is missing and
+ ;; causes the validate-runpath phase to fail.
+ (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
+ "--enable-shared"
+ "--disable-libyuv" ;TODO: add missing package
+
+ ;; These flags are specific to DhtNet.
+ "--disable-sound"
+ "--enable-video"
+ "--enable-ext-sound"
+ "--disable-speex-aec"
+ "--disable-g711-codec"
+ "--disable-l16-codec"
+ "--disable-gsm-codec"
+ "--disable-g722-codec"
+ "--disable-g7221-codec"
+ "--disable-speex-codec"
+ "--disable-ilbc-codec"
+ "--disable-opencore-amr"
+ "--disable-silk"
+ "--disable-sdl"
+ "--disable-ffmpeg"
+ "--disable-v4l2"
+ "--disable-openh264"
+ "--disable-resample"
+ "--disable-libwebrtc")))))))
+
(define-public libtgvoip
(package
(name "libtgvoip")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 126cfe4343..d633b4ba90 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1289,10 +1289,8 @@ that can be displayed terminal.")
(base32
"0x5c31yq7ansmiy20a0qf59wagba9v3pq97mlkxrqxn4n1gcc6vi"))))
(build-system gnu-build-system)
- (inputs
- (list libevent libssh msgpack ncurses))
- (native-inputs
- (list autoconf automake pkg-config))
+ (inputs (list libevent libssh msgpack-3 ncurses))
+ (native-inputs (list autoconf automake pkg-config))
(home-page "https://tmate.io/")
(synopsis "Terminal sharing application")
(description "tmate is a terminal sharing application that allows you to
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 5b07d5cfb4..e154a12c7a 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -30,6 +30,7 @@
;;; Copyright © 2023 Eidvilas Markevičius <markeviciuseidvilas@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
+;;; Copyright © 2023 David Pflug <david@pflug.io>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -213,7 +214,7 @@ based command language.")
(define-public kakoune
(package
(name "kakoune")
- (version "2022.10.31")
+ (version "2023.08.05")
(source
(origin
(method url-fetch)
@@ -221,7 +222,7 @@ based command language.")
"releases/download/v" version "/"
"kakoune-" version ".tar.bz2"))
(sha256
- (base32 "12z5wka649xycclbs94bfy2yyln2172dz0zycxsxr384r5i7ncgv"))))
+ (base32 "0p6skjrfygg7hakl8v95pd17q9pjmid9p8nnw86m1lyx18g1ai9y"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index ea182b1925..494e6b5ef5 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -996,13 +996,13 @@ and Cython.")
(define-public txt2tags
(package
(name "txt2tags")
- (version "3.7")
+ (version "3.9")
(source (origin
(method url-fetch)
(uri (pypi-uri "txt2tags" version))
(sha256
(base32
- "12hpnvdy7dgarq6ini9jp7dp2zcmvpax04zbl3jb84kd423r75i7"))))
+ "0ik7gpr3gymgxnj0p86k8768kyxncbncv93zq67sbak3dbdl8hky"))))
(build-system python-build-system)
(native-inputs (list python-tox))
(home-page "https://txt2tags.org")
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index b81944ee6b..b20e17e4ce 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -53,6 +53,7 @@
#:use-module (gnu packages pcre)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -598,14 +599,27 @@ Browser.")
(substitute*
"toolkit/locales/en-US/toolkit/about/aboutAddons.ftl"
(("addons.mozilla.org") "gnuzilla.gnu.org"))))
- (add-after 'install 'deploy-assets
+ (add-before 'build 'add-bridges ;see deploy.sh
(lambda _
+ (let ((port (open-file
+ "browser/app/profile/000-tor-browser.js" "a")))
+ (display
+ "#include ../../../tools/torbrowser/bridges.js" port)
+ (newline port)
+ (close port))))
+ (add-after 'install 'deploy-assets
+ (lambda* (#:key inputs #:allow-other-keys)
(let ((assets #$(this-package-input "torbrowser-assets"))
(lib (in-vicinity #$output "lib/torbrowser"))
(tor #$(this-package-input "tor-client")))
;; TorBrowser/Data/Tor/torrc-defaults
(copy-recursively (in-vicinity assets "TorBrowser")
(in-vicinity lib "TorBrowser"))
+ (substitute*
+ (in-vicinity lib "TorBrowser/Data/Tor/torrc-defaults")
+ (("exec ./TorBrowser/Tor/PluggableTransports/lyrebird")
+ (string-append
+ "exec " (search-input-file inputs "bin/lyrebird"))))
;; The geoip and geoip6 files are in the same directory as
;; torrc-defaults. (See TorProcess.sys.mjs.)
(mkdir-p (in-vicinity lib "TorBrowser/Data/Tor"))
@@ -755,6 +769,7 @@ Browser.")
(inputs
(modify-inputs (package-inputs icecat-minimal)
(append bash-minimal
+ go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird
tor-client
torbrowser-assets)))
(propagated-inputs
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 744ee0099e..5b1fbf2eab 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -33,7 +33,7 @@
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
-;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
@@ -853,6 +853,52 @@ on @command{git}, and use any regular Git hosting service.")
to GitHub contributions calendar.")
(license license:expat)))
+(define-public xdiff
+ (let ((revision "0")
+ (commit "a137bc7ee6c76618ed1737c257548eaa10ac0089"))
+ (package
+ (name "xdiff")
+ ;; The base version is taken from the CMakeLists.txt file.
+ (version (git-version "0.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libgit2/xdiff")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1rxzpag2pih64qlgq40xg1z6mz0bzvps4baxw7bmykyhjhc2gx75"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:modules '((guix build cmake-build-system)
+ (guix build utils)
+ (srfi srfi-26))
+ #:tests? #f ;no test suite
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'create-shared-library
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("add_library\\(xdiff STATIC")
+ "add_library(xdiff SHARED"))))
+ (replace 'install ;no install target
+ (lambda _
+ (with-directory-excursion "../source"
+ (for-each (cute install-file <>
+ (string-append #$output "/include"))
+ (list "xdiff.h"
+ "git-xdiff.h"))) ;included by xdiff.h
+ (install-file "libxdiff.so"
+ (string-append #$output "/lib")))))))
+ (home-page "https://github.com/libgit2/xdiff")
+ (synopsis "File differential library used by git")
+ (description "@code{xdiff} is the file differential library used by git,
+which has been extracted into a standalone library for compatibility with
+other git-like projects such as @code{libgit2}.")
+ (license license:lgpl2.1+))))
+
(define-public libgit2
(package
(name "libgit2")
@@ -1088,115 +1134,118 @@ collaboration using typical untrusted file hosts or services.")
(license license:gpl3+)))
(define-public cgit
- (package
- (name "cgit")
- ;; Update the ‘git-source’ input as well.
- (version "1.2.3")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://git.zx2c4.com/cgit/snapshot/cgit-"
- version ".tar.xz"))
- (sha256
- (base32
- "193d990ym10qlslk0p8mjwp2j6rhqa7fq0y1iff65lvbyv914pss"))))
- (build-system gnu-build-system)
- (arguments
- (list
- #:tests? #f ; XXX: fail to build the in-source git.
- #:test-target "test"
- #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
- "SHELL_PATH=sh")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'unpack-git
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Unpack the source of git into the 'git' directory.
- (invoke "tar" "--strip-components=1" "-C" "git" "-xf"
- (assoc-ref inputs "git-source"))))
- (add-after 'unpack 'patch-absolute-file-names
- (lambda* (#:key inputs #:allow-other-keys)
- (define (quoted-file-name input path)
- (string-append "\"" input path "\""))
- (substitute* "ui-snapshot.c"
- (("\"gzip\"")
- (quoted-file-name (assoc-ref inputs "gzip") "/bin/gzip"))
- (("\"bzip2\"")
- (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2"))
- (("\"xz\"")
- (quoted-file-name (assoc-ref inputs "xz") "/bin/xz")))
-
- (substitute* "filters/about-formatting.sh"
- (("$\\(dirname $0\\)") (string-append (assoc-ref outputs "out")
- "/lib/cgit/filters"))
- (("\\| tr") (string-append "| " (which "tr"))))
-
- (substitute* "filters/html-converters/txt2html"
- (("sed") (which "sed")))
-
- (substitute* "filters/html-converters/man2html"
- (("groff") (which "groff")))
-
- (substitute* "filters/html-converters/rst2html"
- (("rst2html\\.py") (which "rst2html.py")))))
- (delete 'configure) ; no configure script
- (add-after 'build 'build-man
- (lambda* (#:key make-flags #:allow-other-keys)
- (apply invoke "make" "doc-man" make-flags)))
- (replace 'install
- (lambda* (#:key make-flags outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (apply invoke
- "make" "install" "install-man"
- (string-append "prefix=" out)
- (string-append "CGIT_SCRIPT_PATH=" out "/share/cgit")
- make-flags)
- ;; Move the platform-dependent 'cgit.cgi' into lib to get it
- ;; stripped.
- (rename-file (string-append out "/share/cgit/cgit.cgi")
- (string-append out "/lib/cgit/cgit.cgi")))))
- (add-after 'install 'wrap-python-scripts
- (lambda* (#:key outputs #:allow-other-keys)
- (for-each
- (lambda (file)
- (wrap-program (string-append (assoc-ref outputs "out")
- "/lib/cgit/filters/" file)
- `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))))
- '("syntax-highlighting.py"
- "html-converters/md2html")))))))
- (native-inputs
- ;; For building manpage.
- (list asciidoc))
- (inputs
- `(;; Building cgit requires a Git source tree.
- ("git-source"
- ,(origin
- (method url-fetch)
- ;; cgit is tightly bound to git. Use GIT_VER from the Makefile,
- ;; which may not match the current (package-version git).
- (uri "mirror://kernel.org/software/scm/git/git-2.25.4.tar.xz")
- (sha256
- (base32 "11am6s46wmn1yll5614smjhzlghbqq6gysgcs64igjr9y5wzpdxq"))))
- ("bash-minimal" ,bash-minimal)
- ("openssl" ,openssl)
- ("python" ,python)
- ("python-docutils" ,python-docutils)
- ("python-markdown" ,python-markdown)
- ("python-pygments" ,python-pygments)
- ("zlib" ,zlib)
- ;; bzip2, groff, gzip and xz are inputs (not native inputs)
- ;; since they are actually substituted into cgit source and
- ;; referenced by the built package output.
- ("bzip2" ,bzip2)
- ("groff" ,groff)
- ("gzip" ,gzip)
- ("xz" ,xz)))
- (home-page "https://git.zx2c4.com/cgit/")
- (synopsis "Web frontend for git repositories")
- (description
- "CGit is an attempt to create a fast web interface for the Git SCM, using
+ (let ((commit "793c420897e18eb3474c751d54cf4e0983f85433")
+ (rev "1"))
+ (package
+ (name "cgit")
+ ;; Update the ‘git-source’ input as well.
+ (version (git-version "1.2.3" rev commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.zx2c4.com/cgit")
+ (commit commit)))
+ (sha256
+ (base32
+ "1mhrm14wpqvralf9j33ih5ai6naiq3g2jg2z91gnw9dhh8f9ilwz"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; XXX: fail to build the in-source git.
+ #:test-target "test"
+ #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+ "SHELL_PATH=sh")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'unpack-git
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Unpack the source of git into the 'git' directory.
+ (invoke "tar" "--strip-components=1" "-C" "git" "-xf"
+ (assoc-ref inputs "git-source"))))
+ (add-after 'unpack 'patch-absolute-file-names
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define (quoted-file-name input path)
+ (string-append "\"" input path "\""))
+ (substitute* "ui-snapshot.c"
+ (("\"gzip\"")
+ (quoted-file-name (assoc-ref inputs "gzip") "/bin/gzip"))
+ (("\"bzip2\"")
+ (quoted-file-name (assoc-ref inputs "bzip2") "/bin/bzip2"))
+ (("\"xz\"")
+ (quoted-file-name (assoc-ref inputs "xz") "/bin/xz")))
+
+ (substitute* "filters/about-formatting.sh"
+ (("$\\(dirname $0\\)") (string-append (assoc-ref outputs "out")
+ "/lib/cgit/filters"))
+ (("\\| tr") (string-append "| " (which "tr"))))
+
+ (substitute* "filters/html-converters/txt2html"
+ (("sed") (which "sed")))
+
+ (substitute* "filters/html-converters/man2html"
+ (("groff") (which "groff")))
+
+ (substitute* "filters/html-converters/rst2html"
+ (("rst2html\\.py") (which "rst2html.py")))))
+ (delete 'configure) ; no configure script
+ (add-after 'build 'build-man
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (apply invoke "make" "doc-man" make-flags)))
+ (replace 'install
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (apply invoke
+ "make" "install" "install-man"
+ (string-append "prefix=" out)
+ (string-append "CGIT_SCRIPT_PATH=" out "/share/cgit")
+ make-flags)
+ ;; Move the platform-dependent 'cgit.cgi' into lib to get it
+ ;; stripped.
+ (rename-file (string-append out "/share/cgit/cgit.cgi")
+ (string-append out "/lib/cgit/cgit.cgi")))))
+ (add-after 'install 'wrap-python-scripts
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ (lambda (file)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/lib/cgit/filters/" file)
+ `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))))
+ '("syntax-highlighting.py"
+ "html-converters/md2html")))))))
+ (native-inputs
+ ;; For building manpage.
+ (list asciidoc))
+ (inputs
+ `( ;; Building cgit requires a Git source tree.
+ ("git-source"
+ ,(origin
+ (method url-fetch)
+ ;; cgit is tightly bound to git. Use GIT_VER from the Makefile,
+ ;; which may not match the current (package-version git).
+ (uri "mirror://kernel.org/software/scm/git/git-2.43.0.tar.xz")
+ (sha256
+ (base32 "1v3nkfm3gw8wr7595qy86qla8xyjvi85fmly4lfph4frfcz60ijl"))))
+ ("bash-minimal" ,bash-minimal)
+ ("openssl" ,openssl)
+ ("python" ,python)
+ ("python-docutils" ,python-docutils)
+ ("python-markdown" ,python-markdown)
+ ("python-pygments" ,python-pygments)
+ ("zlib" ,zlib)
+ ;; bzip2, groff, gzip and xz are inputs (not native inputs)
+ ;; since they are actually substituted into cgit source and
+ ;; referenced by the built package output.
+ ("bzip2" ,bzip2)
+ ("groff" ,groff)
+ ("gzip" ,gzip)
+ ("xz" ,xz)))
+ (home-page "https://git.zx2c4.com/cgit/")
+ (synopsis "Web frontend for git repositories")
+ (description
+ "CGit is an attempt to create a fast web interface for the Git SCM, using
a built-in cache to decrease server I/O pressure.")
- (license license:gpl2)))
+ (license license:gpl2))))
(define-public cgit-pink
(package
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index a3cc52568d..a17fbdb8b2 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -50,7 +50,7 @@
;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2021, 2022, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 David Wilson <david@daviwil.com>
-;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
@@ -2001,6 +2001,265 @@ audio/video codec library.")
"--enable-static"))))
(inputs '()))))
+;;; Custom ffmpeg package used by Jami, which incorporates custom patches.
+(define-public ffmpeg-jami
+ (package
+ (inherit ffmpeg)
+ (name "ffmpeg-jami")
+ (source (let ((ffmpeg-origin (package-source ffmpeg)))
+ (origin
+ (inherit ffmpeg-origin)
+ ;; These patches originate come from
+ ;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/>.
+ ;; Make sure to keep them update and/or register any new ones
+ ;; here.
+ (patches
+ (append
+ (origin-patches ffmpeg-origin)
+ (search-patches
+ "ffmpeg-jami-remove-mjpeg-log.patch"
+ "ffmpeg-jami-change-RTCP-ratio.patch"
+ "ffmpeg-jami-rtp_ext_abs_send_time.patch"
+ "ffmpeg-jami-libopusdec-enable-FEC.patch"
+ "ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch"
+ "ffmpeg-jami-screen-sharing-x11-fix.patch"))))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments ffmpeg)
+ ((#:configure-flags _ '())
+ ;; The base configure flags preserved from ffmpeg appear first.
+ #~(list "--disable-static"
+ "--enable-shared"
+ "--disable-stripping"
+
+ ;; Extra Guix-added flags that make sense for this custom
+ ;; package; these could be contributed upstream.
+ "--disable-doc"
+
+ ;; The following flags are those specified by Jami.
+ ;; They're from the jami/daemon/contrib/src/ffmpeg/rules.mak
+ ;; file. We try to keep it as close to the official Jami
+ ;; package as possible, to provide all the codecs and extra
+ ;; features that are expected (see:
+ ;; https://review.jami.net/plugins/gitiles/jami-daemon/+/
+ ;; refs/heads/master/contrib/src/ffmpeg/rules.mak).
+ "--disable-everything"
+ "--enable-zlib"
+ "--enable-gpl"
+ "--enable-swscale"
+ "--enable-bsfs"
+ "--disable-filters"
+ "--disable-programs"
+ "--disable-postproc"
+
+ "--disable-protocols"
+ "--enable-protocol=crypto"
+ "--enable-protocol=file"
+ "--enable-protocol=rtp"
+ "--enable-protocol=srtp"
+ "--enable-protocol=tcp"
+ "--enable-protocol=udp"
+ "--enable-protocol=unix"
+ "--enable-protocol=pipe"
+
+ ;; Enable muxers/demuxers.
+ "--disable-demuxers"
+ "--disable-muxers"
+ "--enable-muxer=rtp"
+ "--enable-muxer=g722"
+ "--enable-muxer=g723_1"
+ "--enable-muxer=g726"
+ "--enable-muxer=g726le"
+ "--enable-muxer=h263"
+ "--enable-muxer=h264"
+ "--enable-muxer=hevc"
+ "--enable-muxer=matroska"
+ "--enable-muxer=webm"
+ "--enable-muxer=ogg"
+ "--enable-muxer=pcm_s16be"
+ "--enable-muxer=pcm_s16le"
+ "--enable-muxer=wav"
+ "--enable-demuxer=rtp"
+ "--enable-demuxer=mjpeg"
+ "--enable-demuxer=mjpeg_2000"
+ "--enable-demuxer=mpegvideo"
+ "--enable-demuxer=gif"
+ "--enable-demuxer=image_jpeg_pipe"
+ "--enable-demuxer=image_png_pipe"
+ "--enable-demuxer=image_webp_pipe"
+ "--enable-demuxer=matroska"
+ "--enable-demuxer=m4v"
+ "--enable-demuxer=mp3"
+ "--enable-demuxer=ogg"
+ "--enable-demuxer=flac"
+ "--enable-demuxer=wav"
+ "--enable-demuxer=ac3"
+ "--enable-demuxer=g722"
+ "--enable-demuxer=g723_1"
+ "--enable-demuxer=g726"
+ "--enable-demuxer=g726le"
+ "--enable-demuxer=pcm_mulaw"
+ "--enable-demuxer=pcm_alaw"
+ "--enable-demuxer=pcm_s16be"
+ "--enable-demuxer=pcm_s16le"
+ "--enable-demuxer=h263"
+ "--enable-demuxer=h264"
+ "--enable-demuxer=hevc"
+
+ ;; Enable parsers.
+ "--enable-parser=h263"
+ "--enable-parser=h264"
+ "--enable-parser=hevc"
+ "--enable-parser=mpeg4video"
+ "--enable-parser=vp8"
+ "--enable-parser=vp9"
+ "--enable-parser=opus"
+
+ ;; Encoders/decoders.
+ "--enable-encoder=adpcm_g722"
+ "--enable-decoder=adpcm_g722"
+ "--enable-encoder=adpcm_g726"
+ "--enable-decoder=adpcm_g726"
+ "--enable-encoder=adpcm_g726le"
+ "--enable-decoder=adpcm_g726le"
+ "--enable-decoder=g729"
+ "--enable-encoder=g723_1"
+ "--enable-decoder=g723_1"
+ "--enable-encoder=rawvideo"
+ "--enable-decoder=rawvideo"
+ "--enable-encoder=libx264"
+ "--enable-decoder=h264"
+ "--enable-encoder=pcm_alaw"
+ "--enable-decoder=pcm_alaw"
+ "--enable-encoder=pcm_mulaw"
+ "--enable-decoder=pcm_mulaw"
+ "--enable-encoder=mpeg4"
+ "--enable-decoder=mpeg4"
+ "--enable-encoder=libvpx_vp8"
+ "--enable-decoder=vp8"
+ "--enable-decoder=vp9"
+ "--enable-encoder=h263"
+ "--enable-encoder=h263p"
+ "--enable-decoder=h263"
+ "--enable-encoder=mjpeg"
+ "--enable-decoder=mjpeg"
+ "--enable-decoder=mjpegb"
+ "--enable-libspeex"
+ "--enable-libopus"
+ "--enable-libvpx"
+ "--enable-libx264"
+ "--enable-encoder=libspeex"
+ "--enable-decoder=libspeex"
+ "--enable-encoder=libopus"
+ "--enable-decoder=libopus"
+
+ ;; Encoders/decoders for ringtones and audio streaming.
+ "--enable-decoder=flac"
+ "--enable-decoder=vorbis"
+ "--enable-decoder=aac"
+ "--enable-decoder=ac3"
+ "--enable-decoder=eac3"
+ "--enable-decoder=mp3"
+ "--enable-decoder=pcm_u24le"
+ "--enable-decoder=pcm_u32le"
+ "--enable-decoder=pcm_u8"
+ "--enable-decoder=pcm_f16le"
+ "--enable-decoder=pcm_f32le"
+ "--enable-decoder=pcm_f64le"
+ "--enable-decoder=pcm_s16le"
+ "--enable-decoder=pcm_s24le"
+ "--enable-decoder=pcm_s32le"
+ "--enable-decoder=pcm_s64le"
+ "--enable-decoder=pcm_u16le"
+ "--enable-encoder=pcm_u8"
+ "--enable-encoder=pcm_f32le"
+ "--enable-encoder=pcm_f64le"
+ "--enable-encoder=pcm_s16le"
+ "--enable-encoder=pcm_s32le"
+ "--enable-encoder=pcm_s64le"
+
+ ;; Encoders/decoders for images.
+ "--enable-encoder=gif"
+ "--enable-decoder=gif"
+ "--enable-encoder=jpegls"
+ "--enable-decoder=jpegls"
+ "--enable-encoder=ljpeg"
+ "--enable-decoder=jpeg2000"
+ "--enable-encoder=png"
+ "--enable-decoder=png"
+ "--enable-encoder=bmp"
+ "--enable-decoder=bmp"
+ "--enable-encoder=tiff"
+ "--enable-decoder=tiff"
+
+ ;; Filters.
+ "--enable-filter=scale"
+ "--enable-filter=overlay"
+ "--enable-filter=amix"
+ "--enable-filter=amerge"
+ "--enable-filter=aresample"
+ "--enable-filter=format"
+ "--enable-filter=aformat"
+ "--enable-filter=fps"
+ "--enable-filter=transpose"
+ "--enable-filter=pad"
+
+ ;; Decoders for ringtones and audio streaming.
+ "--enable-decoder=pcm_s16be"
+ "--enable-decoder=pcm_s16be_planar"
+ "--enable-decoder=pcm_s16le_planar"
+ "--enable-decoder=pcm_s24be"
+ "--enable-decoder=pcm_s24le_planar"
+ "--enable-decoder=pcm_s32be"
+ "--enable-decoder=pcm_s32le_planar"
+ "--enable-decoder=pcm_s64be"
+ "--enable-decoder=pcm_s8"
+ "--enable-decoder=pcm_s8_planar"
+ "--enable-decoder=pcm_u16be"
+
+ ;; More filters.
+ "--enable-filter=afir"
+ "--enable-filter=split"
+ "--enable-filter=drawbox"
+ "--enable-filter=drawtext"
+ "--enable-filter=rotate"
+ "--enable-filter=loop"
+ "--enable-filter=setpts"
+ "--enable-filter=movie"
+ "--enable-filter=alphamerge"
+ "--enable-filter=boxblur"
+ "--enable-filter=lut"
+ "--enable-filter=negate"
+ "--enable-filter=colorkey"
+ "--enable-filter=transpose"
+
+ "--enable-libfreetype"
+
+ #$@(if (string-contains (%current-system) "linux")
+ ;; Leave out the '--enable-cuvid' ... '--enable-encoder=hevc_nvenc'
+ ;; flags, as there's no support for ffnvcodec in Guix;
+ ;; it would not work with Mesa anyway.
+ '("--enable-pic"
+ "--extra-cxxflags=-fPIC"
+ "--extra-cflags=-fPIC"
+ "--target-os=linux"
+ "--enable-indev=v4l2"
+ "--enable-indev=xcbgrab"
+ "--enable-vdpau"
+ "--enable-hwaccel=h264_vdpau"
+ "--enable-hwaccel=mpeg4_vdpau"
+ "--enable-vaapi"
+ "--enable-hwaccel=h264_vaapi"
+ "--enable-hwaccel=mpeg4_vaapi"
+ "--enable-hwaccel=h263_vaapi"
+ "--enable-hwaccel=vp8_vaapi"
+ "--enable-hwaccel=mjpeg_vaapi"
+ "--enable-hwaccel=hevc_vaapi"
+ "--enable-encoder=h264_vaapi"
+ "--enable-encoder=vp8_vaapi"
+ "--enable-encoder=mjpeg_vaapi"
+ "--enable-encoder=hevc_vaapi")
+ '())))))))
+
(define-public ffmpegthumbnailer
(package
(name "ffmpegthumbnailer")
@@ -3639,7 +3898,10 @@ be used for realtime video capture via Linux-specific APIs.")
(lambda* _
(let ((plugin-path (getenv "QT_PLUGIN_PATH")))
(wrap-program (string-append #$output "/bin/obs")
- `("QT_PLUGIN_PATH" ":" prefix (,plugin-path)))))))))
+ `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))
+ `("LD_LIBRARY_PATH" ":" prefix
+ (,(string-append #$(this-package-input "vlc")
+ "/lib"))))))))))
(native-search-paths
(list (search-path-specification
(variable "OBS_PLUGINS_DIRECTORY")
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 1f7a005cb1..55c896f373 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -769,7 +769,7 @@ is based on Vim's builtin plugin support.")
(define-public neovim
(package
(name "neovim")
- (version "0.9.4")
+ (version "0.9.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -778,7 +778,7 @@ is based on Vim's builtin plugin support.")
(file-name (git-file-name name version))
(sha256
(base32
- "0wj1p5x88s58f22crdyzwlfiqgnwlqdkbw4wxllf0v5hg16gbnhp"))))
+ "1j3z7jay0m6g06v04falrzr062g07xr4svbrc3hywlqi2h6rrvk5"))))
(build-system cmake-build-system)
(arguments
(list #:modules
@@ -884,6 +884,14 @@ refactor Vim in order to:
'(#:tests? #false ;no tests
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'help-cmake-find-msgpack-c
+ (lambda _
+ ;; Patch the build system so that it can find the modern
+ ;; 'msgpack-c' named pkg-config file (see:
+ ;; https://github.com/jeanguyomarch/eovim/issues/73).
+ (substitute* "cmake/Modules/FindMsgPack.cmake"
+ (("MSGPACK QUIET msgpack")
+ "MSGPACK QUIET msgpack-c msgpack"))))
(add-after 'configure 'reference-nvim
(lambda* (#:key inputs #:allow-other-keys)
(let ((nvim (search-input-file inputs "/bin/nvim")))
@@ -894,10 +902,8 @@ refactor Vim in order to:
(string-append start nvim))))))
(add-before 'build 'set-home
(lambda _ (setenv "HOME" "/tmp"))))))
- (native-inputs
- (list pkg-config))
- (inputs
- (list efl msgpack neovim))
+ (native-inputs (list pkg-config))
+ (inputs (list efl msgpack-c neovim))
(home-page "https://github.com/jeanguyomarch/eovim/")
(synopsis "EFL GUI for Neovim")
(description "Graphical Neovim interface based on the @acronym{EFL, Enlightenment
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 2a67cdd64b..5b0e4f38e4 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2021 Alexander Krotov <krotov@iitp.ru>
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021 Christopher Howard <christopher@librehacker.com>
+;;; Copyright © 2023 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -459,7 +460,7 @@ interface.")
(define-public qutebrowser
(package
(name "qutebrowser")
- (version "2.5.4")
+ (version "3.1.0")
(source
(origin
(method url-fetch)
@@ -467,7 +468,7 @@ interface.")
"qutebrowser/releases/download/v" version "/"
"qutebrowser-" version ".tar.gz"))
(sha256
- (base32 "1c8skkc5vjbvbslz65hzrj9d05v4zbcjbli61ikjmr174lhb4q54"))))
+ (base32 "0prf9c7nx4aizfczjb0fpsn3alz210i6wc7s2jwb1mh8r8fcq3ah"))))
(build-system python-build-system)
(native-inputs
(list python-attrs)) ; for tests
@@ -480,15 +481,13 @@ interface.")
python-pynacl
python-pypeg2
python-pyyaml
- ;; FIXME: python-pyqtwebengine needs to come before python-pyqt so
- ;; that it's __init__.py is used first.
- python-pyqtwebengine
- python-pyqt
- ;; While qtwebengine-5 is provided by python-pyqtwebengine, it's
+ python-pyqt-6
+ python-pyqtwebengine-6
+ ;; While qtwebengine is provided by python-pyqtwebengine-6, it's
;; included here so we can wrap QTWEBENGINEPROCESS_PATH.
- qtwebengine-5))
+ qtwebengine))
(arguments
- `(;; FIXME: With the existance of qtwebengine-5, tests can now run. But
+ `(;; FIXME: With the existence of qtwebengine, tests can now run. But
;; they are still disabled because test phase hangs. It's not readily
;; apparent as to why.
#:tests? #f
@@ -538,13 +537,16 @@ interface.")
(add-after 'wrap 'wrap-qt-process-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (search-input-file outputs "bin/qutebrowser")
+ `("QTWEBENGINE_RESOURCES_PATH" =
+ (,(search-input-directory
+ inputs "/share/qt6/resources")))
`("QTWEBENGINEPROCESS_PATH" =
(,(search-input-file
- inputs "/lib/qt5/libexec/QtWebEngineProcess")))))))))
+ inputs "/lib/qt6/libexec/QtWebEngineProcess")))))))))
(home-page "https://qutebrowser.org/")
(synopsis "Minimal, keyboard-focused, vim-like web browser")
(description "qutebrowser is a keyboard-focused browser with a minimal
-GUI. It is based on PyQt5 and QtWebEngine.")
+GUI. It is based on PyQt6 and QtWebEngine.")
(license license:gpl3+)))
(define-public vimb
@@ -586,7 +588,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt
(package
(name "nyxt")
- (version "3.10.0")
+ (version "3.11.0")
(source
(origin
(method git-fetch)
@@ -595,7 +597,7 @@ driven and does not detract you from your daily work.")
(commit version)))
(sha256
(base32
- "1rz2082kk3fdvszqmi3fgndrq205vbxl3i0x4qyli0jy3lpvjin8"))
+ "0hzkpk8kshw7afz3pryi99xz2vg3v676day0mgji3hvaazfan39p"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b7fa9f301e..081de9fc18 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
-;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
@@ -46,7 +46,7 @@
;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020, 2021 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
@@ -6619,6 +6619,28 @@ Depending on your architecture, it only requires about 40 bytes of data per
message stream (in a web server that is per connection).")
(license license:expat))))
+(define-public llhttp
+ (package
+ (name "llhttp")
+ (version "9.1.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nodejs/llhttp")
+ (commit (string-append "release/v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1nkv64c5fs8x6n5f9f6g28w5hvg776p55cwa0f82ni548nx279s1"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ;FIXME: tests depend on node-mocha
+ (home-page "https://github.com/nodejs/llhttp")
+ (synopsis "Port of http_parser to llparse")
+ (description "@code{llparse} is a port of @code{http_parser} to
+@code{llparse} which aims making it more maintainable, verifiable and
+efficient where possible.")
+ (license license:expat)))
+
(define-public python-httpretty
(package
(name "python-httpretty")
@@ -8138,7 +8160,7 @@ compressed JSON header blocks.
(define-public hpcguix-web
(package
(name "hpcguix-web")
- (version "0.4.0")
+ (version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8147,7 +8169,7 @@ compressed JSON header blocks.
(file-name (git-file-name name version))
(sha256
(base32
- "19l9gvp2ngn7lc3jynrc16f3il2bgkhq1m8zfaqwxk9vwxiivwrn"))))
+ "13a4cwqdhpr7gc1z4cxs36qa50mzcdwwlj9qqzv818sx9d7r6vsw"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -8169,13 +8191,14 @@ compressed JSON header blocks.
(guile (assoc-ref inputs "guile"))
(gcrypt (assoc-ref inputs "guile-gcrypt"))
(git (assoc-ref inputs "guile-git"))
+ (gnutls (assoc-ref inputs "guile-gnutls"))
(bs (assoc-ref inputs "guile-bytestructures"))
(json (assoc-ref inputs "guile-json"))
(zlib (assoc-ref inputs "guile-zlib"))
(syntax (assoc-ref inputs "guile-syntax-highlight"))
(guile-cm (assoc-ref inputs
"guile-commonmark"))
- (deps (list guile gcrypt git bs zlib guile-cm
+ (deps (list guile gcrypt git gnutls bs zlib guile-cm
syntax guix json))
(effective
(read-line
@@ -8208,6 +8231,7 @@ compressed JSON header blocks.
guile-commonmark
guile-json-4
guile-syntax-highlight
+ guile-gnutls ;used to connect to https://disarchive.guix.gnu.org
bash-minimal))
(home-page "https://github.com/UMCUGenetics/hpcguix-web")
(synopsis "Web interface for cluster deployments of Guix")
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 68e1aa03ee..3a69e78c0f 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -65,6 +65,7 @@
;;; Copyright © 2023 Vessel Wave <vesselwave@disroot.org>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
+;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -787,7 +788,7 @@ desktop environment.")
(define-public icewm
(package
(name "icewm")
- (version "3.4.4")
+ (version "3.4.5")
(source (origin
(method url-fetch)
(uri (string-append
@@ -795,7 +796,7 @@ desktop environment.")
version "/icewm-" version ".tar.lz"))
(sha256
(base32
- "0cdsb2d45dwcr2dm4jfh0z5g6pkb0ghd4jaybxqiz74mbw5rmjhv"))))
+ "1wd5k0whh2b43a72223cy19pwc29fhrhd2dnc61fha2y5ndgw6ld"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config))
(inputs (list fontconfig
@@ -1851,7 +1852,7 @@ corners, shadows, inactive window dimming, etc.")
(list pkg-config-for-build wayland)
'())
(list pango pkg-config scdoc wayland-protocols)))
- (home-page "https://github.com/swaywm/sway")
+ (home-page "https://github.com/swaywm/swaylock")
(synopsis "Screen locking utility for Wayland compositors")
(description "Swaylock is a screen locking utility for Wayland compositors.")
(license license:expat))) ; MIT license