aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2024-01-14 17:23:44 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2024-01-14 17:23:44 +0100
commit1682264fdafbfa15925cce3d0d11cbca26696e6d (patch)
tree49614359be81f1f47baa94b05f431bb2728736ca /gnu
parent2cbb1a6e1e2679c7db74b6b906d223fb3661d09f (diff)
parentbcc9cd1aaeb53c323b199623de4fafe8594d1a95 (diff)
downloadguix-1682264fdafbfa15925cce3d0d11cbca26696e6d.tar
guix-1682264fdafbfa15925cce3d0d11cbca26696e6d.tar.gz
Merge branch 'master' into gnome-team
Diffstat (limited to 'gnu')
-rw-r--r--gnu/home/services/shepherd.scm12
-rw-r--r--gnu/image.scm4
-rw-r--r--gnu/local.mk31
-rw-r--r--gnu/packages/admin.scm8
-rw-r--r--gnu/packages/astronomy.scm211
-rw-r--r--gnu/packages/audio.scm218
-rw-r--r--gnu/packages/bioconductor.scm135
-rw-r--r--gnu/packages/bioinformatics.scm112
-rw-r--r--gnu/packages/bootloaders.scm58
-rw-r--r--gnu/packages/check.scm41
-rw-r--r--gnu/packages/chemistry.scm2
-rw-r--r--gnu/packages/ci.scm5
-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/docker.scm14
-rw-r--r--gnu/packages/education.scm6
-rw-r--r--gnu/packages/emacs-xyz.scm49
-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.scm32
-rw-r--r--gnu/packages/gl.scm32
-rw-r--r--gnu/packages/gnome.scm10
-rw-r--r--gnu/packages/gnuzilla.scm3
-rw-r--r--gnu/packages/golang.scm367
-rw-r--r--gnu/packages/graph.scm4
-rw-r--r--gnu/packages/graphviz.scm12
-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.scm55
-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.scm89
-rw-r--r--gnu/packages/minetest.scm36
-rw-r--r--gnu/packages/networking.scm422
-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/python-pyreadstat-link-libiconv.patch15
-rw-r--r--gnu/packages/patches/python-uqbar-python3.10.patch23
-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.scm18
-rw-r--r--gnu/packages/potassco.scm2
-rw-r--r--gnu/packages/python-check.scm29
-rw-r--r--gnu/packages/python-compression.scm34
-rw-r--r--gnu/packages/python-science.scm3
-rw-r--r--gnu/packages/python-web.scm173
-rw-r--r--gnu/packages/python-xyz.scm198
-rw-r--r--gnu/packages/radio.scm12
-rw-r--r--gnu/packages/rdf.scm37
-rw-r--r--gnu/packages/rust.scm6
-rw-r--r--gnu/packages/search.scm5
-rw-r--r--gnu/packages/serialization.scm78
-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/tls.scm7
-rw-r--r--gnu/packages/tor.scm17
-rw-r--r--gnu/packages/valgrind.scm4
-rw-r--r--gnu/packages/version-control.scm267
-rw-r--r--gnu/packages/video.scm437
-rw-r--r--gnu/packages/vim.scm18
-rw-r--r--gnu/packages/web-browsers.scm4
-rw-r--r--gnu/packages/web.scm24
-rw-r--r--gnu/packages/wm.scm7
-rw-r--r--gnu/packages/xorg.scm10
-rw-r--r--gnu/services/guix.scm4
-rw-r--r--gnu/services/messaging.scm53
-rw-r--r--gnu/services/shepherd.scm30
-rw-r--r--gnu/services/ssh.scm7
-rw-r--r--gnu/system.scm4
-rw-r--r--gnu/system/hurd.scm4
-rw-r--r--gnu/system/image.scm41
-rw-r--r--gnu/tests/data/jami-dummy-account.dat127
-rw-r--r--gnu/tests/docker.scm2
-rw-r--r--gnu/tests/security.scm5
-rw-r--r--gnu/tests/telephony.scm7
-rw-r--r--gnu/tests/virtualization.scm3
113 files changed, 4742 insertions, 1726 deletions
diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm
index bd068c37fc..176f4575cb 100644
--- a/gnu/home/services/shepherd.scm
+++ b/gnu/home/services/shepherd.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -75,11 +76,8 @@ as shepherd package."
#~(begin
(use-modules (srfi srfi-34)
(system repl error-handling))
- (apply
- register-services
- (map
- (lambda (file) (load file))
- '#$files))
+
+ (register-services (map load '#$files))
#$@(if daemonize?
`((action 'root 'daemonize))
@@ -90,9 +88,7 @@ as shepherd package."
'#$(append-map shepherd-service-provision
(filter shepherd-service-auto-start?
services))))
- (if (defined? 'start-in-the-background)
- (start-in-the-background services-to-start)
- (for-each start services-to-start))
+ (start-in-the-background services-to-start)
(redirect-port (open-input-file "/dev/null")
(current-input-port)))))
diff --git a/gnu/image.scm b/gnu/image.scm
index 523653dd77..7fb06dec10 100644
--- a/gnu/image.scm
+++ b/gnu/image.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2022 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,6 +43,7 @@
image-format
image-platform
image-size
+ image-max-layers
image-operating-system
image-partition-table-type
image-partitions
@@ -170,6 +172,8 @@ that is not in SET, mentioning FIELD in the error message."
(size image-size ;size in bytes as integer
(default 'guess)
(sanitize validate-size))
+ (max-layers image-max-layers ;number of layers as integer
+ (default #false))
(operating-system image-operating-system) ;<operating-system>
(partition-table-type image-partition-table-type ; 'mbr or 'gpt
(default 'mbr)
diff --git a/gnu/local.mk b/gnu/local.mk
index 1f8505ebfb..3f06372b91 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -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 © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023 Andreas Enge <andreas@enge.fr>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
@@ -7,7 +7,7 @@
# Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
# Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org>
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
-# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
+# Copyright © 2016-2024 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2016-2023 Efraim Flashner <efraim@flashner.co.il>
@@ -20,7 +20,7 @@
# Copyright © 2018, 2019, 2020, 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
# Copyright © 2018, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-# Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
+# Copyright © 2019, 2020, 2021, 2022, 2044 Guillaume Le Vaillant <glv@posteo.net>
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
# Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
@@ -63,6 +63,7 @@
# Copyright © 2023 Bruno Victal <mirai@makinata.eu>
# Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
# Copyright © 2023 Herman Rimm <herman@rimm.ee>
+# Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
#
# This file is part of GNU Guix.
#
@@ -1097,6 +1098,7 @@ dist_patch_DATA = \
%D%/packages/patches/doxygen-hurd.patch \
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
%D%/packages/patches/dstat-skip-devices-without-io.patch \
+ %D%/packages/patches/dtc-meson-cell-overflow.patch \
%D%/packages/patches/dune-common-skip-failing-tests.patch \
%D%/packages/patches/dune-grid-add-missing-include-cassert.patch \
%D%/packages/patches/dune-istl-fix-solver-playground.patch \
@@ -1171,7 +1173,15 @@ dist_patch_DATA = \
%D%/packages/patches/fenics-dolfin-demo-init.patch \
%D%/packages/patches/fenics-dolfin-boost.patch \
%D%/packages/patches/fenics-dolfin-config-slepc.patch \
+ %D%/packages/patches/ffmpeg-jami-change-RTCP-ratio.patch \
+ %D%/packages/patches/ffmpeg-jami-rtp_ext_abs_send_time.patch \
+ %D%/packages/patches/ffmpeg-jami-libopusdec-enable-FEC.patch \
+ %D%/packages/patches/ffmpeg-jami-libopusenc-enable-FEC.patch \
+ %D%/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch \
+ %D%/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch \
+ %D%/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch \
%D%/packages/patches/fifengine-boost-compat.patch \
+ %D%/packages/patches/fifengine-python-3.9-compat.patch \
%D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
%D%/packages/patches/fifo-map-remove-catch.hpp.patch \
@@ -1390,6 +1400,7 @@ dist_patch_DATA = \
%D%/packages/patches/guile-fibers-fd-finalizer-leak.patch \
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
%D%/packages/patches/guile-fibers-libevent-32-bit.patch \
+ %D%/packages/patches/guile-fibers-libevent-timeout.patch \
%D%/packages/patches/guile-fix-invalid-unicode-handling.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
%D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
@@ -1465,6 +1476,9 @@ dist_patch_DATA = \
%D%/packages/patches/itk-snap-alt-glibc-compat.patch \
%D%/packages/patches/jami-disable-integration-tests.patch \
%D%/packages/patches/jami-libjami-headers-search.patch \
+ %D%/packages/patches/jami-qml-tests-discovery.patch \
+ %D%/packages/patches/jami-skip-tests-requiring-internet.patch \
+ %D%/packages/patches/jami-unbundle-dependencies.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@@ -1484,6 +1498,8 @@ dist_patch_DATA = \
%D%/packages/patches/java-xerces-build_dont_unzip.patch \
%D%/packages/patches/java-xerces-xjavac_taskdef.patch \
%D%/packages/patches/jbr-17-xcursor-no-dynamic.patch \
+ %D%/packages/patches/jdk-currency-time-bomb.patch \
+ %D%/packages/patches/jdk-currency-time-bomb2.patch \
%D%/packages/patches/jfsutils-add-sysmacros.patch \
%D%/packages/patches/jfsutils-gcc-compat.patch \
%D%/packages/patches/jfsutils-include-systypes.patch \
@@ -1556,6 +1572,7 @@ dist_patch_DATA = \
%D%/packages/patches/libgnome-encoding.patch \
%D%/packages/patches/libgnomeui-utf8.patch \
%D%/packages/patches/libgrss-CVE-2016-2001.patch \
+ %D%/packages/patches/libjami-ac-config-files.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/libofa-ftbfs-1.diff \
@@ -1734,6 +1751,8 @@ dist_patch_DATA = \
%D%/packages/patches/openboardview-use-system-mpc.patch \
%D%/packages/patches/openbox-python3.patch \
%D%/packages/patches/opencolorio-fix-build-with-gcc11.patch \
+ %D%/packages/patches/openjdk-currency-time-bomb.patch \
+ %D%/packages/patches/openjdk-currency-time-bomb2.patch \
%D%/packages/patches/openjdk-9-pointer-comparison.patch \
%D%/packages/patches/openjdk-9-setsignalhandler.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
@@ -1782,6 +1801,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-louvain-fix-test.patch \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-poppler-qt5-fix-build.patch \
+ %D%/packages/patches/python-pyreadstat-link-libiconv.patch \
%D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch \
%D%/packages/patches/python-pytorch2-system-libraries.patch \
%D%/packages/patches/python-sip-include-dirs.patch \
@@ -1789,6 +1809,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \
%D%/packages/patches/python-telingo-fix-comparison.patch \
%D%/packages/patches/python-typeguard-python3.10.patch \
+ %D%/packages/patches/python-uqbar-python3.10.patch \
%D%/packages/patches/python-wxwidgets-type-errors.patch \
%D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \
%D%/packages/patches/qtdeclarative-disable-qmlcache.patch \
@@ -1994,6 +2015,8 @@ dist_patch_DATA = \
%D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \
%D%/packages/patches/sbcl-clml-fix-types.patch \
%D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \
+ %D%/packages/patches/sbcl-fix-ppc64-build.patch \
+ %D%/packages/patches/sbcl-fix-riscv-build.patch \
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
%D%/packages/patches/scalapack-gcc-10-compilation.patch \
%D%/packages/patches/scheme48-tests.patch \
@@ -2089,6 +2112,8 @@ dist_patch_DATA = \
%D%/packages/patches/ungoogled-chromium-system-ffmpeg.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
+ %D%/packages/patches/unknown-horizons-python-3.9.patch \
+ %D%/packages/patches/unknown-horizons-python-3.10.patch \
%D%/packages/patches/unzip-CVE-2014-8139.patch \
%D%/packages/patches/unzip-CVE-2014-8140.patch \
%D%/packages/patches/unzip-CVE-2014-8141.patch \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 5442714665..fcf05992d8 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -373,14 +373,14 @@ interface and is based on GNU Guile.")
(define-public shepherd-0.10
(package
(inherit shepherd-0.9)
- (version "0.10.2")
+ (version "0.10.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/shepherd/shepherd-"
version ".tar.gz"))
(sha256
(base32
- "0v9ld9gbqdp5ya380fbkdsxa0iqr90gi6yk004ccz3n792nq6wlj"))))
+ "1vxghlxnxajx2iciqmjia49c5hkir8li0gv29kl55frhn2zgxilf"))))
(native-inputs (modify-inputs (package-native-inputs shepherd-0.9)
(replace "guile-fibers"
;; Work around
@@ -746,7 +746,7 @@ console.")
(define-public btop
(package
(name "btop")
- (version "1.2.13")
+ (version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -755,7 +755,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 da15283ef3..9b842621ee 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -157,8 +157,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 +169,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 +186,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 +194,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 +278,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 +286,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 +451,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 +459,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
@@ -758,14 +757,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 +969,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 +978,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 +1120,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 +1128,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 +1571,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 +1846,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 +1928,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 +1954,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 +1963,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 +2040,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 +2066,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 +2091,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")
@@ -2266,30 +2276,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 +2319,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
@@ -2533,13 +2547,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
@@ -2587,9 +2601,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)
@@ -2598,7 +2610,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
@@ -2612,18 +2624,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
@@ -2663,18 +2680,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
@@ -2764,13 +2787,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
@@ -2834,13 +2857,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
@@ -2984,7 +3007,7 @@ low quality ones")
(define-public libpasastro
(package
(name "libpasastro")
- (version "1.4.1")
+ (version "1.4.2")
(source
(origin
(method git-fetch)
@@ -2993,7 +3016,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
@@ -3394,13 +3417,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
@@ -3538,7 +3561,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.
@@ -3547,7 +3570,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.
@@ -3562,6 +3585,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"
@@ -3717,13 +3741,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
@@ -3742,9 +3766,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
@@ -3756,13 +3787,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
@@ -4037,13 +4068,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
@@ -4097,13 +4128,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
@@ -4163,13 +4194,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 e4fe4c2da7..4a84f8ccdf 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>
@@ -74,6 +74,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)
@@ -83,6 +84,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)
@@ -115,6 +117,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)
@@ -129,6 +132,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)
@@ -3041,36 +3045,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
@@ -3081,18 +3079,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))
@@ -3650,33 +3645,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
@@ -3725,22 +3722,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
@@ -3867,16 +3863,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
@@ -6229,20 +6225,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
@@ -6251,7 +6242,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
@@ -6409,3 +6400,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 7dbebcf3da..f75254ed9f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2110,6 +2110,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")
@@ -2424,6 +2447,30 @@ 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)
+ (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")
@@ -11124,6 +11171,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.
@@ -20309,11 +20415,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
@@ -20322,7 +20428,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))
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index bd8b621e35..c73a0e665d 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 `(,@%gnu-build-system-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/check.scm b/gnu/packages/check.scm
index 80e0b94d01..b475aea8ae 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -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")
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 a367a5778b..18ae571127 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.
;;;
@@ -172,7 +173,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
@@ -181,7 +182,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 0f2c6e0b85..f65506dcec 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 b33f4d36d4..f73aed679d 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/docker.scm b/gnu/packages/docker.scm
index a69bbac168..fbe8edeef0 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 f2953295c2..1d99fb30ff 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -2017,6 +2017,27 @@ Apprentice and Sourcerer.")
theme but now takes more inspiration from the Nano theme.")
(license license:gpl3+)))
+(define-public emacs-adwaita-dark-theme
+ ;; Version 1.1.1 isn't tagged upstream.
+ (package
+ (name "emacs-adwaita-dark-theme")
+ (version "1.1.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/jessieh/adwaita-dark-theme")
+ (commit "057c39313341907b35c68d2179226886a0c276fd")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1g7hyg2hfvn24gaw4lca4g8lw10q2wg9nfrgl7pfdggz202m027c"))))
+ (build-system emacs-build-system)
+ (home-page "https://gitlab.com/jessieh/adwaita-dark-theme")
+ (synopsis "Adwaita-inspired dark color scheme for Emacs")
+ (description
+ "This package provides an Adwaita-inspired dark color scheme for Emacs.")
+ (license license:gpl2+)))
+
(define-public emacs-treepy
(package
(name "emacs-treepy")
@@ -11395,6 +11416,30 @@ package provides a light and a dark variant.")
Solarized color scheme.")
(license license:expat))))
+(define-public emacs-color-identifiers-mode
+ (let ((commit "a26d00d898e0a3295cb7da9323046397223ea1fe")
+ (revision "0"))
+ (package
+ (name "emacs-color-identifiers-mode")
+ (version (git-version "1.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ankurdave/color-identifiers-mode")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kky827f922ziiwasrfnv97vqdf62fp9yml36x1fjsm2h6qw0c8v"))))
+ (build-system emacs-build-system)
+ (propagated-inputs (list emacs-dash))
+ (home-page "https://github.com/ankurdave/color-identifiers-mode")
+ (synopsis "Minor mode for coloring identifiers based on their names")
+ (description
+ "This package provides an Emacs minor mode to highlight each source
+code identifier uniquely based on its name.")
+ (license license:gpl3+))))
+
(define-public emacs-poet-theme
(let ((commit "16eb694f0755c04c4db98614d0eca1199fddad70")
(revision "1"))
@@ -29887,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 5cebf515bf..75294fadf4 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)
@@ -283,21 +284,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
@@ -875,7 +882,7 @@ Executables included are:
(let ((toolchain-ver "GCC5"))
(package
(name "ovmf")
- (version "202308")
+ (version "202311")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -886,7 +893,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 7516e1642b..e050f4fde9 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 5bfdea1b27..8d3c017107 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>
@@ -232,7 +232,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 cf2e38f49c..50efe7b010 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>
@@ -4118,7 +4118,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"))))
@@ -4453,7 +4454,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
@@ -4573,16 +4576,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 5f6986b453..701a3f57b7 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -2232,7 +2232,7 @@ data.")
(define-public qmapshack
(package
(name "qmapshack")
- (version "1.16.1")
+ (version "1.17.1")
(source
(origin
(method git-fetch)
@@ -2241,7 +2241,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 +3227,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 d17676f53b..3d89f06d6a 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>
@@ -4779,9 +4779,11 @@ GLib and GObject, and integrates JSON with GLib data types.")
(string-append #$output:doc
"/share/doc"))))))))))
(native-inputs
- (modify-inputs (package-native-inputs json-glib-minimal)
- (prepend gi-docgen
- gobject-introspection)))))
+ (if (%current-target-system)
+ ;; No docs, no additional inputs.
+ (package-native-inputs json-glib-minimal)
+ (modify-inputs (package-native-inputs json-glib-minimal)
+ (prepend gi-docgen gobject-introspection))))))
(define-public libxklavier
(package
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 82dedcdf2d..7a9fdf5fc4 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.
;;;
@@ -2092,7 +2093,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 36e2c4b23e..979642c509 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")
@@ -3959,11 +4067,11 @@ packages.")
(license license:bsd-3))))
(define-public go-golang-org-x-sys
- (let ((commit "b60007cc4e6f966b1c542e343d026d06723e5653")
+ (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78")
(revision "0"))
(package
(name "go-golang-org-x-sys")
- (version (git-version "0.4.0" revision commit))
+ (version (git-version "0.8.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3972,7 +4080,7 @@ packages.")
(file-name (git-file-name name version))
(sha256
(base32
- "0fr2d6fnpbqx6n89sg9lsinqkdaw49y068kqj2g0cxlhbh69hzii"))))
+ "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq"))))
(build-system go-build-system)
(arguments
(list
@@ -3989,24 +4097,6 @@ support for low-level interaction with the operating system.")
(home-page "https://go.googlesource.com/sys")
(license license:bsd-3))))
-;; XXX: This version is required for "go-github-com-quic-go-qtls-go1-20".
-(define-public go-golang-org-x-sys-0.8
- (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78")
- (revision "0"))
- (package
- (inherit go-golang-org-x-sys)
- (name "go-golang-org-x-sys")
- (version (git-version "0.8.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://go.googlesource.com/sys")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq")))))))
-
(define-public go-golang-org-x-text
(package
(name "go-golang-org-x-text")
@@ -5854,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"))
@@ -7269,7 +7388,7 @@ implementation of generics.")
#:import-path "github.com/quic-go/qtls-go1-20"
#:go go-1.20))
(propagated-inputs (list go-golang-org-x-crypto
- go-golang-org-x-sys-0.8))
+ go-golang-org-x-sys))
(synopsis "TLS 1.3 for QUIC")
(description
"Go standard library TLS 1.3 implementation, modified for QUIC. For
@@ -7277,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")
@@ -7330,21 +7472,17 @@ the Go standard library}.")
#:tests? #f
#:go go-1.20))
(propagated-inputs
- (let ((p (package-input-rewriting
- `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8))
- #:deep? #true)))
- (cons go-golang-org-x-sys-0.8
- (map p
- (list go-github-com-quic-go-qtls-go1-20
- go-github-com-quic-go-qpack
- go-golang-org-x-crypto
- go-github-com-cheekybits-genny
- go-github-com-marten-seemann-chacha20
- go-github-com-golang-protobuf-proto
- go-golang-org-x-crypto
- go-golang-org-x-exp
- go-golang-org-x-net
- go-golang-org-x-sync)))))
+ (list go-github-com-quic-go-qtls-go1-20
+ go-github-com-quic-go-qpack
+ go-golang-org-x-crypto
+ go-github-com-cheekybits-genny
+ go-github-com-marten-seemann-chacha20
+ go-github-com-golang-protobuf-proto
+ go-golang-org-x-crypto
+ go-golang-org-x-exp
+ go-golang-org-x-net
+ go-golang-org-x-sys
+ go-golang-org-x-sync))
(synopsis "QUIC in Go")
(description "This package provides a Go language implementation of the QUIC
network protocol.")
@@ -9026,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
@@ -9919,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")
@@ -11791,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 26b9d03a73..0424c2818a 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 (,@%gnu-build-system-modules
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index b91c365e3c..c5507e036c 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -195,7 +195,7 @@ structure and layout algorithms.")
(define-public python-uqbar
(package
(name "python-uqbar")
- (version "0.5.6")
+ (version "0.5.9")
(source
(origin
(method git-fetch)
@@ -205,18 +205,12 @@ structure and layout algorithms.")
(file-name (git-file-name name version))
(sha256
(base32
- "1ml3x2mf7nlnvrh9lari5yk0sz2mmg39jwsbjxnpzhnw4kcwpdrs"))))
+ "0c573nzpm51qgz2g296f8pw8ys0i3r6daynxk06zagk5l5fgw9ar"))
+ (patches (search-patches "python-uqbar-python3.10.patch"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'patch
- (lambda _
- (substitute* "setup.py"
- ;; Latest versions of sphink-rtd-theme require npm to build.
- (("sphinx-rtd-theme >= 0.5.0") "sphinx-rtd-theme >= 0.2.4")
- (("black") "black >= 19.10b0"))
- #t))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 8b4fe7d681..eacc7fc5ed 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1185,7 +1185,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 c2bec91076..cd3e27c8f5 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")
@@ -3840,6 +3868,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 e2c2a041a9..3fa80dcfe7 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
@@ -839,7 +842,8 @@ new Date();"))
"1pc0pv4v2mn2mjc0vp19d94v2150xigyhxsmckqasy647zcm6w0r"))
("jdk-drop"
,(drop "jdk"
- "1742lcm55l8zhi522x83v65ccr0rd6511q9rj7crw44x3ymdrhrv"))
+ "1742lcm55l8zhi522x83v65ccr0rd6511q9rj7crw44x3ymdrhrv"
+ (search-patches "jdk-currency-time-bomb2.patch")))
("langtools-drop"
,(drop "langtools"
"08iz7p2xcddlphipf6gahyabr5cawlnydap12p1n4f0md069b50b"))
@@ -869,14 +873,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
@@ -911,8 +915,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
@@ -928,14 +931,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"
@@ -978,8 +979,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
@@ -1073,8 +1073,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"))
@@ -1084,8 +1083,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)
@@ -1102,8 +1100,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)
@@ -1157,7 +1154,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)
@@ -1179,8 +1177,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"
@@ -1229,7 +1226,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
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 a506447c1e..47caac2c38 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)))
@@ -7520,15 +7520,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'
@@ -7545,7 +7546,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},
@@ -9490,7 +9491,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
@@ -9499,7 +9500,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 6abd1a67d7..0062bc56cd 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.
;;;
@@ -912,42 +913,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
@@ -955,18 +931,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
@@ -1140,7 +1105,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"
@@ -2169,20 +2134,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
@@ -2291,9 +2267,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 b4651c80e5..1616738399 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")
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/networking.scm b/gnu/packages/networking.scm
index 9844430656..2f62194c56 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)
@@ -1414,39 +1417,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
@@ -3382,14 +3396,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))
@@ -3701,61 +3715,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
@@ -3764,7 +3820,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
@@ -3792,6 +3848,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
@@ -3835,8 +3899,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
@@ -3880,6 +3944,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")
@@ -3937,7 +4055,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
@@ -3946,10 +4064,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
@@ -3959,38 +4077,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
@@ -4445,35 +4570,32 @@ QUIC protocol.")
"github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl"
"github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys"))))))))
(propagated-inputs
- (let ((p (package-input-rewriting
- `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8))
- #:deep? #true)))
- (cons go-golang-org-x-sys-0.8
- (map p
- (list go-github-com-arceliar-ironwood
- go-github-com-arceliar-phony
- go-github-com-bits-and-blooms-bitset
- go-github-com-bits-and-blooms-bloom
- go-github-com-cheggaaa-pb-v3
- go-github-com-fatih-color
- go-github-com-gologme-log
- go-github-com-hashicorp-go-syslog
- go-github-com-hjson-hjson-go
- go-github-com-kardianos-minwinsvc
- go-github-com-mattn-go-colorable
- go-github-com-mattn-go-isatty
- go-github-com-mattn-go-runewidth
- go-github-com-mitchellh-mapstructure
- go-github-com-olekukonko-tablewriter
- go-github-com-quic-go-quic-go
- go-github-com-vividcortex-ewma
- go-golang-org-x-crypto
- go-golang-org-x-net
- go-golang-org-x-text
- go-golang-org-x-tools
- go-golang-zx2c4-com-wireguard
- go-netlink
- go-netns)))))
+ (list go-golang-zx2c4-com-wireguard
+ go-golang-org-x-text
+ go-golang-org-x-net
+ go-golang-org-x-crypto
+ go-golang-org-x-tools
+ go-golang-org-x-sys
+ go-netns
+ go-netlink
+ go-github-com-bits-and-blooms-bitset
+ go-github-com-bits-and-blooms-bloom
+ go-github-com-quic-go-quic-go
+ go-github-com-hjson-hjson-go
+ go-github-com-olekukonko-tablewriter
+ go-github-com-mitchellh-mapstructure
+ go-github-com-mattn-go-runewidth
+ go-github-com-mattn-go-isatty
+ go-github-com-mattn-go-colorable
+ go-github-com-kardianos-minwinsvc
+ go-github-com-hjson-hjson-go
+ go-github-com-hashicorp-go-syslog
+ go-github-com-gologme-log
+ go-github-com-fatih-color
+ go-github-com-cheggaaa-pb-v3
+ go-github-com-vividcortex-ewma
+ go-github-com-arceliar-phony
+ go-github-com-arceliar-ironwood))
(home-page "https://yggdrasil-network.github.io/blog.html")
(synopsis
"Experiment in scalable routing as an encrypted IPv6 overlay network")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 97ea41df66..84cb506be6 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1510,8 +1510,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))
@@ -1522,7 +1522,7 @@ environments.")
(commit commit)))
(sha256
(base32
- "1i8x9nfpvg832lxwbpjl1kadldpkcnjlxdxl4c5jqx2hz680ylf3"))
+ "1212iskqlxgpyib1p7p1204a0kxmpxqyjv6q0pkypx6jg7f4lmjx"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -1606,9 +1606,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)
@@ -1648,9 +1648,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/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-uqbar-python3.10.patch b/gnu/packages/patches/python-uqbar-python3.10.patch
new file mode 100644
index 0000000000..164f0c0c64
--- /dev/null
+++ b/gnu/packages/patches/python-uqbar-python3.10.patch
@@ -0,0 +1,23 @@
+Since Python 3.10 the output of a CLI program created with argparse
+uses "options" instead of "optional arguments". This behaviour breaks
+the tests in python-uqbar.
+
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -84,7 +84,7 @@ def test_call_help():
+
+ speak like a cat
+
+- optional arguments:
++ options:
+ -h, --help show this help message and exit
+ --version show program's version number and exit
+ --loud be adamant
+@@ -101,6 +101,6 @@ def test_help():
+ """
+ usage: vox-aggregator [-h] [--version] {help,list,birds,mammals} ...
+
+- optional arguments:
++ options:
+ -h, --help show this help message and exit
+ --version show program's version number and exit
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 644a4617a6..e07f0441e2 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -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/")))
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index 884da3c99f..e69bfda9d6 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -209,7 +209,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
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..8065de0e99 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>
@@ -1374,6 +1374,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"
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 06b578dac7..567b01f396 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")
@@ -2595,6 +2628,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")
@@ -7052,14 +7111,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.
@@ -7073,29 +7132,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
@@ -7106,69 +7155,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 b7fdb00266..47f4ce1e9c 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -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.
;;;
@@ -2253,25 +2253,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
@@ -2282,6 +2278,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.
@@ -2577,18 +2597,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
@@ -10377,6 +10397,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
@@ -10541,6 +10622,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")
@@ -31695,6 +31811,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")
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 5d540fe74b..f34511b352 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -1893,7 +1893,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)
@@ -1902,7 +1902,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))
@@ -2534,7 +2534,7 @@ transmissions.")
(define-public dsdcc
(package
(name "dsdcc")
- (version "1.9.3")
+ (version "1.9.5")
(source
(origin
(method git-fetch)
@@ -2543,7 +2543,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))
@@ -2573,7 +2573,7 @@ voice formats.")
(define-public sdrangel
(package
(name "sdrangel")
- (version "7.17.0")
+ (version "7.17.3")
(source
(origin
(method git-fetch)
@@ -2582,7 +2582,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..66097d799e 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.
;;;
@@ -43,6 +44,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 +281,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 +305,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.")
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index ea95d27476..64cde7ea14 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -60,6 +60,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)
@@ -1057,7 +1058,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 5e86d1a76c..cdf4a50b5d 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.
;;;
@@ -568,14 +569,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/statistics.scm b/gnu/packages/statistics.scm
index 712b1a9c37..80d8ff2f93 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 aaaa9c95cb..9c46247931 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 fb239f1ba8..aa00cc3656 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>
@@ -857,6 +857,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 53f67a80e5..f609de8eff 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 040dc66416..61236b58cc 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/tls.scm b/gnu/packages/tls.scm
index 806a761d9b..6441b8ed43 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -335,7 +335,7 @@ required structures.")
;; This package supersedes the Guile bindings that came with GnuTLS until
;; version 3.7.8 included.
(name "guile-gnutls")
- (version "3.7.12")
+ (version "3.7.14")
(home-page "https://gitlab.com/gnutls/guile/")
(source (origin
;; url-fetch is used here to avoid a circular dependency with
@@ -343,12 +343,11 @@ required structures.")
(method url-fetch)
(uri (string-append
"https://gitlab.com/gnutls/guile/uploads/"
- "3fe12c208bdc6155c5116cf5eac7a2ad"
+ "1fdc941351d54cd7affda1bb912b9ca5"
"/guile-gnutls-" version ".tar.gz"))
(sha256
(base32
- "0dp3zsbnwgb4q4p8n6i5vnlwq52v5hp8f5c44ngyag89fcaz2fjx"))
- (patches (search-patches "gnutls-cross.patch"))))
+ "0ldnxq5qxzy92jd8w5c717bgx4038x9qmi43bzl6kmlkzpagqayy"))))
(build-system gnu-build-system)
(arguments
(list
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/valgrind.scm b/gnu/packages/valgrind.scm
index 06622548a5..b50dabf9ca 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -39,7 +39,7 @@
(define-public valgrind
(package
(name "valgrind")
- (version "3.20.0")
+ (version "3.22.0")
(source (origin
(method url-fetch)
(uri (list (string-append "https://sourceware.org/pub/valgrind"
@@ -48,7 +48,7 @@
"/valgrind-" version ".tar.bz2")))
(sha256
(base32
- "1ipkp6yi202pml2r0qwflysmq86dkqd8iyi1y51d6y70vcqw0dl5"))))
+ "0k1ddnzxfpbng2sp5r31jjxsmp35g977rx6a8jcp4prcvmddn4f8"))))
(build-system gnu-build-system)
(outputs '("doc" ;16 MB
"out"))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 40d7a00dae..a7a701629f 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>
@@ -823,6 +823,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")
@@ -1072,115 +1118,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 e70aa5352e..7f98e2ca5b 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>
@@ -1047,14 +1047,14 @@ H.264 (MPEG-4 AVC) video streams.")
(define-public mkvtoolnix
(package
(name "mkvtoolnix")
- (version "52.0.0")
+ (version "80.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://mkvtoolnix.download/sources/"
"mkvtoolnix-" version ".tar.xz"))
(sha256
- (base32 "15y7ahlifsclnkl70wn5w34dil8nwcwcjnw3k2ydqc6dz4vb0j5s"))
+ (base32 "1x9k9pmw7mzm2amvm251a45dlj9p9iqfank5p4w2fizxkapws25v"))
(modules '((guix build utils)))
(snippet '(begin
;; Delete bundled libraries.
@@ -1070,6 +1070,7 @@ H.264 (MPEG-4 AVC) video streams.")
(outputs '("out" "gui")) ; "mkvtoolnix-gui" brings the closure size from ~300 MB to 1.5+ GB.
(inputs
(list boost
+ gmp
bzip2
cmark
libebml
@@ -1083,86 +1084,96 @@ H.264 (MPEG-4 AVC) video streams.")
lzo
pcre2
pugixml
- qtbase-5
- qtmultimedia-5
+ qtbase
+ qtmultimedia
+ qtsvg
utfcpp
zlib))
(native-inputs
- `(("docbook-xsl" ,docbook-xsl)
- ("gettext" ,gettext-minimal)
- ("googletest" ,googletest)
- ("libxslt" ,libxslt)
- ("nlohmann-json" ,nlohmann-json)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("po4a" ,po4a)
- ("qttools-5" ,qttools-5)
- ("ruby" ,ruby-2.7)))
+ (list docbook-xsl
+ gettext-minimal
+ googletest
+ libxslt
+ nlohmann-json
+ perl
+ pkg-config
+ po4a
+ qttools
+ ruby-3.2))
(arguments
- `(#:configure-flags
- (list (string-append "--with-boost="
- (assoc-ref %build-inputs "boost"))
- (string-append "--with-docbook-xsl-root="
- (assoc-ref %build-inputs "docbook-xsl")
- "/xml/xsl/docbook-xsl-"
- ,(package-version docbook-xsl))
- "--enable-update-check=no"
- "--enable-precompiled-headers=no")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-utfcpp-include
- (lambda _
- (substitute* "src/common/strings/utf8.cpp"
- (("<utf8.h>")
- "<utf8cpp/utf8.h>"))))
- (add-after 'unpack 'patch-relative-file-names
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "src/mkvtoolnix-gui/util/settings.cpp"
- (("mkvmerge" match)
- (string-append out "/bin/" match)))
- #t)))
- (add-before 'configure 'add-googletest
- (lambda* (#:key inputs #:allow-other-keys)
- (symlink (search-input-directory inputs "/include/gtest")
- "lib/gtest")))
- (replace 'build
- (lambda _
- (let ((-j (list "-j" (number->string (parallel-job-count)))))
- (apply invoke "rake" -j))))
- (replace 'check
- (lambda _
- (invoke "rake" "tests/unit")))
- (replace 'install
- (lambda _
- (invoke "rake" "install")))
- (add-after 'install 'post-install
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Move the Qt interface to "gui".
- (let* ((out (assoc-ref outputs "out"))
- (gui (assoc-ref outputs "gui"))
- (strip-store-dir (lambda (path)
- (substring path (string-prefix-length out path)))))
- (for-each
- (lambda (file)
- (mkdir-p (string-append gui (dirname file)))
- (rename-file (string-append out file)
- (string-append gui file)))
- (append '("/bin/mkvtoolnix-gui"
- "/share/applications/org.bunkus.mkvtoolnix-gui.desktop"
- "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml"
- "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml")
- (map strip-store-dir (find-files out "\\.ogg$"))
- (map strip-store-dir (find-files out "mkvtoolnix-gui\\.png$"))
- (map strip-store-dir (find-files out "mkvtoolnix-gui\\.1"))))
- (for-each
- (lambda (file)
- (delete-file-recursively (string-append out file)))
- '("/share/applications"
- "/share/metainfo"
- "/share/mime"
- "/share/mkvtoolnix")))
- #t)))))
+ (list
+ #:configure-flags
+ #~(list (string-append "--with-boost="
+ #$(this-package-input "boost"))
+ (string-append "--with-docbook-xsl-root="
+ #$(this-package-native-input "docbook-xsl")
+ "/xml/xsl/docbook-xsl-"
+ #$(package-version
+ (this-package-native-input "docbook-xsl")))
+ "--enable-update-check=no"
+ "--enable-precompiled-headers=no")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-utfcpp-include
+ (lambda _
+ (substitute* "src/common/strings/utf8.cpp"
+ (("<utf8.h>")
+ "<utf8cpp/utf8.h>"))))
+ (add-after 'unpack 'patch-relative-file-names
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "src/mkvtoolnix-gui/util/settings.cpp"
+ (("mkvmerge" match)
+ (string-append out "/bin/" match))) #t)))
+ (add-before 'configure 'add-googletest
+ (lambda* (#:key inputs #:allow-other-keys)
+ (symlink (search-input-directory inputs
+ "/include/gtest")
+ "lib/gtest")))
+ (replace 'build
+ (lambda _
+ (let ((-j (list "-j"
+ (number->string (parallel-job-count)))))
+ (apply invoke "rake" -j))))
+ (replace 'check
+ (lambda _
+ (invoke "rake" "tests/unit")))
+ (replace 'install
+ (lambda _
+ (invoke "rake" "install")))
+ (add-after 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Move the Qt interface to "gui".
+ (let* ((out (assoc-ref outputs "out"))
+ (gui (assoc-ref outputs "gui"))
+ (strip-store-dir (lambda (path)
+ (substring path
+ (string-prefix-length
+ out path)))))
+ (for-each (lambda (file)
+ (mkdir-p (string-append gui
+ (dirname
+ file)))
+ (rename-file (string-append out file)
+ (string-append gui file)))
+ (append '("/bin/mkvtoolnix-gui"
+ "/share/applications/org.bunkus.mkvtoolnix-gui.desktop"
+ "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml"
+ "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml")
+ (map strip-store-dir
+ (find-files out "\\.ogg$"))
+ (map strip-store-dir
+ (find-files out
+ "mkvtoolnix-gui\\.png$"))
+ (map strip-store-dir
+ (find-files out
+ "mkvtoolnix-gui\\.1"))))
+ (for-each (lambda (file)
+ (delete-file-recursively
+ (string-append out file)))
+ '("/share/applications"
+ "/share/metainfo" "/share/mime"
+ "/share/mkvtoolnix"))))))))
(home-page "https://mkvtoolnix.download")
(synopsis "Tools to create, alter and inspect Matroska files")
(description
@@ -1505,14 +1516,14 @@ SMPTE 314M.")
(define-public libmatroska
(package
(name "libmatroska")
- (version "1.6.3")
+ (version "1.7.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://dl.matroska.org/downloads/"
"libmatroska/libmatroska-" version ".tar.xz"))
(sha256
- (base32 "06h81sxyz2riic0gpzik6ffcnq32wrqphi8c6k55glcdymiimyfs"))))
+ (base32 "1cqq61qgv6x3xjzjrw71dya7lbsbrsmi9raqm2k4hgfrp0rk0ajp"))))
(build-system cmake-build-system)
(inputs
(list libebml))
@@ -1989,6 +2000,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")
@@ -3631,7 +3901,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 4d1c2fd67d..94468b9b5d 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -587,7 +587,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)
@@ -596,7 +596,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 13ae53aa8c..41295a1e90 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -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>
@@ -6621,6 +6621,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")
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index a87eb20428..959928d8e2 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
@@ -1853,7 +1854,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
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 4f85a5de8b..9624fb44aa 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -245,14 +245,14 @@ which can be read by any architecture.")
(define-public xorgproto
(package
(name "xorgproto")
- (version "2022.2")
+ (version "2023.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://xorg/individual/proto"
"/xorgproto-" version ".tar.xz"))
(sha256
(base32
- "17kbq1x68jl9mz69ays5c0w72lpkqi937raxk0im7y88pvrdn4sx"))))
+ "0b4c27aq25w1fccks49p020avf9jzh75kaq5qwnww51bp1yvq7xn"))))
(build-system gnu-build-system)
(propagated-inputs
;; To get util-macros in (almost?) all package inputs.
@@ -5250,7 +5250,7 @@ EGLStream families of extensions.")
(define-public xorg-server-xwayland
(package
(name "xorg-server-xwayland")
- (version "21.1.3")
+ (version "23.2.3")
(source
(origin
(method url-fetch)
@@ -5258,7 +5258,7 @@ EGLStream families of extensions.")
"/xserver/xwayland-" version ".tar.xz"))
(sha256
(base32
- "18pqvg76grbsyxa3mm3j06i1l8cwb28nbn2gcnqpsk7x75zpbhpb"))))
+ "00p30yyikh7h9xsqgir66xb06pspgjlibv1mi0n42irc4fkrm7gb"))))
(inputs (list font-dejavu
dbus
egl-wayland
@@ -5268,6 +5268,7 @@ EGLStream families of extensions.")
libepoxy
libgcrypt
libtirpc
+ libxcvt
libxfont2
libxkbfile
pixman
@@ -5283,6 +5284,7 @@ EGLStream families of extensions.")
wayland
wayland-protocols)
'())))
+ (properties '((upstream-name . "xwayland")))
(build-system meson-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 17599193e3..c438da531c 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -171,7 +171,7 @@
(parallel-hooks guix-build-coordinator-configuration-parallel-hooks
(default '()))
(guile guix-build-coordinator-configuration-guile
- (default guile-3.0-latest))
+ (default guile-next))
(extra-environment-variables
guix-build-coordinator-configuration-extra-environment-variables
(default '())))
@@ -246,7 +246,7 @@
client-communication-uri-string
(hooks '())
(parallel-hooks '())
- (guile guile-3.0))
+ (guile guile-next))
(program-file
"start-guix-build-coordinator"
(with-extensions (cons guix-build-coordinator-package
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 7505810e7c..9702170b3e 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2015, 2017-2020, 2022, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017-2020, 2022-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;;
;;; This file is part of GNU Guix.
@@ -857,39 +857,24 @@ string, you could instantiate a prosody service like this:
;; on 'networking'.
(requirement '(user-processes networking))
- (start #~(if (defined? 'make-inetd-constructor)
-
- (make-inetd-constructor
- (list #$bitlbee* "-I" "-c" #$conf)
- (list (endpoint
- (addrinfo:addr
- (car (getaddrinfo #$interface
- #$(number->string port)
- (logior AI_NUMERICHOST
- AI_NUMERICSERV))))))
- #:requirements '#$requirement
- #:service-name-stem "bitlbee"
- #:user "bitlbee" #:group "bitlbee"
-
- ;; Allow 'bitlbee-purple' to use libpurple plugins.
- #:environment-variables
- (list (string-append "PURPLE_PLUGIN_PATH="
- #$plugins "/lib/purple-2")
- "GUIX_LOCPATH=/run/current-system/locale"))
-
- (make-forkexec-constructor
- (list #$(file-append bitlbee "/sbin/bitlbee")
- "-n" "-F" "-u" "bitlbee" "-c" #$conf)
-
- ;; Allow 'bitlbee-purple' to use libpurple plugins.
- #:environment-variables
- (list (string-append "PURPLE_PLUGIN_PATH="
- #$plugins "/lib/purple-2"))
-
- #:pid-file "/var/run/bitlbee.pid")))
- (stop #~(if (defined? 'make-inetd-destructor)
- (make-inetd-destructor)
- (make-kill-destructor)))))))))
+ (start #~(make-inetd-constructor
+ (list #$bitlbee* "-I" "-c" #$conf)
+ (list (endpoint
+ (addrinfo:addr
+ (car (getaddrinfo #$interface
+ #$(number->string port)
+ (logior AI_NUMERICHOST
+ AI_NUMERICSERV))))))
+ #:requirements '#$requirement
+ #:service-name-stem "bitlbee"
+ #:user "bitlbee" #:group "bitlbee"
+
+ ;; Allow 'bitlbee-purple' to use libpurple plugins.
+ #:environment-variables
+ (list (string-append "PURPLE_PLUGIN_PATH="
+ #$plugins "/lib/purple-2")
+ "GUIX_LOCPATH=/run/current-system/locale")))
+ (stop #~(make-inetd-destructor))))))))
(define %bitlbee-accounts
;; User group and account to run BitlBee.
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 8e122f1aab..5ebac129ce 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -183,7 +183,6 @@ DEFAULT is given, use it as the service's default value."
(define %default-modules
;; Default set of modules visible in a service's file.
`((shepherd service)
- (oop goops)
((guix build utils) #:hide (delete))
(guix build syscalls)))
@@ -300,10 +299,10 @@ stored."
#~(begin
(use-modules #$@(shepherd-service-modules service))
- (make <service>
- #:docstring '#$(shepherd-service-documentation service)
- #:provides '#$(shepherd-service-provision service)
- #:requires '#$(shepherd-service-requirement service)
+ (service
+ '#$(shepherd-service-provision service)
+ #:documentation '#$(shepherd-service-documentation service)
+ #:requirement '#$(shepherd-service-requirement service)
;; The 'one-shot?' slot is new in Shepherd 0.6.0.
;; Older versions ignore it.
@@ -313,7 +312,7 @@ stored."
#:start #$(shepherd-service-start service)
#:stop #$(shepherd-service-stop service)
#:actions
- (make-actions
+ (actions
#$@(map (match-lambda
(($ <shepherd-action> name proc doc)
#~(#$name #$doc #$proc)))
@@ -338,7 +337,6 @@ and return the resulting '.go' file. SHEPHERD is used as shepherd package."
;; Do the same as the Shepherd's 'load-in-user-module'.
(let ((env (make-fresh-user-module)))
- (module-use! env (resolve-interface '(oop goops)))
(module-use! env (resolve-interface '(shepherd service)))
(with-target #$(or target #~%host-type)
(lambda _
@@ -401,25 +399,17 @@ as shepherd package."
;; than a kernel panic.
(call-with-error-handling
(lambda ()
- (apply register-services
- (parameterize ((current-warning-port
- (%make-void-port "w")))
- (map load-compiled '#$(map scm->go files))))))
+ (register-services
+ (parameterize ((current-warning-port
+ (%make-void-port "w")))
+ (map load-compiled '#$(map scm->go files))))))
(format #t "starting services...~%")
(let ((services-to-start
'#$(append-map shepherd-service-provision
(filter shepherd-service-auto-start?
services))))
- (if (defined? 'start-in-the-background)
- (start-in-the-background services-to-start)
- (for-each (lambda (service) ;pre-0.9.0 compatibility
- (guard (c ((service-error? c)
- (format (current-error-port)
- "failed to start service '~a'~%"
- service)))
- (start service)))
- services-to-start))
+ (start-in-the-background services-to-start)
;; Hang up stdin. At this point, we assume that 'start' methods
;; that required user interaction on the console (e.g.,
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index 0abecd6b42..f759c5cf6e 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2019, 2022, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2019, 2022-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@@ -592,7 +592,10 @@ of user-name/file-like tuples."
(list (shepherd-service
(documentation "OpenSSH server.")
- (requirement '(pam syslogd loopback))
+
+ ;; On the Hurd, this can only be started after pfinet is up, hence
+ ;; the dependency on 'networking'.
+ (requirement '(pam syslogd loopback networking))
(provision '(ssh-daemon ssh sshd))
(start #~(if #$inetd-style?
diff --git a/gnu/system.scm b/gnu/system.scm
index cfa036556d..3cd64a5c9f 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -803,9 +803,7 @@ bookkeeping."
%boot-service
%hurd-startup-service
%activation-service
- (service shepherd-root-service-type
- (shepherd-configuration
- (shepherd shepherd-0.8))) ;no Fibers
+ (service shepherd-root-service-type)
(service user-processes-service-type)
(account-service (append (operating-system-accounts os)
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 3b138bef65..cbe0081382 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -70,7 +70,7 @@
;; Note: the Shepherd comes before the Hurd, not just because its duty is to
;; shepherd the herd, but also because we want its 'halt' and 'reboot'
;; commands to take precedence.
- (list shepherd-0.8 hurd netdde bash coreutils file findutils grep sed
+ (list shepherd-0.10 hurd netdde bash coreutils file findutils grep sed
diffutils patch gawk tar gzip bzip2 xz lzip
guile-3.0-latest guile-colorized guile-readline
net-base nss-certs inetutils less procps shadow sudo which
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index b825892232..2cc1012893 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -686,7 +687,8 @@ returns an image record where the first partition's label is set to <label>."
(define* (system-docker-image image
#:key
- (name "docker-image"))
+ (name "docker-image")
+ (archiver tar))
"Build a docker image for IMAGE. NAME is the base name to use for the
output file."
(define boot-program
@@ -731,6 +733,7 @@ output file."
(use-modules (guix docker)
(guix build utils)
(gnu build image)
+ (srfi srfi-1)
(srfi srfi-19)
(guix build store-copy)
(guix store database))
@@ -754,18 +757,30 @@ output file."
#:register-closures? #$register-closures?
#:deduplicate? #f
#:system-directory #$os)
- (build-docker-image
- #$output
- (cons* image-root
- (map store-info-item
- (call-with-input-file #$graph
- read-reference-graph)))
- #$os
- #:entry-point '(#$boot-program #$os)
- #:compressor '(#+(file-append gzip "/bin/gzip") "-9n")
- #:creation-time (make-time time-utc 0 1)
- #:system #$image-target
- #:transformations `((,image-root -> ""))))))))
+ (when #$(image-max-layers image)
+ (setenv "PATH"
+ (string-join (list #+(file-append archiver "/bin")
+ #+(file-append gzip "/bin"))
+ ":")))
+ (apply build-docker-image
+ (append (list #$output
+ (append (if #$(image-max-layers image)
+ '()
+ (list image-root))
+ (map store-info-item
+ (call-with-input-file #$graph
+ read-reference-graph)))
+ #$os
+ #:entry-point '(#$boot-program #$os)
+ #:compressor
+ '(#+(file-append gzip "/bin/gzip") "-9n")
+ #:creation-time (make-time time-utc 0 1)
+ #:system #$image-target
+ #:transformations `((,image-root -> "")))
+ (if #$(image-max-layers image)
+ (list #:root-system image-root
+ #:max-layers #$(image-max-layers image))
+ '()))))))))
(computed-file name builder
;; Allow offloading so that this I/O-intensive process
diff --git a/gnu/tests/data/jami-dummy-account.dat b/gnu/tests/data/jami-dummy-account.dat
index 0e908396ca..c2c5357189 100644
--- a/gnu/tests/data/jami-dummy-account.dat
+++ b/gnu/tests/data/jami-dummy-account.dat
@@ -1,8 +1,7 @@
;;; -*- mode: scheme; -*-
;;; JSON extracted from an actual Jami account and processed with
;;; Emacs/guile-json.
-(define %jami-account-content-sexp
- '(("RINGCAKEY" . "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3F\
+(("RINGCAKEY" . "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3F\
oa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRQzBxWUozSkYvTzhQRGEKRnUwRnpRcHBCaD\
gybGJMdURrNTlVU0I0MUJSaS9kdDZGV1BRN29YOVpsY25vNGZzM2dmUHQ0dU1hRVBkVFBGKwowbGN2Q\
jc2cytQTEFlcjlOZGpVQzQ2ZXp0UnNiNE9aQXc4ZUk1M3EwSU04QWJFd0o0ZjllLzBmQUFueHgrK3Qw\
@@ -58,7 +57,7 @@ TUNPaHdxN21xYXRUVnNrawpTRDNySmkrTFR6a2Y4OEx1bjZZNjdiaFNOTWpKZkFaUXNQc0FTRkJBUTJ\
rQnE5alRLZGVuaU4yYTJIbm0xNCtrCnJDeU9ZVE14Q2hQbWNpS25pVy9MWnFUL0U1dlNRUGdBVzc0dT\
VLazJoSjRBajNjRW9NVEwxSytZbStWYWh2U0cKTi8xOFdYQ1JRQkg1d0p2eXJYczBtT29GQlRnTWg4d\
z0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=")
- ("ringAccountKey" . "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRUUlCQURBTk\
+ ("ringAccountKey" . "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRUUlCQURBTk\
Jna3Foa2lHOXcwQkFRRUZBQVNDQ1Nzd2dna25BZ0VBQW9JQ0FRRDNCdDRnOUVUdk9EVnYKM3hWV0ZlS\
1Nnbk5uVEF3S2dYa3IrQ1FhdU8vTGZWM01RenNSNHliL3hoaWhhb1Z2c2FtZ3ZRU1haL0M1R3I5QQpE\
YlAxbHNHclRCK1pXMC9uMXVEb3hmVWdZRWY3SGtVanJtdVFjUGlFWGlUVkNiY002U0NzdVNrMnRxdE1\
@@ -114,7 +113,7 @@ KMTlPd09oZ1lGcjFheGQvNXd2VgpURjNoVlQwbFZGN2RyRC9iMHZOcmxnbUNjbEk4UDg1a2dkRUhZbG\
ZtTFoxeXJIMkNXVy9SS0lsWk9ZdFVuNFNpCkp5a2VlNDROWElXU3ovalRBdFRta3VQTzRvUjF5d3dRc\
jdhUTF5a3hRVm9rVm5vY2xqU0tyQlk4R294a0I0eDIKUDNrb3F1UnkvcUd3QzBnN1o4ZjBTQjNQZVZt\
eQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg==")
- ("ringAccountCert" . "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZXakNDQTBLZ\
+ ("ringAccountCert" . "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZXakNDQTBLZ\
0F3SUJBZ0lJRm1tNmZuaWRndEl3RFFZSktvWklodmNOQVFFTUJRQXdUREVRTUE0R0ExVUUKQXhNSFNt\
RnRhU0JEUVRFNE1EWUdDZ21TSm9tVDhpeGtBUUVUS0RjNVpqSTJaVFZpWTJNeU9EWXlPREppT0dFMwp\
PRFF6TUdOak1EWXpNakV4T1RFNFkyWm1PVGd3SGhjTk1qRXdOREUyTVRjek1qRXdXaGNOTXpFd05ERT\
@@ -180,17 +179,17 @@ OFY2cWM2bXZTbUFXa25nL3QwaStXVmdGVkZuZFQrQ0oyNTJsa0ZacGljdAp6ekdETW44VUNDRUp4TDR\
KTklTM2lLOUhlRys2MlZuay9QOEM3YVpLSXpVdjFud25rcVdUUUFYWDBKckJGdDdICjI5ZDk1RElmRT\
RuT0FyS0JFNHc2Z1R4SU1uZzVzWi9ZbDFjcG5wUHlsR3VICi0tLS0tRU5EIENFUlRJRklDQVRFLS0tL\
S0K")
- ("ethKey" . "fN8cOT1lYNziaW0+pjBIgZ8r6+zMMhHsukkWBNPDsFo=")
- ("TURN.username" . "ring")
- ("TURN.server" . "turn.jami.net")
- ("TURN.realm" . "ring")
- ("TURN.password" . "ring")
- ("TURN.enable" . "true")
- ("TLS.verifyServer" . "true")
- ("TLS.verifyClient" . "true")
- ("TLS.serverName" . "")
- ("TLS.requireClientCertificate" . "true")
- ("TLS.privateKeyFile" . "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQU\
+ ("ethKey" . "fN8cOT1lYNziaW0+pjBIgZ8r6+zMMhHsukkWBNPDsFo=")
+ ("TURN.username" . "ring")
+ ("TURN.server" . "turn.jami.net")
+ ("TURN.realm" . "ring")
+ ("TURN.password" . "ring")
+ ("TURN.enable" . "true")
+ ("TLS.verifyServer" . "true")
+ ("TLS.verifyClient" . "true")
+ ("TLS.serverName" . "")
+ ("TLS.requireClientCertificate" . "true")
+ ("TLS.privateKeyFile" . "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQU\
RBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRQzM5b1Z0cXNtUGdaSUgKcHpTV\
GtlT3BlWC9CSEx2KzFTYnJPSFpVRHEwNFZCUU5BNmJmSFNSWTJpbHE1WEVheXNVSmwzQmsvM0txZEhS\
cQpEV01wQ1dpcE1Vc2FwSGxJR0tSWHEwbXhQZ29WODZSUVBub1dCRTdhWVVEZTlJZXlxMmllZXpDK1l\
@@ -246,11 +245,11 @@ mNUloSWU0RUtZUE5VUXNua0tSVTlxUApzWi9idXBXc2w4bWVFcko3bllJQ05ucHpnSHRpNXdSMlliVF\
VXT01odmRFUldxMnhTV3BBYmtNMElhZDBUc05kCmUrYVRQVmJOMXFibFZLMm1qUTl2YS9JSkVuSE51V\
E9TREtJeUpvcVArQkxiRTVjQU5acXQ2OFFadWdOc2RxNHkKV2FoeStydU5LS1F3Mk5MYzQzZUtsNmxv\
bXdtRlFZOD0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=")
- ("TLS.password" . "")
- ("TLS.negotiationTimeoutSec" . "-1")
- ("TLS.method" . "Automatic")
- ("TLS.ciphers" . "")
- ("TLS.certificateFile" . "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZHVENDQ\
+ ("TLS.password" . "")
+ ("TLS.negotiationTimeoutSec" . "-1")
+ ("TLS.method" . "Automatic")
+ ("TLS.ciphers" . "")
+ ("TLS.certificateFile" . "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZHVENDQ\
XdHZ0F3SUJBZ0lJU1pUdlZPQnh3akF3RFFZSktvWklodmNOQVFFTUJRQXdTVEVOTUFzR0ExVUUKQXhN\
RVNtRnRhVEU0TURZR0NnbVNKb21UOGl4a0FRRVRLR1l6TXpRMVpqSTNOelZrWkdabE1EZGhOR0l3WkR\
rMQpaR0ZsWVRFeE1XUXhOV1ppWXpFeE9Ua3dIaGNOTWpFd05ERTJNVGN6TWpFd1doY05NekV3TkRFME\
@@ -346,47 +345,47 @@ lzVXFsVHVncXhtM2xDOUhzaDM2UFJLNURDUG93eHVUNlgKcXo1M1ZiN2h6TkxLelpiRlJzbUdFOFY2c\
WM2bXZTbUFXa25nL3QwaStXVmdGVkZuZFQrQ0oyNTJsa0ZacGljdAp6ekdETW44VUNDRUp4TDRKTklT\
M2lLOUhlRys2MlZuay9QOEM3YVpLSXpVdjFud25rcVdUUUFYWDBKckJGdDdICjI5ZDk1RElmRTRuT0F\
yS0JFNHc2Z1R4SU1uZzVzWi9ZbDFjcG5wUHlsR3VICi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K")
- ("STUN.server" . "")
- ("STUN.enable" . "false")
- ("SRTP.rtpFallback" . "false")
- ("SRTP.keyExchange" . "sdes")
- ("SRTP.enable" . "true")
- ("RingNS.uri" . "")
- ("RingNS.account" . "0790738ce15fa05933b49dd77034312787da86c3")
- ("DHT.PublicInCalls" . "true")
- ("Account.videoPortMin" . "49152")
- ("Account.videoPortMax" . "65534")
- ("Account.videoEnabled" . "true")
- ("Account.username" . "f3345f2775ddfe07a4b0d95daea111d15fbc1199")
- ("Account.useragent" . "")
- ("Account.upnpEnabled" . "true")
- ("Account.type" . "RING")
- ("Account.ringtoneEnabled" . "true")
- ("Account.rendezVous" . "true")
- ("Account.publishedSameAsLocal" . "true")
- ("Account.publishedPort" . "5060")
- ("Account.publishedAddress" . "")
- ("Account.presenceSubscribeSupported" . "true")
- ("Account.peerDiscovery" . "false")
- ("Account.managerUsername" . "")
- ("Account.managerUri" . "")
- ("Account.mailbox" . "")
- ("Account.localModeratorsEnabled" . "true")
- ("Account.localInterface" . "default")
- ("Account.hostname" . "bootstrap.jami.net")
- ("Account.hasCustomUserAgent" . "false")
- ("Account.enable" . "true")
- ("Account.dtmfType" . "overrtp")
- ("Account.displayName" . "dummy")
- ("Account.defaultModerators" . "")
- ("Account.audioPortMin" . "16384")
- ("Account.audioPortMax" . "32766")
- ("Account.archiveHasPassword" . "false")
- ("Account.allowCertFromTrusted" . "true")
- ("Account.allowCertFromHistory" . "true")
- ("Account.allowCertFromContact" . "true")
- ("Account.allModeratorEnabled" . "true")
- ("Account.alias" . "dummy")
- ("Account.activeCallLimit" . "-1")
- ("Account.accountPublish" . "false")
- ("Account.accountDiscovery" . "false")))
+ ("STUN.server" . "")
+ ("STUN.enable" . "false")
+ ("SRTP.rtpFallback" . "false")
+ ("SRTP.keyExchange" . "sdes")
+ ("SRTP.enable" . "true")
+ ("RingNS.uri" . "")
+ ("RingNS.account" . "0790738ce15fa05933b49dd77034312787da86c3")
+ ("DHT.PublicInCalls" . "true")
+ ("Account.videoPortMin" . "49152")
+ ("Account.videoPortMax" . "65534")
+ ("Account.videoEnabled" . "true")
+ ("Account.username" . "f3345f2775ddfe07a4b0d95daea111d15fbc1199")
+ ("Account.useragent" . "")
+ ("Account.upnpEnabled" . "true")
+ ("Account.type" . "RING")
+ ("Account.ringtoneEnabled" . "true")
+ ("Account.rendezVous" . "true")
+ ("Account.publishedSameAsLocal" . "true")
+ ("Account.publishedPort" . "5060")
+ ("Account.publishedAddress" . "")
+ ("Account.presenceSubscribeSupported" . "true")
+ ("Account.peerDiscovery" . "false")
+ ("Account.managerUsername" . "")
+ ("Account.managerUri" . "")
+ ("Account.mailbox" . "")
+ ("Account.localModeratorsEnabled" . "true")
+ ("Account.localInterface" . "default")
+ ("Account.hostname" . "bootstrap.jami.net")
+ ("Account.hasCustomUserAgent" . "false")
+ ("Account.enable" . "true")
+ ("Account.dtmfType" . "overrtp")
+ ("Account.displayName" . "dummy")
+ ("Account.defaultModerators" . "")
+ ("Account.audioPortMin" . "16384")
+ ("Account.audioPortMax" . "32766")
+ ("Account.archiveHasPassword" . "false")
+ ("Account.allowCertFromTrusted" . "true")
+ ("Account.allowCertFromHistory" . "true")
+ ("Account.allowCertFromContact" . "true")
+ ("Account.allModeratorEnabled" . "true")
+ ("Account.alias" . "dummy")
+ ("Account.activeCallLimit" . "-1")
+ ("Account.accountPublish" . "false")
+ ("Account.accountDiscovery" . "false"))
diff --git a/gnu/tests/docker.scm b/gnu/tests/docker.scm
index edc9804414..9e9d2e2d07 100644
--- a/gnu/tests/docker.scm
+++ b/gnu/tests/docker.scm
@@ -212,7 +212,7 @@ inside %DOCKER-OS."
(virtual-machine
(operating-system os)
(volatile? #f)
- (disk-image-size (* 5500 (expt 2 20)))
+ (disk-image-size (* 6000 (expt 2 20)))
(memory-size 2048)
(port-forwardings '())))
diff --git a/gnu/tests/security.scm b/gnu/tests/security.scm
index ca6c857899..93cbe4a977 100644
--- a/gnu/tests/security.scm
+++ b/gnu/tests/security.scm
@@ -20,6 +20,7 @@
#:use-module (guix gexp)
#:use-module (gnu packages admin)
#:use-module (gnu services)
+ #:use-module (gnu services base)
#:use-module (gnu services security)
#:use-module (gnu services ssh)
#:use-module (gnu system)
@@ -176,7 +177,9 @@
(simple-operating-system
(service (fail2ban-jail-service openssh-service-type (fail2ban-jail-configuration
(name "sshd") (enabled? #t)))
- (openssh-configuration)))
+ (openssh-configuration))
+ (service static-networking-service-type
+ (list %qemu-static-networking)))
(test-equal "fail2ban sshd jail running status output"
'("Status for the jail: sshd"
diff --git a/gnu/tests/telephony.scm b/gnu/tests/telephony.scm
index f7d9c73767..f03ea963f7 100644
--- a/gnu/tests/telephony.scm
+++ b/gnu/tests/telephony.scm
@@ -38,7 +38,10 @@
;;; Jami daemon.
;;;
-(include "data/jami-dummy-account.dat") ;defines %jami-account-content-sexp
+(define %jami-account-content-sexp
+ (call-with-input-file
+ (search-path %load-path "gnu/tests/data/jami-dummy-account.dat")
+ read))
(define %dummy-jami-account-archive
;; A Jami account archive is a gzipped JSON file.
@@ -391,7 +394,7 @@ jami account used as part of the jami configuration are left *unspecified*."
(description "Provisioning test for the jami service.")
(value (run-jami-test #:provisioning? #t))))
-;;; Thi test verifies that <jami-account> values can be left unspecified
+;;; This test verifies that <jami-account> values can be left unspecified
;;; without causing any issue (see: https://issues.guix.gnu.org/56799).
(define %test-jami-provisioning-partial
(system-test
diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index f3655f1d8a..6ca88cbacd 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
@@ -277,6 +277,7 @@
(let ((session (make-session #:user "test"
#:port 10022
#:host "localhost"
+ #:timeout 120
#:log-verbosity 'rare)))
(match (connect! session)
('ok