summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2021-10-18 14:33:09 +0000
committerMathieu Othacehe <othacehe@gnu.org>2021-10-18 14:37:26 +0000
commite486b2b674badc80627b11077b7df2ac1cab92d8 (patch)
tree5909547a69c4b185b878c8f0fe8152f1c01fef04 /gnu
parent0df1eb029efe5ebe3f02e36fa650cae4aaba89ec (diff)
parent88badc074a5dbebf80115918cf6c0009075154d2 (diff)
downloadguix-e486b2b674badc80627b11077b7df2ac1cab92d8.tar.gz
Merge remote-tracking branch 'signed/master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/hurd-boot.scm4
-rw-r--r--gnu/home/services/shells.scm40
-rw-r--r--gnu/local.mk19
-rw-r--r--gnu/packages/acl.scm20
-rw-r--r--gnu/packages/admin.scm8
-rw-r--r--gnu/packages/adns.scm8
-rw-r--r--gnu/packages/astronomy.scm4
-rw-r--r--gnu/packages/audio.scm112
-rw-r--r--gnu/packages/backup.scm12
-rw-r--r--gnu/packages/benchmark.scm13
-rw-r--r--gnu/packages/c.scm171
-rw-r--r--gnu/packages/check.scm11
-rw-r--r--gnu/packages/cpp.scm101
-rw-r--r--gnu/packages/crypto.scm35
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/disk.scm10
-rw-r--r--gnu/packages/elixir.scm16
-rw-r--r--gnu/packages/emacs-xyz.scm178
-rw-r--r--gnu/packages/emulators.scm4
-rw-r--r--gnu/packages/file-systems.scm10
-rw-r--r--gnu/packages/finance.scm27
-rw-r--r--gnu/packages/fonts.scm60
-rw-r--r--gnu/packages/fpga.scm4
-rw-r--r--gnu/packages/games.scm22
-rw-r--r--gnu/packages/gnome.scm30
-rw-r--r--gnu/packages/gnuzilla.scm8
-rw-r--r--gnu/packages/golang.scm25
-rw-r--r--gnu/packages/gtk.scm2
-rw-r--r--gnu/packages/guile-xyz.scm39
-rw-r--r--gnu/packages/hardware.scm7
-rw-r--r--gnu/packages/haskell-xyz.scm8
-rw-r--r--gnu/packages/linux.scm192
-rw-r--r--gnu/packages/lisp-xyz.scm189
-rw-r--r--gnu/packages/lisp.scm21
-rw-r--r--gnu/packages/mail.scm19
-rw-r--r--gnu/packages/mate.scm2
-rw-r--r--gnu/packages/matrix.scm141
-rw-r--r--gnu/packages/messaging.scm4
-rw-r--r--gnu/packages/minetest.scm25
-rw-r--r--gnu/packages/music.scm108
-rw-r--r--gnu/packages/networking.scm10
-rw-r--r--gnu/packages/package-management.scm10
-rw-r--r--gnu/packages/patches/alpine-fix-privacy-policy-crash.patch39
-rw-r--r--gnu/packages/patches/aws-c-auth-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-auth-disable-networking-tests.patch64
-rw-r--r--gnu/packages/patches/aws-c-compression-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-http-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-http-disable-networking-tests.patch48
-rw-r--r--gnu/packages/patches/aws-c-io-disable-networking-tests.patch28
-rw-r--r--gnu/packages/patches/aws-c-mqtt-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-s3-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-c-s3-disable-networking-tests.patch153
-rw-r--r--gnu/packages/patches/aws-crt-cpp-cmake-prefix.patch13
-rw-r--r--gnu/packages/patches/aws-crt-cpp-disable-networking-tests.patch47
-rw-r--r--gnu/packages/patches/aws-sdk-cpp-cmake-prefix.patch18
-rw-r--r--gnu/packages/patches/aws-sdk-cpp-disable-networking-tests.patch44
-rw-r--r--gnu/packages/patches/aws-sdk-cpp-disable-werror.patch11
-rw-r--r--gnu/packages/patches/libhx-fix-double-free-bug.patch80
-rw-r--r--gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch25
-rw-r--r--gnu/packages/patches/mixxx-system-googletest-benchmark.patch43
-rw-r--r--gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch32
-rw-r--r--gnu/packages/python-check.scm112
-rw-r--r--gnu/packages/python-crypto.scm6
-rw-r--r--gnu/packages/python-web.scm48
-rw-r--r--gnu/packages/python-xyz.scm399
-rw-r--r--gnu/packages/radio.scm24
-rw-r--r--gnu/packages/rpm.scm4
-rw-r--r--gnu/packages/security-token.scm4
-rw-r--r--gnu/packages/shellutils.scm16
-rw-r--r--gnu/packages/tls.scm83
-rw-r--r--gnu/packages/version-control.scm17
-rw-r--r--gnu/packages/video.scm19
-rw-r--r--gnu/packages/vim.scm77
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/web-browsers.scm10
-rw-r--r--gnu/packages/web.scm4
-rw-r--r--gnu/packages/wm.scm4
-rw-r--r--gnu/packages/xdisorg.scm9
-rw-r--r--gnu/packages/xiph.scm12
-rw-r--r--gnu/services/xorg.scm2
-rw-r--r--gnu/system/hurd.scm4
-rw-r--r--gnu/system/images/hurd.scm1
-rw-r--r--gnu/tests/install.scm4
83 files changed, 2622 insertions, 684 deletions
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index e66d4d1ba8..8b27995438 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -191,7 +191,7 @@ set."
                                   "10.0.2.15" ;the default QEMU guest IP
                                   "--netmask" "255.255.255.0"
                                   "--gateway" "10.0.2.2"
-                                  "--ipv6" "/servers/socket/16"))
+                                  "--ipv6" "/servers/socket/26"))
       ("proc"                    ("/hurd/procfs" "--stat-mode=444"))))
 
   (define devices
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index 1cd17b2c32..e2730967b2 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -66,7 +66,7 @@
 @code{home-environment}, DO NOT create this service manually, it can
 only be extended.
 
-@code{profile} is a list of strings or gexps, which will go to
+@code{profile} is a list of file-like objects, which will go to
 @file{~/.profile}.  By default @file{~/.profile} contains the
 initialization code, which have to be evaluated by login shell to make
 home-environment's profile avaliable to the user, but other commands
@@ -107,7 +107,7 @@ $HOME_ENVIRONMENT/on-first-login\n"
                 (default-value (home-shell-profile-configuration))
                 (description "Create @file{~/.profile}, which is used
 for environment initialization of POSIX compliant login shells.  This
-service type can be extended with a list of strings or gexps.")))
+service type can be extended with a list of file-like objects.")))
 
 (define (serialize-boolean field-name val) "")
 (define (serialize-posix-env-vars field-name val)
@@ -143,30 +143,30 @@ Shell startup process will continue with
    serialize-posix-env-vars)
   (zshenv
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.zshenv}.
+   "List of file-like objects, which will be added to @file{.zshenv}.
 Used for setting user's shell environment variables.  Must not contain
 commands assuming the presence of tty or producing output.  Will be
 read always.  Will be read before any other file in @env{ZDOTDIR}.")
   (zprofile
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.zprofile}.
+   "List of file-like objects, which will be added to @file{.zprofile}.
 Used for executing user's commands at start of login shell (In most
 cases the shell started on tty just after login).  Will be read before
 @file{.zlogin}.")
   (zshrc
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.zshrc}.
+   "List of file-like objects, which will be added to @file{.zshrc}.
 Used for executing user's commands at start of interactive shell (The
 shell for interactive usage started by typing @code{zsh} or by
 terminal app or any other program).")
   (zlogin
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.zlogin}.
+   "List of file-like objects, which will be added to @file{.zlogin}.
 Used for executing user's commands at the end of starting process of
 login shell.")
   (zlogout
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.zlogout}.
+   "List of file-like objects, which will be added to @file{.zlogout}.
 Used for executing user's commands at the exit of login shell.  It
 won't be read in some cases (if the shell terminates by exec'ing
 another process for example)."))
@@ -244,19 +244,19 @@ source ~/.profile
    "Association list of environment variables to set.")
   (zshrc
    (text-config '())
-   "List of strings or gexps.")
+   "List of file-like objects.")
   (zshenv
    (text-config '())
-   "List of strings or gexps.")
+   "List of file-like objects.")
   (zprofile
    (text-config '())
-   "List of strings or gexps.")
+   "List of file-like objects.")
   (zlogin
    (text-config '())
-   "List of strings or gexps.")
+   "List of file-like objects.")
   (zlogout
    (text-config '())
-   "List of strings or gexps."))
+   "List of file-like objects."))
 
 (define (home-zsh-extensions original-config extension-configs)
   (home-zsh-configuration
@@ -319,19 +319,19 @@ for @code{ls} provided by guix to @file{.bashrc}.")
    serialize-posix-env-vars)
   (bash-profile
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.bash_profile}.
+   "List of file-like objects, which will be added to @file{.bash_profile}.
 Used for executing user's commands at start of login shell (In most
 cases the shell started on tty just after login).  @file{.bash_login}
 won't be ever read, because @file{.bash_profile} always present.")
   (bashrc
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.bashrc}.
+   "List of file-like objects, which will be added to @file{.bashrc}.
 Used for executing user's commands at start of interactive shell (The
 shell for interactive usage started by typing @code{bash} or by
 terminal app or any other program).")
   (bash-logout
    (text-config '())
-   "List of strings or gexps, which will be added to @file{.bash_logout}.
+   "List of file-like objects, which will be added to @file{.bash_logout}.
 Used for executing user's commands at the exit of login shell.  It
 won't be read in some cases (if the shell terminates by exec'ing
 another process for example)."))
@@ -426,13 +426,13 @@ if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
    "Association list of environment variables to set.")
   (bash-profile
    (text-config '())
-   "List of strings or gexps.")
+   "List of file-like objects.")
   (bashrc
    (text-config '())
-   "List of strings or gexps.")
+   "List of file-like objects.")
   (bash-logout
    (text-config '())
-   "List of strings or gexps."))
+   "List of file-like objects."))
 
 (define (home-bash-extensions original-config extension-configs)
   (home-bash-configuration
@@ -506,7 +506,7 @@ if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
     "The Fish package to use.")
   (config
    (text-config '())
-   "List of strings or gexps, which will be added to
+   "List of file-like objects, which will be added to
 @file{$XDG_CONFIG_HOME/fish/config.fish}.")
   (environment-variables
    (alist '())
@@ -553,7 +553,7 @@ end\n\n")
 (define-configuration/no-serialization home-fish-extension
   (config
    (text-config '())
-   "List of strings or gexps for extending the Fish initialization file.")
+   "List of file-like objects for extending the Fish initialization file.")
   (environment-variables
    (alist '())
    "Association list of environment variables to set.")
diff --git a/gnu/local.mk b/gnu/local.mk
index c1f2399a46..3155338c39 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -839,6 +839,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/akonadi-not-relocatable.patch		\
   %D%/packages/patches/akonadi-timestamps.patch		\
   %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch	\
+  %D%/packages/patches/alpine-fix-privacy-policy-crash.patch	\
   %D%/packages/patches/anki-mpv-args.patch			\
   %D%/packages/patches/antiword-CVE-2014-8123.patch			\
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch	\
@@ -871,11 +872,24 @@ dist_patch_DATA =						\
   %D%/packages/patches/avahi-localstatedir.patch		\
   %D%/packages/patches/avidemux-install-to-lib.patch		\
   %D%/packages/patches/awesome-reproducible-png.patch		\
+  %D%/packages/patches/aws-c-auth-cmake-prefix.patch		\
+  %D%/packages/patches/aws-c-auth-disable-networking-tests.patch\
   %D%/packages/patches/aws-c-cal-cmake-prefix.patch		\
+  %D%/packages/patches/aws-c-compression-cmake-prefix.patch	\
   %D%/packages/patches/aws-c-event-stream-cmake-prefix.patch  \
+  %D%/packages/patches/aws-c-http-cmake-prefix.patch		\
+  %D%/packages/patches/aws-c-http-disable-networking-tests.patch\
+  %D%/packages/patches/aws-c-mqtt-cmake-prefix.patch		\
   %D%/packages/patches/aws-c-io-cmake-prefix.patch		\
-  %D%/packages/patches/aws-c-io-disable-networking-tests.patch		\
+  %D%/packages/patches/aws-c-io-disable-networking-tests.patch	\
+  %D%/packages/patches/aws-c-s3-cmake-prefix.patch		\
+  %D%/packages/patches/aws-c-s3-disable-networking-tests.patch	\
   %D%/packages/patches/aws-checksums-cmake-prefix.patch		\
+  %D%/packages/patches/aws-crt-cpp-cmake-prefix.patch		\
+  %D%/packages/patches/aws-crt-cpp-disable-networking-tests.patch	\
+  %D%/packages/patches/aws-sdk-cpp-cmake-prefix.patch		\
+  %D%/packages/patches/aws-sdk-cpp-disable-networking-tests.patch	\
+  %D%/packages/patches/aws-sdk-cpp-disable-werror.patch		\
   %D%/packages/patches/azr3.patch				\
   %D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch	\
   %D%/packages/patches/bash-completion-directories.patch	\
@@ -1369,7 +1383,6 @@ 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/libhx-fix-double-free-bug.patch		\
   %D%/packages/patches/libjxr-fix-function-signature.patch	\
   %D%/packages/patches/libjxr-fix-typos.patch			\
   %D%/packages/patches/libofa-ftbfs-1.diff		\
@@ -1470,6 +1483,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/minisat-friend-declaration.patch		\
   %D%/packages/patches/minisat-install.patch			\
   %D%/packages/patches/mit-krb5-hurd.patch			\
+  %D%/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch	\
+  %D%/packages/patches/mixxx-system-googletest-benchmark.patch	\
   %D%/packages/patches/mpc123-initialize-ao.patch		\
   %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
   %D%/packages/patches/mpg321-gcc-10.patch			\
diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm
index c2de62657f..b299e7d284 100644
--- a/gnu/packages/acl.scm
+++ b/gnu/packages/acl.scm
@@ -114,23 +114,23 @@
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-tests
            (lambda* (#:key outputs inputs #:allow-other-keys)
-             ;; These tests operate on real files, but our tempfs does not support
-             ;; ACLs
+             ;; These tests operate on real files, but our tmpfs does not support
+             ;; ACLs.
              (substitute* "tests/test_acls.py"
                (("( *)def test_applyto(_extended(_mixed)?)?" match indent)
-                (string-append indent "@pytest.mark.skip(reason=\"guix\")\n" match)))
-             #t))
+                (string-append indent "@pytest.mark.skip(reason=\"guix\")\n"
+                               match)))))
          (replace 'check
            (lambda* (#:key inputs outputs tests? #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
-               (invoke "pytest" "tests"))
-               #t)))))
+               (invoke "pytest" "tests")))))))
     (inputs `(("acl" ,acl)))
     (native-inputs `(("python-pytest" ,python-pytest)))
     (home-page "https://pylibacl.k1024.org/")
-    (synopsis "POSIX.1e ACLs for python")
-    (description "Python 3.4+ extension module that allows you to manipulate
-the POSIX.1e Access Control Lists present in some OS/file-systems
-combinations.")
+    (synopsis "POSIX.1e @acronym{ACLs, access control lists} for Python")
+    (description
+     "This Python extension module manipulates the POSIX.1e @acronym{ACLs,
+Access Control Lists} available on many file systems.  These allow more
+fine-grained access control than traditional user/group permissions.")
     (license lgpl2.1+)))
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4d4e18e3a3..af8f86e70b 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -645,7 +645,7 @@ console.")
 (define-public htop
   (package
     (name "htop")
-    (version "3.1.0")
+    (version "3.1.1")
     (source
      (origin
        (method git-fetch)
@@ -653,7 +653,7 @@ console.")
              (url "https://github.com/htop-dev/htop")
              (commit version)))
        (sha256
-        (base32 "1ngvidaka6xbfb3l4zxmlksk2ms93fy3sb76w7917kjgn9mh53zz"))
+        (base32 "19xnqnavpxbyix2gp1p3lbhlaawx0gdklx3aq4x4ylrxml2nwyi6"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
@@ -3985,7 +3985,7 @@ Python loading in HPC environments.")
   (let ((real-name "inxi"))
     (package
       (name "inxi-minimal")
-      (version "3.3.06-1")
+      (version "3.3.07-1")
       (source
        (origin
          (method git-fetch)
@@ -3994,7 +3994,7 @@ Python loading in HPC environments.")
                (commit version)))
          (file-name (git-file-name real-name version))
          (sha256
-          (base32 "1qk40iyrdp52vmbiqwxicvlcycm2v2bf1gg4lzq0b4619sd6d1m7"))))
+          (base32 "1amf1sry7g99khp9ac8f3m4jfa8rn1jjxvrcg0j9wvv65px7zj0i"))))
       (build-system trivial-build-system)
       (inputs
        `(("bash" ,bash-minimal)
diff --git a/gnu/packages/adns.scm b/gnu/packages/adns.scm
index 1b71d0107c..a5de4a116b 100644
--- a/gnu/packages/adns.scm
+++ b/gnu/packages/adns.scm
@@ -65,7 +65,7 @@ scripts.")
 (define-public c-ares
   (package
     (name "c-ares")
-    (version "1.17.1")
+    (version "1.17.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -73,10 +73,12 @@ scripts.")
                     ".tar.gz"))
               (sha256
                (base32
-                "0h7wjfnk2092glqcp9mqaax7xx0s13m501z1gi0gsjl2vvvd0gfp"))))
+                "0gcincjvpll2qmlc906jx6mfq97s87mgi0zby0753ki0rr2ch0s8"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     '(;; FIXME: Some tests require network access
+       #:tests? #f
+       #:phases
        (modify-phases %standard-phases
          (add-before 'check 'filter-live-tests
            (lambda _
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 192f69cf63..49ed12f3d3 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -894,7 +894,7 @@ It can be used to calculate the trajectory of satellites.")
 (define-public indi
   (package
     (name "indi")
-    (version "1.9.1")
+    (version "1.9.2")
     (source
      (origin
        (method git-fetch)
@@ -903,7 +903,7 @@ It can be used to calculate the trajectory of satellites.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0zhsm60hgnmy9lvwckijf6f6yikbvdbxy2qlgclv09p14lgr6wd9"))))
+        (base32 "00dlvp682xg2sdxm7ix55zp6311mgnd543q45drrc7kjlgaqvip4"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 95bf52a673..d1ab99528f 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -107,6 +107,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages linphone)
   #:use-module (gnu packages linux)
@@ -1217,6 +1218,40 @@ flanger), ringmodulator, distortion, filters, pitchshift, oscillators,
 emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
     (license license:gpl3+)))
 
+(define-public libdjinterop
+  (package
+    (name "libdjinterop")
+    (version "0.16.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xsco/libdjinterop")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "16nrqpr90vb9ggmp9j73m0hspd7pmfdhh0g6iyp8vd7kx7g17qnk"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; crate_test writes a database file to the source tree.
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files ".")))))))
+    (native-inputs
+     `(("boost" ,boost)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
+    (home-page "https://github.com/xsco/libdjinterop")
+    (synopsis "C++ library for access to DJ record libraries")
+    (description
+     "@code{libdjinterop} is a C++ library that allows access to database
+formats used to store information about DJ record libraries.")
+    (license license:lgpl3+)))
+
 (define-public tao
   (package
     (name "tao")
@@ -3054,6 +3089,31 @@ for \"realtime\" in the index of the Guix manual to learn how to achieve this
 using Guix System.")
     (license license:gpl2+)))
 
+(define-public libshout-idjc
+  (package
+    (name "libshout-idjc")
+    (version "2.4.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/libshoutidjc.idjc.p"
+                           "/libshout-idjc-" version ".tar.gz"))
+       (sha256
+        (base32 "1r9z8ggxylr2ab0isaljbm574rplnlcb12758j994h54nh2vikwb"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libogg" ,libogg)
+       ("libtheora" ,libtheora)
+       ("libvorbis" ,libvorbis)
+       ("speex" ,speex)))
+    (home-page "http://idjc.sourceforge.net/")
+    (synopsis "Broadcast streaming library with IDJC extensions")
+    (description "This package provides libshout plus IDJC extensions.")
+    ;; GNU Library (not Lesser) General Public License.
+    (license license:lgpl2.0+)))
+
 (define-public raul
   (package
     (name "raul")
@@ -3419,6 +3479,31 @@ stretching and pitch scaling of audio.  This package contains the library.")
     ;; containing gpl2.
     (license license:gpl2)))
 
+(define-public libkeyfinder
+  (package
+    (name "libkeyfinder")
+    (version "2.2.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mixxxdj/libkeyfinder")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1623kirmxhmvmhx7f8lbzk0f18w2hrhwlkzl8l4aa906lfqffdp2"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("catch" ,catch-framework2)))
+    (inputs
+     `(("fftw" ,fftw)))
+    (home-page "https://mixxxdj.github.io/libkeyfinder/")
+    (synopsis "Musical key detection for digital audio")
+    (description
+     "@code{libkeyfinder} is a small C++11 library for estimating the musical
+key of digital audio.")
+    (license license:gpl3+)))
+
 (define-public wavpack
   (package
     (name "wavpack")
@@ -3977,6 +4062,33 @@ machine-readable ASCII format.")
     (home-page "https://github.com/svend/cuetools")
     (license license:gpl2+)))
 
+(define-public mp3guessenc
+  (package
+    (name "mp3guessenc")
+    (version "0.27.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/mp3guessenc/mp3guessenc-"
+                           (version-major+minor version) "/mp3guessenc-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1fa3sbwwn4p2v1749lzy040bfy1xfd574mf2frwgg9ikgk3vlb3c"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)))) ; no configure phase
+    (home-page "https://mp3guessenc.sourceforge.io")
+    (synopsis "Analyze MPEG layer I/II/III files")
+    (description "mp3guessenc is a command line utility that tries to detect the
+encoder used for an MPEG Layer III (MP3) file, as well as scan any MPEG audio
+file (any layer) and print a lot of useful information.")
+    (license license:lgpl2.1+)))
+
 (define-public shntool
   (package
     (name "shntool")
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 895859c0d0..37f32fa078 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -114,9 +114,11 @@
        ("mock" ,python-mock)))
     (propagated-inputs
      `(("lockfile" ,python-lockfile)
+       ("pygobject" ,python-pygobject)
        ("urllib3" ,python-urllib3)))
     (inputs
-     `(("librsync" ,librsync)
+     `(("dbus" ,dbus)                   ; dbus-launch (Gio backend)
+       ("librsync" ,librsync)
        ("lftp" ,lftp)
        ("gnupg" ,gnupg)                 ; gpg executable needed
        ("util-linux" ,util-linux)))     ; for setsid
@@ -129,7 +131,11 @@
              (substitute* "duplicity/gpginterface.py"
                (("self.call = u'gpg'")
                 (string-append "self.call = '" (assoc-ref inputs "gnupg") "/bin/gpg'")))
-
+             (substitute* "duplicity/backends/giobackend.py"
+               (("subprocess.Popen\\(\\[u'dbus-launch'\\]")
+                (string-append "subprocess.Popen([u'"
+                               (assoc-ref inputs "dbus")
+                               "/bin/dbus-launch']")))
              (substitute* '("testing/functional/__init__.py"
                             "testing/overrides/bin/lftp")
                (("/bin/sh") (which "sh")))
@@ -143,7 +149,7 @@
              ;; defaults don't match up, breaking test_restart.  Fix it.
              (setenv "TMPDIR" "/tmp")
              #t)))))
-    (home-page "http://duplicity.nongnu.org/index.html")
+    (home-page "https://duplicity.gitlab.io/duplicity-web/")
     (synopsis "Encrypted backup using rsync algorithm")
     (description
      "Duplicity backs up directories by producing encrypted tar-format volumes
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index d9796d2999..dda0123d42 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -53,14 +53,14 @@
 (define-public fio
   (package
     (name "fio")
-    (version "3.27")
+    (version "3.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://brick.kernel.dk/snaps/"
                                   "fio-" version ".tar.bz2"))
               (sha256
                (base32
-                "0akaixip86ycbxr13bjff2121rgfbz35fa9l39677wpwzckp4f4d"))))
+                "0ba9cnjrnm3nwcfbhh5x2sycr54j3yn1rqn76kjdyz40f3pdg3qm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
@@ -77,16 +77,14 @@
                 ;; in various os.system() calls mixed with *.gnuplot filenames.
                 (("; do gnuplot") (string-append "; do " gnuplot))
                 (("gnuplot mymath") (string-append gnuplot " mymath"))
-                (("gnuplot mygraph") (string-append gnuplot " mygraph")))
-              #t)))
+                (("gnuplot mygraph") (string-append gnuplot " mygraph"))))))
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              ;; The configure script doesn't understand some of the
              ;; GNU options, so we can't use #:configure-flags.
              (let ((out (assoc-ref outputs "out")))
                (invoke "./configure"
-                       (string-append "--prefix=" out))
-               #t)))
+                       (string-append "--prefix=" out)))))
          ;; The main `fio` executable is fairly small and self contained.
          ;; Moving the auxiliary python and gnuplot scripts to a separate
          ;; output saves almost 400 MiB on the closure.
@@ -104,8 +102,7 @@
                            "fiologparser.py"))
                ;; Make sure numpy et.al is found.
                (wrap-program (string-append newbin "/fiologparser_hist.py")
-                 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
-               #t))))))
+                 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))))))))
     (outputs '("out" "utils"))
     (inputs
      `(("ceph" ,ceph "lib")
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 9f30295067..c6399280f6 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -252,15 +252,14 @@ whose behaviour is inconsistent across *NIX flavours.")
 (define-public libhx
   (package
     (name "libhx")
-    (version "4.0.1")
+    (version "4.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://inai.de/files/libhx/"
                            "libHX-" version ".tar.xz"))
        (sha256
-        (base32 "1f4rmarym1j368cbxhqzyvdn5dk4bh8951s19ffqwql16anqsgfr"))
-       (patches (search-patches "libhx-fix-double-free-bug.patch"))))
+        (base32 "1mifpzxr5kma7gawhv1vbga8j5qi8jgka0axr48v08bdpb83pya2"))))
     (build-system gnu-build-system)
     (home-page "https://inai.de/projects/libhx/")
     (synopsis "C library with common data structures and functions")
@@ -554,7 +553,7 @@ portability.")
 (define-public aws-c-common
   (package
     (name "aws-c-common")
-    (version "0.5.3")
+    (version "0.6.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -563,7 +562,7 @@ portability.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "03fcvh3l1l6fkzkcbaprk10qmy8l77zhmh60h1px2ik09sqd9p72"))))
+                "17iknzqs6dl0ixajplc47ylkyynwpi3x2dxh56wa8ylhgy53d09x"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -578,7 +577,7 @@ portability.")
 (define-public aws-checksums
   (package
     (name "aws-checksums")
-    (version "0.1.11")
+    (version "0.1.12")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -587,7 +586,7 @@ portability.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1pjs31x3cq9wyw511y00kksz660m8im9zxk30hid8iwlilcbnyvx"))
+                "054f2hkmkxhw83q7zsz349k82xk6bkrvlsab088pf7kn9wd4hy4k"))
               (patches (search-patches "aws-checksums-cmake-prefix.patch"))))
     (build-system cmake-build-system)
     (arguments
@@ -638,7 +637,7 @@ communication.")
 (define-public aws-c-io
   (package
     (name "aws-c-io")
-    (version "0.9.2")
+    (version "0.10.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -647,7 +646,7 @@ communication.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1vwyf1pm0hhcypyjc9xh9x7y50ic79xlbck1yf9d9wz0bnh43p7v"))
+                "1jrnzs803jqprnvbw6rqr834qld5sd7flaqzgssp3099m189szpq"))
               (patches
                (search-patches
                 "aws-c-io-cmake-prefix.patch"
@@ -669,7 +668,7 @@ event-driven, asynchronous network application protocols.")
 (define-public aws-c-cal
   (package
     (name "aws-c-cal")
-    (version "0.4.5")
+    (version "0.5.11")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -678,7 +677,7 @@ event-driven, asynchronous network application protocols.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "04acra1mnzw9q7jycs5966akfbgnx96hkrq90nq0dhw8pvarlyv6"))
+                "0rqqk4n56h8sf4q070rhgjwas04j8h0vq4wl1alq5l1rqq72qqdf"))
               (patches (search-patches "aws-c-cal-cmake-prefix.patch"))))
     (build-system cmake-build-system)
     (arguments
@@ -713,3 +712,153 @@ cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.")
     (description "The @acronym{PCL, Portable Coroutine Library} implements the
 low level functionality for coroutines.")
     (license license:gpl2+)))
+
+(define-public aws-c-http
+  (package
+    (name "aws-c-http")
+    (version "0.6.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "18xlgz68zizkcp784bs6hkyx0gvp0f1p076i46z653bcd3qa87b4"))
+              (patches
+               (search-patches
+                "aws-c-http-cmake-prefix.patch"
+                "aws-c-http-disable-networking-tests.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
+    (propagated-inputs
+     `(("aws-c-compression" ,aws-c-compression)
+       ("aws-c-io" ,aws-c-io)))
+    (synopsis "Amazon Web Services HTTP library")
+    (description
+     "This library provides a C99 implementation of the HTTP/1.1 and HTTP/2
+specifications.")
+    (home-page "https://github.com/awslabs/aws-c-http")
+    (license license:asl2.0)))
+
+(define-public aws-c-compression
+  (package
+    (name "aws-c-compression")
+    (version "0.2.13")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0zqfxi0fdgapfsfgvsindv63pq7vyl1s376qkpv4jgflyb1v6gp5"))
+              (patches (search-patches "aws-c-compression-cmake-prefix.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
+    (propagated-inputs
+     `(("aws-c-common" ,aws-c-common)))
+    (synopsis "Amazon Web Services compression library")
+    (description
+     "This library provides a C99 implementation of compression algorithms,
+currently limited to Huffman encoding and decoding.")
+    (home-page "https://github.com/awslabs/aws-c-compression")
+    (license license:asl2.0)))
+
+(define-public aws-c-auth
+  (package
+    (name "aws-c-auth")
+    (version "0.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0yh9s6q3ahq39xgvihp2a5cn9h39qlq8wfjc32m0ayi9x739rbqg"))
+              (patches
+               (search-patches
+                "aws-c-auth-cmake-prefix.patch"
+                "aws-c-auth-disable-networking-tests.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
+    (propagated-inputs
+     `(("aws-c-cal" ,aws-c-cal)
+       ("aws-c-common" ,aws-c-common)
+       ("aws-c-http" ,aws-c-http)
+       ("aws-c-io" ,aws-c-io)))
+    (synopsis "Amazon Web Services client-side authentication library")
+    (description
+     "This library provides a C99 implementation for AWS client-side
+authentication.")
+    (home-page "https://github.com/awslabs/aws-c-auth")
+    (license license:asl2.0)))
+
+(define-public aws-c-s3
+  (package
+    (name "aws-c-s3")
+    (version "0.1.19")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1vkjd8dh99d8qsl7irnbkcdf9vjmcznx0jz186la0472z4h48wjj"))
+              (patches
+               (search-patches
+                "aws-c-s3-cmake-prefix.patch"
+                "aws-c-s3-disable-networking-tests.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
+    (propagated-inputs
+     `(("aws-c-auth" ,aws-c-auth)
+       ("aws-c-http" ,aws-c-http)))
+    (synopsis "Amazon Web Services client library for Amazon S3")
+    (description
+     "This library provides a C99 client implementation of the Simple Storage
+Service (S3) protocol for object storage.")
+    (home-page "https://github.com/awslabs/aws-c-s3")
+    (license license:asl2.0)))
+
+(define-public aws-c-mqtt
+  (package
+    (name "aws-c-mqtt")
+    (version "0.7.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/awslabs/" name))
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qgblakp9n281z5w1kmmy9sjiz6s44kg487l76w7p43p1dp7s401"))
+              (patches (search-patches "aws-c-mqtt-cmake-prefix.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
+    (propagated-inputs
+     `(("aws-c-http" ,aws-c-http)
+       ("aws-c-io" ,aws-c-io)))
+    (synopsis "Amazon Web Services MQTT library")
+    (description
+     "This library provides a C99 implementation of the Message Queuing
+Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
+    (home-page "https://github.com/awslabs/aws-c-mqtt")
+    (license license:asl2.0)))
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index c839f83c1d..c6c078b08f 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -2122,6 +2122,17 @@ seamlessly into your existing Python unit testing work flow.")
     (license license:mpl2.0)
     (properties `((python2-variant . ,(delay python2-hypothesis))))))
 
+(define-public python-hypothesis-6.23
+  (package
+    (inherit python-hypothesis)
+    (version "6.23.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "hypothesis" version))
+              (sha256
+               (base32
+                "0lqhfrqsd81apchz93pdqfn85kx0p790w8hhd9qq85692rwja6xp"))))))
+
 ;; This is the last version of Hypothesis that supports Python 2.
 (define-public python2-hypothesis
   (let ((hypothesis (package-with-python2
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index a9072af4b1..fe49d1f1b3 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -520,6 +520,27 @@ syntax highlighting.  @code{ccls} is derived from @code{cquery} which is not
 maintained anymore.")
     (license license:asl2.0)))
 
+(define-public spscqueue
+  (package
+    (name "spscqueue")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rigtorp/SPSCQueue/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1428cj9x318afvnvnkhg0711iy4czqn86fi7ysgfhw91asa316rc"))))
+    (build-system cmake-build-system)
+    (home-page "https://github.com/rigtorp/SPSCQueue/")
+    (synopsis "Single producer single consumer queue written in C++11")
+    (description
+     "This package provides a single producer single consumer wait-free and
+lock-free fixed size queue written in C++11.")
+    (license license:expat)))
+
 (define-public gperftools
   (package
     (name "gperftools")
@@ -885,10 +906,49 @@ of C++14 components that complements @code{std} and Boost.")
     (supported-systems '("aarch64-linux" "x86_64-linux"))
     (license license:asl2.0)))
 
+(define-public aws-crt-cpp
+  (let* ((commit "c2d6ffa5597825111cc76ad71ffc6aef664d0f25")
+         (revision "1"))
+    (package
+      (name "aws-crt-cpp")
+      (version (git-version "0.14.2" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/awslabs/aws-crt-cpp")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0l7iwynk2rgzjnr1hi1raazghmk4m7pj47vdq2kf2cfz0b6v9jf5"))
+                (patches
+                 (search-patches
+                  "aws-crt-cpp-cmake-prefix.patch"
+                  "aws-crt-cpp-disable-networking-tests.patch"))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:configure-flags
+         '("-DBUILD_SHARED_LIBS=ON"
+           "-DBUILD_DEPS=OFF")))
+      (propagated-inputs
+       `(("aws-c-auth" ,aws-c-auth)
+         ("aws-c-cal" ,aws-c-cal)
+         ("aws-c-event-stream" ,aws-c-event-stream)
+         ("aws-c-http" ,aws-c-http)
+         ("aws-c-mqtt" ,aws-c-mqtt)
+         ("aws-c-s3" ,aws-c-s3)))
+      (synopsis "C++ wrapper for Amazon Web Services C libraries")
+      (description "The AWS Common Runtime (CRT) library provides a C++ wrapper
+implementation for the following @acronym{AWS,Amazon Web Services} C libraries:
+aws-c-auth, aws-c-cal, aws-c-common, aws-c-compression, aws-c-event-stream,
+aws-c-http, aws-c-io, aws-c-mqtt, aws-checksums, and s2n.")
+      (home-page "https://github.com/awslabs/aws-crt-cpp")
+      (license license:asl2.0))))
+
 (define-public aws-sdk-cpp
   (package
     (name "aws-sdk-cpp")
-    (version "1.8.159")
+    (version "1.9.92")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -897,7 +957,12 @@ of C++14 components that complements @code{std} and Boost.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0jpfv9x82nq7hcix9in7qgrc8009dwpg6gr96hlgmcvqrqckd2r9"))))
+                "0nbq1qivykfg8jmrn8d0k6fcfa5dw9s90wnwddh7ia4zafmby7pd"))
+              (patches
+               (search-patches
+                "aws-sdk-cpp-cmake-prefix.patch"
+                "aws-sdk-cpp-disable-networking-tests.patch"
+                "aws-sdk-cpp-disable-werror.patch"))))
     (build-system cmake-build-system)
     (arguments
      '(;; Tests are run during the build phase.
@@ -906,11 +971,9 @@ of C++14 components that complements @code{std} and Boost.")
        '("-DBUILD_SHARED_LIBS=ON"
          "-DBUILD_DEPS=OFF")))
     (propagated-inputs
-     `(("aws-c-common" ,aws-c-common)
-       ("aws-c-event-stream" ,aws-c-event-stream)))
+     `(("aws-crt-cpp" ,aws-crt-cpp)))
     (inputs
-     `(("aws-checksums" ,aws-checksums)
-       ("curl" ,curl)
+     `(("curl" ,curl)
        ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (synopsis "Amazon Web Services SDK for C++")
@@ -1313,3 +1376,29 @@ of reading and writing XML.")
     (description "Jsonnet is a templating language extending JSON
 syntax with variables, conditions, functions and more.")
     (license license:asl2.0)))
+
+(define-public simdjson
+  (package
+    (name "simdjson")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simdjson/simdjson")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "08qpsw0i8481xlyyghzyszb1vh4c8i7krzzghvr9m4yg394vf6zn"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f                      ; tests require downloading dependencies
+       #:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON")))
+    (synopsis "JSON parser for C++ using SIMD instructions")
+    (description
+     "The simdjson library uses commonly available SIMD instructions and
+microparallel algorithms to implement a strict JSON parser with UTF-8
+validation.")
+    (home-page "https://github.com/simdjson/simdjson")
+    (license license:asl2.0)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 08e53cf81e..79086a9620 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -72,6 +72,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages search)
   #:use-module (gnu packages serialization)
@@ -92,6 +93,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
@@ -1281,6 +1283,39 @@ API.")
     (home-page "https://matrix.org/docs/projects/other/olm/")
     (license license:asl2.0)))
 
+(define-public python-olm
+  (package
+    ;; python-olm is part of libolm and must be updated at the same time.
+    (inherit libolm)
+    (name "python-olm")
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "python")))
+         (add-before 'build 'set-preprocessor
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "CPP" "gcc -E")))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest")))))))
+    (inputs `(("libolm" ,libolm)))
+    (propagated-inputs
+     `(("python-cffi" ,python-cffi)
+       ("python-future" ,python-future)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-benchmark" ,python-pytest-benchmark)
+       ("python-aspectlib" ,python-aspectlib)))
+    (synopsis "Python bindings for libolm")
+    (description "The libolm library implements the Double Ratchet
+cryptographic ratchet.  It is written in C and C++11, and exposed as a C
+API.  This package contains its Python bindings.")))
+
 (define-public hash-extender
   (let ((commit "cb8aaee49f93e9c0d2f03eb3cafb429c9eed723d")
         (revision "2"))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index daa47e7c59..1f193962db 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -2567,13 +2567,13 @@ on another machine, accessed via TCP/IP.")
 (define-public python-peewee
   (package
     (name "python-peewee")
-    (version "3.14.0")
+    (version "3.14.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "peewee" version))
        (sha256
-        (base32 "1yl49gxrg0c2x3n3r60z3lixw9am8b61s0477l9vjabhhx1yziar"))))
+        (base32 "18jidir2wid0cp8a61m9vf9mf0pdvm6nzspc8bfwdbifghr6ndcy"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ; fails to import test data
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 59c1c5305f..0ed740202c 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -58,6 +58,7 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -1045,7 +1046,7 @@ on your file system and offers to remove it.  @command{rmlint} can find:
 (define-public lf
   (package
     (name "lf")
-    (version "13")
+    (version "25")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1054,11 +1055,14 @@ on your file system and offers to remove it.  @command{rmlint} can find:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ld3q75v8rvp169w5p85z1vznqs9bhck6bm2f6fykxx16hmpb6ga"))))
+                "014cybng6hc9y3ma74hpc1ac3rkz4ydflx8jbmvx81rdd08rzwz7"))))
     (build-system go-build-system)
     (native-inputs
      `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
-       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)))
+       ("go-github.com-nsf-termbox-go" ,go-github.com-nsf-termbox-go)
+       ("go-golang-org-x-term" ,go-golang-org-x-term)
+       ("go-gopkg-in-djherbis-times-v1" ,go-gopkg-in-djherbis-times-v1)
+       ("go-github-com-gdamore-tcell-v2" ,go-github-com-gdamore-tcell-v2)))
     (arguments
      `(#:import-path "github.com/gokcehan/lf"))
     (home-page "https://github.com/gokcehan/lf")
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index 2ceb3b553f..6ccac68e70 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -35,7 +35,7 @@
 (define-public elixir
   (package
     (name "elixir")
-    (version "1.12.2")
+    (version "1.12.3")
     (source
      (origin
        (method git-fetch)
@@ -44,7 +44,7 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rwmwnqxhjcdx9niva9ardx90p1qi4axxh72nw9k15hhlh2jy29x"))
+        (base32 "07fisdx755cgyghwy95gvdds38sh138z56biariml18jjw5mk3r6"))
        (patches (search-patches "elixir-path-length.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -56,8 +56,7 @@
        (modify-phases %standard-phases
          (add-after 'unpack 'make-git-checkout-writable
            (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
+             (for-each make-file-writable (find-files "."))))
          (add-after 'make-git-checkout-writable 'replace-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -82,8 +81,7 @@
                     "; fi")))
                (substitute* "bin/mix"
                  (("#!/usr/bin/env elixir")
-                  (string-append "#!" out "/bin/elixir"))))
-             #t))
+                  (string-append "#!" out "/bin/elixir"))))))
          (add-before 'build 'make-current
            ;; The Elixir compiler checks whether or not to compile files by
            ;; inspecting their timestamps.  When the timestamp is equal to the
@@ -93,13 +91,11 @@
              (for-each (lambda (file)
                          (let ((recent 1400000000))
                            (utime file recent recent 0 0)))
-                       (find-files "." ".*"))
-             #t))
+                       (find-files "." ".*"))))
          (add-before 'check 'set-home
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Some tests require access to a home directory.
-             (setenv "HOME" "/tmp")
-             #t))
+             (setenv "HOME" "/tmp")))
          (delete 'configure))))
     (inputs
      `(("erlang" ,erlang)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 17dc6b456e..c8c914e283 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -153,6 +153,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages haskell-apps)
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages java)
@@ -4083,7 +4084,7 @@ files and directories.")
 (define-public emacs-fountain-mode
   (package
     (name "emacs-fountain-mode")
-    (version "3.5.1")
+    (version "3.5.3")
     (source
      (origin
        (method git-fetch)
@@ -4092,7 +4093,7 @@ files and directories.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0y7dd6qq4b95scj7fay4zzhkf0g0x89npylc4v1hz59b1yyylfqy"))))
+        (base32 "13k84dzjar67fa1ixicl6h8gxzblszd0ik8vi11bvipysgp3j3ws"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rnkn/fountain-mode")
     (synopsis "Major mode for screenwriting in Fountain markup")
@@ -10860,6 +10861,28 @@ Emacs completion function instead.")
 that uses the standard completion function completing-read.")
   (license license:gpl3+)))
 
+(define-public emacs-yaml
+  (package
+    (name "emacs-yaml")
+    (version "0.3.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zkry/yaml.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13fjxrr7iyfagbm21p5is5jw1zv56ns2mnac145v8lqli6mrr5gx"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/zkry/yaml.el")
+    (synopsis "YAML parser in Elisp")
+    (description
+     "@code{yaml.el} is a YAML parser written in Emacs Lisp without any
+external dependencies.  It provides an interface similar to the Emacs JSON
+parsing utility.")
+    (license license:gpl3+)))
+
 (define-public emacs-yaml-mode
   (package
     (name "emacs-yaml-mode")
@@ -12262,7 +12285,7 @@ programming and reproducible research.")
 (define-public emacs-org-contrib
   (package
     (name "emacs-org-contrib")
-    (version "0.2")
+    (version "0.3")
     (source
      (origin
        (method git-fetch)
@@ -12271,9 +12294,9 @@ programming and reproducible research.")
              (commit (string-append "release_" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0dn6arrmm0rrm2vi94fj5fjb030ggxf8cvpmi68wr0fh8xm5l1sh"))
+        (base32 "17aca4mc3gbdh6nhlcaa5ymh1yy76nwysrvy9sfcqkzvd5lgagzc"))
        ;; XXX: ob-sclang.el is packaged separately to avoid the dependency on
-       ;; SuperCollider and qtwebengine.  This will be unnecessary in 0.3+
+       ;; SuperCollider and qtwebengine.  This will be unnecessary in 0.4+
        ;; release as the file is going to be removed from the repository.
        (modules '((guix build utils)))
        (snippet '(begin (delete-file "lisp/ob-sclang.el")))))
@@ -12285,7 +12308,7 @@ programming and reproducible research.")
            (lambda _
              (chdir "lisp"))))))
     (propagated-inputs
-     `(("arduino-mode" ,emacs-arduino-mode) ;XXX: remove after 0.3+ release.
+     `(("arduino-mode" ,emacs-arduino-mode) ;XXX: remove after 0.4+ release.
        ("cider" ,emacs-cider)
        ("org" ,emacs-org)))
     (home-page "https://git.sr.ht/~bzg/org-contrib")
@@ -14610,7 +14633,7 @@ a @url{http://json.org/, JSON} file.")
 (define-public emacs-json-mode
   (package
     (name "emacs-json-mode")
-    (version "1.7.0")
+    (version "1.8.0")
     (source
      (origin
        (method git-fetch)
@@ -14619,7 +14642,7 @@ a @url{http://json.org/, JSON} file.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
+        (base32 "0r0k56q58kb133l9x9nbisz9p2kbphfgw1l4g2xp0pjqsc9wvq8z"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-json-reformat" ,emacs-json-reformat)
@@ -18048,7 +18071,7 @@ navigate and display hierarchy structures.")
 (define-public emacs-datetime
   (package
     (name "emacs-datetime")
-    (version "0.7")
+    (version "0.7.1")
     (source
      (origin
        (method git-fetch)
@@ -18057,7 +18080,7 @@ navigate and display hierarchy structures.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"))))
+        (base32 "108zfj5hz9irgksgg48xdvvaa635m6nzclx7xaymylfcvlycskpl"))))
     (build-system emacs-build-system)
     (arguments
      `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
@@ -18070,12 +18093,12 @@ timestamps and date-time format strings library for Emacs.")
     (license license:gpl3+)))
 
 (define-public emacs-org-mind-map
-  (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
-        (revision "1"))
+  ;; XXX: Upstream does not provide any tag.  The commit below corresponds to
+  ;; an exact version bump from the main file.
+  (let ((commit "477701b15cb0c8ed7f021ca76a4cb1a7d9ad6aa5"))
     (package
       (name "emacs-org-mind-map")
-      (version (string-append "0.0.1" "-" revision "."
-                              (string-take commit 7)))
+      (version "0.4")
       (source
        (origin
          (method git-fetch)
@@ -18084,8 +18107,7 @@ timestamps and date-time format strings library for Emacs.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
+          (base32 "08sj43py6aid4vpqgsm0v5n94mcmcil0047qjk033492glz6q55c"))))
       (propagated-inputs
        `(("emacs-dash" ,emacs-dash)))
       (build-system emacs-build-system)
@@ -18116,12 +18138,12 @@ timestamps and date-time format strings library for Emacs.")
     (license license:gpl3+)))
 
 (define-public emacs-itail
-  (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
-        (revision "1"))
+  ;; XXX: Upstream provides no tags.  The commit below corresponds to an exact
+  ;; version bump from main file.
+  (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888"))
     (package
       (name "emacs-itail")
-      (version (string-append "0.0.1" "-" revision "."
-                              (string-take commit 7)))
+      (version "0.0.8")
       (source
        (origin
          (method git-fetch)
@@ -18130,15 +18152,13 @@ timestamps and date-time format strings library for Emacs.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32
-           "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
+          (base32 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/re5et/itail")
       (synopsis "Interactive @code{tail} Emacs mode")
-      (description "@code{itail} provides interactive @code{tail} mode
-that allows you to filter the tail with unix pipes and highlight the
-contents of the tailed file.  Works locally or on remote files using
-tramp.")
+      (description "@code{itail} provides interactive @code{tail} mode that
+allows you to filter the tail with Unix pipes and highlight the contents of
+the tailed file.  It works locally or on remote files using Tramp.")
       (license license:gpl3+))))
 
 (define-public emacs-loop
@@ -20957,7 +20977,7 @@ See @code{helm-exwm-switch-browser} for an example.")
 (define-public emacs-helm-ls-git
   (package
     (name "emacs-helm-ls-git")
-    (version "1.9.2")
+    (version "1.9.3")
     (source
      (origin
        (method git-fetch)
@@ -20966,7 +20986,7 @@ See @code{helm-exwm-switch-browser} for an example.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07jgkc8csnc2hcg4csy07zy3wjbm4fbk4lqiy82rdlxp1vad25vi"))))
+        (base32 "1bqk0z6zd3aza7ibb8h0ghya5kid4m6z01gs7jf4sr6p49rzp7hd"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-helm" ,emacs-helm)))
     (home-page "https://github.com/emacs-helm/helm-ls-git")
@@ -21668,23 +21688,20 @@ docstring of the thing at point.")
 (define-public emacs-rust-mode
   (package
     (name "emacs-rust-mode")
-    (version "0.5.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/rust-lang/rust-mode")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rust-lang/rust-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08gz7wq1las3bqqs8qhmhmncax4j6kjnyxpfzslby3b1dkclc7ig"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "sh" "run_rust_emacs_tests.sh"))))))
+     `(#:tests? #false                  ;FIXME: phase fail with status 127
+       #:test-command '("make test")))
     (home-page "https://github.com/rust-lang/rust-mode")
     (synopsis "Major Emacs mode for editing Rust source code")
     (description "This package provides a major Emacs mode for editing Rust
@@ -23797,7 +23814,7 @@ processes for Emacs")
 (define-public emacs-treemacs
   (package
     (name "emacs-treemacs")
-    (version "2.9.2")
+    (version "2.9.3")
     (source
      (origin
        (method git-fetch)
@@ -23806,7 +23823,7 @@ processes for Emacs")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14f40q3zi79j9ss2m5i0s1kv16b3a9kqy2hn5vk4ig9w9dkg8jk5"))))
+        (base32 "0ik7wkv6w5vga29pmj8zzn3lq9a2ww26gkl380hmaak809in6k65"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ace-window" ,emacs-ace-window)
@@ -24186,7 +24203,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
 (define-public emacs-forge
   (package
      (name "emacs-forge")
-     (version "0.2.1")
+     (version "0.3.0")
      (source
       (origin
         (method git-fetch)
@@ -24195,8 +24212,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
               (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32
-          "0j28vc0q1h36pk0y2nidnlsc2y7n0vpfrd8civiv1zp8z0jwfyc9"))))
+         (base32 "15zm5azgl8gyd91i40a00ih4s2iwg1r8007n2gcfnmi6m4b7s0ak"))))
      (build-system emacs-build-system)
      (native-inputs
       `(("texinfo" ,texinfo)))
@@ -24208,7 +24224,8 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
         ("emacs-let-alist" ,emacs-let-alist)
         ("emacs-magit" ,emacs-magit)
         ("emacs-markdown-mode" ,emacs-markdown-mode)
-        ("emacs-transient" ,emacs-transient)))
+        ("emacs-transient" ,emacs-transient)
+        ("emacs-yaml" ,emacs-yaml)))
      (arguments
       `(#:tests? #f                     ;no tests
         #:phases
@@ -27407,7 +27424,7 @@ data, including buffers, window configuration, variables, and more.")
 (define-public emacs-parseedn
   (package
     (name "emacs-parseedn")
-    (version "1.0.4")
+    (version "1.0.6")
     (source
      (origin
        (method git-fetch)
@@ -27416,7 +27433,7 @@ data, including buffers, window configuration, variables, and more.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1cz2bgaddlrcqzra8q50yh90rdl0kpyf5js2vxccdsq6ngr8bnmv"))))
+        (base32 "1xp2d42yvqkimb7a15bv89bj0124lljw9cb36g49m13d7ny4fafn"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-a" ,emacs-a)
@@ -27431,7 +27448,7 @@ It uses parseclj's shift-reduce parser internally.")
 (define-public emacs-parseclj
   (package
     (name "emacs-parseclj")
-    (version "1.0.4")
+    (version "1.0.6")
     (source
      (origin
        (method git-fetch)
@@ -27440,7 +27457,7 @@ It uses parseclj's shift-reduce parser internally.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15aar5fsci2y8hy045ypdrig4z4kqrd8318im3yzyyf40y1xrz1d"))))
+        (base32 "0n0m3xc2dawgdhb68zznpsbzbbvf9fwgf9v8pzzwa2jncgi1yhh0"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-a" ,emacs-a)))
     (home-page "https://cider.mx")
@@ -27632,29 +27649,26 @@ Wordnet.")
       (license license:gpl3+))))
 
 (define-public emacs-helm-xref
-  (let ((commit "23f1174cfca7667d95828dcd388c655a4a9c877d")
-        (revision "1"))
-    (package
-      (name "emacs-helm-xref")
-      (version (git-version "0.5" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/brotzeit/helm-xref")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0v0lkabpi1n4hgnp28jk19f7b78yk93ssm0gr0fr25yqx5zskdnk"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
-      (home-page "https://github.com/brotzeit/helm-xref")
-      (synopsis "Helm interface for @code{xref}")
-      (description "This package provides a Helm interface for selecting
+  (package
+    (name "emacs-helm-xref")
+    (version "1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brotzeit/helm-xref")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0v0wm1x11r1h9p139c5rl0r4s5q6092bmwrsnr2140ddbq34mnvy"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)))
+    (home-page "https://github.com/brotzeit/helm-xref")
+    (synopsis "Helm interface for @code{xref}")
+    (description "This package provides a Helm interface for selecting
 @code{xref} results.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-metal-mercury-mode
   (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
@@ -28357,6 +28371,13 @@ snippets for Emacs.")
                            (rename-file f (basename f)))
                          el-files))
              #t))
+         (add-after 'move-source-files 'patch-exec-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (make-file-writable "org-roam-graph.el")
+             (emacs-substitute-variables "org-roam-graph.el"
+               ("org-roam-graph-executable"
+                (string-append (assoc-ref inputs "graphviz")
+                               "/bin/dot")))))
          (add-after 'install 'install-image
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -28369,6 +28390,8 @@ snippets for Emacs.")
                  (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
                  (install-file "org-roam.info"
                                (string-append out "/share/info")))))))))
+       (inputs
+        `(("graphviz" ,graphviz)))
        (native-inputs
         `(("texinfo" ,texinfo)))
        (propagated-inputs
@@ -28708,7 +28731,7 @@ and Emacs lisp commands.")
 (define-public emacs-extmap
   (package
     (name "emacs-extmap")
-    (version "1.1.1")
+    (version "1.2")
     (source
      (origin
        (method git-fetch)
@@ -28717,8 +28740,7 @@ and Emacs lisp commands.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
+        (base32 "0dl630jl46jz5slpv28l8b745051ghp0g296x5180vl5v88v3hsl"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/doublep/extmap")
     (synopsis "Externally-stored constant mapping for Emacs Lisp")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 420a2c2696..3489b8eddb 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1434,7 +1434,7 @@ as RetroArch.")
 (define-public retroarch
   (package
     (name "retroarch")
-    (version "1.9.4")
+    (version "1.9.11")
     (source
      (origin
        (method git-fetch)
@@ -1443,7 +1443,7 @@ as RetroArch.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1wky28y52nsjmannks3y1hbjgw0dvqh85gxrllr98f9y7kvk1cvf"))
+        (base32 "0hd77kw1f655s40qcz1righdhd9czqyy40rf7gigdag1bkchdx6z"))
        (patches
         (search-patches "retroarch-LIBRETRO_DIRECTORY.patch"))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 2a6fd6e576..2304482b33 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1531,11 +1531,15 @@ Dropbox API v2.")
     (version "1.0.51")
     (source
       (origin
-        (method url-fetch)
-        (uri (pypi-uri "dbxfs" version))
+        ;; Release tarball contains files not in git repository.
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://thelig.ht/code/dbxfs")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
         (sha256
          (base32
-          "1zz82d0mnql55397x4jx7z5rn857rf9zhjv895j93wpxdq10xwvk"))
+          "0bidb1gg5lqa1561f20qnj7gy323q65qwzfrb8h8gs6dsl3g6yfg"))
         (patches (search-patches "dbxfs-remove-sentry-sdk.patch"))))
     (build-system python-build-system)
     (arguments
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 03f9904341..09b6646787 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2021 ZmnSCPxj jxPCSnmZ <ZmnSCPxj@protonmail.com>
 ;;; Copyright © 2021 François J <francois-oss@avalenn.eu>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1763,3 +1764,29 @@ Interface (UI) for the hledger accounting system.  It can be used as a
 local, single-user UI, or as a multi-user UI for viewing, adding, and
 editing on the Web.")
     (license license:gpl3)))
+
+(define-public ta-lib
+  (package
+    (name "ta-lib")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/ta-lib/ta-lib/"
+                           version "/ta-lib-" version "-src.tar.gz"))
+       (sha256
+        (base32 "0lf69nna0aahwpgd9m9yjzbv2fbfn081djfznssa84f0n7y1xx4z"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(;; Parallel build fails with:
+       ;; mv -f .deps/gen_code-gen_code.Tpo .deps/gen_code-gen_code.Po
+       ;; mv: cannot stat '.deps/gen_code-gen_code.Tpo': No such file or directory
+       ;; Makefile:254: recipe for target 'gen_code-gen_code.o' failed
+       #:parallel-build? #f
+       #:configure-flags '("--disable-static")))
+    (home-page "https://ta-lib.org")
+    (synopsis "Technical analysis library")
+    (description
+     "TA-Lib is a library providing common functions for the technical
+analysis of financial market data.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 5cf2393177..dc7add8667 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -197,21 +197,45 @@ includes lining and old-style numerals, tabular and proportional.  Greek,
 Cyrillic, Canadian Syllabics and most Latin based languages are supported.")
     (license license:cc0)))
 
-(define-public font-cantarell
+(define-public font-abattis-cantarell
   (package
     (name "font-abattis-cantarell")
-    (version "0.301")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/cantarell-fonts/"
-                                  (version-major+minor version)
-                                  "/cantarell-fonts-" version ".tar.xz"))
-              (sha256
-               (base32
-                "10sycxscs9kzl451mhygyj2qj8qlny8pamskb86np7izq05dnd9x"))))
-    (build-system meson-build-system)
+    (version "0.303")
+    (source
+     (origin
+       (method url-fetch/zipbomb)
+       (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/"
+                           "jobs/1515399/artifacts/download"))
+       (file-name (string-append name "-" version "-static"))
+       (sha256
+        (base32 "1dz551xrrhx6l40j57ksk2alllrihghg4947z1r88dpcq3snpn1s"))))
+    (build-system font-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-source
+           ;; The actual OTF fonts are prebuilt (building them requires at least
+           ;; the currently unpackaged psautohint and its numerous dependencies;
+           ;; TODO), but unpack the source so that COPYING is installed later.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "tar" "--strip-components=1" "-xvf"
+                     (string-append "build/meson-dist/cantarell-fonts-"
+                                    ,version ".tar.xz"))))
+         (add-after 'unpack 'unpack-variable-font
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((variable-font (assoc-ref inputs "variable-font")))
+               (copy-recursively (string-append variable-font "/prebuilt")
+                                 ".")))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)))   ; for msgfmt
+     `(("variable-font"
+        ,(origin
+           (method url-fetch/zipbomb)
+           (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/"
+                               "jobs/1515398/artifacts/download"))
+           (file-name (string-append name "-" version "-variable"))
+           (sha256
+            (base32 "0z93pbkxidsx3y98rsl2jm2qpvxv5pj0w870xhnsciglw6pc9a9i"))))
+       ("unzip" ,unzip)))
     (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
     (synopsis "Cantarell sans-serif typeface")
     (description "The Cantarell font family is a contemporary Humanist
@@ -313,15 +337,15 @@ The Lato 2.010 family supports more than 100 Latin-based languages, over
 (define-public font-liberation
   (package
     (name "font-liberation")
-    (version "2.1.4")
+    (version "2.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://github.com/liberationfonts/liberation-fonts/"
-             "files/6418984/liberation-fonts-ttf-" version ".tar.gz"))
+             "files/7261482/liberation-fonts-ttf-" version ".tar.gz"))
        (sha256
-        (base32 "1vx5q5bif9d1cn5pvm78203sf4may2mch72aa1hx1a8avl959y16"))))
+        (base32 "1l15iwk0x75621q67qlh9wv561c0gc7x0kh9l9rrz29qpxlwd4bi"))))
     (build-system font-build-system)
     (home-page "https://github.com/liberationfonts")
     (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New")
@@ -2242,16 +2266,16 @@ half of the twentieth century.")
 (define-public font-overpass
   (package
     (name "font-overpass")
-    (version "3.0.4")
+    (version "3.0.5")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/RedHatOfficial/Overpass")
-             (commit version)))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1pl7zpwlx0j2xv23ahnpmbb4a5d6ib2cjck5mxqzi3jjk25rk9kb"))))
+        (base32 "1vsp94h7v5sn29hajv2ng94gyx4pqb0xgvn3gf7jp2q80gdv8pkm"))))
     (build-system font-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 40cf9cc427..661ba41793 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -349,7 +349,7 @@ FOSS FPGA place and route tool.")
 (define-public gtkwave
   (package
     (name "gtkwave")
-    (version "3.3.110")
+    (version "3.3.111")
     (source
      (origin
        (method url-fetch)
@@ -359,7 +359,7 @@ FOSS FPGA place and route tool.")
                   (string-append "http://gtkwave.sourceforge.net/"
                                  "gtkwave-" version ".tar.gz")))
        (sha256
-        (base32 "1hslmg39j9rays0cyash8zvrrbfyc55jdpq7hwc47ksr7bayvip4"))))
+        (base32 "15n2gv2hd7h23cci95ij7yr71fkxppb209sfdsmmngh3fik09rpn"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("gperf" ,gperf)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2931d60954..3909a6c5a9 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3063,15 +3063,16 @@ that beneath its ruins lay buried an ancient evil.")
 (define-public angband
   (package
     (name "angband")
-    (version "4.2.1")
+    (version "4.2.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://rephial.org/downloads/"
-                           (version-major+minor version)
-                           "/angband-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/angband/angband")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "03qdavkj2ik02mqjxmlm5bn17ba3yxb1rirp8ghnxy3bsk4kbmxc"))
+        (base32 "1psrdbf90mb6dhq0b9z18pz1csnshz1kvwg82dvwa99apqdw0la8"))
        (modules '((guix build utils)))
        (snippet
         ;; So, some of the sounds/graphics/tilesets are under different
@@ -3092,14 +3093,7 @@ that beneath its ruins lay buried an ancient evil.")
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
-       #:configure-flags (list (string-append "--bindir=" %output "/bin"))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'bootstrap
-           (lambda _
-             (substitute* "acinclude.m4"
-               (("ncursesw5-config") "ncursesw6-config"))
-             (invoke "sh" "autogen.sh"))))))
+       #:configure-flags (list (string-append "--bindir=" %output "/bin"))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d2ed60fcfc..2fc27cf22b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1830,19 +1830,27 @@ configuration files for the GNOME menu, as well as a simple menu editor.")
            (lambda _
              (substitute* "data/post-install.sh"
                (("gtk-update-icon-cache") "true"))
-             #t)))))
+             #t))
+         (add-after 'install 'wrap-program
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; Add duplicity to the search path
+             (wrap-program (string-append (assoc-ref outputs "out")
+                                          "/bin/deja-dup")
+               `("PATH" ":" prefix
+                 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+     `(("bash-minimal" ,bash-minimal)
        ("duplicity" ,duplicity)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
        ("json-glib" ,json-glib)
-       ("libnotify" ,libnotify)
        ("libgpg-error" ,libgpg-error)
+       ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
        ("libsoup" ,libsoup)
-       ("packagekit" ,packagekit)))
+       ("packagekit" ,packagekit)
+       ("python" ,python)
+       ("python-pygobject" ,python-pygobject)))
     (native-inputs
      `(("appstream-glib" ,appstream-glib)
        ("desktop-file-utils" ,desktop-file-utils)
@@ -9353,7 +9361,7 @@ world.")
        ;; Packages not part of GNOME proper but that are needed for a good
        ;; experience.  See <https://bugs.gnu.org/39646>.
        ;; XXX: Find out exactly which ones are needed and why.
-       ("font-cantarell"            ,font-cantarell)
+       ("font-abattis-cantarell"            ,font-abattis-cantarell)
        ("font-dejavu"               ,font-dejavu)
        ("at-spi2-core"              ,at-spi2-core)
        ("dbus"                      ,dbus)
@@ -10771,7 +10779,7 @@ configurable file renaming. ")
 (define-public workrave
   (package
     (name "workrave")
-    (version "1.10.43")
+    (version "1.10.48")
     (source
      (origin
        (method git-fetch)
@@ -10782,7 +10790,7 @@ configurable file renaming. ")
                                          version)))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1baa9qjzd4b3q1zy5vhvyrx0hyz17mk237373ca48647897kw4cr"))))
+        (base32 "0qcknxylk9mr0xzszsd1rkgh2zpnix20m998dfclkm9x8zh9pvyr"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      ;; The only tests are maintainer tests (in po/), which fail.
@@ -12244,7 +12252,7 @@ integrated profiler via Sysprof, debugging support, and more.")
 (define-public komikku
   (package
     (name "komikku")
-    (version "0.35.0")
+    (version "0.35.1")
     (source
      (origin
        (method git-fetch)
@@ -12254,7 +12262,7 @@ integrated profiler via Sysprof, debugging support, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "19axlz34zg4ijfc1z0y2xp6ayi5hvgvqdp4wprkp0wjrkfn7dkq7"))))
+         "0975c55lmiwaqm0wj0ci91a90syjan3i99akrp0hl9m7r73jnfh9"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 89f0b22b8a..d32815b7ce 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1316,11 +1316,11 @@ standards of the IceCat project.")
        (cpe-version . ,(first (string-split version #\-)))))))
 
 ;; Update this together with icecat!
-(define %icedove-build-id "20210810000000") ;must be of the form YYYYMMDDhhmmss
+(define %icedove-build-id "20211008000000") ;must be of the form YYYYMMDDhhmmss
 (define-public icedove
   (package
     (name "icedove")
-    (version "78.13.0")
+    (version "78.15.0")
     (source icecat-source)
     (properties
      `((cpe-name . "thunderbird_esr")))
@@ -1604,7 +1604,7 @@ standards of the IceCat project.")
         ;; in the Thunderbird release tarball.  We don't use the release
         ;; tarball because it duplicates the Icecat sources and only adds the
         ;; "comm" directory, which is provided by this repository.
-        ,(let ((changeset "adcfedf831da719455116546865f9a5faea848a6"))
+        ,(let ((changeset "2aa18076f0c3bc49d0e216798b3640891e68fada"))
            (origin
              (method hg-fetch)
              (uri (hg-reference
@@ -1613,7 +1613,7 @@ standards of the IceCat project.")
              (file-name (string-append "thunderbird-" version "-checkout"))
              (sha256
               (base32
-               "1dahf3y8bm3kh7amf341wnmh82a2r0ksqihc6dwiakh6x86a94cm")))))
+               "0ww1rgm8hpmji9fjhinqrwf07j2jikdq8j2x87h5s3naw5898fr3")))))
        ("autoconf" ,autoconf-2.13)
        ("cargo" ,rust "cargo")
        ("clang" ,clang)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 51bd9686ec..fac3186777 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -30,6 +30,7 @@
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
+;;; Copyright © 2021 Chadwain Holness <chadwainholness@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2690,7 +2691,7 @@ time.")
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://go.googlesource.com/x/mod")
+               (url "https://github.com/golang/mod")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -8827,3 +8828,25 @@ line.  @code{csvdiff} supports
 JSON for post-processing
 @end itemize")
     (license license:expat)))
+
+(define-public go-gopkg-in-djherbis-times-v1
+  (package
+    (name "go-gopkg-in-djherbis-times-v1")
+    (version "1.5.0")
+    (home-page "https://gopkg.in/djherbis/times.v1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1xvl3rgjif5yf62p16yk05kxrsmzhz1kkqisvw4k02svzq10qbfy"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "gopkg.in/djherbis/times.v1"))
+    (synopsis "Go library for getting file times")
+    (description
+     "Provides a platform-independent way to get atime, mtime, ctime and btime for files.")
+    (license license:expat)))
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 4c5d43eda5..4b953921bf 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -379,7 +379,7 @@ applications.")
                   (add-after 'unpack 'disable-cantarell-tests
                     (lambda _
                       (substitute* "tests/meson.build"
-                        ;; XXX FIXME: These tests require "font-cantarell", but
+                        ;; XXX FIXME: These tests require "font-abattis-cantarell", but
                         ;; adding it here would introduce a circular dependency.
                         (("\\[ 'test-layout'.*") "")
                         (("\\[ 'test-itemize'.*") "")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 93d899c5af..6ac1b7c5a2 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -4480,45 +4480,6 @@ Discovery (DNS-SD).")
       (home-page "https://www.nongnu.org/guile-avahi/")
       (license license:lgpl3+))))
 
-(define-public guile-mkdir-p
-  (package
-    (name "guile-mkdir-p")
-    (version "1.0.1")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://code.divoplade.fr/mkdir-p.git")
-             (commit (string-append "v" version))))
-       (sha256
-        (base32 "01k20rjcv6p0spmw8ls776aar6bfw0jxw46d2n12w0cb2p79xjv8"))
-       (file-name (git-file-name name version))
-       (snippet
-        `(begin
-           (with-output-to-file ".tarball-version"
-             (lambda _ (format #t "~a~%" ,version)))
-           #t))))
-    (build-system gnu-build-system)
-    (arguments `())
-    (native-inputs
-     `(("guile" ,guile-3.0)
-       ("texinfo" ,texinfo)
-       ("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)))
-    (inputs `(("guile" ,guile-3.0)))
-    (synopsis "Implementation of a recursive @code{mkdir} for Guile")
-    (description
-     "This package provides within the @code{(mkdir-p)} module the
-@code{mkdir-p} function that tries to create the chain of directories
-recursively.  It also provides new versions of @code{open-output-file},
-@code{call-with-output-file} and @code{with-output-to-file} to create the
-directory of its argument if it does not exist.")
-    (home-page "https://mkdir-p.divoplade.fr")
-    (license license:asl2.0)))
-
 (define-public guile-jwt
   (package
     (name "guile-jwt")
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index d000ab8ce6..e64055c4a5 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -73,7 +73,7 @@
 (define-public hwinfo
   (package
     (name "hwinfo")
-    (version "21.76")
+    (version "21.77")
     (home-page "https://github.com/openSUSE/hwinfo")
     (source
      (origin
@@ -84,7 +84,7 @@
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1910wzpdyp1ma1z2v0dripaljgrpl7vjq0f6b7qq9y220899hihb"))
+        (base32 "04xfgixfl9m4hy87xm6drn46x3ybr9hsksar0d6f77hb4l6hprvv"))
        (modules
         '((guix build utils)))
        (snippet
@@ -99,8 +99,7 @@
            ;; Create version file.
            (call-with-output-file "VERSION"
              (lambda (port)
-               (format port ,version)))
-           #t))))
+               (format port ,version)))))))
     (build-system gnu-build-system)
     (outputs '("out" "dev" "doc"))
     (arguments
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 71e75a4afd..8498fe3705 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15853,7 +15853,7 @@ provided.")
     (description
      "@code{ghc-citeproc} parses @acronym{Citation Style Language, CSL} style files
 and uses them to generate a list of formatted citations and bibliography
-entries.  For more information about CSL, see @urefhttps://citationstyles.org/}.")
+entries.  For more information about CSL, see @uref{https://citationstyles.org/}.")
     (license license:bsd-2)))
 
 (define-public ghc-commonmark
@@ -16578,12 +16578,12 @@ using the @code{ghc-postgresql-simple} package.")
      "The @uref{https://yaml.org/spec/1.2/spec.html, YAML 1.2} format provides
 a much richer data-model and feature-set than the
 @uref{https://tools.ietf.org/html/rfc7159, @acronym{JavaScript Object
-Notation, JSON} format.  However, sometimes it's desirable to ignore the extra
+Notation, JSON}} format.  However, sometimes it's desirable to ignore the extra
 capabilities and treat YAML as if it was merely a more convenient markup
 format for humans to write JSON data.  To this end this module provides a
 compatibility layer atop @code{ghc-hsyaml} ,which allows decoding YAML
 documents in the more limited JSON data-model while also providing convenience
-by reusing @code{ghc-aeson}'s @code{FromJSON instances for decoding the YAML
+by reusing @code{ghc-aeson}'s @code{FromJSON} instances for decoding the YAML
 data into native Haskell data types.")
     (license license:gpl2+)))
 
@@ -16618,7 +16618,7 @@ data into native Haskell data types.")
 are alternative file locking packages:
 
 @itemize
-@item @code{GHC.IO.Handle.Lock} in @codebase >= 4.10} is good enough for most
+@item @code{GHC.IO.Handle.Lock} in @code{base >= 4.10} is good enough for most
 use cases.  However, uses only @code{Handle}s so these locks cannot be used
 for intra-process locking.
 
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index bcb3232eb6..669db96602 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -351,7 +351,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-5.14-version "5.14.11")
+(define-public linux-libre-5.14-version "5.14.12")
 (define-public linux-libre-5.14-gnu-revision "gnu")
 (define deblob-scripts-5.14
   (linux-libre-deblob-scripts
@@ -361,7 +361,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7")))
 (define-public linux-libre-5.14-pristine-source
   (let ((version linux-libre-5.14-version)
-        (hash (base32 "0capilz3wx29pw7n2m5cn229vy9psrccmdspp27znhjkvwj0m0wk")))
+        (hash (base32 "0dswxf1qk70lms5lph15i7nz3ybwiia58v8zzrmi71ajviwjc9wd")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.14)))
@@ -369,7 +369,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-5.10-version "5.10.72")
+(define-public linux-libre-5.10-version "5.10.73")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
@@ -379,12 +379,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "024rz0bp3n3r5nkwbib7byx10d72c2fh5cw9iv00diyzgnp819g7")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "0z2cp8gqnbv7iz8kb5ydfmk019m0gds8wwvwc6kccsk4wypkbmml")))
+        (hash (base32 "0xhf0g5pra27hnavpy0y3mn05m5hqn5rd3d6fx0a3vr35c1jicpd")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.152")
+(define-public linux-libre-5.4-version "5.4.153")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
@@ -394,12 +394,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "1may19d47d06mplpk29dpjsq31sxk8wwbwb2jspj3vay9h9wfi40")))
+        (hash (base32 "0jaz57sd51xqc7w8k3f43bfc5mdsh1413mdngqqsgr8isv4hg7vd")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.210")
+(define-public linux-libre-4.19-version "4.19.211")
 (define-public linux-libre-4.19-gnu-revision "gnu1")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
@@ -409,7 +409,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1a0k9i8gnzkyvfr80f8xw2fnxfwddhz1pzicz9fh0y3jzzkzk45p")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "0cv126j4sghwgzjm9p5l1brcnxkbgggja2ai37gl8m2s99cj59wv")))
+        (hash (base32 "1m3y5gsf5s8bb4jxkri20dlxi8aiqabzaijj2h1svz4r19ca8j7v")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
@@ -2693,7 +2693,7 @@ Both commands are targeted at system administrators.")
 (define-public jitterentropy-rngd
   (package
     (name "jitterentropy-rngd")
-    (version "1.2.0")
+    (version "1.2.5")
     (source
      (origin
        (method git-fetch)
@@ -2702,7 +2702,7 @@ Both commands are targeted at system administrators.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fb8zfwhwkl1d8n4cdn7rdv5rwd75qgc00d36pmkl7wgnj3c9xda"))))
+        (base32 "05h9a60s9x3jav33lh50ac1jw8wvbljw2ndrk3k7gs2nlz0kkl14"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no test suite
@@ -7969,90 +7969,109 @@ the superuser to make device nodes.")
     (license license:gpl2)))
 
 (define-public fakeroot
-  ;; glibc-2.33 compatibility was added since the last release.
-  (let ((commit "24d6b0857396cad87b2cabd32fb8af9ef4799915")
-        (revision "1"))
-    (package
-      (name "fakeroot")
-      (version (git-version "1.25.3" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://salsa.debian.org/clint/fakeroot.git")
-                       (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0rg9m30k6v930cmj16qwk1k2vn1l2irxj7r3pp3k1i1sdhfkm3df"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (replace 'bootstrap
-             (lambda _
-               ;; The "preroll" script takes care of Autoconf and also
-               ;; prepares the translated manuals.
-               (invoke "sh" "./preroll")))
-          (add-after 'configure 'patch-Makefile
-            (lambda _
-              ;; Note: The root of the problem is already in "Makefile.am".
-              (substitute* "Makefile"
+  (package
+    (name "fakeroot")
+    (version "1.26")
+    (source
+     (origin
+       ;; There are no tags in the repository, so take this snapshot.
+       (method url-fetch)
+       (uri (string-append "https://deb.debian.org/debian/pool/main/f/"
+                           "fakeroot/fakeroot_" version ".orig.tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sg8inv1zzp4h9ncbbmxip3svd11sd86j22cvxrjwnf5zn7mf2j8"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)))
+       (snippet
+        `(begin
+           ;; Delete pregenerated man page translations, but not the originals.
+           (with-directory-excursion "doc"
+             (for-each (lambda (language)
+                         (for-each delete-file
+                                   (find-files language "\\.[0-9]$")))
+                       (scandir "."
+                                (lambda (file)
+                                  (and (not (string-prefix? "." file))
+                                       (eq? 'directory
+                                            (stat:type (lstat file))))))))))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-Makefile.am
+           (lambda _
+             (substitute* "Makefile.am"
                (("/bin/sh") (which "sh")))))
-          (add-after 'unpack 'patch-script
-            (lambda*  (#:key inputs #:allow-other-keys)
-              (substitute* "scripts/fakeroot.in"
+         (add-after 'unpack 'patch-script
+           (lambda*  (#:key inputs #:allow-other-keys)
+             (substitute* "scripts/fakeroot.in"
                (("getopt")
-                (search-input-file inputs "/bin/getopt"))
+                (string-append (assoc-ref inputs "util-linux")
+                               "/bin/getopt"))
                (("sed")
-                (search-input-file inputs "/bin/sed"))
-               (("cut")
-                (search-input-file inputs "/bin/cut")) )))
-          (add-before 'configure 'setenv
-            (lambda _
-              (setenv "LIBS" "-lacl")))
-          (add-before 'check 'prepare-check
-            (lambda _
-              (setenv "SHELL" (which "bash"))
-              (setenv "VERBOSE" "1")
-              (substitute* "test/t.touchinstall"
+                (string-append (assoc-ref inputs "sed")
+                               "/bin/sed"))
+               (("cat|cut" command)
+                (string-append (assoc-ref inputs "coreutils")
+                               "/bin/" command)) )))
+         (replace 'bootstrap
+           (lambda _
+             ;; The "preroll" script takes care of Autoconf and also
+             ;; prepares the translated manuals.
+             (invoke "sh" "./preroll")))
+         (add-before 'configure 'setenv
+           (lambda _
+             (setenv "LIBS" "-lacl")))
+         (add-before 'check 'prepare-check
+           (lambda _
+             (setenv "SHELL" (which "bash"))
+             (setenv "VERBOSE" "1")
+             (substitute* "test/t.touchinstall"
                ;; We don't have the name of the root user, so use ID=0.
                (("grep root") "grep \"\\<0\\>\""))
-              (substitute* "test/tartest"
+             (substitute* "test/tartest"
                ;; We don't have the name of the root group, so use ID=0.
                (("ROOTGROUP=root") "ROOTGROUP=0")
                ;; We don't have the name of the daemon user, so use IDs.
                (("daemon:sys") "1:3")
                (("daemon:") "1:"))
-              ;; We don't have an /etc/passwd entry for "root" - use numeric IDs.
-              (substitute* "test/compare-tar"
+             ;; We don't have an /etc/passwd entry for "root" - use numeric IDs.
+             (substitute* "test/compare-tar"
                (("tar -tvf") "tar --numeric-owner -tvf")))))))
-      (native-inputs
-       `(;; For bootstrapping the package.
-         ("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("gettext" ,gettext-minimal)
-         ("po4a" ,po4a)
-
-         ;; For tests.
-         ("sharutils" ,sharutils)
-         ("xz" ,xz)))
-      (inputs
-       `(("acl" ,acl)
-         ("libcap" ,libcap)
-         ("util-linux" ,util-linux)
-         ("sed" ,sed)
-         ("coreutils" ,coreutils)))
-      (synopsis "Provides a fake root environment")
-      (description "@command{fakeroot} runs a command in an environment where
-it appears to have root privileges for file manipulation. This is useful
-for allowing users to create archives (tar, ar, .deb etc.) with files in
-them with root permissions/ownership. Without fakeroot one would have to
-have root privileges to create the constituent files of the archives with
-the correct permissions and ownership, and then pack them up, or one would
-have to construct the archives directly, without using the archiver.")
-      (home-page "http://freshmeat.sourceforge.net/projects/fakeroot")
-      (license license:gpl3+))))
+    (native-inputs
+     `(;; For bootstrapping the package.
+       ("autoconf" ,autoconf-2.71)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("gettext" ,gettext-minimal)
+       ("po4a" ,po4a)
+
+       ;; For tests.
+       ("sharutils" ,sharutils)
+       ("xz" ,xz)))
+    (inputs
+     `(("acl" ,acl)
+       ("libcap" ,libcap)
+       ("util-linux" ,util-linux)
+       ("sed" ,sed)
+       ("coreutils" ,coreutils)))
+    (synopsis "Run commands in an environment with fake root privileges")
+    (description
+     "@command{fakeroot} runs a command in an environment where it appears to
+have root privileges for file manipulation.  This is useful for allowing users
+to create archives (@file{tar}, @file{ar}, @file{deb}, etc.)  with files in
+them with root permissions and/or ownership.
+
+Without fakeroot, one would have to have root privileges to create the
+constituent files of the archives with the correct permissions and ownership,
+and then pack them up, or one would have to construct the archives directly,
+without using the archiver.")
+    (home-page "http://freshmeat.sourceforge.net/projects/fakeroot")
+    (license license:gpl3+)))
 
 (define-public fakechroot
   ;; XXX: Build from the change submitted at
@@ -8526,21 +8545,22 @@ receiving.  It is dedicated to the PL011 UART of the Raspberry Pi.")
 (define-public ipset
   (package
     (name "ipset")
-    (version "7.11")
+    (version "7.15")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://ipset.netfilter.org/"
                            "ipset-" version ".tar.bz2"))
        (sha256
-        (base32 "0zdzp9fhpp6hmirzxy7w27fb9xx9lxd2ykxbn8by7ngi62nvll9i"))))
+        (base32 "0l8pcaym6057hq3a4zwnk53p5y6xg1m3d3c83wn18h5nmnm4am8a"))))
     (build-system gnu-build-system)
     (inputs
      `(("libmnl" ,libmnl)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
-     `(#:configure-flags '("--with-kmod=no")))
+     `(#:configure-flags '("--disable-static"
+                           "--with-kmod=no")))
     (home-page "https://ipset.netfilter.org/")
     (synopsis "Administration tool for IP sets")
     (description "IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel which
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 4b98718d1a..cee2bbe37b 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -2573,10 +2573,10 @@ This library is no longer supported by its author.")
   (sbcl-package->ecl-package sbcl-cl-colors))
 
 (define-public sbcl-cl-ansi-text
-  (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9"))
+  (let ((commit "8b129d83c7511b54cdd9d4123825a2d06349b25c"))
     (package
       (name "sbcl-cl-ansi-text")
-      (version (git-version "1.0.0" "1" commit))
+      (version (git-version "2.0.1" "1" commit))
       (source
        (origin
          (method git-fetch)
@@ -2585,12 +2585,12 @@ This library is no longer supported by its author.")
                (commit commit)))
          (sha256
           (base32
-           "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v"))
+           "0nk7ajqfa937w1iy3zy86jjbw8yffm05cqs4wxkgl97v6kmmya14"))
          (file-name (git-file-name "cl-ansi-text" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
-         ("cl-colors" ,sbcl-cl-colors)))
+         ("cl-colors2" ,sbcl-cl-colors2)))
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (synopsis "ANSI terminal color implementation for Common Lisp")
@@ -2610,10 +2610,11 @@ named color.")
   (sbcl-package->ecl-package sbcl-cl-ansi-text))
 
 (define-public sbcl-prove
-  (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0"))
+  (let ((commit "5d71f02795b89e36f34e8c7d50e69b67ec6ca2de")
+        (revision "2"))
     (package
       (name "sbcl-prove")
-      (version (git-version "1.0.0" "1" commit))
+      (version (git-version "1.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -2621,12 +2622,12 @@ named color.")
                (url "https://github.com/fukamachi/prove")
                (commit commit)))
          (sha256
-          (base32
-           "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc"))
+          (base32 "0ca6ha3zhmckq3ad9lxm6sbg4i0hg3m81xhan4dkxd3x9898jzpc"))
          (file-name (git-file-name "prove" version))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
+         ("cl-colors" ,sbcl-cl-colors)
          ("cl-ppcre" ,sbcl-cl-ppcre)
          ("cl-ansi-text" ,sbcl-cl-ansi-text)))
       (synopsis "Yet another unit testing framework for Common Lisp")
@@ -19058,3 +19059,175 @@ libyaml.")
 
 (define-public ecl-cl-yaml
   (sbcl-package->ecl-package sbcl-cl-yaml))
+
+(define-public sbcl-linedit
+  (let ((commit "0561c97dfca2f5854fcc66558a567a9875ddcb8f")
+        (revision "1"))
+    (package
+      (name "sbcl-linedit")
+      (version (git-version "0.17.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/linedit")
+               (commit commit)))
+         (file-name (git-file-name "cl-linedit" version))
+         (sha256
+          (base32 "0hhh7xn6q12rviayfihg1ym6x6csa0pdjgb88ykqbrz2rs3pgpz5"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("osicat" ,sbcl-osicat)
+         ("terminfo" ,sbcl-terminfo)))
+      (home-page "https://github.com/sharplispers/linedit")
+      (synopsis "Readline-style line-editor for Common Lisp")
+      (description
+       "Linedit is a readline-style library written in Common Lisp that
+provides customizable line-editing for Common Lisp programs.")
+      (license license:expat))))
+
+(define-public cl-linedit
+  (sbcl-package->cl-source-package sbcl-linedit))
+
+(define-public ecl-linedit
+  (sbcl-package->ecl-package sbcl-linedit))
+
+(define-public sbcl-diff
+  (let ((commit "9c84befa598d4e07c3d223242b5b3f83cd94f301")
+        (revision "1"))
+    (package
+      (name "sbcl-diff")
+      (version (git-version "0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/froydnj/diff")
+               (commit commit)))
+         (file-name (git-file-name "cl-diff" version))
+         (sha256
+          (base32 "1giafck8qfvb688kx5bn9g32rfc12jjywg8vdav36aqbd6lxf5z5"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-ppcre" ,sbcl-cl-ppcre)
+         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+      (home-page "https://github.com/froydnj/diff")
+      (synopsis "Common Lisp library for computing differences between files")
+      (description
+        "DIFF is a package for computing various forms of differences between
+blobs of data and then doing neat things with those differences.  Currently diff
+knows how to compute three common forms of differences: \"unified\" format
+diffs, \"context\" format diffs, and \"vdelta\" format binary diffs.")
+      (license license:bsd-3))))
+
+(define-public cl-diff
+  (sbcl-package->cl-source-package sbcl-diff))
+
+(define-public ecl-diff
+  (sbcl-package->ecl-package sbcl-diff))
+
+(define-public sbcl-montezuma
+  (let ((commit "ee2129eece7065760de4ebbaeffaadcb27644738")
+        (revision "1"))
+    (package
+      (name "sbcl-montezuma")
+      (version (git-version "0.1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/montezuma")
+               (commit commit)))
+         (file-name (git-file-name "cl-montezuma" version))
+         (sha256
+          (base32 "0svmvsbsirydk3c1spzfvj8qmkzcs9i69anpfvk1843i62wb7x2c"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           ;; The _darcs directory contains a second copy of
+           ;; montezuma-indexfiles.asd. Remove the directory to
+           ;; prevent build failure caused by .asd files that have
+           ;; the same filename.
+           (add-after 'unpack 'remove-darcs-directory
+             (lambda _
+               (delete-file-recursively
+                "contrib/montezuma-indexfiles/_darcs")))
+           ;; Tests fail with: :FORCE and :FORCE-NOT arguments not
+           ;; allowed in a nested call to ASDF/OPERATE:OPERATE unless
+           ;; identically to toplevel.
+           (add-after 'unpack 'fix-tests
+             (lambda _
+               (substitute* "montezuma.asd"
+                 ((":force t") "")))))))
+      (inputs
+       `(("babel" ,sbcl-babel)
+         ("cl-fad" ,sbcl-cl-fad)
+         ("cl-ppcre" ,sbcl-cl-ppcre)))
+      (native-inputs
+       `(("trivial-timeout" ,sbcl-trivial-timeout)))
+      (home-page "https://github.com/sharplispers/montezuma")
+      (synopsis "Full-text indexing and search for Common Lisp")
+      (description
+       "Montezuma is a text search engine library for Lisp based on the Ferret
+library for Ruby, which is itself based on the Lucene library for Java.")
+      (license (list license:expat       ; montezuma
+                     license:gpl3+)))))  ; contrib/montezuma-indexfiles
+
+(define-public cl-montezuma
+  (sbcl-package->cl-source-package sbcl-montezuma))
+
+(define-public ecl-montezuma
+  (let ((pkg (sbcl-package->ecl-package sbcl-montezuma)))
+    (package
+      (inherit pkg)
+      (arguments
+       (substitute-keyword-arguments (package-arguments pkg)
+         ;; Tests fail with "Pathname without a physical namestring" error
+         ;; on ECL.
+         ((#:tests? _ #f) #f))))))
+
+(define-public sbcl-cl-charms
+  (let ((commit "64aba59d89f85bc5c9402e445873965338a66a02")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-charms")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/HiTECNOLOGYs/cl-charms")
+               (commit commit)))
+         (file-name (git-file-name "cl-charms" version))
+         (sha256
+          (base32 "1jczaypa9dhxr34yyhsxb6lrdnircjx8am4iqkc3shfpjn32q323"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("ncurses" ,ncurses)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/low-level/curses-bindings.lisp"
+                 (("libncursesw.so")
+                  (string-append (assoc-ref inputs "ncurses")
+                                 "/lib/libncursesw.so"))))))))
+      (home-page "https://github.com/HiTECNOLOGYs/cl-charms")
+      (synopsis "Interface to libcurses in Common Lisp")
+      (description
+       "@code{cl-charms} is an interface to libcurses in Common Lisp.  It
+provides both a raw, low-level interface to libcurses via CFFI, and a more
+higher-level lispier interface.")
+      (license license:expat))))
+
+(define-public cl-charms
+  (sbcl-package->cl-source-package sbcl-cl-charms))
+
+(define-public ecl-cl-charms
+  (sbcl-package->ecl-package sbcl-cl-charms))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index ae110a608f..6a235736f9 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1174,7 +1175,7 @@ including a built-in database engine and a GUI system.")
 (define-public janet
   (package
     (name "janet")
-    (version "1.12.2")
+    (version "1.18.1")
     (source
      (origin
        (method git-fetch)
@@ -1183,20 +1184,18 @@ including a built-in database engine and a GUI system.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0if514zdmbjvvrsa9x5yfvg2b14sz53yaka12g3yhwkq8ls3qk0c"))))
+        (base32 "07k92ip4vmqpzbz32spkpy2rz7pxfsdyl77sy9fylqmc6vg32hr8"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list
-                     (string-append "DESTDIR=" (assoc-ref %outputs "out"))
-                     (string-append "PREFIX=")
-                     (string-append "CC=" (assoc-ref %build-inputs "gcc")
-                                    "/bin/gcc"))
+     `(#:make-flags
+       (list
+         (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+         (string-append "PREFIX=")
+         (string-append "CC=" ,(cc-for-target)))
+       #:test-target "test"
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'check
-           (lambda _
-             (invoke "make" "test"))))))
+         (delete 'configure))))
     (home-page "https://janet-lang.org/")
     (synopsis "Functional, imperative and embeddable programming language")
     (description
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 709c64d25b..23a8710b9b 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -604,7 +604,7 @@ operating systems.")
 (define-public neomutt
   (package
     (name "neomutt")
-    (version "20210205")
+    (version "20211015")
     (source
      (origin
        (method git-fetch)
@@ -613,7 +613,7 @@ operating systems.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15kr9nvb4j8lx5rl2yapv231rbp4sbn709vv82pfhx5717x3yf00"))))
+        (base32 "06rjx81ahrwcl1zhpdgqngr99l0cx1i4fwaaxd6rsn9zsj3ixdir"))))
     (build-system gnu-build-system)
     (inputs
      `(("cyrus-sasl" ,cyrus-sasl)
@@ -3704,7 +3704,7 @@ operators and scripters.")
 (define-public alpine
   (package
     (name "alpine")
-    (version "2.24.2")
+    (version "2.25")
     (source
      (origin
        (method git-fetch)
@@ -3717,13 +3717,14 @@ operators and scripters.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ibwss04j4qbhpd3jcw3d4xjf8jnmb9fi3sz58a99xw3awkfjabd"))
+        (base32 "0z6dp3cpz1dmbxw41ravsx1bxychafp0ij8gvj96mzz7rm9pdnq3"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove pre-built binaries scattered across the source repository.
-           (for-each delete-file (find-files "." "\\.(dll|exe)"))
-           #t))))
+           (for-each delete-file (find-files "." "\\.(dll|exe)"))))
+       (patches
+        (search-patches "alpine-fix-privacy-policy-crash.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -3749,14 +3750,12 @@ operators and scripters.")
            ;; ‘/etc/shadow exists in the build environment’.  It does not.
            (lambda _
              (substitute* "configure"
-               (("test -f /etc/shadow") "true"))
-             #t))
+               (("test -f /etc/shadow") "true"))))
          (add-after 'unpack 'make-reproducible
            (lambda _
              ;; This removes time-dependent code to make alpine reproducible.
              (substitute* "pico/blddate.c"
-               (("%02d-%s-%d") "1970-01-01"))
-             #t)))))
+               (("%02d-%s-%d") "1970-01-01")))))))
     (inputs
      `(("ncurses" ,ncurses)
        ("openssl" ,openssl)
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 2a5311e608..08fd3562b3 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1545,7 +1545,7 @@ used to bring up authentication dialogs.")
        ("dconf"                     ,dconf)
        ("engrampa"                  ,engrampa)
        ("eom"                       ,eom)
-       ("font-cantarell"            ,font-cantarell)
+       ("font-abattis-cantarell"            ,font-abattis-cantarell)
        ("glib-networking"           ,glib-networking)
        ("gnome-keyring"             ,gnome-keyring)
        ("gvfs"                      ,gvfs)
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm
index e6b0b99630..5300185b67 100644
--- a/gnu/packages/matrix.scm
+++ b/gnu/packages/matrix.scm
@@ -3,7 +3,6 @@
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
-;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,14 +22,18 @@
 (define-module (gnu packages matrix)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages monitoring)
+  #:use-module (gnu packages python-build)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system python)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages))
 
 (define-public python-matrix-client
@@ -87,13 +90,13 @@ an LDAP server.")
 (define-public synapse
   (package
     (name "synapse")
-    (version "1.44.0")
+    (version "1.29.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "matrix-synapse" version))
               (sha256
                (base32
-                "1lgi1a4ksz4z78yb84bi29x4y080bx1dadib2wznvmwsfif0azx0"))))
+                "0if2yhpz8psg0661401mvxznldbfhk2j9rhbs25jdaqm9jsv6907"))))
     (build-system python-build-system)
     ;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’.
     (propagated-inputs
@@ -150,3 +153,135 @@ Python/Twisted.  It is intended to showcase the concept of Matrix and let
 folks see the spec in the context of a codebase and let you run your own
 homeserver and generally help bootstrap the ecosystem.")
     (license license:asl2.0)))
+
+(define-public python-matrix-nio
+  (package
+    (name "python-matrix-nio")
+    (version "0.18.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "matrix-nio" version))
+       (sha256
+        (base32 "0cw4y6dx8n8hynxqlzzkj8p34nfbc2xryvmkr5yhmja31y4rks4k"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'install-tests
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (copy-recursively (string-append
+                                (assoc-ref inputs "tests") "/tests")
+                               "tests")
+             #t))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               ;; FIXME: two tests fail, for unknown reasons
+               (invoke "python" "-m" "pytest" "-vv" "tests" "-k"
+                       (string-append
+                        "not test_upload_binary_file_object "
+                        "and not test_connect_wrapper"))))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest-6)
+       ("python-hyperframe" ,python-hyperframe)
+       ("python-hypothesis" ,python-hypothesis-6.23)
+       ("python-hpack" ,python-hpack)
+       ("python-faker" ,python-faker)
+       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
+       ("python-aioresponses" ,python-aioresponses)
+       ("python-pytest-benchmark" ,python-pytest-benchmark)
+       ("python-toml" ,python-toml)
+       ("tests"
+        ;; The release on pypi comes without tests.  We can't build from this
+        ;; checkout, though, because installation requires an invocation of
+        ;; poetry.
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/poljar/matrix-nio.git")
+                 (commit version)))
+           (file-name (git-file-name name version))
+           (sha256
+            (base32
+             "152prkndk53pfxm4in4xak4hwzyaxlbp6wv2zbk2xpzgyy9bvn3s"))))))
+    (propagated-inputs
+     `(("python-aiofiles" ,python-aiofiles)
+       ("python-aiohttp" ,python-aiohttp)
+       ("python-aiohttp-socks" ,python-aiohttp-socks)
+       ("python-atomicwrites" ,python-atomicwrites-1.4)
+       ("python-cachetools" ,python-cachetools)
+       ("python-future" ,python-future)
+       ("python-h11" ,python-h11)
+       ("python-h2" ,python-h2)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-logbook" ,python-logbook)
+       ("python-olm" ,python-olm)
+       ("python-peewee" ,python-peewee)
+       ("python-pycryptodome" ,python-pycryptodome)
+       ("python-unpaddedbase64" ,python-unpaddedbase64)))
+    (home-page "https://github.com/poljar/matrix-nio")
+    (synopsis
+     "Python Matrix client library, designed according to sans I/O principles")
+    (description
+     "Matrix nio is a multilayered Matrix client library.  The underlying base
+layer doesn't do any network IO on its own, but on top of that is a full
+fledged batteries-included asyncio layer using aiohttp.")
+    (license license:isc)))
+
+(define-public pantalaimon
+  (package
+    (name "pantalaimon")
+    (version "0.10.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/matrix-org/pantalaimon")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "153d8083lj3qqirbv5q1d3igzd61a5kyzfk7xmv29sd3jbs8ysm9"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'downgrade-appdirs-requirement
+           (lambda _
+             (substitute* "setup.py"
+               ;; FIXME: Remove this once appdirs is updated.
+               ;; Upgrading python-appdirs requires rebuilting 3000+ packages,
+               ;; when 1.4.4 is a simple maintenance fix from 1.4.3.
+               (("appdirs >= 1.4.4") "appdirs >= 1.4.3"))))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-vv" "tests")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-faker" ,python-faker)
+       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
+       ("python-aioresponses" ,python-aioresponses)))
+    (propagated-inputs
+     `(("python-aiohttp" ,python-aiohttp)
+       ("python-appdirs" ,python-appdirs)
+       ("python-attrs" ,python-attrs)
+       ("python-cachetools" ,python-cachetools)
+       ("python-click" ,python-click)
+       ("python-janus" ,python-janus)
+       ("python-keyring" ,python-keyring)
+       ("python-logbook" ,python-logbook)
+       ("python-matrix-nio" ,python-matrix-nio)
+       ("python-peewee" ,python-peewee)
+       ("python-prompt-toolkit" ,python-prompt-toolkit)))
+    (home-page "https://github.com/matrix-org/pantalaimon")
+    (synopsis "Matrix proxy daemon that adds E2E encryption capabilities")
+    (description
+     "Pantalaimon is an end-to-end encryption aware Matrix reverse proxy
+daemon.  Pantalaimon acts as a good man in the middle that handles the
+encryption for you.  Messages are transparently encrypted and decrypted for
+clients inside of pantalaimon.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 1876c3813c..b5f39cc408 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1263,7 +1263,7 @@ Encryption to Gajim.")
 (define-public dino
   (package
     (name "dino")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
@@ -1271,7 +1271,7 @@ Encryption to Gajim.")
         (string-append "https://github.com/dino/dino/releases/download/v"
                        version "/dino-" version ".tar.gz"))
        (sha256
-        (base32 "13rk8b0sj35az32c0ii173g9ww231awmyb4jlk56jy38hpyp7x1g"))))
+        (base32 "0r5qn9k88d5rh8zzj9gs3bk3dsm795r0pgxs3kawyrsrqr8ny1ry"))))
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
     (arguments
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 28fa40b410..7959b42c3f 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -187,6 +187,27 @@ numeric identifier TOPIC-ID on the official Minetest forums."
   (string-append "https://forum.minetest.net/viewtopic.php?t="
                  (number->string topic-id)))
 
+(define-public minetest-moreores
+  (package
+    (name "minetest-moreores")
+    (version "2.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minetest-mods/moreores")
+             (commit (string-append "v" version))))
+       (sha256 (base32 "1chfqbc6bb27aacjc67j5l5wcdvmcsvk2rfmangipd7nwini3y34"))
+       (file-name (git-file-name name version))))
+    (build-system minetest-mod-build-system)
+    (home-page (minetest-topic 549))
+    (synopsis "Additional ore types, tools, swords, and rails for Minetest")
+    (description
+     "This Minetest mod adds new ore types to the game (mithril, silver) as well
+as swords and tools made of different materials.  It also adds copper rails.")
+    (license license:zlib)
+    (properties `((upstream-name . "Calinou/moreores")))))
+
 (define-public minetest-basic-materials
   (package
     (name "minetest-basic-materials")
@@ -202,6 +223,10 @@ numeric identifier TOPIC-ID on the official Minetest forums."
         (base32 "0v6l3lrjgshy4sccjhfhmfxc3gk0cdy73qb02i9wd2vw506v5asx"))
        (file-name (git-file-name name version))))
     (build-system minetest-mod-build-system)
+    (propagated-inputs
+     ;; basic_materials:silver_wire cannot be crafted without
+     ;; moreores:silver_ingot.
+     `(("minetest-moreores" ,minetest-moreores)))
     (home-page (minetest-topic 21000))
     (synopsis "Some \"basic\" materials and items for other Minetest mods to use")
     (description
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 3da4c2b323..4146044ec1 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -72,6 +72,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system scons)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system qt)
@@ -89,6 +90,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base) ;libbdf
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages benchmark)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
@@ -2166,6 +2168,112 @@ Editor.  It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
 users to select LV2 plugins and run them with jalv.")
     (license license:public-domain)))
 
+(define-public mixxx
+  (package
+    (name "mixxx")
+    (version "2.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/mixxxdj/mixxx")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (patches
+        (search-patches "mixxx-link-qtscriptbytearray-qtscript.patch"
+                        "mixxx-system-googletest-benchmark.patch"))
+       (sha256
+        (base32 "04781s4ajdlwgvf12v2mvh6ia5grhc5pn9d75b468qci3ilnmkg8"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Delete libraries that we already have or don't need.
+        ;; TODO: try to unbundle more (see lib/).
+        `(begin
+           (let ((third-parties '("apple" "benchmark" "googletest" "hidapi"
+                                  "libebur128")))
+             (with-directory-excursion "lib"
+               (map (lambda (third-party)
+                      (delete-file-recursively third-party))
+                    third-parties)))
+           #t))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Tests need a running X server.
+         (add-before 'check 'prepare-x-for-test
+           (lambda _
+             (system "Xvfb &")
+             (setenv "DISPLAY" ":0")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; This test fails.  I don't know why.
+               (invoke "ctest" "-E" "TagLibTest.WriteID3v2Tag"))))
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (faad2 (assoc-ref inputs "faad2")))
+               (wrap-program (string-append out "/bin/mixxx")
+                 `("LD_LIBRARY_PATH" ":" prefix
+                   ,(list (string-append faad2 "/lib"))))))))))
+    (native-inputs
+     `(("benchmark" ,benchmark)
+       ("googletest" ,googletest)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("bash" ,bash-minimal)
+       ("chromaprint" ,chromaprint)
+       ("faad2" ,faad2)
+       ("ffmpeg" ,ffmpeg)
+       ("fftw" ,fftw)
+       ("flac" ,flac)
+       ("glu" ,glu)
+       ("hidapi" ,hidapi)
+       ("jack" ,jack-1)
+       ("lame" ,lame)
+       ("libdjinterop" ,libdjinterop)
+       ("libebur128" ,libebur128)
+       ("libid3tag" ,libid3tag)
+       ("libkeyfinder" ,libkeyfinder)
+       ("libmad" ,libmad)
+       ("libmp4v2" ,libmp4v2)
+       ("libmodplug" ,libmodplug)
+       ("libsndfile" ,libsndfile)
+       ("libshout" ,libshout)
+       ;; XXX: Mixxx complains the libshout-idjc package suffers from bug
+       ;; lp1833225 and refuses to use it.  Use the bundle for now.
+       ;; ("libshout-idjc" ,libshout-idjc)
+       ("libusb" ,libusb)
+       ("libvorbis" ,libvorbis)
+       ("lilv" ,lilv)
+       ("mp3guessenc" ,mp3guessenc)
+       ("openssl" ,openssl)
+       ("opusfile" ,opusfile)
+       ("portaudio" ,portaudio)
+       ("portmidi" ,portmidi)
+       ("protobuf" ,protobuf)
+       ("qtbase" ,qtbase-5)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtkeychain" ,qtkeychain)
+       ("qtscript" ,qtscript)
+       ("qtsvg" ,qtsvg)
+       ("qtx11extras" ,qtx11extras)
+       ("rubberband" ,rubberband)
+       ("soundtouch" ,soundtouch)
+       ("sqlite" ,sqlite)
+       ("taglib" ,taglib)
+       ("upower" ,upower)
+       ("vamp" ,vamp)
+       ("wavpack" ,wavpack)))
+    (home-page "https://mixxx.org/")
+    (synopsis "DJ software to perform live mixes")
+    (description "Mixxx is a DJ software.  It integrates the tools DJs need to
+perform creative live mixes with digital music files.")
+    (license license:gpl2+)))
+
 (define-public synthv1
   (package
     (name "synthv1")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ba9137cb39..76d72a9a0b 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -649,14 +649,14 @@ systems with no further dependencies.")
 (define-public blueman
   (package
     (name "blueman")
-    (version "2.2.1")
+    (version "2.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/blueman-project/blueman/releases"
                            "/download/" version "/blueman-" version ".tar.xz"))
        (sha256
-        (base32 "0whs1bqnn1fgzrq7y2w1d06ldvfafq6h2xzmcfncbwmyb4i0mhgw"))))
+        (base32 "1xnhxhr2l4cf703j76wvzl4rf2k4xxgjjisz03y89x9ll6qmkv8r"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags (list "--enable-polkit"
@@ -701,8 +701,7 @@ systems with no further dependencies.")
                (with-directory-excursion "blueman/main"
                  (substitute* "PulseAudioUtils.py"
                    (("libpulse.so.0") pulse)
-                   (("libpulse-mainloop-glib.so.0") pulse-glib)))
-               #t)))
+                   (("libpulse-mainloop-glib.so.0") pulse-glib))))))
          ;; Fix running of blueman programs.
          (add-after 'glib-or-gtk-wrap 'wrap-blueman-progs
            (lambda* (#:key outputs #:allow-other-keys)
@@ -723,8 +722,7 @@ systems with no further dependencies.")
                       '("adapters" "applet" "manager"
                         "sendto" "services" "tray"))
                  (map (lambda (prog) (string-append libexec prog))
-                      '("mechanism" "rfcomm-watcher"))))
-               #t))))))
+                      '("mechanism" "rfcomm-watcher"))))))))))
     (native-inputs
      `(("cython" ,python-cython)
        ("glib:bin" ,glib "bin")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 3d8ebbf545..65cd7087b4 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -145,8 +145,8 @@
   ;; Note: the 'update-guix-package.scm' script expects this definition to
   ;; start precisely like this.
   (let ((version "1.3.0")
-        (commit "f743f2046be2c5a338ab871ae8666d8f6de7440b")
-        (revision 9))
+        (commit "c3c502896b1454b345ee9f17d20063853652a35a")
+        (revision 10))
     (package
       (name "guix")
 
@@ -162,7 +162,7 @@
                       (commit commit)))
                 (sha256
                  (base32
-                  "0sk8vhvivh3r4jws2gyq02wdvwz2qds53b0vc4k04dx8vwidmid9"))
+                  "037nlr5z8qmq2zp0slcg5lyhcdp7v6vxl1f36wkqrw9xzgq8k6kf"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -657,14 +657,14 @@ GTK icon cache for instance.")))
 (define-public nix
   (package
     (name "nix")
-    (version "2.3.13")
+    (version "2.3.16")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://releases.nixos.org/nix/nix-"
                                  version "/nix-" version ".tar.xz"))
              (sha256
               (base32
-               "0631qk2lgd76y6g2z45wy6lcpv647r2a08jd2dagzzpwniy68d3h"))))
+               "1g5aqavr6i3c1xln53w1pdh1kvlxrpnknb105m4jbd85kyv83rky"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc" "--enable-gc")
diff --git a/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch b/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch
new file mode 100644
index 0000000000..d514ac33a0
--- /dev/null
+++ b/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch
@@ -0,0 +1,39 @@
+X-Git-Url: https://repo.or.cz/alpine.git/blobdiff_plain/fb2217ac67706e4cbef69bea41041e2fb8b910e9..3ee981816abfb7d47ffc0ac522fff002b5749b72:/alpine/help.c
+
+diff --git a/alpine/help.c b/alpine/help.c
+index 4f1bf46..e9c7b34 100644
+--- a/alpine/help.c
++++ b/alpine/help.c
+@@ -36,6 +36,7 @@ static char rcsid[] = "$Id: help.c 1032 2008-04-11 00:30:04Z hubert@u.washington
+ #include "../pith/detoken.h"
+ #include "../pith/list.h"
+ #include "../pith/margin.h"
++#include "../pith/busy.h"
+ 
+ 
+ typedef struct _help_scroll {
+@@ -135,10 +136,12 @@ helper_internal(HelpType text, char *frag, char *title, int flags)
+     is_external = 0;
+ 
+     if(shown_text && *shown_text && !struncmp(*shown_text, "x-alpine-http:", 14)){
+-	int status;
++	int status, we_cancel = 0;
++
++	we_cancel = busy_cue(_("Retrieving help text"), NULL, 1);
+ 	HTTPSTREAM *stream = http_open(*shown_text + 14);
+ 	if(stream) help_text = http_get(stream, NULL);
+-	status = stream->status ? stream->status->code : -1;
++	status = stream && stream->status ? stream->status->code : -1;
+ 	if(stream) http_close(stream);
+ 	if(status != HTTP_OK){
+ 	    shown_text = NO_HELP;
+@@ -165,7 +168,8 @@ helper_internal(HelpType text, char *frag, char *title, int flags)
+ 		*rv = NULL;
+ 	    }
+ 	}
+-
++	if(we_cancel)
++	   cancel_busy_cue(-1);
+     }
+ 
+     if(F_ON(F_BLANK_KEYMENU,ps_global)){
diff --git a/gnu/packages/patches/aws-c-auth-cmake-prefix.patch b/gnu/packages/patches/aws-c-auth-cmake-prefix.patch
new file mode 100644
index 0000000000..da3e4eb4a5
--- /dev/null
+++ b/gnu/packages/patches/aws-c-auth-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,10 @@ if (POLICY CMP0069)
+     cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
+ endif()
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-c-auth-disable-networking-tests.patch b/gnu/packages/patches/aws-c-auth-disable-networking-tests.patch
new file mode 100644
index 0000000000..905247f528
--- /dev/null
+++ b/gnu/packages/patches/aws-c-auth-disable-networking-tests.patch
@@ -0,0 +1,64 @@
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -19,8 +19,8 @@ add_test_case(profile_credentials_provider_environment_test)
+ add_test_case(credentials_provider_first_in_chain_test)
+ add_test_case(credentials_provider_second_in_chain_test)
+ add_test_case(credentials_provider_null_chain_test)
+-add_test_case(credentials_provider_default_basic_test)
+-add_test_case(credentials_provider_default_manual_tls_test)
++#add_test_case(credentials_provider_default_basic_test)
++#add_test_case(credentials_provider_default_manual_tls_test)
+ add_test_case(credentials_provider_imds_new_destroy)
+ add_test_case(credentials_provider_imds_connect_failure)
+ add_test_case(credentials_provider_imds_token_request_failure)
+@@ -58,28 +58,28 @@ add_test_case(credentials_provider_x509_basic_success)
+ add_test_case(credentials_provider_x509_success_multi_part_doc)
+ add_test_case(credentials_provider_x509_real_new_destroy)
+ 
+-add_net_test_case(credentials_provider_sts_web_identity_new_destroy_from_env)
+-add_net_test_case(credentials_provider_sts_web_identity_new_destroy_from_config)
+-add_net_test_case(credentials_provider_sts_web_identity_new_failed_without_env_and_config)
+-add_net_test_case(credentials_provider_sts_web_identity_connect_failure)
+-add_net_test_case(credentials_provider_sts_web_identity_request_failure)
+-add_net_test_case(credentials_provider_sts_web_identity_bad_document_failure)
+-add_net_test_case(credentials_provider_sts_web_identity_test_retry_error1)
+-add_net_test_case(credentials_provider_sts_web_identity_test_retry_error2)
+-add_net_test_case(credentials_provider_sts_web_identity_basic_success_env)
+-add_net_test_case(credentials_provider_sts_web_identity_basic_success_config)
+-add_net_test_case(credentials_provider_sts_web_identity_success_multi_part_doc)
+-add_net_test_case(credentials_provider_sts_web_identity_real_new_destroy)
+-
+-add_net_test_case(credentials_provider_sts_direct_config_succeeds)
+-add_net_test_case(credentials_provider_sts_direct_config_succeeds_after_retry)
+-add_net_test_case(credentials_provider_sts_direct_config_invalid_doc)
+-add_net_test_case(credentials_provider_sts_direct_config_connection_failed)
+-add_net_test_case(credentials_provider_sts_direct_config_service_fails)
+-add_net_test_case(credentials_provider_sts_from_profile_config_succeeds)
+-add_net_test_case(credentials_provider_sts_from_profile_config_manual_tls_succeeds)
+-add_net_test_case(credentials_provider_sts_from_profile_config_environment_succeeds)
+-add_net_test_case(credentials_provider_sts_cache_expiration_conflict)
++#add_net_test_case(credentials_provider_sts_web_identity_new_destroy_from_env)
++#add_net_test_case(credentials_provider_sts_web_identity_new_destroy_from_config)
++#add_net_test_case(credentials_provider_sts_web_identity_new_failed_without_env_and_config)
++#add_net_test_case(credentials_provider_sts_web_identity_connect_failure)
++#add_net_test_case(credentials_provider_sts_web_identity_request_failure)
++#add_net_test_case(credentials_provider_sts_web_identity_bad_document_failure)
++#add_net_test_case(credentials_provider_sts_web_identity_test_retry_error1)
++#add_net_test_case(credentials_provider_sts_web_identity_test_retry_error2)
++#add_net_test_case(credentials_provider_sts_web_identity_basic_success_env)
++#add_net_test_case(credentials_provider_sts_web_identity_basic_success_config)
++#add_net_test_case(credentials_provider_sts_web_identity_success_multi_part_doc)
++#add_net_test_case(credentials_provider_sts_web_identity_real_new_destroy)
++
++#add_net_test_case(credentials_provider_sts_direct_config_succeeds)
++#add_net_test_case(credentials_provider_sts_direct_config_succeeds_after_retry)
++#add_net_test_case(credentials_provider_sts_direct_config_invalid_doc)
++#add_net_test_case(credentials_provider_sts_direct_config_connection_failed)
++#add_net_test_case(credentials_provider_sts_direct_config_service_fails)
++#add_net_test_case(credentials_provider_sts_from_profile_config_succeeds)
++#add_net_test_case(credentials_provider_sts_from_profile_config_manual_tls_succeeds)
++#add_net_test_case(credentials_provider_sts_from_profile_config_environment_succeeds)
++#add_net_test_case(credentials_provider_sts_cache_expiration_conflict)
+ 
+ add_test_case(credentials_provider_process_new_destroy_from_config)
+ add_test_case(credentials_provider_process_new_failed)
diff --git a/gnu/packages/patches/aws-c-compression-cmake-prefix.patch b/gnu/packages/patches/aws-c-compression-cmake-prefix.patch
new file mode 100644
index 0000000000..eefae19c4a
--- /dev/null
+++ b/gnu/packages/patches/aws-c-compression-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,6 +5,10 @@ if (POLICY CMP0069)
+     cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
+ endif()
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-c-http-cmake-prefix.patch b/gnu/packages/patches/aws-c-http-cmake-prefix.patch
new file mode 100644
index 0000000000..ec650a7e82
--- /dev/null
+++ b/gnu/packages/patches/aws-c-http-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,10 @@ endif()
+ 
+ option(ENABLE_PROXY_INTEGRATION_TESTS "Whether to run the proxy integration tests that rely on a proxy server installed and running locally" OFF)
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-c-http-disable-networking-tests.patch b/gnu/packages/patches/aws-c-http-disable-networking-tests.patch
new file mode 100644
index 0000000000..9bfd422341
--- /dev/null
+++ b/gnu/packages/patches/aws-c-http-disable-networking-tests.patch
@@ -0,0 +1,48 @@
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -136,8 +136,8 @@ add_test_case(strutil_trim_http_whitespace)
+ add_test_case(strutil_is_http_token)
+ add_test_case(strutil_is_lowercase_http_token)
+ 
+-add_net_test_case(tls_download_medium_file_h1)
+-add_net_test_case(tls_download_medium_file_h2)
++#add_net_test_case(tls_download_medium_file_h1)
++#add_net_test_case(tls_download_medium_file_h2)
+ 
+ add_test_case(websocket_decoder_sanity_check)
+ add_test_case(websocket_decoder_simplest_frame)
+@@ -438,21 +438,21 @@ add_test_case(connection_setup_shutdown)
+ 
+ # connection manager tests
+ # unit tests where connections are mocked
+-add_net_test_case(test_connection_manager_setup_shutdown)
+-add_net_test_case(test_connection_manager_acquire_release_mix_synchronous)
+-add_net_test_case(test_connection_manager_connect_callback_failure)
+-add_net_test_case(test_connection_manager_connect_immediate_failure)
+-add_net_test_case(test_connection_manager_proxy_setup_shutdown)
+-add_net_test_case(test_connection_manager_idle_culling_single)
+-add_net_test_case(test_connection_manager_idle_culling_many)
+-add_net_test_case(test_connection_manager_idle_culling_mixture)
++#add_net_test_case(test_connection_manager_setup_shutdown)
++#add_net_test_case(test_connection_manager_acquire_release_mix_synchronous)
++#add_net_test_case(test_connection_manager_connect_callback_failure)
++#add_net_test_case(test_connection_manager_connect_immediate_failure)
++#add_net_test_case(test_connection_manager_proxy_setup_shutdown)
++#add_net_test_case(test_connection_manager_idle_culling_single)
++#add_net_test_case(test_connection_manager_idle_culling_many)
++#add_net_test_case(test_connection_manager_idle_culling_mixture)
+ 
+ # tests where we establish real connections
+-add_net_test_case(test_connection_manager_single_connection)
+-add_net_test_case(test_connection_manager_many_connections)
+-add_net_test_case(test_connection_manager_acquire_release)
+-add_net_test_case(test_connection_manager_close_and_release)
+-add_net_test_case(test_connection_manager_acquire_release_mix)
++#add_net_test_case(test_connection_manager_single_connection)
++#add_net_test_case(test_connection_manager_many_connections)
++#add_net_test_case(test_connection_manager_acquire_release)
++#add_net_test_case(test_connection_manager_close_and_release)
++#add_net_test_case(test_connection_manager_acquire_release_mix)
+ 
+ 
+ add_test_case(h1_server_sanity_check)
diff --git a/gnu/packages/patches/aws-c-io-disable-networking-tests.patch b/gnu/packages/patches/aws-c-io-disable-networking-tests.patch
index 09fe11310c..e2e3afea13 100644
--- a/gnu/packages/patches/aws-c-io-disable-networking-tests.patch
+++ b/gnu/packages/patches/aws-c-io-disable-networking-tests.patch
@@ -26,7 +26,7 @@
  add_test_case(channel_duplicate_shutdown)
 -add_net_test_case(channel_connect_some_hosts_timeout)
 +#add_net_test_case(channel_connect_some_hosts_timeout)
-
+ 
 -add_net_test_case(test_default_with_ipv6_lookup)
 +#add_net_test_case(test_default_with_ipv6_lookup)
  add_test_case(test_resolver_ipv6_address_lookup)
@@ -38,7 +38,7 @@
  add_test_case(test_resolver_ttls)
  add_test_case(test_resolver_connect_failure_recording)
  add_test_case(test_resolver_ttl_refreshes_on_resolve)
-
+ 
  add_net_test_case(test_resolver_listener_create_destroy)
 -add_net_test_case(test_resolver_add_listener_before_host)
 -add_net_test_case(test_resolver_add_listener_after_host)
@@ -49,25 +49,41 @@
  add_net_test_case(test_resolver_listener_host_re_add_fn)
  add_net_test_case(test_resolver_listener_multiple_results)
  add_net_test_case(test_resolver_listener_address_expired_fn)
-@@ -119,20 +119,20 @@ add_test_case(socket_handler_close)
+@@ -121,11 +121,11 @@ add_test_case(socket_handler_close)
  if (NOT BYO_CRYPTO)
      add_net_test_case(test_concurrent_cert_import)
      add_test_case(tls_channel_echo_and_backpressure_test)
 -    add_net_test_case(tls_client_channel_negotiation_error_expired)
 -    add_net_test_case(tls_client_channel_negotiation_error_wrong_host)
+-    add_net_test_case(tls_client_channel_negotiation_error_wrong_host_with_ca_override)
 -    add_net_test_case(tls_client_channel_negotiation_error_self_signed)
 -    add_net_test_case(tls_client_channel_negotiation_error_untrusted_root)
 +    #add_net_test_case(tls_client_channel_negotiation_error_expired)
 +    #add_net_test_case(tls_client_channel_negotiation_error_wrong_host)
++    #add_net_test_case(tls_client_channel_negotiation_error_wrong_host_with_ca_override)
 +    #add_net_test_case(tls_client_channel_negotiation_error_self_signed)
 +    #add_net_test_case(tls_client_channel_negotiation_error_untrusted_root)
      #track these down in s2n and find out why that aren't failing.
      #add_net_test_case(tls_client_channel_negotiation_error_revoked)
      #add_net_test_case(tls_client_channel_negotiation_error_pinning)
+@@ -133,23 +133,23 @@ if (NOT BYO_CRYPTO)
+     # once done, add these tests as well
+     #add_net_test_case(tls_client_channel_negotiation_no_verify_revoked)
+     #add_net_test_case(tls_client_channel_negotiation_no_verify_pinning)
+-    add_net_test_case(tls_client_channel_negotiation_no_verify_expired)
+-    add_net_test_case(tls_client_channel_negotiation_no_verify_wrong_host)
+-    add_net_test_case(tls_client_channel_negotiation_no_verify_self_signed)
+-    add_net_test_case(tls_client_channel_negotiation_no_verify_untrusted_root)
+-
 -    add_net_test_case(tls_client_channel_negotiation_error_socket_closed)
 -    add_net_test_case(tls_client_channel_negotiation_success)
 -    add_net_test_case(tls_client_channel_negotiation_success_ecc256)
 -    add_net_test_case(tls_client_channel_negotiation_success_ecc384)
++    #add_net_test_case(tls_client_channel_negotiation_no_verify_expired)
++    #add_net_test_case(tls_client_channel_negotiation_no_verify_wrong_host)
++    #add_net_test_case(tls_client_channel_negotiation_no_verify_self_signed)
++    #add_net_test_case(tls_client_channel_negotiation_no_verify_untrusted_root)
++
 +    #add_net_test_case(tls_client_channel_negotiation_error_socket_closed)
 +    #add_net_test_case(tls_client_channel_negotiation_success)
 +    #add_net_test_case(tls_client_channel_negotiation_success_ecc256)
@@ -79,3 +95,9 @@
      add_net_test_case(test_tls_negotiation_timeout)
      add_net_test_case(tls_double_channel)
      add_net_test_case(alpn_successfully_negotiates)
+     add_net_test_case(alpn_no_protocol_message)
+-    add_net_test_case(test_ecc_cert_import)
++    #add_net_test_case(test_ecc_cert_import)
+     add_test_case(alpn_error_creating_handler)
+     add_test_case(tls_destroy_null_context)
+     add_test_case(tls_channel_statistics_test)
diff --git a/gnu/packages/patches/aws-c-mqtt-cmake-prefix.patch b/gnu/packages/patches/aws-c-mqtt-cmake-prefix.patch
new file mode 100644
index 0000000000..987024b57c
--- /dev/null
+++ b/gnu/packages/patches/aws-c-mqtt-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,10 @@ if (POLICY CMP0069)
+     cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
+ endif()
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-c-s3-cmake-prefix.patch b/gnu/packages/patches/aws-c-s3-cmake-prefix.patch
new file mode 100644
index 0000000000..da3e4eb4a5
--- /dev/null
+++ b/gnu/packages/patches/aws-c-s3-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,10 @@ if (POLICY CMP0069)
+     cmake_policy(SET CMP0069 NEW) # Enable LTO/IPO if available in the compiler, see AwsCFlags
+ endif()
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-c-s3-disable-networking-tests.patch b/gnu/packages/patches/aws-c-s3-disable-networking-tests.patch
new file mode 100644
index 0000000000..e8a3d8ed6a
--- /dev/null
+++ b/gnu/packages/patches/aws-c-s3-disable-networking-tests.patch
@@ -0,0 +1,153 @@
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -23,8 +23,8 @@ add_test_case(test_s3_upload_part_message_new)
+ add_test_case(test_s3_complete_multipart_message_new)
+ add_test_case(test_s3_abort_multipart_upload_message_new)
+ 
+-add_net_test_case(test_s3_client_create_destroy)
+-add_net_test_case(test_s3_client_max_active_connections_override)
++#add_net_test_case(test_s3_client_create_destroy)
++#add_net_test_case(test_s3_client_max_active_connections_override)
+ add_test_case(test_s3_client_get_max_active_connections)
+ add_test_case(test_s3_request_create_destroy)
+ add_test_case(test_s3_client_queue_requests)
+@@ -37,75 +37,75 @@ add_test_case(test_s3_client_update_connections_too_many_conns)
+ add_test_case(test_s3_client_update_connections_finish_result)
+ add_test_case(test_s3_client_update_connections_clean_up)
+ 
+-add_net_test_case(test_s3_vip_create_destroy)
+-add_net_test_case(test_s3_client_add_remove_vips)
+-add_net_test_case(test_s3_client_resolve_vips)
++#add_net_test_case(test_s3_vip_create_destroy)
++#add_net_test_case(test_s3_client_add_remove_vips)
++#add_net_test_case(test_s3_client_resolve_vips)
+ add_test_case(test_s3_client_set_vip_connection_warm)
+ add_test_case(test_s3_client_set_vip_connection_active)
+ 
+-add_net_test_case(test_s3_client_exceed_retries)
+-add_net_test_case(test_s3_client_acquire_connection_fail)
+-add_net_test_case(test_s3_meta_request_fail_prepare_request)
+-add_net_test_case(test_s3_meta_request_sign_request_fail)
+-add_net_test_case(test_s3_meta_request_send_request_finish_fail)
+-add_net_test_case(test_s3_auto_range_put_missing_upload_id)
++#add_net_test_case(test_s3_client_exceed_retries)
++#add_net_test_case(test_s3_client_acquire_connection_fail)
++#add_net_test_case(test_s3_meta_request_fail_prepare_request)
++#add_net_test_case(test_s3_meta_request_sign_request_fail)
++#add_net_test_case(test_s3_meta_request_send_request_finish_fail)
++#add_net_test_case(test_s3_auto_range_put_missing_upload_id)
+ 
+-add_net_test_case(test_s3_cancel_mpu_create_not_sent)
+-add_net_test_case(test_s3_cancel_mpu_create_completed)
+-add_net_test_case(test_s3_cancel_mpu_one_part_completed)
+-add_net_test_case(test_s3_cancel_mpu_all_parts_completed)
+-add_net_test_case(test_s3_cancel_mpd_nothing_sent)
+-add_net_test_case(test_s3_cancel_mpd_one_part_sent)
+-add_net_test_case(test_s3_cancel_mpd_one_part_completed)
+-add_net_test_case(test_s3_cancel_mpd_two_parts_completed)
+-add_net_test_case(test_s3_cancel_mpd_head_object_sent)
+-add_net_test_case(test_s3_cancel_mpd_head_object_completed)
+-add_net_test_case(test_s3_cancel_mpd_get_without_range_sent)
+-add_net_test_case(test_s3_cancel_mpd_get_without_range_completed)
++#add_net_test_case(test_s3_cancel_mpu_create_not_sent)
++#add_net_test_case(test_s3_cancel_mpu_create_completed)
++#add_net_test_case(test_s3_cancel_mpu_one_part_completed)
++#add_net_test_case(test_s3_cancel_mpu_all_parts_completed)
++#add_net_test_case(test_s3_cancel_mpd_nothing_sent)
++#add_net_test_case(test_s3_cancel_mpd_one_part_sent)
++#add_net_test_case(test_s3_cancel_mpd_one_part_completed)
++#add_net_test_case(test_s3_cancel_mpd_two_parts_completed)
++#add_net_test_case(test_s3_cancel_mpd_head_object_sent)
++#add_net_test_case(test_s3_cancel_mpd_head_object_completed)
++#add_net_test_case(test_s3_cancel_mpd_get_without_range_sent)
++#add_net_test_case(test_s3_cancel_mpd_get_without_range_completed)
+ 
+-add_net_test_case(test_s3_get_object_tls_disabled)
+-add_net_test_case(test_s3_get_object_tls_enabled)
+-add_net_test_case(test_s3_get_object_tls_default)
+-add_net_test_case(test_s3_get_object_less_than_part_size)
+-add_net_test_case(test_s3_get_object_empty_object)
+-add_net_test_case(test_s3_get_object_multiple)
+-add_net_test_case(test_s3_get_object_sse_kms)
+-add_net_test_case(test_s3_get_object_sse_aes256)
+-add_net_test_case(test_s3_no_signing)
+-add_net_test_case(test_s3_signing_override)
+-add_net_test_case(test_s3_put_object_tls_disabled)
+-add_net_test_case(test_s3_put_object_tls_enabled)
+-add_net_test_case(test_s3_put_object_tls_default)
+-add_net_test_case(test_s3_multipart_put_object_with_acl)
+-add_net_test_case(test_s3_put_object_multiple)
+-add_net_test_case(test_s3_put_object_less_than_part_size)
+-add_net_test_case(test_s3_put_object_empty_object)
+-add_net_test_case(test_s3_put_object_with_part_remainder)
+-add_net_test_case(test_s3_put_object_sse_kms)
+-add_net_test_case(test_s3_put_object_sse_kms_multipart)
+-add_net_test_case(test_s3_put_object_sse_aes256)
+-add_net_test_case(test_s3_put_object_sse_aes256_multipart)
+-add_net_test_case(test_s3_put_object_double_slashes)
+-add_net_test_case(test_s3_meta_request_default)
+-add_net_test_case(test_s3_put_object_fail_headers_callback)
+-add_net_test_case(test_s3_put_object_fail_body_callback)
+-add_net_test_case(test_s3_get_object_fail_headers_callback)
+-add_net_test_case(test_s3_get_object_fail_body_callback)
+-add_net_test_case(test_s3_default_fail_headers_callback)
+-add_net_test_case(test_s3_default_fail_body_callback)
+-add_net_test_case(test_s3_error_missing_file)
+-add_net_test_case(test_s3_existing_host_entry)
+-add_net_test_case(test_s3_put_fail_object_invalid_request)
+-add_net_test_case(test_s3_put_fail_object_inputstream_fail_reading)
+-add_net_test_case(test_s3_put_single_part_fail_object_inputstream_fail_reading)
+-add_net_test_case(test_s3_bad_endpoint)
+-add_net_test_case(test_s3_put_object_clamp_part_size)
+-add_net_test_case(test_s3_different_endpoints)
+-add_net_test_case(test_s3_auto_ranged_get_sending_user_agent)
+-add_net_test_case(test_s3_auto_ranged_put_sending_user_agent)
+-add_net_test_case(test_s3_default_sending_meta_request_user_agent)
+-add_net_test_case(test_s3_range_requests)
+-add_net_test_case(test_s3_not_satisfiable_range)
++#add_net_test_case(test_s3_get_object_tls_disabled)
++#add_net_test_case(test_s3_get_object_tls_enabled)
++#add_net_test_case(test_s3_get_object_tls_default)
++#add_net_test_case(test_s3_get_object_less_than_part_size)
++#add_net_test_case(test_s3_get_object_empty_object)
++#add_net_test_case(test_s3_get_object_multiple)
++#add_net_test_case(test_s3_get_object_sse_kms)
++#add_net_test_case(test_s3_get_object_sse_aes256)
++#add_net_test_case(test_s3_no_signing)
++#add_net_test_case(test_s3_signing_override)
++#add_net_test_case(test_s3_put_object_tls_disabled)
++#add_net_test_case(test_s3_put_object_tls_enabled)
++#add_net_test_case(test_s3_put_object_tls_default)
++#add_net_test_case(test_s3_multipart_put_object_with_acl)
++#add_net_test_case(test_s3_put_object_multiple)
++#add_net_test_case(test_s3_put_object_less_than_part_size)
++#add_net_test_case(test_s3_put_object_empty_object)
++#add_net_test_case(test_s3_put_object_with_part_remainder)
++#add_net_test_case(test_s3_put_object_sse_kms)
++#add_net_test_case(test_s3_put_object_sse_kms_multipart)
++#add_net_test_case(test_s3_put_object_sse_aes256)
++#add_net_test_case(test_s3_put_object_sse_aes256_multipart)
++#add_net_test_case(test_s3_put_object_double_slashes)
++#add_net_test_case(test_s3_meta_request_default)
++#add_net_test_case(test_s3_put_object_fail_headers_callback)
++#add_net_test_case(test_s3_put_object_fail_body_callback)
++#add_net_test_case(test_s3_get_object_fail_headers_callback)
++#add_net_test_case(test_s3_get_object_fail_body_callback)
++#add_net_test_case(test_s3_default_fail_headers_callback)
++#add_net_test_case(test_s3_default_fail_body_callback)
++#add_net_test_case(test_s3_error_missing_file)
++#add_net_test_case(test_s3_existing_host_entry)
++#add_net_test_case(test_s3_put_fail_object_invalid_request)
++#add_net_test_case(test_s3_put_fail_object_inputstream_fail_reading)
++#add_net_test_case(test_s3_put_single_part_fail_object_inputstream_fail_reading)
++#add_net_test_case(test_s3_bad_endpoint)
++#add_net_test_case(test_s3_put_object_clamp_part_size)
++#add_net_test_case(test_s3_different_endpoints)
++#add_net_test_case(test_s3_auto_ranged_get_sending_user_agent)
++#add_net_test_case(test_s3_auto_ranged_put_sending_user_agent)
++#add_net_test_case(test_s3_default_sending_meta_request_user_agent)
++#add_net_test_case(test_s3_range_requests)
++#add_net_test_case(test_s3_not_satisfiable_range)
+ 
+ add_test_case(test_s3_replace_quote_entities)
+ add_test_case(test_s3_parse_content_range_response_header)
diff --git a/gnu/packages/patches/aws-crt-cpp-cmake-prefix.patch b/gnu/packages/patches/aws-crt-cpp-cmake-prefix.patch
new file mode 100644
index 0000000000..b45818875f
--- /dev/null
+++ b/gnu/packages/patches/aws-crt-cpp-cmake-prefix.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,6 +39,10 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+ include(AwsCheckHeadersCxx)
+ include(CTest)
+ 
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ if (DEFINED CMAKE_PREFIX_PATH)
+     file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
+ endif()
diff --git a/gnu/packages/patches/aws-crt-cpp-disable-networking-tests.patch b/gnu/packages/patches/aws-crt-cpp-disable-networking-tests.patch
new file mode 100644
index 0000000000..4c1be7d028
--- /dev/null
+++ b/gnu/packages/patches/aws-crt-cpp-disable-networking-tests.patch
@@ -0,0 +1,47 @@
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -13,9 +13,9 @@ add_test_case(ApiMultiDefaultCreateDestroy)
+ add_test_case(EventLoopResourceSafety)
+ add_test_case(ClientBootstrapResourceSafety)
+ if (NOT BYO_CRYPTO)
+-    add_net_test_case(MqttClientResourceSafety)
++    #add_net_test_case(MqttClientResourceSafety)
+     add_net_test_case(MqttClientNewConnectionUninitializedTlsContext)
+-    add_net_test_case(TLSContextResourceSafety)
++    #add_net_test_case(TLSContextResourceSafety)
+     add_net_test_case(TLSContextUninitializedNewConnectionOptions)
+ endif ()
+ add_test_case(Base64RoundTrip)
+@@ -29,15 +29,15 @@ add_test_case(SHA256ResourceSafety)
+ add_test_case(MD5ResourceSafety)
+ add_test_case(SHA256HMACResourceSafety)
+ if (NOT BYO_CRYPTO)
+-    add_net_test_case(HttpDownloadNoBackPressureHTTP1_1)
+-    add_net_test_case(HttpDownloadNoBackPressureHTTP2)
+-    add_net_test_case(HttpStreamUnActivated)
++    #add_net_test_case(HttpDownloadNoBackPressureHTTP1_1)
++    #add_net_test_case(HttpDownloadNoBackPressureHTTP2)
++    #add_net_test_case(HttpStreamUnActivated)
+     add_net_test_case(HttpCreateConnectionInvalidTlsConnectionOptions)
+     add_net_test_case(IotPublishSubscribe)
+-    add_net_test_case(HttpClientConnectionManagerResourceSafety)
++    #add_net_test_case(HttpClientConnectionManagerResourceSafety)
+     add_net_test_case(HttpClientConnectionManagerInvalidTlsConnectionOptions)
+-    add_net_test_case(HttpClientConnectionWithPendingAcquisitions)
+-    add_net_test_case(HttpClientConnectionWithPendingAcquisitionsAndClosedConnections)
++    #add_net_test_case(HttpClientConnectionWithPendingAcquisitions)
++    #add_net_test_case(HttpClientConnectionWithPendingAcquisitionsAndClosedConnections)
+ endif ()
+ add_test_case(DefaultResolution)
+ add_test_case(OptionalCopySafety)
+@@ -55,8 +55,8 @@ add_test_case(TestProviderEnvironmentGet)
+ add_test_case(TestProviderProfileGet)
+ add_test_case(TestProviderImdsGet)
+ if (NOT BYO_CRYPTO)
+-    add_net_test_case(TestProviderDefaultChainGet)
+-    add_net_test_case(TestProviderDefaultChainManualTlsContextGet)
++    #add_net_test_case(TestProviderDefaultChainGet)
++    #add_net_test_case(TestProviderDefaultChainManualTlsContextGet)
+ endif ()
+ add_test_case(TestProviderDelegateGet)
+ add_test_case(HttpRequestTestCreateDestroy)
diff --git a/gnu/packages/patches/aws-sdk-cpp-cmake-prefix.patch b/gnu/packages/patches/aws-sdk-cpp-cmake-prefix.patch
new file mode 100644
index 0000000000..efc1218834
--- /dev/null
+++ b/gnu/packages/patches/aws-sdk-cpp-cmake-prefix.patch
@@ -0,0 +1,18 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -98,9 +98,13 @@ set(PYTHON_CMD "python")
+ # CMAKE_MODULE_PATH is a CMAKE variable. It contains a list of paths
+ # which could be used to search CMAKE modules by "include()" or "find_package()", but the default value is empty.
+ # Add ${CMAKE_INSTALL_LIBDIR}/cmake and ${CMAKE_PREFIX_PATH}/lib/cmake to search list
++if (DEFINED ENV{CMAKE_PREFIX_PATH})
++    set(CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH})
++endif()
++
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
+-set(AWS_MODULE_DIR "/${CMAKE_INSTALL_LIBDIR}/cmake")
+-string(REPLACE ";" "${AWS_MODULE_DIR};" AWS_MODULE_PATH "${CMAKE_PREFIX_PATH}${AWS_MODULE_DIR}")
++set(AWS_MODULE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake")
++string(REPLACE ":" "${AWS_MODULE_DIR};" AWS_MODULE_PATH "${CMAKE_PREFIX_PATH}${AWS_MODULE_DIR}")
+ list(APPEND CMAKE_MODULE_PATH ${AWS_MODULE_PATH})
+ 
+ # include() will "load and run" cmake script
diff --git a/gnu/packages/patches/aws-sdk-cpp-disable-networking-tests.patch b/gnu/packages/patches/aws-sdk-cpp-disable-networking-tests.patch
new file mode 100644
index 0000000000..3b582d9628
--- /dev/null
+++ b/gnu/packages/patches/aws-sdk-cpp-disable-networking-tests.patch
@@ -0,0 +1,44 @@
+--- a/aws-cpp-sdk-core-tests/http/HttpClientTest.cpp
++++ b/aws-cpp-sdk-core-tests/http/HttpClientTest.cpp
+@@ -92,12 +92,12 @@ TEST(HttpClientTest, TestRandomURLWithNoProxy)
+     makeRandomHttpRequest(httpClient, false);
+ }
+ 
+-TEST(HttpClientTest, TestRandomURLWithProxy)
+-{
+-    ClientConfiguration configuration = makeClientConfigurationWithProxy();
+-    auto httpClient = CreateHttpClient(configuration);
+-    makeRandomHttpRequest(httpClient, true); // we expect it to try to use proxy that is invalid
+-}
++//TEST(HttpClientTest, TestRandomURLWithProxy)
++//{
++//    ClientConfiguration configuration = makeClientConfigurationWithProxy();
++//    auto httpClient = CreateHttpClient(configuration);
++//    makeRandomHttpRequest(httpClient, true); // we expect it to try to use proxy that is invalid
++//}
+ 
+ TEST(HttpClientTest, TestRandomURLWithProxyAndDeclaredAsNonProxyHost)
+ {
+@@ -119,14 +119,14 @@ TEST(HttpClientTest, TestRandomURLWithProxyAndDeclaredParentDomainAsNonProxyHost
+     makeRandomHttpRequest(httpClient, false);
+ }
+ 
+-TEST(HttpClientTest, TestRandomURLWithProxyAndOtherDeclaredAsNonProxyHost)
+-{
+-    ClientConfiguration configuration = makeClientConfigurationWithProxy();
+-    configuration.nonProxyHosts = Aws::Utils::Array<Aws::String>(1);
+-    configuration.nonProxyHosts[0] = "http://test.non.filtered.aws";
+-    auto httpClient = CreateHttpClient(configuration);
+-    makeRandomHttpRequest(httpClient, true);
+-}
++//TEST(HttpClientTest, TestRandomURLWithProxyAndOtherDeclaredAsNonProxyHost)
++//{
++//    ClientConfiguration configuration = makeClientConfigurationWithProxy();
++//    configuration.nonProxyHosts = Aws::Utils::Array<Aws::String>(1);
++//    configuration.nonProxyHosts[0] = "http://test.non.filtered.aws";
++//    auto httpClient = CreateHttpClient(configuration);
++//    makeRandomHttpRequest(httpClient, true);
++//}
+ 
+ // TODO: Pending Fix on Windows.
+ #if ENABLE_CURL_CLIENT
diff --git a/gnu/packages/patches/aws-sdk-cpp-disable-werror.patch b/gnu/packages/patches/aws-sdk-cpp-disable-werror.patch
new file mode 100644
index 0000000000..249c299239
--- /dev/null
+++ b/gnu/packages/patches/aws-sdk-cpp-disable-werror.patch
@@ -0,0 +1,11 @@
+--- a/cmake/compiler_settings.cmake
++++ b/cmake/compiler_settings.cmake
+@@ -53,7 +53,7 @@ macro(set_gcc_flags)
+ endmacro()
+ 
+ macro(set_gcc_warnings)
+-    list(APPEND AWS_COMPILER_WARNINGS "-Wall" "-Werror" "-pedantic" "-Wextra")
++    list(APPEND AWS_COMPILER_WARNINGS "-Wall" "-pedantic" "-Wextra")
+     if(COMPILER_CLANG)
+         if(PLATFORM_ANDROID)
+             # when using clang with libc and API lower than 21 we need to include Android support headers and ignore the gnu-include-next warning.
diff --git a/gnu/packages/patches/libhx-fix-double-free-bug.patch b/gnu/packages/patches/libhx-fix-double-free-bug.patch
deleted file mode 100644
index 80c2c6ca84..0000000000
--- a/gnu/packages/patches/libhx-fix-double-free-bug.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From a08eabc6e5a3e0a9c7a15ca15ff7d450ecb6db88 Mon Sep 17 00:00:00 2001
-From: Jan Engelhardt <jengelh@inai.de>
-Date: Tue, 12 Oct 2021 17:32:43 +0200
-Subject: [PATCH] io: fix a use-after-free in conjunction with HX_realpath
-
-HX_readlink(&x, ...) forgot to set x to nullptr upon error, which
-trips up subsequent calls to HX_readlink with the very same x.
-
-Fixes: v3.26-1-g97f4be2
----
- src/io.c          |  8 ++++++--
- src/tc-realpath.c | 10 ++++++++++
- 2 files changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/src/io.c b/src/io.c
-index 95d6fd6..14078fc 100644
---- a/src/io.c
-+++ b/src/io.c
-@@ -316,8 +316,10 @@ EXPORT_SYMBOL int HX_readlink(hxmc_t **target, const char *path)
- 		ssize_t ret = readlink(path, *target, linkbuf_size);
- 		if (ret < 0) {
- 			int saved_errno = errno;
--			if (allocate)
-+			if (allocate) {
- 				HXmc_free(*target);
-+				*target = nullptr;
-+			}
- 			return -(errno = saved_errno);
- 		}
- 		if (static_cast(size_t, ret) < linkbuf_size) {
-@@ -327,8 +329,10 @@ EXPORT_SYMBOL int HX_readlink(hxmc_t **target, const char *path)
- 		linkbuf_size *= 2;
- 		if (HXmc_setlen(target, linkbuf_size) == NULL) {
- 			int saved_errno = errno;
--			if (allocate)
-+			if (allocate) {
- 				HXmc_free(*target);
-+				*target = nullptr;
-+			}
- 			return -(errno = saved_errno);
- 		}
- 	}
-diff --git a/src/tc-realpath.c b/src/tc-realpath.c
-index 5dd9aa2..c2ef15a 100644
---- a/src/tc-realpath.c
-+++ b/src/tc-realpath.c
-@@ -11,6 +11,7 @@
- #include <stdlib.h>
- #include <libHX/io.h>
- #include <libHX/option.h>
-+#include <libHX/string.h>
- 
- static unsigned int rp_flags;
- static unsigned int rp_absolute;
-@@ -42,6 +43,14 @@ static bool rp_get_options(int *argc, const char ***argv)
- 	return true;
- }
- 
-+static void t_1(void)
-+{
-+	hxmc_t *tmp = HXmc_strinit("");
-+	/* two components, so that HX_readlink gets called twice */
-+	HX_realpath(&tmp, "/dev/tty", HX_REALPATH_DEFAULT);
-+	HXmc_free(tmp);
-+}
-+
- int main(int argc, const char **argv)
- {
- 	hxmc_t *res;
-@@ -49,6 +58,7 @@ int main(int argc, const char **argv)
- 
- 	if (!rp_get_options(&argc, &argv))
- 		return EXIT_FAILURE;
-+	t_1();
- 
- 	res = NULL;
- 	while (--argc > 0) {
--- 
-2.33.0
-
diff --git a/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch
new file mode 100644
index 0000000000..d7cd1c0d28
--- /dev/null
+++ b/gnu/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch
@@ -0,0 +1,25 @@
+From 7554aefc886d4ebc4b4c139a5cddcab6163cf72f Mon Sep 17 00:00:00 2001
+From: Vinicius Monego <monego@posteo.net>
+Date: Thu, 30 Sep 2021 23:37:29 -0300
+Subject: [PATCH] Link QtScriptByteArray with QtScript.
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 492ccae..05fec08 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2077,7 +2077,7 @@ add_library(QtScriptByteArray STATIC EXCLUDE_FROM_ALL
+   lib/qtscript-bytearray/bytearrayprototype.cpp
+ )
+ set_target_properties(QtScriptByteArray PROPERTIES AUTOMOC ON)
+-target_link_libraries(QtScriptByteArray Qt5::Core)
++target_link_libraries(QtScriptByteArray Qt5::Core Qt5::Script)
+ target_include_directories(mixxx-lib SYSTEM PUBLIC lib/qtscript-bytearray)
+ target_link_libraries(mixxx-lib PRIVATE QtScriptByteArray)
+ 
+-- 
+2.30.2
+
diff --git a/gnu/packages/patches/mixxx-system-googletest-benchmark.patch b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch
new file mode 100644
index 0000000000..7adbe66208
--- /dev/null
+++ b/gnu/packages/patches/mixxx-system-googletest-benchmark.patch
@@ -0,0 +1,43 @@
+From eb2079d467f8658eea13e2ed86cc69d864632866 Mon Sep 17 00:00:00 2001
+From: Vinicius Monego <monego@posteo.net>
+Date: Wed, 29 Sep 2021 19:07:35 -0300
+Subject: [PATCH] Use system googletest and benchmark.
+
+---
+ CMakeLists.txt | 13 +++----------
+ 1 file changed, 3 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 10e9b0a..492ccae 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1467,12 +1467,7 @@ set(gtest_force_shared_crt ON CACHE BOOL "Pass Mixxx compiler/linker options to
+ # Prevent installation of GoogleTest libraries
+ set(INSTALL_GTEST OFF CACHE BOOL "Disable installation of GoogleTest" FORCE)
+ 
+-# Add googletest directly to our build. This adds the following targets:
+-# gtest, gtest_main, gmock and gmock_main
+-add_subdirectory(
+-  "${CMAKE_CURRENT_SOURCE_DIR}/lib/googletest"
+-  "${CMAKE_CURRENT_BINARY_DIR}/lib/googletest"
+-)
++find_package(GTest CONFIG REQUIRED)
+ 
+ add_executable(mixxx-test
+   src/test/analyserwaveformtest.cpp
+@@ -1582,10 +1577,8 @@ set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
+ # Prevent installation of google/benchmark artifacts
+ set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "Disable installation of google/benchmark" FORCE)
+ 
+-add_subdirectory(
+-  "${CMAKE_CURRENT_SOURCE_DIR}/lib/benchmark"
+-  "${CMAKE_CURRENT_BINARY_DIR}/lib/benchmark"
+-)
++find_package(benchmark CONFIG REQUIRED)
++
+ target_link_libraries(mixxx-test PRIVATE benchmark)
+ 
+ # Test Suite
+-- 
+2.30.2
+
diff --git a/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch b/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch
index 30515cbe48..ffa75918b8 100644
--- a/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch
+++ b/gnu/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch
@@ -1,32 +1,36 @@
-From f308dc91660954ab88bb41868c0b9809592923e6 Mon Sep 17 00:00:00 2001
+From 4c02c080475c9d08dbed98dd64ecca337aa359ae Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@member.fsf.org>
 Date: Sat, 20 Feb 2021 20:37:39 +0800
 Subject: [PATCH] Allow set libretro_directory via environment variable
 
 ---
- retroarch.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
+ retroarch.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
 
 diff --git a/retroarch.c b/retroarch.c
-index 6a88c3108e..6807c12b5b 100644
+index 8a0461c816..cbf11d8b6a 100644
 --- a/retroarch.c
 +++ b/retroarch.c
-@@ -36038,6 +36038,15 @@ static void retroarch_parse_input_and_config(
- #endif
-       config_load(&p_rarch->g_extern);
- 
+@@ -17603,7 +17603,18 @@ static bool retroarch_parse_input_and_config(
+             p_rarch->configuration_settings->bools.log_to_file,
+             p_rarch->configuration_settings->bools.log_to_file_timestamp,
+             p_rarch->configuration_settings->paths.log_dir);
+-            
++
 +   /* Override settings via environment variables */
-+   if (getenv("LIBRETRO_DIRECTORY")) {
++   {
 +      settings_t *settings = p_rarch->configuration_settings;
-+      retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DIRECTORY, NULL);
-+      configuration_set_string(settings,
-+            settings->paths.directory_libretro,
-+            getenv("LIBRETRO_DIRECTORY"));
++      char *value = getenv("LIBRETRO_DIRECTORY");
++      if (value != NULL)
++      {
++         retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_LIBRETRO_DIRECTORY, NULL);
++         configuration_set_string(settings, settings->paths.directory_libretro, value);
++      }
 +   }
 +
     /* Second pass: All other arguments override the config file */
     optind = 1;
  
 -- 
-2.30.0
+2.33.0
 
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 40c4b91b71..d1e389213c 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -611,6 +611,46 @@ enables repeating a single test, or multiple tests, a specific number of
 times.")
     (license license:mpl2.0)))
 
+(define-public python-pytest-mockito
+  (package
+    (name "python-pytest-mockito")
+    (version "0.0.4")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in pypi archive
+       (uri (git-reference
+             (url "https://github.com/kaste/pytest-mockito")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0hnpazaw3mglx1c405z2hkavgan99rqb3wgrcqk8x5kmhpay53xx"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "-m" "pytest" "-vv")))))))
+    (propagated-inputs
+     `(("python-mockito" ,python-mockito)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/kaste/pytest-mockito")
+    (synopsis "Mockito base fixtures for Pytest")
+    (description "The @code{pytest-mockito} plugin provides base Mockito
+fixtures for Pytest.  It covers the main entry points of the Mockito mocking
+framework and makes it easy to undo any monkey patching.  The fixtures are:
+@itemize
+@item when
+@item when2
+@item expect
+@item patch
+@item unstub
+@item spy2
+@end itemize")
+    (license license:expat)))
+
 (define-public python-pytest-mpl
   (package
     (name "python-pytest-mpl")
@@ -1424,6 +1464,38 @@ the implementation of that name.")
     (license (list license:asl2.0
                    license:lgpl3))))    ; only for setup_helpers.py
 
+(define-public python-mockito
+  (package
+    (name "python-mockito")
+    (version "1.2.2")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in pypi archive
+       (uri (git-reference
+             (url "https://github.com/kaste/mockito-python")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0fg8jflcf4c929gd4zbcrk73d08waaqjfjmdjrgnv54mzl35pjxl"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest")))))))
+    (native-inputs
+     `(("python-numpy" ,python-numpy)
+       ("python-pytest" ,python-pytest)))
+    (home-page "https://github.com/kaste/mockito-python")
+    (synopsis "Mocking library for Python")
+    (description "This package provides a Python implementation of the Java
+library of the same name.  It eases monkey patching, for example to stub out
+side effects when unit testing.")
+    (license license:expat)))
+
 (define-public python-mypy-extensions
   (package
     (name "python-mypy-extensions")
@@ -1744,3 +1816,43 @@ or use cases.  Design is based on supporting slow, io-bound testing with often
 tedious system under test configuration that can benefit from running several
 tests at one time.")
     (license license:expat)))
+
+(define-public python-aioresponses
+  (package
+    (name "python-aioresponses")
+    (version "0.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aioresponses" version))
+       (sha256
+        (base32 "16p8mdyfirddrsay62ji7rwcrqmmzxzf2isdbfm9cj5p338rbr42"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke
+                "pytest" "-vv" "tests" "-k"
+                (string-append
+                 ;; These tests require network access.
+                 "not test_address_as_instance_of_url_combined_with_pass_through "
+                 "and not test_pass_through_with_origin_params"))))))))
+    (native-inputs
+     `(("python-pbr" ,python-pbr)
+       ("python-ddt" ,python-ddt)
+       ("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-aiohttp" ,python-aiohttp)))
+    (home-page "https://github.com/pnuckowski/aioresponses")
+    (synopsis "Mock out requests made by ClientSession from aiohttp package")
+    (description
+     "Aioresponses is a helper to mock/fake web requests in python aiohttp
+package.  For requests module there are a lot of packages that help us with
+testing (eg. httpretty, responses, requests-mock).  When it comes to testing
+asynchronous HTTP requests it is a bit harder (at least at the beginning).
+The purpose of this package is to provide an easy way to test asynchronous
+HTTP requests.")
+    (license license:expat)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index ec62d9204b..c0cfc00732 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -913,14 +913,14 @@ protocol (Javascript Object Signing and Encryption).")
 (define-public python-pycryptodome
   (package
     (name "python-pycryptodome")
-    (version "3.9.9")
+    (version "3.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pycryptodome" version))
        (sha256
         (base32
-         "1i4m74f88qj9ci8rpyzrbk2slmsdj5ipmwdkq6qk24byalm203li"))
+         "1l3a80z3lxcj1q0hzj1d3plavy2d51y4vzcd85zj0zm7yyxrd022"))
        (modules '((guix build utils)))
        (snippet pycryptodome-unbundle-tomcrypt-snippet)))
     (build-system python-build-system)
@@ -979,7 +979,7 @@ PyCryptodome variants, the other being python-pycryptodomex.")
        (method url-fetch)
        (uri (pypi-uri "pycryptodomex" version))
        (sha256
-        (base32 "0lbx4qk3xmwqiidhmkj8qa7bh2lf8bwzg0xjpsh2w5zqjrc7qnvv"))
+        (base32 "0vcd65ylri2a4pdqcc1897jasj7wfmqklj8x3pdynmdvark3d603"))
        (modules '((guix build utils)))
        (snippet pycryptodome-unbundle-tomcrypt-snippet)))
     (description
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index a670fd8de0..3da4853a5c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -237,14 +237,14 @@ Callback Hell.
 (define-public python-aiohttp-socks
   (package
     (name "python-aiohttp-socks")
-    (version "0.5.5")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "aiohttp_socks" version))
        (sha256
         (base32
-         "0jmhb0l1w8k1nishij3awd9zv8zbyb5l35a2pdalrqxxasbhbcif"))))
+         "04w010bvi719ifpc3sshav95k10hf9nq8czn9yglkj206yxcypdr"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-aiohttp" ,python-aiohttp)
@@ -828,13 +828,13 @@ follow links and submit forms.  It doesn’t do JavaScript.")
 (define-public python-hyperframe
   (package
     (name "python-hyperframe")
-    (version "5.2.0")
+    (version "6.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hyperframe" version))
        (sha256
-        (base32 "07xlf44l1cw0ghxx46sbmkgzil8vqv8kxwy42ywikiy35izw3xd9"))))
+        (base32 "055951gyhnjqpa2al52rj34g8yrls9inyn56n7nfkj0x4d300ldf"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -857,7 +857,7 @@ into HTTP/2 frames.")
 (define-public python-hpack
   (package
     (name "python-hpack")
-    (version "3.0.0")
+    (version "4.0.0")
     (source
      (origin
        ;; PyPI tarball is missing some files necessary for the tests.
@@ -867,7 +867,7 @@ into HTTP/2 frames.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0w8hkz50a6lzkmgi41ryicm0mh9ca9cx29pm3s0xlpn0vs29xrmd"))))
+        (base32 "11qdayvz5a8zlzdcdm37f2z1fgnl67pz6j8xj2dz5rfa5lds29yq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -876,10 +876,7 @@ into HTTP/2 frames.")
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
-               (invoke "pytest" "-vv" "test" "-k"
-                       ;; This test will be fixed in the next version. See:
-                       ;; https://github.com/python-hyper/hpack/issues/168.
-                       "not test_get_by_index_out_of_range")))))))
+               (invoke "pytest" "-vv" "test")))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (home-page "https://hyper.rtfd.org")
@@ -892,13 +889,13 @@ for use in Python programs that implement HTTP/2.")
 (define-public python-h11
   (package
     (name "python-h11")
-    (version "0.9.0")
+    (version "0.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "h11" version))
        (sha256
-        (base32 "1qfad70h59hya21vrzz8dqyyaiqhac0anl2dx3s3k80gpskvrm1k"))))
+        (base32 "0hk0nll6qazsambp3kl8cxxsbl4gv5y9252qadyk0jky0sv2q8j7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -921,13 +918,13 @@ and that could be anything you want.")
 (define-public python-h2
   (package
     (name "python-h2")
-    (version "3.2.0")
+    (version "4.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "h2" version))
        (sha256
-        (base32 "051gg30aca26rdxsmr9svwqm06pdz9bv21ch4n0lgi7jsvml2pw7"))))
+        (base32 "1fraip114fm1ha5w37pdc0sk8dn9pb0ck267zrwwpap7zc4clfm8"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -936,13 +933,14 @@ and that could be anything you want.")
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
-               (invoke "pytest" "-vv" "test")))))))
+               (invoke "python" "-m" "pytest" "-vv" "test")))))))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     `(("python-hypothesis" ,python-hypothesis-6.23)
+       ("python-pytest" ,python-pytest)))
     (propagated-inputs
      `(("python-hpack" ,python-hpack)
        ("python-hyperframe" ,python-hyperframe)))
-    (home-page "https://github.com/python-hyper/hyper-h2")
+    (home-page "https://github.com/python-hyper/h2")
     (synopsis "HTTP/2 State-Machine based protocol implementation")
     (description
      "This module contains a pure-Python implementation of a HTTP/2 protocol
@@ -6141,17 +6139,17 @@ your code non-blocking and speedy.")
 (define-public python-socks
   (package
     (name "python-socks")
-    (version "1.1.2")
+    (version "1.2.4")
     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "python-socks" version))
-        (sha256
-         (base32
-          "06mgv3icsyglv50w3sb71x6cpbskza20pqd93l5xk59x574i6xgs"))))
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-socks" version))
+       (sha256
+        (base32
+         "1n6xb18jy41ybgkmamakg6psp3qididd45qknxiggngaiibz43kx"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f  ; tests not included
+     `(#:tests? #f                      ; tests not included
        #:phases
        (modify-phases %standard-phases
          (replace 'check
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ff5b0f00e4..2dee3dca87 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -109,6 +109,7 @@
 ;;; Copyright © 2021 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
 ;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Sébastien Lerique <sl@eauchat.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -232,6 +233,83 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26))
 
+(define-public python-janus
+  (package
+    (name "python-janus")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "janus" version))
+       (sha256
+        (base32 "030xvl2vghi5ispfalhvch1rl6i2jsy5bf1dgjafa7vifppy04j7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "--cov=janus" "--cov=tests")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-asyncio" ,python-pytest-asyncio)))
+    (home-page "https://github.com/aio-libs/janus/")
+    (synopsis
+     "Sync-async queue to interoperate between asyncio tasks and classic threads")
+    (description
+     "Mixed sync-async queue, supposed to be used for communicating between
+classic synchronous (threaded) code and asynchronous (in terms of
+@url{https://docs.python.org/3/library/asyncio.html,asyncio}) one.  Like
+@url{https://en.wikipedia.org/wiki/Janus,Janus god} the queue object from the
+library has two faces: synchronous and asynchronous interface.  Synchronous is
+fully compatible with
+@url{https://docs.python.org/3/library/queue.html,standard queue},
+asynchronous one follows
+@url{https://docs.python.org/3/library/asyncio-queue.html,asyncio queue
+design}.")
+    (license license:asl2.0)))
+
+(define-public python-logbook
+  (package
+    (name "python-logbook")
+    (version "1.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Logbook" version))
+       (sha256
+        (base32 "1s1gyfw621vid7qqvhddq6c3z2895ci4lq3g0r1swvpml2nm9x36"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'cythonize-sources
+           (lambda _
+             (with-directory-excursion "logbook"
+               (invoke "cython" "_speedups.pyx"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Check cython build also
+               (setenv "CYBUILD" "True")
+               (invoke "pytest" "--cov=logbook" "-r" "s" "tests")))))))
+    (native-inputs
+     `(("python-cython" ,python-cython)
+       ("python-mock" ,python-mock)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-google-brotli" ,python-google-brotli)))
+    (home-page "https://github.com/getlogbook/logbook")
+    (synopsis "Logbook is a logging replacement for Python")
+    (description
+     "Logbook is a logging system for Python that replaces the standard
+library’s logging module.  It was designed with both complex and simple
+applications in mind and the idea to make logging fun.")
+    (license license:bsd-3)))
+
 (define-public python-ueberzug
   (package
     (name "python-ueberzug")
@@ -4334,7 +4412,7 @@ ecosystem, but can naturally be used also by other projects.")
 (define-public python-robotframework
   (package
     (name "python-robotframework")
-    (version "3.2.2")
+    (version "4.1.2")
     ;; There are no tests in the PyPI archive.
     (source
      (origin
@@ -4344,7 +4422,7 @@ ecosystem, but can naturally be used also by other projects.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0if0h3myb9m3hgmn1phrhq8pfp89kfqsaq32vmfdjkyjdj7y59ds"))
+        (base32 "0s6lakbd8h1pa4lfdj18sm13gpywszgpcns4hz026a4kam787kby"))
        (patches (search-patches
                  "python-robotframework-source-date-epoch.patch"))))
     (build-system python-build-system)
@@ -4358,8 +4436,7 @@ ecosystem, but can naturally be used also by other projects.")
                         (invoke "invoke" "library-docs" "all")
                         (mkdir-p doc)
                         (copy-recursively "doc/libraries"
-                                          (string-append doc "/libraries"))
-                        #t)))
+                                          (string-append doc "/libraries")))))
                   (replace 'check
                     (lambda* (#:key inputs #:allow-other-keys)
                       ;; Some tests require timezone data.  Otherwise, they
@@ -4373,7 +4450,9 @@ ecosystem, but can naturally be used also by other projects.")
 
                       (invoke "python" "utest/run.py"))))))
     (native-inputs
-     `(("python-invoke" ,python-invoke)
+     `(("python-docutils" ,python-docutils)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-invoke" ,python-invoke)
        ("python-rellu" ,python-rellu)
        ("python:tk" ,python "tk")             ;used when building the HTML doc
        ("tzdata" ,tzdata-for-tests)))
@@ -4425,7 +4504,7 @@ utility, a static analysis tool (linter) for Robot Framework source files.")
 (define-public python-robotframework-sshlibrary
   (package
     (name "python-robotframework-sshlibrary")
-    (version "3.3.0")
+    (version "3.7.0")
     ;; There are no tests in the PyPI archive.
     (source
      (origin
@@ -4436,7 +4515,7 @@ utility, a static analysis tool (linter) for Robot Framework source files.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1mk6dz2jqqndbx4yji09012q6rmadnqdywi7czvj62b0s07dr3r2"))))
+         "09ak22rh9qa9wlpvhkliyybcp4xafjhxsps28wz0pf0030771xav"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -4450,14 +4529,14 @@ utility, a static analysis tool (linter) for Robot Framework source files.")
                (invoke "invoke" "kw-docs" "project-docs")
                (mkdir-p doc)
                (for-each delete-file (find-files "docs" "\\.rst"))
-               (copy-recursively "docs" doc)
-               #t)))
+               (copy-recursively "docs" doc))))
          (replace 'check
-           (lambda _
-             ;; Some tests require an SSH server; we remove them.
-             (delete-file "utest/test_client_api.py")
-             (delete-file "utest/test_scp.py")
-             (invoke "python" "utest/run.py"))))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Some tests require an SSH server; we remove them.
+               (delete-file "utest/test_client_api.py")
+               (delete-file "utest/test_scp.py")
+               (invoke "python" "utest/run.py")))))))
     (propagated-inputs
      `(("python-robotframework" ,python-robotframework)
        ("python-paramiko" ,python-paramiko)
@@ -4483,6 +4562,94 @@ for SSH and SFTP.  It has the following main usages:
 @end itemize")
     (license license:asl2.0)))
 
+(define-public python-robotframework-pythonlibcore
+  (package
+    (name "python-robotframework-pythonlibcore")
+    (version "3.0.0")
+    (source
+     (origin
+       (method git-fetch)               ;no tests in pypi archive
+       (uri (git-reference
+             (url "https://github.com/robotframework/PythonLibCore")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0v89v8va65l6inh0fb34qgxawx6p29pnrmw4n5941yzdi3804rc4"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "utest/run.py")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("python-pytest-cov" ,python-pytest-cov)
+       ("python-pytest-mockito" ,python-pytest-mockito)
+       ("python-robotframework" ,python-robotframework)))
+    (home-page "https://github.com/robotframework/PythonLibCore")
+    (synopsis "Robot Framework Python library tools")
+    (description "PythonLibCore provides tools for creating larger test
+libraries for Robot Framework using Python.  The Robot Framework hybrid and
+dynamic library APIs give more flexibility for library than the static library
+API, but they also set requirements for libraries which need to be implemented
+in the library side.  PythonLibCore eases the problem by providing a simpler
+interface and by handling all the requirements towards the Robot Framework
+library APIs.")
+    (license license:asl2.0)))
+
+(define-public python-robotframework-seleniumlibrary
+  (package
+    (name "python-robotframework-seleniumlibrary")
+    (version "5.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "robotframework-seleniumlibrary" version))
+       (sha256
+        (base32 "1dihrbcid9i7daw2qy6h3xsvwaxzmyip820jw5z11n60qrl006pm"))))
+    (build-system python-build-system)
+    ;; XXX: Tests require ungoogled-chromium, but the chromium module would
+    ;; introduce a cycle if imported here.
+    (propagated-inputs
+     `(("python-robotframework" ,python-robotframework)
+       ("python-robotframework-pythonlibcore"
+        ,python-robotframework-pythonlibcore)
+       ("python-selenium" ,python-selenium)))
+    (home-page "https://github.com/robotframework/SeleniumLibrary")
+    (synopsis "Web testing library for Robot Framework")
+    (description "SeleniumLibrary is a web testing library for Robot Framework
+that utilizes the Selenium tool internally.")
+    (license license:asl2.0)))
+
+(define-public python-robotframework-seleniumscreenshots
+  (package
+    (name "python-robotframework-seleniumscreenshots")
+    (version "0.9.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "robotframework-seleniumscreenshots" version))
+       (sha256
+        (base32 "05qv323hvjmy62h33ryrjaa9k1hyvp8hq5qnj8j1x3ap2ci3q3s0"))))
+    (build-system python-build-system)
+    (arguments
+    ;; XXX: The tests require a relatively complicated setup configured in
+    ;; their CI with Nix (!).
+     `(#:tests? #f))
+    (propagated-inputs
+     `(("python-robotframework" ,python-robotframework)
+       ("python-robotframework-seleniumlibrary"
+        ,python-robotframework-seleniumlibrary)))
+    (home-page "https://github.com/MarketSquare/robotframework-seleniumscreenshots")
+    (synopsis "Robot Framework library for annotating and cropping screenshots")
+    (description "The SeleniumScreenshots library for Robot Framework provides
+keywords for annotating and cropping screenshots taken with SeleniumLibrary.
+It is useful for scripting automatically updated screenshots for documentation
+or for visual regression testing purposes.")
+    (license license:bsd-3)))
+
 (define-public python-rstr
   (package
    (name "python-rstr")
@@ -10685,13 +10852,13 @@ printing of sub-tables by specifying a row range.")
 (define-public python-curio
   (package
     (name "python-curio")
-    (version "1.2")
+    (version "1.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "curio" version))
        (sha256
-        (base32 "16wkww6kh511b9bzsfhpvrv0766cc6ssgbzz4lgpjnrzzgx21wwh"))))
+        (base32 "045wwg16qadsalhicbv21p14sj8i4w0l57639j7dmdqbb4p2225g"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -12338,6 +12505,17 @@ for atomic file system operations.")
 (define-public python2-atomicwrites
   (package-with-python2 python-atomicwrites))
 
+(define-public python-atomicwrites-1.4
+  (package
+    (inherit python-atomicwrites)
+    (version "1.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "atomicwrites" version))
+              (sha256
+               (base32
+                "0yla2svfhfqrcj8qbyqzx7wi4jy0dwcxvlkg0k3zjd54s5m3jw5f"))))))
+
 (define-public python-qstylizer
   (package
     (name "python-qstylizer")
@@ -14451,14 +14629,14 @@ development version of CPython that are not available in older releases.")
 (define-public python-future
   (package
     (name "python-future")
-    (version "0.17.1")
+    (version "0.18.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "future" version))
        (sha256
         (base32
-         "1f2rlqn9rh7adgir52dlbqz69gsab44x0mlm8gf1cs7xvhv54137"))))
+         "0zakvfj87gy6mn1nba06sdha63rn4njm7bhh0wzyrxhcny8avgmi"))))
     (build-system python-build-system)
     ;; Many tests connect to the network or are otherwise flawed.
     ;; https://github.com/PythonCharmers/python-future/issues/210
@@ -15630,14 +15808,29 @@ simple, lightweight implementation.")
 (define-public python-ukpostcodeparser
   (package
     (name "python-ukpostcodeparser")
-    (version "1.0.3")
+    (version "1.1.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "UkPostcodeParser" version))
               (sha256
                (base32
-                "1jwg9z4rz51mcka1821rwgycsd0mcicyp1kiwjfa2kvg8bm9p2qd"))))
+                "03jkf1ygbwq3akzbcjyjk1akc1hv2sfgx90306pq1nwklbpn80lk"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Tests for lowercase postcodes fail.
+               (invoke "pytest" "-vv" "ukpostcodeparser/test/parser.py" "-k"
+                       (string-append "not test_091 "
+                                      "and not test_097 "
+                                      "and not test_098 "
+                                      "and not test_125 "
+                                      "and not test_131"))))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/hamstah/ukpostcodeparser")
     (synopsis "UK Postcode parser for Python")
     (description
@@ -15650,37 +15843,37 @@ parsing UK postcodes.")
 
 (define-public python-faker
   (package
-  (name "python-faker")
-  (version "8.12.1")
-  (source (origin
-            (method url-fetch)
-            (uri (pypi-uri "Faker" version))
-            (sha256
-             (base32
-              "1f95g8adzdh97cbfq7j3482iy4yskbahhjma2cm2mrhrdmi5j241"))))
-  (build-system python-build-system)
-  (arguments
-   '(#:phases
-     (modify-phases %standard-phases
-       (replace 'check
-         (lambda _ (invoke "python" "-m" "pytest" "-v"))))))
-  (native-inputs
-   `(;; For testing
-     ("python-freezegun" ,python-freezegun)
-     ("python-pytest" ,python-pytest)
-     ("python-random2" ,python-random2)
-     ("python-ukpostcodeparser" ,python-ukpostcodeparser)
-     ("python-validators" ,python-validators)))
-  (propagated-inputs
-   `(("python-dateutil" ,python-dateutil)
-     ("python-text-unidecode" ,python-text-unidecode)))
-  (home-page "https://github.com/joke2k/faker")
-  (synopsis "Python package that generates fake data")
-  (description
-   "Faker is a Python package that generates fake data such as names,
+    (name "python-faker")
+    (version "9.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "Faker" version))
+              (sha256
+               (base32
+                "0lpfdc4ndvk7chgqrfd2b1my4n54pccq9b645vp9cp5s5ypyknfd"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _ (invoke "python" "-m" "pytest" "-v"))))))
+    (native-inputs
+     `( ;; For testing
+       ("python-freezegun" ,python-freezegun)
+       ("python-pytest" ,python-pytest-6)
+       ("python-random2" ,python-random2)
+       ("python-ukpostcodeparser" ,python-ukpostcodeparser)
+       ("python-validators" ,python-validators)))
+    (propagated-inputs
+     `(("python-dateutil" ,python-dateutil)
+       ("python-text-unidecode" ,python-text-unidecode)))
+    (home-page "https://github.com/joke2k/faker")
+    (synopsis "Python package that generates fake data")
+    (description
+     "Faker is a Python package that generates fake data such as names,
 addresses, and phone numbers.")
-  (license license:expat)
-  (properties `((python2-variant . ,(delay python2-faker))))))
+    (license license:expat)
+    (properties `((python2-variant . ,(delay python2-faker))))))
 
 ;; Faker 4.0 dropped Python 2 support, so we stick with this older version here.
 (define-public python2-faker
@@ -24550,19 +24743,40 @@ replacement for dictionaries where immutability is desired.")
 (define-public python-unpaddedbase64
   (package
     (name "python-unpaddedbase64")
-    (version "1.1.0")
+    (version "2.1.0")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/matrix-org/python-unpaddedbase64")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (pypi-uri "unpaddedbase64" version))
        (sha256
-        (base32
-         "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd"))))
+        (base32 "01ghlmw63fgslwj8j74vkpf1kqvr7a4agm6nyn89vqwx106ccwvj"))))
     (build-system python-build-system)
-    (home-page "https://pypi.org/project/unpaddedbase64/")
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs tests? #:allow-other-keys)
+             (when tests?
+               (copy-recursively (string-append
+                                  (assoc-ref inputs "tests") "/tests")
+                                 "tests")
+               (invoke "python" "-m" "pytest" "-vv")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("tests"
+        ;; The release on pypi comes without tests.  We can't build from this
+        ;; checkout, though, because installation requires an invocation of
+        ;; poetry.
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/matrix-org/python-unpaddedbase64")
+                 (commit (string-append "v" version))))
+           (file-name (git-file-name name version))
+           (sha256
+            (base32
+             "1n6har8pxv0mqb96lanzihp1xf76aa17jw3977drb1fgz947pnmz"))))))
+    (home-page "https://github.com/matrix-org/python-unpaddedbase64")
     (synopsis "Encode and decode Base64 without “=” padding")
     (description
      "RFC 4648 specifies that Base64 should be padded to a multiple of 4 bytes
@@ -27234,6 +27448,35 @@ location.  This small Python module determines the appropriate
 platform-specific directories, e.g. the ``user data dir''.")
     (license license:expat)))
 
+(define-public python-json2html
+  (package
+    (name "python-json2html")
+    (version "1.3.0")
+    (source
+     ;; There are no tests in the PyPI tarball.
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/softvar/json2html")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ncypljnl5y8lsxy6ibcqy412kx3mzxl4ajg67568hvq98kv1sb3"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "test/run_tests.py")))))))
+    (home-page "https://github.com/softvar/json2html")
+    (synopsis "Convert JSON to HTML table")
+    (description "@code{python-json2html} is a python module to convert JSON
+into a human readable HTML table representation.")
+    (license license:expat)))
+
 (define-public python-face
   (package
     (name "python-face")
@@ -27338,3 +27581,41 @@ and powerful way to handle real-world data, featuring:
      "This package provides the @code{python-box} Python module.
 It implements advanced Python dictionaries with dot notation access.")
     (license license:expat)))
+
+(define-public python-fields
+  (package
+    (name "python-fields")
+    (version "5.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "fields" version))
+        (sha256
+          (base32 "09sppvhhkhkv9zc9g994m53z15v92csxwcf42ggkaknlv01smm1i"))))
+    (build-system python-build-system)
+    (home-page "https://python-fields.readthedocs.io/")
+    (synopsis "Python container class boilerplate killer")
+    (description "Avoid repetetive boilerplate code in Python classes.")
+    (license license:bsd-3)))
+
+(define-public python-aspectlib
+  (package
+    (name "python-aspectlib")
+    (version "1.5.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "aspectlib" version))
+        (sha256
+          (base32 "1am4ycf292zbmgz791z393v63w7qrynf8q5p9db2wwf2qj1fqxfj"))))
+    (build-system python-build-system)
+    (propagated-inputs `(("python-fields" ,python-fields)))
+    (home-page "https://github.com/ionelmc/python-aspectlib")
+    (synopsis
+      "Python monkey-patching and decorators")
+    (description
+      "This package provides an aspect-oriented programming, monkey-patch
+and decorators library.  It is useful when changing behavior in existing
+code is desired.  It includes tools for debugging and testing:
+simple mock/record and a complete capture/replay framework.")
+    (license license:bsd-2)))
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 2b578d62b5..5d9c9d3438 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -837,7 +837,7 @@ satellites.")
 (define-public gqrx
   (package
     (name "gqrx")
-    (version "2.14.4")
+    (version "2.14.6")
     (source
      (origin
        (method git-fetch)
@@ -846,7 +846,7 @@ satellites.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0m4ncydihz4n4i80c252vk3c5v672yab1jv85n6ndn7a92xv3ilq"))))
+        (base32 "0gz875fbg0ffdi7icm0hqg0dz33hdfszi70b7cax1fcgq5fr1j8c"))))
     (build-system qt-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -2037,7 +2037,7 @@ voice formats.")
 (define-public sdrangel
   (package
     (name "sdrangel")
-    (version "6.16.1")
+    (version "6.17.1")
     (source
      (origin
        (method git-fetch)
@@ -2046,7 +2046,7 @@ voice formats.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0g9h4cy8k9dqlwkfk4lkk2d2s003bckzskm3vra87ndmgq1nfbzv"))))
+        (base32 "1yraif6dzs5sdskxnj937x613xz3zxnqim5mnk18vj2m0apcaqam"))))
     (build-system qt-build-system)
     (native-inputs
      `(("doxygen" ,doxygen)
@@ -2110,7 +2110,7 @@ various hardware.")
 (define-public sdr++
   (package
     (name "sdr++")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method git-fetch)
@@ -2119,7 +2119,7 @@ various hardware.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1mplhys07l4bqv3q301ayh35468mg0hpxp5zgrps7gkjyf3v6idr"))))
+        (base32 "1xwbz6yyca6wmzad5ykxw6i0r8jzc7i3jbzq7mhp8caiymd6knw3"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gcc" ,gcc-10) ; A GCC more recent than version 7 is required.
@@ -2367,7 +2367,7 @@ of devices than RTL-SDR.")
 (define-public gnss-sdr
   (package
     (name "gnss-sdr")
-    (version "0.0.14")
+    (version "0.0.15")
     (source
      (origin
        (method git-fetch)
@@ -2376,7 +2376,7 @@ of devices than RTL-SDR.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1kjh9bnf6h9q71bnn8nrwlc80wcnkib97ylzvb102acii4p0fm08"))))
+        (base32 "1m41rnlfr1nrzbg382jfsk5x0by2ym48v3innd2rbc6phd85q223"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)
@@ -2414,14 +2414,6 @@ of devices than RTL-SDR.")
                             (assoc-ref %build-inputs "googletest-source")))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             ;; Some tests fail to compile when the FILESYSTEM package is
-             ;; available, so we disable it (and the tests will use Boost
-             ;; Filesystem instead).
-             (substitute* "CMakeLists.txt"
-               (("find_package\\(FILESYSTEM COMPONENTS Final Experimental\\)")
-                ""))))
          (add-before 'check 'set-home
            (lambda _
              (setenv "HOME" "/tmp"))))))
diff --git a/gnu/packages/rpm.scm b/gnu/packages/rpm.scm
index 008ddd6fe7..a42e2eae8e 100644
--- a/gnu/packages/rpm.scm
+++ b/gnu/packages/rpm.scm
@@ -149,7 +149,7 @@ information on multiple streams, default data and translations).")
 (define-public createrepo-c
   (package
     (name "createrepo-c")
-    (version "0.17.4")
+    (version "0.17.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -158,7 +158,7 @@ information on multiple streams, default data and translations).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1fgf71mkhghgbp0pf2pazc7hyaix5igb5nl4fqsisjksfvzdfm5k"))))
+                "175na06mjyr8ws5pkknaicpziayj6p0xaanv62d54c6zxl4w484w"))))
     (build-system cmake-build-system)
     (arguments
      `(#:imported-modules (,@%cmake-build-system-modules
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 5304f90649..319cdee0ef 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -75,14 +75,14 @@
 (define-public ccid
   (package
     (name "ccid")
-    (version "1.4.34")
+    (version "1.4.36")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ccid.apdu.fr/files/ccid-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "02mlbpnsvy6jgwpz0jk5lh27y3cn2bsyz9xini7898m9b5dn9xz6"))))
+                "1ha9cwxkadx4rs4jj114qzh42qj02x6r8y1mvhcvijhvby4aqwrb"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "--enable-usbdropdir=" %output
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 9a364d0ade..70236d9e5c 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -292,7 +292,7 @@ are already there.")
 (define-public direnv
   (package
     (name "direnv")
-    (version "2.15.2")
+    (version "2.28.0")
     (source
      (origin (method git-fetch)
              (uri (git-reference
@@ -301,18 +301,12 @@ are already there.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "1y18619pmhfl0vrf4w0h75ybkkwgi9wcb7d9kv4n8drg1xp4aw4w"))))
+               "0yk53jn7wafklixclka17wyjjs2g5giigjr2bd0xzy10nrzwp7c9"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/direnv/direnv"
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'delete-vendor
-           (lambda _
-             ;; Using a snippet causes issues with the name of the directory,
-             ;; so delete the extra source code here.
-             (delete-file-recursively "src/github.com/direnv/direnv/vendor")
-             #t))
          (add-after 'install 'install-manpages
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -330,7 +324,9 @@ are already there.")
                  ;; The following file needs to be writable so it can be
                  ;; modified by the testsuite.
                  (make-file-writable "test/scenarios/base/.envrc")
-                 (invoke "make" "test")
+                 ;; We need to manually run test because make test
+                 ;; tries to use go modules
+                 (invoke "go" "test" "./...")
                  ;; Clean up from the tests, especially so that the extra
                  ;; direnv executable that's generated is removed.
                  (invoke "make" "clean")))
@@ -338,6 +334,8 @@ are already there.")
     (native-inputs
      `(("go-github-com-burntsushi-toml" ,go-github-com-burntsushi-toml)
        ("go-github-com-direnv-go-dotenv" ,go-github-com-direnv-go-dotenv)
+       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
+       ("go-golang-org-x-mod" ,go-golang-org-x-mod)
        ("which" ,which)))
     (home-page "https://direnv.net/")
     (synopsis "Environment switcher for the shell")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index fd60ef08d3..b7f3ddd953 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -1143,39 +1143,39 @@ derived from Mozilla's collection.")
       (license license:mpl2.0))))
 
 (define-public s2n
-  (package
-    (name "s2n")
-    (version "1.0.10")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url (string-append "https://github.com/awslabs/" name))
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0ampvh2n235hhd9nabgjjvja7d5r5kj45q56ass1k8g52a6xg0jq"))))
-    (build-system cmake-build-system)
-    (arguments
-     '(#:tests? #f                      ; tests fail to build for static library
-       #:configure-flags
-       '("-DBUILD_TESTING=OFF"
-         "-DBUILD_SHARED_LIBS=ON")))
-    (propagated-inputs
-     `(("openssl" ,openssl)
-       ("openssl:static" ,openssl "static")))
-    (synopsis "SSL/TLS implementation in C99")
-    (description
-     "This library provides a C99 implementation of SSL/TLS.  It is designed to
-be familiar to users of the widely-used POSIX I/O APIs.  It supports blocking,
-non-blocking, and full-duplex I/O.  There are no locks or mutexes.
+  (let* ((commit "7f43b102def1d52422f6c3e48d5cb3e6dd26c646")
+         (revision "1"))
+    (package
+      (name "s2n")
+      (version (git-version "1.0.10" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/aws/s2n-tls")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "06rqg0vcispi63cmcza9j7ix80l0w6wmbw81qlg4fq8l1lg9nyvl"))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:configure-flags
+         '("-DBUILD_SHARED_LIBS=ON")))
+      (propagated-inputs
+       `(("openssl" ,openssl)
+         ("openssl:static" ,openssl "static")))
+      (synopsis "SSL/TLS implementation in C99")
+      (description
+       "This library provides a C99 implementation of SSL/TLS.  It is designed
+to be familiar to users of the widely-used POSIX I/O APIs.  It supports
+blocking, non-blocking, and full-duplex I/O.  There are no locks or mutexes.
 
 As it can be difficult to keep track of which encryption algorithms and
 protocols are best to use, s2n-tls features a simple API to use the latest
 default set of preferences.  Remaining on a specific version for backwards
 compatibility is also supported.")
-    (home-page "https://github.com/awslabs/s2n")
-    (license license:asl2.0)))
+    (home-page "https://github.com/aws/s2n-tls")
+    (license license:asl2.0))))
 
 (define-public wolfssl
   (package
@@ -1207,3 +1207,30 @@ and DTLS 1.2, is up to 20 times smaller than OpenSSL, and offers progressive
 ciphers such as ChaCha20, Curve25519, NTRU, and Blake2b.")
     (home-page "https://www.wolfssl.com/")
     (license license:gpl2+))) ; Audit
+
+(define-public aws-lc
+  (let ((commit "d0a5455417d80e68581e197d95720c3fb25e3926")
+        (revision "0"))
+    (package
+      (name "aws-lc")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url (string-append "https://github.com/awslabs/" name))
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1ysj3x1f2lcdvwzyb9x3waykz1j7r21viv5z5vgc0ja9xv7znm9g"))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:tests? #f ; re-enable but with go and perl dependencies
+         #:configure-flags
+         '("-DBUILD_SHARED_LIBS=ON")))
+      (synopsis "General purpose cryptographic library")
+      (description "AWS libcrypto (aws-lc) contains portable C implementations
+of algorithms needed for TLS and common applications, and includes optimized
+assembly versions for x86 and ARM.")
+      (home-page "https://github.com/awslabs/aws-lc")
+      (license license:asl2.0))))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index d29319ad60..ef0fe869cd 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -41,6 +41,7 @@
 ;;; Copyright © 2021 François J. <francois-oss@avalenn.eu>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -179,14 +180,14 @@ as well as the classic centralized workflow.")
 (define-public git
   (package
    (name "git")
-   (version "2.33.0")
+   (version "2.33.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0kqcs8nj5h7rh3q86pw5777awq7gn77lgxk88ynjl1rfz2snlg5z"))))
+              "0bqz401dyp8wnjj3k5ahrniwk4dalndysqazzwdvv25hqbkacm70"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
@@ -206,7 +207,7 @@ as well as the classic centralized workflow.")
                 version ".tar.xz"))
           (sha256
            (base32
-            "0cdwqhj6yx3rlzvvfh0jamzjva9svd8kxmb5kqsp8nz47yz8mlyn"))))
+            "11xb0n1ckkm2g7r3sxsknkhsak739xg925zbz3aalv7mr7qijln7"))))
       ;; For subtree documentation.
       ("asciidoc" ,asciidoc)
       ("docbook-xsl" ,docbook-xsl)
@@ -1157,13 +1158,13 @@ allowing to handle large objects with a small memory footprint.")
 (define-public python-gitpython
   (package
     (name "python-gitpython")
-    (version "3.1.0")
+    (version "3.1.24")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "GitPython" version))
               (sha256
                (base32
-                "1jzllsy9lwc9yibccgv7h9naxisazx2n3zmpy21c8n5xhysw69p4"))))
+                "1rarp97cpjnhi106k2yhb7kygdyflmlgq0icxv3ggzl4wvszv0yz"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ;XXX: Tests can only be run within the GitPython repository.
@@ -1174,12 +1175,12 @@ allowing to handle large objects with a small memory footprint.")
                         (("git_exec_name = \"git\"")
                          (string-append "git_exec_name = \""
                                         (assoc-ref inputs "git")
-                                        "/bin/git\"")))
-                      #t)))))
+                                        "/bin/git\""))))))))
     (inputs
      `(("git" ,git)))
     (propagated-inputs
-     `(("python-gitdb" ,python-gitdb)))
+     `(("python-gitdb" ,python-gitdb)
+       ("python-typing-extensions" ,python-typing-extensions)))
     (native-inputs
      `(("python-ddt" ,python-ddt)
        ("python-nose" ,python-nose)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2830aaacd1..6cd2b156e1 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -827,7 +827,7 @@ television and DVD.  It is also known as AC-3.")
 (define-public libaom
   (package
     (name "libaom")
-    (version "3.1.2")
+    (version "3.1.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -836,7 +836,7 @@ television and DVD.  It is also known as AC-3.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c7yrhb56qj5c3lz54n1f9cbrvdr32g2yrrdiiy72sib8ycq9hz2"))))
+                "08rk31d2cp9k9nj37s6a4n7klpfqfbj62anwyiggzsz7b68psjq3"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("perl" ,perl)
@@ -3699,7 +3699,7 @@ supported players in addition to this package.")
 (define-public handbrake
   (package
     (name "handbrake")
-    (version "1.4.1")
+    (version "1.4.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/HandBrake/HandBrake/"
@@ -3707,7 +3707,7 @@ supported players in addition to this package.")
                                   "HandBrake-" version "-source.tar.bz2"))
               (sha256
                (base32
-                "1xhq9jjmf854jf7sg4m754hgajnavwwhmjnaikcf2vgjr35ax81r"))
+                "0qgvdpnjjvh9937cr0yry1lkz5fj6x9pz32fx7s80c9fvjvq33lb"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove "contrib" and source not necessary for
@@ -3720,8 +3720,7 @@ supported players in addition to this package.")
                     ;; (ffmpeg, libvpx, libdvdread, libdvdnav, and libbluray),
                     ;; which would lead to fetching and building of these
                     ;; libraries.  Use our own instead.
-                    (("MODULES \\+= contrib") "# MODULES += contrib"))
-                  #t))))
+                    (("MODULES \\+= contrib") "# MODULES += contrib"))))))
     (build-system  glib-or-gtk-build-system)
     (native-inputs
      `(("automake" ,automake)           ; GUI subpackage must be bootstrapped
@@ -3787,8 +3786,7 @@ supported players in addition to this package.")
          (add-before 'configure 'patch-SHELL
            (lambda _
              (substitute* "gtk/po/Makefile.in.in"
-               (("SHELL = /bin/sh") "SHELL = @SHELL@"))
-             #t))
+               (("SHELL = /bin/sh") "SHELL = @SHELL@"))))
          (add-before 'configure 'relax-reqs
            (lambda _
              (substitute* "make/configure.py"
@@ -3798,8 +3796,7 @@ supported players in addition to this package.")
                ;; and ninja are only needed for contrib/libdav1d, and nasm
                ;; only for libvpx
                (("((cmake|meson|ninja|nasm) *=.*abort=)True" _ &)
-                (string-append & "False")))
-             #t))
+                (string-append & "False")))))
          (replace 'configure
            (lambda* (#:key outputs configure-flags #:allow-other-keys)
              ;; 'configure' is not an autoconf-generated script, and
@@ -3810,7 +3807,7 @@ supported players in addition to this package.")
                       (string-append "--prefix=" out)
                       (or configure-flags '())))))
          (add-after 'configure 'chdir-build
-           (lambda _ (chdir "./build") #t)))))
+           (lambda _ (chdir "./build"))))))
     (home-page "https://handbrake.fr")
     (synopsis "Video transcoder")
     (description
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index f337e901e4..bd41800cbd 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -390,26 +390,26 @@ trouble using them, because you do not have to remember each snippet name.")
     (license license:expat))))
 
 (define-public vim-scheme
-  (let ((commit "93827987c10f2d5dc519166a761f219204926d5f")
-        (revision "1"))
+  (let ((commit "99af6befee8bc7d289a523064336474ae063cee3")
+        (revision "2"))
     (package
       (name "vim-scheme")
-      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "http://git.foldling.org/vim-scheme.git")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
-           "1ynjr1109dxgj0lz261gmzz3wf5ap1m6j6hnvl3lcyv66a4y8pjv"))))
+           "0w9hnsxg92f1wd83rra0ss07zla7p2r44whr9rqs70hc0xm8ygd6"))))
       (build-system copy-build-system)
       (arguments
        '(#:install-plan
-         '(("after" "share/vim/vimfiles/")
-           ("ftplugin" "share/vim/vimfiles/")
+         '(("ftplugin" "share/vim/vimfiles/")
+           ("indent" "share/vim/vimfiles/")
            ("syntax" "share/vim/vimfiles/"))))
       (synopsis "Scheme syntax for Vim")
       (description
@@ -1096,3 +1096,66 @@ to Lisp.")
 @code{Paredit.vim} is similar to @code{paredit.el} for Emacs.")
       ;; License listed in plugin/paredit.vim.
       (license license:public-domain))))
+
+(define-public vim-surround
+  (package
+    (name "vim-surround")
+    (version "2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/tpope/vim-surround")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1b0bd5m5lv1p4d299mrwjfs2gk0zqwyaqdaid9hs9yqlxnr8s5nf"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("doc" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/"))))
+    (home-page "https://github.com/tpope/vim-surround")
+    (synopsis "Vim plugin for easy quoting and parenthesizing")
+    (description
+     "Surround.vim is all about \"surroundings\": parentheses, brackets,
+quotes, XML tags, and more.  The plugin provides mappings to easily delete,
+change and add such surroundings in pairs.")
+    (license license:vim)))
+
+(define-public vim-ctrlp
+  (package
+    (name "vim-ctrlp")
+    (version "1.81")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/ctrlpvim/ctrlp.vim")
+              (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0n68hg59h4rjn0ziqbsh5pr03l3kr98zk54659ny6vq107af1w96"))))
+    (build-system copy-build-system)
+    (arguments
+     '(#:install-plan
+       '(("autoload" "share/vim/vimfiles/")
+         ("doc" "share/vim/vimfiles/")
+         ("plugin" "share/vim/vimfiles/"))))
+    (home-page "https://ctrlpvim.github.io/ctrlp.vim/")
+    (synopsis "Fuzzy file, buffer, mru, tag, etc. finder for Vim")
+    (description
+     "CtrlP features:
+@itemize
+@item Written in pure Vimscript for MacVim, gVim and Vim 7.0+.
+@item Full support for Vim's regexp as search patterns.
+@item Built-in @acronym{Most Recently Used, MRU} files monitoring and search.
+@item Built-in project's root finder.
+@item Open multiple files at once.
+@item Create new files and directories.
+@item Execute Ex commands on an opening file (jump to a line, to a string or do
+anything).
+@item Optional cross-session caching and history allow for fast initialization.
+@item Mappings and usage conform to Vim's conventions.
+@end itemize")
+    (license license:vim)))
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 77b2997142..ce5d6cfa6f 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1233,14 +1233,14 @@ pretty simple, REST API.")
 (define-public libvirt
   (package
     (name "libvirt")
-    (version "7.5.0")
+    (version "7.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://libvirt.org/sources/libvirt-"
                            version ".tar.xz"))
        (sha256
-        (base32 "15987ihnsjvcgi11dzcf1k3zp1si2d4wcxj0r0i30brc0d4pn44h"))
+        (base32 "0hb1fq0yx41n36c3n1a54b5p37n0m7abs917d76v7aqas03735lg"))
        (patches (search-patches "libvirt-add-install-prefix.patch"))))
     (build-system meson-build-system)
     (arguments
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 8cd75e7a08..89eb61007f 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -59,6 +59,7 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -697,7 +698,7 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
 (define-public lagrange
   (package
     (name "lagrange")
-    (version "1.5.2")
+    (version "1.7.2")
     (source
      (origin
        (method url-fetch)
@@ -705,7 +706,7 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
         (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
                        "download/v" version "/lagrange-" version ".tar.gz"))
        (sha256
-        (base32 "0gqaipgs16kw711ijhshmbhhvlyjvh37wxdz059p4vvjhfrxbr1v"))))
+        (base32 "1fr7p0pjli9clsgr0a1fp1pr119r9zqx43dvhc1g91bj742mxhfa"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #false                  ;no tests
@@ -713,7 +714,10 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("libunistring" ,libunistring)
+     `(("fribidi" ,fribidi)
+       ("harfbuzz" ,harfbuzz)
+       ("libunistring" ,libunistring)
+       ("libwebp" ,libwebp)
        ("mpg123" ,mpg123)
        ("openssl" ,openssl)
        ("pcre" ,pcre)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 507a804ca4..fc7a5ac7bc 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -7788,14 +7788,14 @@ HTTrack is fully configurable, and has an integrated help system.")
 (define-public buku
   (package
     (name "buku")
-    (version "4.5")
+    (version "4.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "buku" version))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bk3h2ya34a5livyf6p7kawh50ikbix5szsq2rkb8cp5bwrzsj5i"))))
+        (base32 "1n4d1mkjyvzdxbyq067p1p9skb3iwx0msd86nzr224dlqrfh9675"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ;FIXME: many tests need network access
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 5b920995c1..eb03b3637b 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -954,7 +954,7 @@ experience.")
 (define-public fnott
   (package
     (name "fnott")
-    (version "1.1.0")
+    (version "1.1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -963,7 +963,7 @@ experience.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xaz13iry3fdjhqk9xzg29kbv7hqj8dzzqxr5mhrj8f2m013jdc3"))))
+                "0vkwyci4z4jj2aczxkrmj0861j5jczjr8isasa7gml93nlvyw7gv"))))
     (build-system meson-build-system)
     (arguments `(#:build-type "release"))
     (native-inputs
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index aeaec8bc1b..53a97931da 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -51,6 +51,7 @@
 ;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me>
 ;;; Copyright © 2021 ikasero <ahmed@ikasero.com>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -263,7 +264,7 @@ used to further tweak the behaviour of the different profiles.")
 (define-public bemenu
   (package
     (name "bemenu")
-    (version "0.6.2")
+    (version "0.6.3")
     (source
      (origin
        (method git-fetch)
@@ -272,7 +273,7 @@ used to further tweak the behaviour of the different profiles.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13y4y3i03vdx3zkh4lm67xmigzycf8fxg4fdr5s4x2brr3ya46fv"))))
+        (base32 "03q26n796bjgz9q5pjx396rw5kyrdpn52dqi4v2bglnh7dy0r0jk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
@@ -2316,14 +2317,14 @@ temperature of the screen.")
 (define-public xsecurelock
   (package
     (name "xsecurelock")
-    (version "1.6.0")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/google/xsecurelock/releases"
                     "/download/v" version "/xsecurelock-" version ".tar.gz"))
               (sha256
-               (base32 "070gknyv0s5hz9hkc6v73m2v7ssyjwgl93b5hd4glayfqxqjbmdp"))))
+               (base32 "0s2q69g1xhvs18q2jhcval5vpa9j0kkrdv02r176vvxvdms7hhc7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 0bc744734e..04dd0b84db 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -407,7 +408,16 @@ decoding .opus files.")
                 "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     '(#:configure-flags '("--disable-static")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-multistream
+           ;; Opus include directory should be passed explicitly:
+           ;; https://github.com/xiph/opusfile/issues/10 however,
+           ;; opus_multistream.h still can't be found by the compiler.
+           (lambda _
+             (substitute* "include/opusfile.h"
+               (("opus_multistream\\.h") "opus/opus_multistream.h")))))))
     ;; Required by opusfile.pc and opusurl.pc.
     (propagated-inputs
      `(("libogg" ,libogg)
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index a3ae578af8..0735d777bd 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -898,7 +898,7 @@ the GNOME desktop environment.")
   (debug? gdm-configuration-debug? (default #f))
   (default-user gdm-configuration-default-user (default #f))
   (gnome-shell-assets gdm-configuration-gnome-shell-assets
-                      (default (list adwaita-icon-theme font-cantarell)))
+                      (default (list adwaita-icon-theme font-abattis-cantarell)))
   (xorg-configuration gdm-configuration-xorg
                       (default (xorg-configuration)))
   (x-session gdm-configuration-x-session
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index e976494d74..0794671ce4 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages less)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu services hurd)
@@ -67,7 +68,8 @@
   (list hurd bash coreutils file findutils grep sed
         diffutils patch gawk tar gzip bzip2 xz lzip
         guile-3.0-latest guile-colorized guile-readline
-        net-base inetutils less shadow shepherd sudo which))
+        net-base inetutils less shadow shepherd sudo which
+        info-reader))
 
 (define %base-services/hurd
   (list (service hurd-console-service-type
diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm
index 77f7ff5e2b..4c38c46a89 100644
--- a/gnu/system/images/hurd.scm
+++ b/gnu/system/images/hurd.scm
@@ -76,6 +76,7 @@
 (define hurd-disk-image
   (image
    (format 'disk-image)
+   (platform hurd)
    (partitions
     (list (partition
            (size 'guess)
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 98de4c8359..38785ae0bd 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
@@ -355,7 +355,7 @@ IMAGE, a disk image.  The QEMU VM has access to MEMORY-SIZE MiB of RAM."
                 (format #t "creating writable image from '~a'...~%" image)
                 (unless (zero? (system* #+(file-append qemu-minimal
                                                        "/bin/qemu-img")
-                                        "create" "-f" "qcow2"
+                                        "create" "-f" "qcow2" "-F" "qcow2"
                                         "-o"
                                         (string-append "backing_file=" image)
                                         "disk.img"))