Subject: [bug#62873] [PATCH] Merge branch 'master' into gnome-team.

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 15 Apr 2023 23:30:11 +0200

---
Note: master is at 7c7853d269fe53271dd35d5bd941d18a2cb55120 in this commit.

 NEWS                                                            |    3 +++
 doc/guix.texi                                                   |   38 +++++++++++++++++++-------------------
 gnu/local.mk                                                    |    9 +++++----
 gnu/packages/admin.scm                                          |   56 +++++++++++++++++++++++++++++++++++++-------------------
 gnu/packages/audio.scm                                          |   63 ++++-----------------------------------------------------------
 gnu/packages/benchmark.scm                                      |   41 ++++++++++++++++++++++++++++-------------
 gnu/packages/build-tools.scm                                    |    2 +-
 gnu/packages/c.scm                                              |   79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------
 gnu/packages/calendar.scm                                       |    4 ++--
 gnu/packages/cdrom.scm                                          |    1 +
 gnu/packages/certs.scm                                          |    4 ++--
 gnu/packages/check.scm                                          |   12 ++++++------
 gnu/packages/crates-graphics.scm                                |    7 +++++--
 gnu/packages/crates-io.scm                                      | 2489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 gnu/packages/databases.scm                                      |  112 ++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------
 gnu/packages/electronics.scm                                    |   22 +++++++++-------------
 gnu/packages/emulators.scm                                      |    5 +++--
 gnu/packages/fonts.scm                                          |   60 ++++++++++++++++++++++++++++++++----------------------------
 gnu/packages/fontutils.scm                                      |   77 +++++++++++++++++++++++++++++++----------------------------------------------
 gnu/packages/freedesktop.scm                                    |  340 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 gnu/packages/games.scm                                          |    8 ++++----
 gnu/packages/gl.scm                                             |   23 +++++++++++++----------
 gnu/packages/gnome.scm                                          |   20 +++++++++++---------
 gnu/packages/gnunet.scm                                         |  151 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------
 gnu/packages/gnuzilla.scm                                       |  183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 gnu/packages/golang.scm                                         |    6 +++---
 gnu/packages/graphics.scm                                       |  163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------
 gnu/packages/gstreamer.scm                                      |   91 ++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------
 gnu/packages/ibus.scm                                           |   32 ++++++++++++++++++++------------
 gnu/packages/image.scm                                          |    4 ++--
 gnu/packages/jami.scm                                           |   70 +++++++++++++++++++---------------------------------------------------
 gnu/packages/kde-frameworks.scm                                 |   14 ++++++--------
 gnu/packages/less.scm                                           |    5 +++--
 gnu/packages/libcanberra.scm                                    |    6 ------
 gnu/packages/linux.scm                                          |   20 ++++++++++----------
 gnu/packages/lisp-xyz.scm                                       |    8 ++++----
 gnu/packages/lisp.scm                                           |   15 +++++++--------
 gnu/packages/man.scm                                            |    4 ++--
 gnu/packages/maths.scm                                          |   44 ++++++++++++++++++++++++++++++--------------
 gnu/packages/minetest.scm                                       |    9 +++++----
 gnu/packages/music.scm                                          |   97 +++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------
 gnu/packages/nss.scm                                            |   10 +++++-----
 gnu/packages/package-management.scm                             |    6 +++---
 gnu/packages/patches/glslang-install-static-libs.patch          |   61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/patches/jami-libjami-headers-search.patch          |   45 ++++++++++++---------------------------------
 gnu/packages/patches/libcdio-glibc-compat.patch                 |   43 +++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/patches/mariadb-link-libatomic.patch               |   83 -----------------------------------------------------------------------------------
 gnu/packages/patches/openboardview-use-system-mpc.patch         |   42 ++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/patches/openboardview-use-system-utf8.patch        |   48 ------------------------------------------------
 gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch        |   25 +++++++++++++++++++++++++
 gnu/packages/patches/python-afdko-suppress-copyright-test.patch |   20 --------------------
 gnu/packages/patches/python2-pyopenssl-openssl-compat.patch     |   51 ---------------------------------------------------
 gnu/packages/patches/rust-openssl-sys-no-vendor.patch           |   30 ++++++++++++++++++------------
 gnu/packages/patches/webkitgtk-libelogind.patch                 |   38 ++++++++++++++++++++++++++++++++++++++
 gnu/packages/perl-check.scm                                     |    4 ++--
 gnu/packages/perl.scm                                           |    4 ++--
 gnu/packages/photo.scm                                          |    6 ++----
 gnu/packages/python-check.scm                                   |    9 ++++-----
 gnu/packages/python-compression.scm                             |   16 +++++++---------
 gnu/packages/python-crypto.scm                                  |  278 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 gnu/packages/python-web.scm                                     |   17 ++++++++---------
 gnu/packages/python-xyz.scm                                     |  106 +++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------
 gnu/packages/qt.scm                                             | 1193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 gnu/packages/radio.scm                                          |   84 +++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
 gnu/packages/rails.scm                                          |    6 ++++++
 gnu/packages/ruby.scm                                           |   22 ++++++++++++++--------
 gnu/packages/rust-apps.scm                                      |   24 +++++++++++++++++++-----
 gnu/packages/sdl.scm                                            |   82 +++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
 gnu/packages/sphinx.scm                                         |   31 ++++++++++++++++++++-----------
 gnu/packages/syndication.scm                                    |    6 +++---
 gnu/packages/telephony.scm                                      |   11 +++++++----
 gnu/packages/toolkits.scm                                       |   58 +++++++++++++++++++++++++++++++++++++++++-----------------
 gnu/packages/unicode.scm                                        |   18 ++----------------
 gnu/packages/version-control.scm                                |    4 ++++
 gnu/packages/video.scm                                          |  102 +++++++++++++++++++++++++++++++++---------------------------------------------------------------------
 gnu/packages/vulkan.scm                                         |  258 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
 gnu/packages/web.scm                                            |   18 ++++++++++--------
 gnu/packages/webkit.scm                                         |   60 +++++++++++++++++++++++++++++++-----------------------------
 gnu/packages/xdisorg.scm                                        |   63 +++++++++++++++------------------------------------------------
 gnu/packages/xiph.scm                                           |    8 ++++----
 gnu/packages/xorg.scm                                           |  212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------
 gnu/tests/databases.scm                                         |    6 +++++-
 guix/build/qt-utils.scm                                         |    5 ++---
 83 files changed, 4422 insertions(+), 3188 deletions(-)
 create mode 100644 gnu/packages/patches/glslang-install-static-libs.patch
 create mode 100644 gnu/packages/patches/libcdio-glibc-compat.patch
 delete mode 100644 gnu/packages/patches/mariadb-link-libatomic.patch
 create mode 100644 gnu/packages/patches/openboardview-use-system-mpc.patch
 delete mode 100644 gnu/packages/patches/openboardview-use-system-utf8.patch
 create mode 100644 gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch
 delete mode 100644 gnu/packages/patches/python-afdko-suppress-copyright-test.patch
 delete mode 100644 gnu/packages/patches/python2-pyopenssl-openssl-compat.patch
 create mode 100644 gnu/packages/patches/webkitgtk-libelogind.patch

diff --git a/NEWS b/NEWS
index 47545f6..79c80cf 100644
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,9 @@ Copyright © 2022 Mathieu Othacehe <[email-masked]>
 
 Please send Guix bug reports to [email-masked].
 
+* Changes in 1.5.0 (since 1.4.0)
+** Package management
+*** New ‘rpm’ format for the ‘guix pack’ command
 * Changes in 1.4.0 (since 1.3.0)
 ** Package management
 *** New ‘guix home’ command, for home environment management
diff --git a/doc/guix.texi b/doc/guix.texi
index acb6f0c..adb1975 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14398,7 +14398,7 @@ for compatibility with an upgraded @code{flex} package.
 @table @code
 
 @item --list-transitive
-@itemx --T
+@itemx -T
 List all the packages which one or more packages depend upon.
 
 @example
@@ -18464,7 +18464,7 @@ The Kmscon package to use.
 @cindex @abbr{nscd, name service cache daemon}
 @defvar nscd-service-type
 Type of the service that runs the libc @abbr{nscd, name service cache
-daemon}, whose value is a @code{<nscd-configuration>} object.
+daemon}, whose value is an @code{<nscd-configuration>} object.
 
 For convenience, the Shepherd service for nscd provides the following actions:
 
@@ -18992,7 +18992,7 @@ seconds for the negative lookups.  @xref{Invoking guix publish,
 @end deftp
 
 @defvar rngd-service-type
-Type of the service that runs rng-tools rngd, whose value is a
+Type of the service that runs rng-tools rngd, whose value is an
 @code{<rngd-configuration>} object.
 @end defvar
 
@@ -26315,7 +26315,7 @@ variables.
 
 @defvar getmail-service-type
 This is the type of the @uref{http://pyropus.ca/software/getmail/, Getmail}
-mail retriever, whose value should be an @code{getmail-configuration}.
+mail retriever, whose value should be a @code{getmail-configuration}.
 @end defvar
 
 Available @code{getmail-configuration} fields are:
@@ -31520,7 +31520,7 @@ The list of knot-zone-configuration used by this configuration.
 
 @defvar knot-resolver-service-type
 This is the type of the knot resolver service, whose value should be
-an @code{knot-resolver-configuration} object as in this example:
+a @code{knot-resolver-configuration} object as in this example:
 
 @lisp
 (service knot-resolver-service-type
@@ -31557,7 +31557,7 @@ Number of milliseconds for @code{kres-cache-gc} to periodically trim the cache.
 @subsubheading Dnsmasq Service
 
 @defvar dnsmasq-service-type
-This is the type of the dnsmasq service, whose value should be an
+This is the type of the dnsmasq service, whose value should be a
 @code{dnsmasq-configuration} object as in this example:
 
 @lisp
@@ -37570,7 +37570,7 @@ on whatever else might be trying to use the disk at the time.
 
 @defvar fstrim-service-type
 Type for a service that periodically runs @command{fstrim}, whose value must
-be a @code{<fstrim-configuration>} object.  The service can be instantiated
+be an @code{<fstrim-configuration>} object.  The service can be instantiated
 in its default configuration with:
 
 @lisp
@@ -42313,7 +42313,7 @@ for home services is that they have to be declared in a
 record.
 
 @defvar home-mcron-service-type
-This is the type of the @code{mcron} home service, whose value is an
+This is the type of the @code{mcron} home service, whose value is a
 @code{home-mcron-configuration} object.  It allows to manage scheduled
 tasks.
 
@@ -42661,16 +42661,16 @@ to the @code{services} field of your @code{home-environment}:
 @end lisp
 
 @defvar home-ssh-agent-service-type
-This is the type of the @code{git daemon} home service, whose value is an
+This is the type of the @code{ssh-agent} home service, whose value is a
 @code{home-ssh-agent-configuration} object.
 @end defvar
 
 @deftp {Data Type} home-ssh-agent-configuration
 Available @code{home-ssh-agent-configuration} fields are:
 
 @table @asis
-@item @code{git} (default: @code{git}) (type: file-like)
-The git package to use.
+@item @code{openssh} (default: @code{openssh}) (type: file-like)
+The OpenSSH package to use.
 
 @item @code{socket-directory} (default: @code{@env{XDG_RUNTIME_DIR}/ssh-agent"}) (type: gexp)
 The directory to write the ssh-agent's @file{socket} file.
@@ -43100,16 +43100,16 @@ to the @code{services} field of your @code{home-environment}:
 @end lisp
 
 @defvar home-znc-service-type
-This is the type of the @code{git daemon} home service, whose value is an
+This is the type of the ZNC home service, whose value is a
 @code{home-znc-configuration} object.
 @end defvar
 
 @deftp {Data Type} home-znc-configuration
 Available @code{home-znc-configuration} fields are:
 
 @table @asis
-@item @code{git} (default: @code{git}) (type: file-like)
-The git package to use.
+@item @code{znc} (default: @code{znc}) (type: file-like)
+The ZNC package to use.
 
 @item @code{extra-options} (default: @code{'()})
 Extra options will be passed to @command{znc}, please run @command{man
@@ -43122,9 +43122,9 @@ znc} for more information.
 @subsection Media Home Services
 
 @cindex kodi
-The @uref{https://kodi.tv, KODI media center} can be run as a daemon on
+The @uref{https://kodi.tv, Kodi media center} can be run as a daemon on
 a media server.  With the @code{(gnu home services kodi)} service, you
-can configure KODI to run upon login.
+can configure Kodi to run upon login.
 
 Here is an example of a service and its configuration that you could add
 to the @code{services} field of your @code{home-environment}:
@@ -43136,16 +43136,16 @@ to the @code{services} field of your @code{home-environment}:
 @end lisp
 
 @defvar home-kodi-service-type
-This is the type of the @code{git daemon} home service, whose value is an
+This is the type of the Kodi home service, whose value is a
 @code{home-kodi-configuration} object.
 @end defvar
 
 @deftp {Data Type} home-kodi-configuration
 Available @code{home-kodi-configuration} fields are:
 
 @table @asis
-@item @code{git} (default: @code{git}) (type: file-like)
-The git package to use.
+@item @code{kodi} (default: @code{kodi}) (type: file-like)
+The Kodi package to use.
 
 @item @code{extra-options} (default: @code{'()})
 Extra options will be passed to @command{kodi}, please run @command{man
diff --git a/gnu/local.mk b/gnu/local.mk
index 4590508..72b7376 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1249,6 +1249,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-2.29-supported-locales.patch     	\
   %D%/packages/patches/glibc-static-nss.patch			\
   %D%/packages/patches/glibc-supported-locales.patch     	\
+  %D%/packages/patches/glslang-install-static-libs.patch     	\
   %D%/packages/patches/gmp-arm-asm-nothumb.patch		\
   %D%/packages/patches/gmp-faulty-test.patch			\
   %D%/packages/patches/gnash-fix-giflib-version.patch	        \
@@ -1490,6 +1491,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/lierolibre-newer-libconfig.patch		\
   %D%/packages/patches/lierolibre-remove-arch-warning.patch	\
   %D%/packages/patches/lierolibre-try-building-other-arch.patch	\
+  %D%/packages/patches/libcdio-glibc-compat.patch		\
   %D%/packages/patches/linbox-fix-pkgconfig.patch		\
   %D%/packages/patches/linphone-desktop-without-sdk.patch	\
   %D%/packages/patches/linux-libre-infodocs-target.patch	\
@@ -1522,7 +1524,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/lvm2-static-link.patch			\
   %D%/packages/patches/mailutils-variable-lookup.patch		\
   %D%/packages/patches/make-impure-dirs.patch			\
-  %D%/packages/patches/mariadb-link-libatomic.patch		\
   %D%/packages/patches/mars-install.patch			\
   %D%/packages/patches/mars-sfml-2.3.patch			\
   %D%/packages/patches/mathjax-disable-webpack.patch			\
@@ -1616,7 +1617,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/onnx-skip-model-downloads.patch		\
   %D%/packages/patches/openbios-aarch64-riscv64-support.patch	\
   %D%/packages/patches/openboardview-use-system-imgui.patch	\
-  %D%/packages/patches/openboardview-use-system-utf8.patch	\
+  %D%/packages/patches/openboardview-use-system-mpc.patch	\
   %D%/packages/patches/openbox-python3.patch			\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
@@ -1631,6 +1632,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/openssl-3.0-c-rehash-in.patch		\
   %D%/packages/patches/opentaxsolver-file-browser-fix.patch     \
   %D%/packages/patches/open-zwave-hidapi.patch			\
+  %D%/packages/patches/orangeduck-mpc-fix-pkg-config.patch	\
   %D%/packages/patches/orpheus-cast-errors-and-includes.patch	\
   %D%/packages/patches/osip-CVE-2017-7853.patch			\
   %D%/packages/patches/ots-no-include-missing-file.patch	\
@@ -1731,7 +1733,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-3-fix-tests.patch			\
   %D%/packages/patches/python-3-hurd-configure.patch		\
   %D%/packages/patches/python-3-no-static-lib.patch		\
-  %D%/packages/patches/python-afdko-suppress-copyright-test.patch	\
   %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch	\
   %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch	\
   %D%/packages/patches/python-cross-compile.patch		\
@@ -1753,7 +1754,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-pillow-CVE-2022-45199.patch	\
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
   %D%/packages/patches/python-pyflakes-test-location.patch	\
-  %D%/packages/patches/python2-pyopenssl-openssl-compat.patch	\
   %D%/packages/patches/python-flint-includes.patch		\
   %D%/packages/patches/python-libxml2-utf8.patch		\
   %D%/packages/patches/python-magic-python-bytecode.patch	\
@@ -2004,6 +2004,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
   %D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch	\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
+  %D%/packages/patches/webkitgtk-libelogind.patch			\
   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
   %D%/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch   \
   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c974a1d..1c2b212 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -35,7 +35,7 @@
 ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <[email-masked]>
 ;;; Copyright © 2020 Vincent Legoll <[email-masked]>
 ;;; Copyright © 2020 Morgan Smith <[email-masked]>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Zheng Junjie <[email-masked]>
 ;;; Copyright © 2021 Stefan Reichör <[email-masked]>
 ;;; Copyright © 2021 qblade <[email-masked]>
@@ -2795,13 +2795,13 @@ specified directories.")
 (define-public ansible-core
   (package
     (name "ansible-core")
-    (version "2.11.6")
+    (version "2.14.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible-core" version))
        (sha256
-        (base32 "0fih7nxszni8imi5sywsifd976v77ydhip43pzg7dd65qy1h5mck"))))
+        (base32 "057g87smxcn6zc558xk4zr6ga4q8clmkyxghn5gx60a94sy61clh"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((guix build python-build-system)
@@ -2837,10 +2837,25 @@ sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
                                (and (eq? 'symlink (stat:type (lstat x)))
                                     (string-prefix? "ansible-" x)
                                     (string=? "ansible" (readlink x)))))))))
+         (add-after 'unpack 'skip-controller-tests
+           (lambda _
+             ;; XXX: This disables all the controller tests, which fail for
+             ;; unknown reasons, seemingly while attempting to set the
+             ;; locale to en_US.UTF-8.
+             (substitute* "test/lib/ansible_test/_internal/commands\
+/units/__init__.py"
+               (("^            if test_context == TestContext.controller:.*"
+                 all)
+                (string-append all "                continue\n")))))
          (add-after 'unpack 'preserve-pythonpath
            (lambda _
              (substitute* "test/lib/ansible_test/_internal/ansible_util.py"
                (("PYTHONPATH=get_ansible_python_path\\(args\\)" all)
+                (string-append all "+ ':' + os.environ['GUIX_PYTHONPATH']")))
+             (substitute* "test/lib/ansible_test/_internal/commands\
+/units/__init__.py"
+               (("PYTHONPATH=get_units_ansible_python_path\\(args, \
+test_context)" all)
                 (string-append all "+ ':' + os.environ['GUIX_PYTHONPATH']")))))
          (add-after 'unpack 'patch-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -2852,31 +2867,35 @@ sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
                (("/usr/bin/python")
                 (which "python")))))
          (replace 'check
-           ;; The environment for the test suite can be tricky to get right.
-           ;; The environment used for Ansible's CI defined in the following
-           ;; Dockerfile can be used as a reference:
-           ;; https://raw.githubusercontent.com/ansible/
-           ;; default-test-container/master/Dockerfile.
            (lambda* (#:key inputs outputs tests? #:allow-other-keys)
              (when tests?
                ;; Otherwise Ansible fails to create its config directory.
                (setenv "HOME" "/tmp")
-               (setenv "PATH" (string-append (getenv "PATH") ":"
-                                             (assoc-ref outputs "out") "/bin"))
-               (add-installed-pythonpath inputs outputs)
                ;; This test module messes up with sys.path and causes many
                ;; test failures.
                (delete-file "test/units/_vendor/test_vendor.py")
                ;; The test fails when run in the container, for reasons
                ;; unknown.
                (delete-file "test/units/utils/test_display.py")
                ;; This test fail for reasons unknown.
                (delete-file "test/units/cli/test_adhoc.py")
+               ;; These tests fail in the container; it appears that the
+               ;; mocking of the absolute file names such as /usr/bin/svcs do
+               ;; not work as intended there.
+               (delete-file "test/units/modules/test_iptables.py")
+               (delete-file "test/units/modules/test_service.py")
+               ;; These tests fail with a "unsupported locale setting" error
+               ;; when invoking 'locale.setlocale(locale.LC_ALL, '')'
+               (delete-file "test/units/module_utils/basic/\
+test_command_nonexisting.py")
+               (delete-file "test/units/module_utils/basic/test_tmpdir.py")
                ;; The test suite needs to be run with 'ansible-test', which
                ;; does some extra environment setup.  Taken from
                ;; https://raw.githubusercontent.com/ansible/ansible/\
                ;; devel/test/utils/shippable/shippable.sh.
-               (invoke "ansible-test" "units" "-v")))))))
+               (invoke "ansible-test" "units" "-v"
+                       "--num-workers" (number->string
+                                        (parallel-job-count)))))))))
     (native-inputs
      (list openssh
            openssl
@@ -2894,7 +2913,7 @@ sys.argv[0] = re.sub(r'\\.([^/]*)-real$', r'\\1', sys.argv[0])
      (list python-cryptography
            python-jinja2
            python-pyyaml
-           python-packaging ;for version number parsing
+           python-packaging             ;for version number parsing
            python-resolvelib-0.5))
     (home-page "https://www.ansible.com/")
     (synopsis "Radically simple IT automation")
@@ -2922,16 +2941,15 @@ provides the following commands:
 (define-public ansible
   (package
     (name "ansible")
-    (version "4.7.0")
+    (version "7.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
-        (base32 "0aab9id6dqfw2111r731c7y1p77dpzczynmgl4d989p3a7n54z0b"))))
+        (base32 "142barhwz0wx5kn74xi0bfl21iwq2yq3jp14kxajsg9nggndcr09"))))
     (build-system python-build-system)
-    (propagated-inputs
-     (list ansible-core))
+    (propagated-inputs (list ansible-core))
     ;; The Ansible collections are found by ansible-core via the Python search
     ;; path; the following search path ensures that they are found even when
     ;; Python is not present in the profile.
@@ -3568,15 +3586,15 @@ produce uniform output across heterogeneous networks.")
 (define-public cbatticon
   (package
     (name "cbatticon")
-    (version "1.6.10")
+    (version "1.6.13")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/valr/cbatticon")
              (commit version)))
        (sha256
-        (base32 "0ivm2dzhsa9ir25ry418r2qg2llby9j7a6m3arbvq5c3kaj8m9jr"))
+        (base32 "1xs37xrycvk0021r5l3xs4ijgf3lm25d2zhm8dppb5kx66xcj22m"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index cf7fcd8..220e0b8 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2062,16 +2062,16 @@ follower.")
 (define-public fluidsynth
   (package
     (name "fluidsynth")
-    (version "2.2.4")
+    (version "2.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/FluidSynth/fluidsynth")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1061rdj69503spkd8vmfl3fqvyg4l41k5xcc4gw7niy31hnpnjmn"))))
+                "05lr9f0q4x1kvgfa3xrfmagpwvijv9m1s316aa9figqlkcc5vv4k"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ; no check target
@@ -2092,7 +2092,6 @@ follower.")
      (list alsa-lib
            glib
            jack-1
-           lash
            libsndfile
            readline))
     (home-page "https://www.fluidsynth.org/")
@@ -2747,60 +2746,6 @@ plugin function as a JACK application.")
 to be plugged into a wide range of audio synthesis and recording packages.")
     (license license:lgpl2.1+)))
 
-(define-public lash
-  (package
-    (name "lash")
-    (version "0.6.0-rc2")
-    (source (origin
-              (method url-fetch)
-              ;; The tilde is not permitted in the builder name, but is used
-              ;; in the tarball.
-              (uri (string-append
-                    "mirror://savannah/lash/lash-"
-                    (string-join (string-split version #\-) "~")
-                    ".tar.bz2"))
-              (file-name (string-append name "-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(;; Glibc no longer includes Sun RPC support, so tell the build system
-       ;; to use libtirpc instead.
-       #:make-flags (list (string-append "CFLAGS=-I"
-                                         (assoc-ref %build-inputs "libtirpc")
-                                         "/include/tirpc -ltirpc"))
-       #:phases
-       (modify-phases %standard-phases
-         ;; lashd embeds an ancient version of sigsegv so we just skip it
-         (add-after 'unpack 'skip-lashd
-           (lambda _
-             (substitute* '("Makefile.am" "Makefile.in")
-               (("lashd ") ""))
-             #t)))
-       #:configure-flags '("--disable-static")))
-    (inputs
-     `(("bdb" ,bdb)
-       ("gtk" ,gtk+-2)
-       ("jack" ,jack-1)
-       ("libtirpc" ,libtirpc)
-       ("readline" ,readline)
-       ("python" ,python-2)))
-    ;; According to pkg-config, packages depending on lash also need to have
-    ;; at least the following packages declared as inputs.
-    (propagated-inputs
-     (list alsa-lib dbus libxml2))
-    (native-inputs
-     (list pkg-config))
-    (home-page "https://www.nongnu.org/lash/")
-    (synopsis "Audio application session manager")
-    (description
-     "LASH is a session management system for audio applications.  It allows
-you to save and restore audio sessions consisting of multiple interconneced
-applications, restoring program state (i.e. loaded patches) and the
-connections between them.")
-    (license license:gpl2+)))
-
 (define-public libbs2b
   (package
     (name "libbs2b")
@@ -3313,15 +3258,15 @@ lv2-c++-tools.")
 (define-public openal
   (package
     (name "openal")
-    (version "1.20.1")
+    (version "1.22.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://openal-soft.org/openal-releases/openal-soft-"
                     version ".tar.bz2"))
               (sha256
                (base32
-                "0vax0b1lgd4212bpxa1rciz52d4mv3dkfvcbbhzw4cjp698v1kmn"))))
+                "081xgkma2a19dscwx21xdpklh8gq399w4f1fx737qsx7rnawr55f"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f  ; no check target
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index fd8513f..0cc8def 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2019, 2021 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2020 Vincent Legoll <[email-masked]>
 ;;; Copyright © 2020 malte Frank Gerdes <[email-masked]>
-;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2020 Greg Hogan <[email-masked]>
 ;;; Copyright © 2021 Arun Isaac <[email-masked]>
 ;;; Copyright © 2022 Tomasz Jeneralczyk <[email-masked]>
@@ -382,39 +382,55 @@ setup against another one.")
 (define-public python-locust
   (package
     (name "python-locust")
-    (version "2.8.6")
+    (version "2.15.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "locust" version))
        (sha256
         (base32
-         "1gn13j758j36knlcdyyyggn60rpw98iqdkvl3kjsz34brysic6q1"))))
+         "05cznfqda0yq2j351jjdssayvj5qc11xkbkwdvv81hcmz4xpyc56"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'relax-requirements
+         (add-before 'check 'increase-resource-limits
            (lambda _
-             (substitute* "setup.py"
-               (("setuptools_scm<=6.0.1")
-                "setuptools_scm")
-               (("Jinja2<3.1.0")
-                "Jinja2"))))
+             ;; XXX: Copied from ungoogled-chromium.
+             ;; Try increasing the soft resource limit of max open files to 2048,
+             ;; or equal to the hard limit, whichever is lower.
+             (call-with-values (lambda () (getrlimit 'nofile))
+               (lambda (soft hard)
+                 (when (and soft (< soft 2048))
+                   (if hard
+                       (setrlimit 'nofile (min hard 2048) hard)
+                       (setrlimit 'nofile 2048 #f))
+                   (format #t
+                           "increased maximum number of open files from ~d to ~d~%"
+                           soft (if hard (min hard 2048) 2048)))))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (invoke "python" "-m" "pytest" "locust"
                        "-k" (string-join
-                             '(;; These tests return "non-zero exit status 1".
+                             '( ;; These tests return "non-zero exit status 1".
                                "not test_default_headless_spawn_options"
                                "not test_default_headless_spawn_options_with_shape"
                                "not test_headless_spawn_options_wo_run_time"
+                               ;; These tests fail with a HTTP return code of
+                               ;; 500 instead of 200, for unknown reasons.
+                               "not test_autostart_mutliple_locustfiles_with_shape"
+                               "not test_autostart_w_load_shape"
+                               "not test_autostart_wo_run_time"
+                               "not test_percentile_parameter"
                                ;; These tests depend on networking.
                                "not test_html_report_option"
+                               "not test_json_schema"
                                "not test_web_options"
-                               ;; This test fails because of the warning "System open
-                               ;; file limit '1024' is below minimum setting '10000'".
+                               ;; These tests fail because of the warning
+                               ;; "System open file limit '1024' is below
+                               ;; minimum setting '10000'".
+                               "not test_autostart_w_run_time"
                                "not test_skip_logging"
                                ;; On some (slow?) machines, the following tests
                                ;; fail, with the processes returning exit code
@@ -433,7 +449,6 @@ setup against another one.")
            python-flask-cors
            python-gevent
            python-geventhttpclient
-           python-jinja2
            python-msgpack
            python-psutil
            python-pyzmq
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index c53d4dd..3417674 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -1007,7 +1007,7 @@ Makefiles, JSON Compilation Database, and experimentally Ninja.")
      (list
       bash-minimal python perl clisp
       ;; Unicode data:
-      ucd-next
+      ucd
       ;; Programs for the tests:
       cppi indent git-minimal/pinned autoconf))
     (home-page "https://www.gnu.org/software/gnulib/")
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index b2f1661..b12aaf1 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email-masked]>
 ;;; Copyright © 2020, 2021 Marius Bakke <[email-masked]>
 ;;; Copyright © 2020 Katherine Cox-Buday <[email-masked]>
-;;; Copyright © 2020, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2020, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2020, 2021 Greg Hogan <[email-masked]>
 ;;; Copyright © 2021 David Dashyan <[email-masked]>
 ;;; Copyright © 2021 Foo Chuan Wei <[email-masked]>
@@ -1145,6 +1145,54 @@ Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
     (home-page "https://microsoft.github.io/mimalloc/")
     (license license:expat)))
 
+;;; The package is named orangeduck-mpc to differentiate it from GNU mpc.
+(define-public orangeduck-mpc
+  ;; The last release lacks an 'install' target.
+  (let ((commit "7c910e9303833c349f7432188ff77f2745254df2")
+        (revision "0"))
+    (package
+      (name "orangeduck-mpc")
+      (version (git-version "0.9.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/orangeduck/mpc")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "01a4vcxdnz0fbn90c9zc3jzklyqqvp9sfjpjwpq0f5r0l2pp37ad"))
+                (patches
+                 (search-patches "orangeduck-mpc-fix-pkg-config.patch"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+                                  (string-append "PREFIX=" #$output))
+             #:phases #~(modify-phases %standard-phases
+                          (add-after 'unpack 'patch-Makefile
+                            (lambda _
+                              (substitute* "Makefile"
+                                ;; Do not attempt to alter the permissions,
+                                ;; otherwise 'install' would error with
+                                ;; "cannot stat [...] Permission denied"
+                                ;; errors.
+                                (("\\s\\-m[0-9]{3}\\s")
+                                 " "))))
+                          (delete 'configure))))
+      (home-page "https://github.com/orangeduck/mpc")
+      (synopsis "Parser Combinator library for C ")
+      (description "@code{mpc} is a lightweight Parser Combinator library for C.
+@code{mpc} can help with tasks such as:
+@itemize
+@item Building a new programming language
+@item Building a new data format
+@item Parsing an existing programming language
+@item Parsing an existing data format
+@item Embedding a Domain Specific Language
+@item Implementing Greenspun's Tenth Rule.
+@end itemize")
+      (license license:bsd-2))))
+
 ;;; Factored out of the ck package so that it can be adjusted and called on
 ;;; the host side easily, without impacting the package definition.
 (define (gnu-triplet->ck-machine target)
@@ -1317,20 +1365,21 @@ will take care of dispatching tasks to available cores.")
                   "0x9f7ivww8c7cigf4ck0hfx2bm79qgx6q4ccwzqbzkrmcrl9shfb"))))
       (build-system cmake-build-system)
       (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (delete 'build)
-           (delete 'configure)
-           (replace 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               (when tests?
-                 (with-directory-excursion "test"
-                   (invoke "cmake" ".")
-                   (invoke "make")))))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (install-file "utf8.h" (string-append out "/include"))))))))
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'build)
+            (delete 'configure)
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (with-directory-excursion "test"
+                    (invoke "cmake" ".")
+                    (invoke "make")))))
+            (replace 'install
+              (lambda* (#:key outputs #:allow-other-keys)
+                (install-file "utf8.h"
+                              (string-append #$output "/include/utf8")))))))
       (home-page "https://github.com/sheredom/utf8.h")
       (synopsis "Single header UTF-8 string functions for C and C++")
       (description "A simple one header solution to supporting UTF-8 strings in
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 32a8f23..cf42861 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -121,15 +121,15 @@ the <tz.h> library for handling time zones and leap seconds.")
 (define-public libical
   (package
     (name "libical")
-    (version "3.0.14")
+    (version "3.0.16")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/libical/libical/releases/download/v"
                     version "/libical-" version ".tar.gz"))
               (sha256
                (base32
-                "13ycghsi4iv8mnm0xv97bs0x6qvfhdxkw20n3yhcc7bg6n0bg122"))))
+                "0cqc1wpalxmxjx8dmcaga9w8kd5l7944hqmidz43hifaf7fhaixl"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; test suite appears broken
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index cfb2b6b..dcb90a6 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -113,6 +113,7 @@ caching facility provided by the library.")
              (method url-fetch)
              (uri (string-append "mirror://gnu/libcdio/libcdio-"
                                  version ".tar.bz2"))
+             (patches (search-patches "libcdio-glibc-compat.patch"))
              (sha256
               (base32
                "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45"))))
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index b8dfe96..1228829 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -131,7 +131,7 @@ that was originally contributed to Debian.")
     ;; XXX We used to refer to the nss package here, but that eventually caused
     ;; module cycles.  The below is a quick copy-paste job that must be kept in
     ;; sync manually.  Surely there's a better way…?
-    (version "3.81")
+    (version "3.85")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -142,7 +142,7 @@ that was originally contributed to Debian.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "19ncvhz45dhr0nmymwkxspq9l44gaafkspxiwxbqs1hpnqxmzgx8"))
+                "15yj2gddlp68wj1k9q4q70vs6r7zx5qkbavcppmls5di212xdndg"))
               ;; Create nss.pc and nss-config.
               (patches (search-patches "nss-3.56-pkgconfig.patch"
                                        "nss-getcwd-nonnull.patch"
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index b54ca4f..990c6d5 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -1586,13 +1586,13 @@ Python's @code{random.seed}.")
 (define-public python-pytest-mock
   (package
     (name "python-pytest-mock")
-    (version "3.6.1")
+    (version "3.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-mock" version))
        (sha256
-        (base32 "0qhfmd05z3g88bnwq6644jl6p5wy01i4yy7h8883z9jjih2pl8a0"))
+        (base32 "0kzdwwdjw001qzf1n4qzh7c364rvmb0cmkfqdwr2l9bwxy2v1ggv"))
        (modules '((guix build utils)))
        (snippet
         ;; Some tests do a string match on Pytest output, and fails when
@@ -1698,14 +1698,14 @@ result back.")
 (define-public python-pytest-timeout
   (package
     (name "python-pytest-timeout")
-    (version "2.0.2")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-timeout" version))
        (sha256
         (base32
-         "04l1cd2qyp3fbccw95a8nqg682r647v7yil8807dgs7xv9a8pyg6"))))
+         "1nf339zg6qam3681f72j9c8fbqk8qcilna92psmzh4n60isa0z60"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -2058,14 +2058,14 @@ have failed since the last commit or what tests are currently failing.")))
 (define-public python-coverage
   (package
     (name "python-coverage")
-    (version "5.2.1")
+    (version "5.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "coverage" version))
        (sha256
         (base32
-         "16z8i18msgs8k74n73dj9x49wzkl0vk4vq8k5pl1bsj70y7b4k53"))))
+         "0b112ly7vvplvm9l411aqknxhr7fzfyp28xhflhkcx78l3lqzrzb"))))
     (build-system python-build-system)
     (arguments
      ;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors.
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index a1b29a4..2f07235 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -38,6 +38,7 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -3103,20 +3104,22 @@ the platform-specific getters provided by winit, or another library.")
 (define-public rust-x11-2
   (package
     (name "rust-x11")
-    (version "2.18.2")
+    (version "2.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "x11" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0wz7l6dlbraa9zalh9i45v9wibvkir9m2m1sg0jnzcbcaj9d1v3p"))))
+        (base32 "10pbvmcyqm6j6zr4zk7znk8silmilihv8jxmbxbl1b0pkidqsqy2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (propagated-inputs
+     (list mesa))
     (home-page "https://github.com/erlepereira/x11-rs")
     (synopsis "X11 library bindings for Rust")
     (description "This crate provides X11 library bindings for Rust.")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 6b1f537..9d06fc8 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -12,12 +12,11 @@
 ;;; Copyright © 2020 André Batista <[email-masked]>
 ;;; Copyright © 2020 Arun Isaac <[email-masked]>
 ;;; Copyright © 2020 Antoine Côté <[email-masked]>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 aecepoglu <[email-masked]>
 ;;; Copyright © 2021, 2022 Zheng Junjie <[email-masked]>
 ;;; Copyright © 2021 Alexandru-Sergiu Marton <[email-masked]>
 ;;; Copyright © 2021 Antero Mejr <[email-masked]>
-;;; Copyright © 2021 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Vinicius Monego <[email-masked]>
 ;;; Copyright © 2021 muradm <[email-masked]>
 ;;; Copyright © 2021, 2022 Petr Hodina <[email-masked]>
@@ -31,6 +30,7 @@
 ;;; Copyright © 2022 ( <[email-masked]>
 ;;; Copyright © 2022 Greg Hogan <[email-masked]>
 ;;; Copyright © 2022 Paul A. Patience <[email-masked]>
+;;; Copyright © 2022 Paul Alesius <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,6 +53,7 @@
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
@@ -68,6 +69,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
@@ -2678,6 +2680,50 @@ it outputs messages to Android's logcat.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4))))))
 
+(define-public rust-android-system-properties-0.1
+  (package
+    (name "rust-android-system-properties")
+    (version "0.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "android-system-properties" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "04b3wrz12837j7mdczqd95b732gw5q7q66cv4yn4646lvccp57l1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/nical/android_system_properties")
+    (synopsis "Minimal Android system properties wrapper")
+    (description
+     "This package provides a minimal Android system properties wrapper.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-anes-0.1
+  (package
+    (name "rust-anes")
+    (version "0.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "anes" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "16bj1ww1xkwzbckk32j2pnbn5vk6wgsl3q4p3j9551xbcarwnijb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                   ;FIXME: unresolved import anes::parser..?
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-inputs (("rust-bitflags" ,rust-bitflags-1))))
+    (home-page "https://github.com/zrzka/anes-rs")
+    (synopsis "Parse ANSI escape sequences")
+    (description
+     "This package contains an ANSI escape sequences provider and parser.")
+    ;; The user can choose either license.
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ansi-parser-0.6
   (package
     (name "rust-ansi-parser")
@@ -2893,14 +2939,14 @@ last place (ULPs) comparisons.")
 (define-public rust-arbitrary-1
   (package
     (name "rust-arbitrary")
-    (version "1.0.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "arbitrary" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "14a6r7q9b1kf1m7810p8bcl51q11mrwc5z7fjkz0lx6kdvyk0x13"))))
+        (base32 "106qgz0qxs202xlvjfyvw8dkb6ynr1ymmcclfh89l56mj2zpzm19"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -3712,17 +3758,17 @@ library for Rust.")
              ("rust-mime" ,rust-mime-0.3)
              ("rust-mime-guess" ,rust-mime-guess-2))))))
 
-(define-public rust-asn1-derive-0.8
+(define-public rust-asn1-derive-0.13
   (package
     (name "rust-asn1-derive")
-    (version "0.8.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "asn1_derive" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "098w0mxz4bx9w7v72gsl5wva6f0qbvzyc52m0s0n8svqbyh4z2dw"))))
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "asn1-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1bvqriazb23gysygpzng1dhzjgnlv274q2yj5gpmlpl7jp0pkaxz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -3736,30 +3782,63 @@ library for Rust.")
      "This package provides #[derive] support for @code{asn1}.")
     (license license:bsd-3)))
 
-(define-public rust-asn1-0.8
+(define-public rust-asn1-derive-0.8
   (package
-    (name "rust-asn1")
+    (inherit rust-asn1-derive-0.13)
+    (name "rust-asn1-derive")
     (version "0.8.7")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "asn1" version))
+       (uri (crate-uri "asn1_derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1caacmvgn463n1yc4ac6vl9phrh56ij7l3xgf6qgzbpyjm8v7zyg"))))
+        (base32 "098w0mxz4bx9w7v72gsl5wva6f0qbvzyc52m0s0n8svqbyh4z2dw"))))))
+
+(define-public rust-asn1-0.13
+  (package
+    (name "rust-asn1")
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "asn1" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1idxxw14h3dvrj72k4g0hx1aqigd986a00cg0yxfw2gfc9gbmzra"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-asn1-derive" ,rust-asn1-derive-0.8)
+       (("rust-asn1-derive" ,rust-asn1-derive-0.13)
         ("rust-chrono" ,rust-chrono-0.4))
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2))))
     (home-page "https://github.com/alex/rust-asn1")
     (synopsis "ASN.1 (DER) parser and writer")
     (description
      "This is a Rust library for parsing and generating ASN.1 data (DER only).")
     (license license:bsd-3)))
 
+(define-public rust-asn1-0.8
+  (package
+    (inherit rust-asn1-0.13)
+    (name "rust-asn1")
+    (version "0.8.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "asn1" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1caacmvgn463n1yc4ac6vl9phrh56ij7l3xgf6qgzbpyjm8v7zyg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-asn1-derive" ,rust-asn1-derive-0.8)
+        ("rust-chrono" ,rust-chrono-0.4))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-as-slice-0.1
   (package
     (name "rust-as-slice")
@@ -5654,8 +5733,42 @@ RFC4648 Base32 or in Crockford Base32.")
 c6e7d37.  However, this package works only up to 128 bytes.")
     (license license:expat)))
 
+(define-public rust-base64-0.21
+  (package
+    (name "rust-base64")
+    (version "0.21.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "base64" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0sidjip5b33sr6w7kasfj9qxpbda41nw0x4gjjk55g55a6mdv954"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rstest" ,rust-rstest-0.15)
+        ("rust-rstest-reuse" ,rust-rstest-reuse-0.4)
+        ("rust-structopt" ,rust-structopt-0.3))
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'relax-requirements
+                    (lambda _
+                      (substitute* "Cargo.toml"
+                        (("0.12.0")
+                         ,(package-version rust-rstest-0.15))
+                        (("0.3.0")
+                         ,(package-version rust-rstest-reuse-0.4))))))))
+    (home-page "https://github.com/marshallpierce/rust-base64")
+    (synopsis "Encodes and decodes base64 as bytes or utf8")
+    (description
+     "This package encodes and decodes base64 as bytes or utf8.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-base64-0.13
   (package
+    (inherit rust-base64-0.21)
     (name "rust-base64")
     (version "0.13.0")
     (source
@@ -5666,25 +5779,19 @@ c6e7d37.  However, this package works only up to 128 bytes.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-rand" ,rust-rand-0.6)
         ("rust-structopt" ,rust-structopt-0.3))
        #:phases
-        (modify-phases %standard-phases
+       (modify-phases %standard-phases
          (add-after 'unpack 'fix-criterion-minor-version
-          (lambda* _
-           (substitute* "Cargo.toml"
-             (("0\\.3\\.2")
-              ,(package-version rust-criterion-0.3))))))))
-    (home-page "https://github.com/marshallpierce/rust-base64")
-    (synopsis "Encodes and decodes base64 as bytes or utf8")
-    (description
-     "This package encodes and decodes base64 as bytes or utf8.")
-    (license (list license:expat license:asl2.0))))
+           (lambda* _
+             (substitute* "Cargo.toml"
+               (("0\\.3\\.2")
+                ,(package-version rust-criterion-0.3))))))))))
 
 (define-public rust-base64-0.12
   (package
@@ -6068,42 +6175,54 @@ that uses Serde for transforming structs into bytes and vice versa!")
        (("rust-serde-bytes" ,rust-serde-bytes-0.10)
         ("rust-serde-derive" ,rust-serde-derive-1))))))
 
-(define-public rust-bindgen-0.59
+(define-public rust-bindgen-0.64
   (package
     (name "rust-bindgen")
-    (version "0.59.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "bindgen" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1f4fpycxmbrqk8r2x9brhfgjh86mzc6bngn4a9631x78b2jaklib"))))
+    (version "0.64.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bindgen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1d0zmfc5swjgaydbamxb4xm687ahgv18dbcpvrzbf39665h3w964"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-cexpr" ,rust-cexpr-0.6)
         ("rust-clang-sys" ,rust-clang-sys-1)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-env-logger" ,rust-env-logger-0.9)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-lazycell" ,rust-lazycell-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-shlex" ,rust-shlex-1)
+        ("rust-syn" ,rust-syn-1)
         ("rust-which" ,rust-which-4))))
     (home-page "https://rust-lang.github.io/rust-bindgen/")
     (synopsis "Generate Rust FFI bindings to C and C++ libraries")
     (description "This package can be used to automatically generate Rust FFI
 bindings to C and C++ libraries.")
     (license license:bsd-3)))
 
+(define-public rust-bindgen-0.59
+  (package
+    (inherit rust-bindgen-0.64)
+    (name "rust-bindgen")
+    (version "0.59.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1f4fpycxmbrqk8r2x9brhfgjh86mzc6bngn4a9631x78b2jaklib"))))))
+
 (define-public rust-bindgen-0.58
   (package
     (inherit rust-bindgen-0.59)
@@ -8465,53 +8584,90 @@ of built-in fundamental numeric types.")
      "This package provides a library for interaction with units of bytes.")
     (license license:expat)))
 
+(define-public rust-bytecheck-0.6
+  (package
+    (name "rust-bytecheck")
+    (version "0.6.9")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bytecheck" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0vs0a8p3bpaz3vc15zknqkd5ajgzgswf2bmd1mbwdbdm28naq76i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytecheck-derive" ,rust-bytecheck-derive-0.6)
+        ("rust-ptr-meta" ,rust-ptr-meta-0.1)
+        ("rust-simdutf8" ,rust-simdutf8-0.1)
+        ("rust-uuid" ,rust-uuid-1))))
+    (home-page "https://github.com/rkyv/bytecheck")
+    (synopsis "Type validation framework")
+    (description "This package provides a type validation framework for
+Rust.")
+    (license license:expat)))
+
 (define-public rust-bytecheck-0.5
   (package
+    (inherit rust-bytecheck-0.6)
     (name "rust-bytecheck")
     (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bytecheck" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0q11ap6nqj0rsc8ypwjh918916zlrcrzdgqm175gnpb2yn9axyh1"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bytecheck-derive" ,rust-bytecheck-derive-0.5)
         ("rust-log" ,rust-log-0.4)
         ("rust-ptr-meta" ,rust-ptr-meta-0.1)
-        ("rust-simdutf8" ,rust-simdutf8-0.1))))
+        ("rust-simdutf8" ,rust-simdutf8-0.1))))))
+
+(define-public rust-bytecheck-derive-0.6
+  (package
+    (name "rust-bytecheck-derive")
+    (version "0.6.9")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bytecheck_derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1gxr63mi91rrjzfzcb8pfwsnarp9i2w1n168nc05aq4fx7mpdr8k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/rkyv/bytecheck")
-    (synopsis "Type validation framework")
-    (description "This package provides a type validation framework for
-Rust.")
+    (synopsis "Derive macro for bytecheck")
+    (description "This package provides a Derive macro for bytecheck, the type
+validation framework for Rust.")
     (license license:expat)))
 
 (define-public rust-bytecheck-derive-0.5
   (package
+    (inherit rust-bytecheck-derive-0.6)
     (name "rust-bytecheck-derive")
     (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bytecheck_derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0grbkwwv5j91n7zrimci6fh4k79flxga3mkjg50jysnyraizi088"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/rkyv/bytecheck")
-    (synopsis "Derive macro for bytecheck")
-    (description "This package provides a Derive macro for bytecheck, the type
-validation framework for Rust.")
-    (license license:expat)))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-bytecount-0.6
   (package
@@ -8585,42 +8741,19 @@ in a byte slice, fast.")
         ("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-rand" ,rust-rand-0.4))))))
 
-(define-public rust-bytemuck-1.5
-  (package
-    (name "rust-bytemuck")
-    (version "1.5.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "bytemuck" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "18355qn3r9yp7ibg00r688sjx58g2qsjylwyq15w5b41b46asjss"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bytemuck-derive" ,rust-bytemuck-derive-1))))
-    (home-page "https://github.com/Lokathor/bytemuck")
-    (synopsis "Crate for mucking around with piles of bytes")
-    (description
-     "This package provides a crate for mucking around with piles of bytes.")
-    (license license:zlib)))
-
 (define-public rust-bytemuck-1
   (package
     (name "rust-bytemuck")
-    (version "1.4.0")
+    (version "1.12.3")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "bytemuck" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "071043n73hwi55z9c55ga4v52v8a7ri56gqja8r98clkdyxns14j"))))
+          "0zwlaqkrp7r7bnl2n40x9ncpspb93d8xcckar61f54nal7csi8xa"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8634,15 +8767,15 @@ in a byte slice, fast.")
 (define-public rust-bytemuck-derive-1
   (package
     (name "rust-bytemuck-derive")
-    (version "1.0.0")
+    (version "1.3.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "bytemuck-derive" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1k59b6g2d87nf32qwhp73vng3al0zklxg64iiwf0pkxy74xf5ni8"))))
+          "1d1j74dgq9b0wx73hvirsyzr3hmi7ip16bfvwc3q0bzic2wk7qjz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -9312,19 +9445,19 @@ capabilities.")
         ("rust-error-chain" ,rust-error-chain-0.12)
         ("rust-libc" ,rust-libc-0.2))))))
 
-(define-public rust-cargo-0.53
+(define-public rust-cargo-0.60
   (package
     (name "rust-cargo")
-    (version "0.53.0")
+    (version "0.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cargo" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "12ns9v4dd8vnvsaqgd897h2zc19w00i5ii3slda653zbhfzm6zna"))))
+         "0xws4y7h4mmq8flnzsgf6fph2hx3rjgypyll4wzp15035ymly6dw"))))
     (build-system cargo-build-system)
     (arguments
      `(;; The test suite is disabled as the internal 'cargo-test-macro' and
@@ -9335,14 +9468,15 @@ capabilities.")
         ("rust-atty" ,rust-atty-0.2)
         ("rust-bytesize" ,rust-bytesize-1)
         ("rust-cargo-platform" ,rust-cargo-platform-0.1)
+        ("rust-cargo-util" ,rust-cargo-util-0.1)
         ("rust-clap" ,rust-clap-2)
         ("rust-core-foundation" ,rust-core-foundation-0.9)
         ("rust-crates-io" ,rust-crates-io-0.33)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
         ("rust-crypto-hash" ,rust-crypto-hash-0.3)
         ("rust-curl" ,rust-curl-0.4)
         ("rust-curl-sys" ,rust-curl-sys-0.4)
-        ("rust-env-logger" ,rust-env-logger-0.8)
+        ("rust-env-logger" ,rust-env-logger-0.9)
         ("rust-filetime" ,rust-filetime-0.2)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-flate2" ,rust-flate2-1)
@@ -9364,22 +9498,23 @@ capabilities.")
         ("rust-memchr" ,rust-memchr-2)
         ("rust-miow" ,rust-miow-0.3)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-opener" ,rust-opener-0.4)
+        ("rust-opener" ,rust-opener-0.5)
         ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-os-info" ,rust-os-info-3)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-rustc-workspace-hack" ,rust-rustc-workspace-hack-1)
-        ("rust-rustfix" ,rust-rustfix-0.5)
+        ("rust-rustfix" ,rust-rustfix-0.6)
         ("rust-same-file" ,rust-same-file-1)
         ("rust-semver" ,rust-semver-0.10)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-ignored" ,rust-serde-ignored-0.1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-shell-escape" ,rust-shell-escape-0.1)
+        ("rust-socket2" ,rust-socket2-0.4)
         ("rust-strip-ansi-escapes" ,rust-strip-ansi-escapes-0.1)
         ("rust-tar" ,rust-tar-0.4)
-        ("rust-tar" ,rust-tar-0.4)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-termcolor" ,rust-termcolor-1)
         ("rust-toml" ,rust-toml-0.5)
@@ -9587,16 +9722,16 @@ optional dependency graph analysis.")
 (define-public rust-cargo-platform-0.1
   (package
     (name "rust-cargo-platform")
-    (version "0.1.1")
+    (version "0.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cargo-platform" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1mzi60pf0z83qkzqp7jwd61xnqz2b5ydsj7rnnikbgyicd5989h2"))))
+         "09zsf76b9yr02jh17xq925xp1w824w2bwvb78fd0gpx5m1fq5nyb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -9607,6 +9742,48 @@ optional dependency graph analysis.")
 supported by Cargo.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cargo-util-0.1
+  (package
+    (name "rust-cargo-util")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cargo-util" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sz0gzcyp9ycb4zwj69qs9gd8kn9hv9nh2dq42c59x5xccqph755"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/rust-lang/cargo")
+    (synopsis "Utilities for Cargo")
+    (description "Miscellaneous support code used by Cargo.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cargon-0.0
+  (package
+    (name "rust-cargon")
+    (version "0.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cargon" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1cszlab7jk736p0lb50ag4l9nv72m7j41bwrmygl0lr4iz0350w2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gcc" ,rust-gcc-0.3))))
+    (home-page "https://github.com/bryant/argon2rs")
+    (synopsis "Thin wrapper around the Argon2 C library")
+    (description
+     "This package provides a thin wrapper around the Argon2 C library.  It is
+used in argon2rs' bench suite.")
+    (license license:wtfpl2)))
+
 (define-public rust-cassowary-0.3
   (package
     (name "rust-cassowary")
@@ -9659,21 +9836,20 @@ box''.")
   (package
     (inherit rust-cast-0.3)
     (name "rust-cast")
-    (version "0.2.3")
+    (version "0.2.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cast" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1c5z7zryj0zwnhdgs6rw5dfvnlwc1vm19jzrlgx5055alnwk952b"))))
+         "16p3bqi3qad1qdjgjc1r0x72iinj1aw2k8fw5zx2l51s52sdl92c"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-rustc-version" ,rust-rustc-version-0.2))
+     `(#:cargo-inputs
+       (("rust-rustc-version" ,rust-rustc-version-0.4))
        #:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.9))))))
 
@@ -9702,15 +9878,15 @@ box''.")
 (define-public rust-cc-1
   (package
     (name "rust-cc")
-    (version "1.0.73")
+    (version "1.0.79")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04ccylrjq94jssh8f7d7hxv64gs9f1m1jrsxb7wqgfxk4xljmzrg"))))
+         "07x93b8zbf3xc2dggdd460xlk1wg8lxm6yflwddxj8b15030klsh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -10161,31 +10337,34 @@ Encoding Standard.")
 (define-public rust-chrono-0.4
   (package
     (name "rust-chrono")
-    (version "0.4.19")
+    (version "0.4.24")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "chrono" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0wyfl6c00vhfl562spnfcna3zkw8jqvcp652m9iskhl8j26dc2k7"))))
+         "0fv7idr8c7vdb0xi32w45a7pafnyzk7m0bknfggj5pva0qcmjg2f"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-js-sys" ,rust-js-sys-0.3)
-        ("rust-libc" ,rust-libc-0.2)
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-iana-time-zone" ,rust-iana-time-zone-0.1)
+        ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-pure-rust-locales" ,rust-pure-rust-locales-0.5)
+        ("rust-rkyv" ,rust-rkyv-0.7)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-serde" ,rust-serde-1)
         ("rust-time" ,rust-time-0.1)
-        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-bincode" ,rust-bincode-0.8)
-        ("rust-criterion" ,rust-criterion-0.3)
+       (("rust-bincode" ,rust-bincode-1)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
         ("rust-num-iter" ,rust-num-iter-0.1)
         ("rust-serde-derive" ,rust-serde-derive-1)
@@ -10328,6 +10507,75 @@ transfer coding.")
        (sha256
         (base32 "11yghnd24w0i9p8g368c3pg7qh9nfz7kgri6pywja9pnmakj13a9"))))))
 
+(define-public rust-ciborium-0.2
+  (package
+    (name "rust-ciborium")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ciborium" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "13vqkm88kaq8nvxhaj6qsl0gsc16rqsin014fx5902y6iib3ghdh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ciborium-io" ,rust-ciborium-io-0.2)
+        ("rust-ciborium-ll" ,rust-ciborium-ll-0.2)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.4)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rstest" ,rust-rstest-0.11)
+        ("rust-serde-bytes" ,rust-serde-bytes-0.11))))
+    (home-page "https://github.com/enarx/ciborium")
+    (synopsis "Serde implementation of CBOR")
+    (description
+     "This package provides CBOR serialization implementations for serde.")
+    (license license:asl2.0)))
+
+(define-public rust-ciborium-io-0.2
+  (package
+    (name "rust-ciborium-io")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ciborium-io" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0sdkk7l7pqi2nsbm9c6g8im1gb1qdd83l25ja9xwhg07mx9yfv9l"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/enarx/ciborium")
+    (synopsis "Simplified Read/Write traits")
+    (description
+     "This package provides simplified Read/Write traits for @code{no_std}
+usage.")
+    (license license:asl2.0)))
+
+(define-public rust-ciborium-ll-0.2
+  (package
+    (name "rust-ciborium-ll")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ciborium-ll" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06ygqh33k3hp9r9mma43gf189b6cyq62clk65f4w1q54nni30c11"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-hex" ,rust-hex-0.4))
+       #:cargo-inputs (("rust-ciborium-io" ,rust-ciborium-io-0.2)
+                       ("rust-half" ,rust-half-1))))
+    (home-page "https://github.com/enarx/ciborium")
+    (synopsis "Low-level CBOR codec primitives")
+    (description
+     "This package provides low-level primitives for parsing the CBOR codec.")
+    (license license:asl2.0)))
+
 (define-public rust-ci-info-0.3
   (package
     (name "rust-ci-info")
@@ -10776,28 +11024,45 @@ for programs written with Clap.")
 with Clap to generate Fig completion scripts.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-clap-lex-0.2
+(define-public rust-clap-lex-0.3
   (package
     (name "rust-clap-lex")
-    (version "0.2.4")
+    (version "0.3.0")
     (source (origin
               (method url-fetch)
-              (uri (crate-uri "clap-lex" version))
+              (uri (crate-uri "clap_lex" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18"))))
+                "1a4dzbnlxiamfsn0pnkhn7n9bdfjh66j9fxm6mmr7d227vvrhh8d"))))
     (build-system cargo-build-system)
     (arguments
-     (list #:cargo-inputs
-           `(("rust-os-str-bytes" ,rust-os-str-bytes-6))))
+     `(#:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6))))
     (home-page "https://github.com/clap-rs/clap/tree/master/clap_lex")
     (synopsis "Command line parser for Clap")
     (description
-     "This package provides a parser for command line options.  As opposed to a
-declarative parser, @code{rust-clap-lex} processes arguments as a stream of tokens.")
+     "This package provides a parser for command line options.  As opposed
+to a declarative parser, @code{rust-clap-lex} processes arguments as a
+stream of tokens.")
+    ;; The user can choose either license.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-clap-lex-0.2
+  (package
+    (inherit rust-clap-lex-0.3)
+    (name "rust-clap-lex")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap-lex" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ib1a9v55ybnaws11l63az0jgz5xiy24jkdgsmyl7grcm3sz4l18"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list #:cargo-inputs `(("rust-os-str-bytes" ,rust-os-str-bytes-6))))))
+
 (define-public rust-clearscreen-1
   (package
     (name "rust-clearscreen")
@@ -11291,21 +11556,28 @@ CMAKE environmental variable is set.")
 (define-public rust-codespan-reporting-0.11
   (package
     (name "rust-codespan-reporting")
-    (version "0.11.0")
+    (version "0.11.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "codespan-reporting" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "04wwbn2c5rcfz3zn4kj7nyvpj37hn5cxh0m8w1r3af4ak6w45kn6"))))
+        (base32 "0vkfay0aqk73d33kh79k1kqxx06ka22894xhqi89crnc6c6jff1m"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1)
         ("rust-termcolor" ,rust-termcolor-1)
-        ("rust-unicode-width" ,rust-unicode-width-0.1))))
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-insta" ,rust-insta-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-peg" ,rust-peg-0.6)
+        ("rust-rustyline" ,rust-rustyline-6)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-unindent" ,rust-unindent-0.1))))
     (home-page "https://github.com/brendanzab/codespan")
     (synopsis "Beautiful diagnostic reporting for text-based programming languages")
     (description
@@ -11469,17 +11741,18 @@ colors.")
 (define-public rust-combine-4
   (package
     (name "rust-combine")
-    (version "4.6.3")
+    (version "4.6.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "combine" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0qihymj493vvs054gzpcmp4lzb098zrj2p9miv19yzvrrjm2gdsh"))))
+        (base32 "1m7s43cpi36vihmlda217xxgsdni3pbwgwfsa9zimdghhjfnxv9m"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-development-inputs
+       (("rust-partial-io" ,rust-partial-io-0.3))
        #:cargo-inputs
        (("rust-bytes" ,rust-bytes-1)
         ("rust-bytes" ,rust-bytes-0.5)
@@ -11491,7 +11764,7 @@ colors.")
         ("rust-tokio" ,rust-tokio-1)
         ("rust-tokio" ,rust-tokio-0.3)
         ("rust-tokio" ,rust-tokio-0.2)
-        ("rust-tokio-util" ,rust-tokio-util-0.6))))
+        ("rust-tokio-util" ,rust-tokio-util-0.7))))
     (home-page "https://github.com/Marwes/combine")
     (synopsis "Parser combinators on arbitrary streams with zero-copy support")
     (description
@@ -12312,26 +12585,42 @@ the browser's console.")
 const functions with conditional compilations.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-const-oid-0.9
+  (package
+    (name "rust-const-oid")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "const-oid" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0fyxvwnl3x6bxhy08a3g4ryf8mky6wnhwd6ll4g6mjxgfnk1ihyf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/const-oid")
+    (synopsis "Implementation of the ISO/IEC Object Identifier (OID)")
+    (description
+     "This package is a const-friendly implementation of the ISO/IEC Object
+Identifier (OID) standard as defined in ITU X.660, with support for BER/DER
+encoding/decoding as well as heapless no_std (i.e., embedded) support.")
+    ;; The user can choose either license.
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-const-oid-0.6
   (package
+    (inherit rust-const-oid-0.9)
     (name "rust-const-oid")
     (version "0.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "const-oid" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "12vv7csqqjj0x1l5mf51lgqiw76k5c3mb1yzfhfcqysks2j2lvwx"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page "https://github.com/RustCrypto/formats/tree/master/const-oid")
-    (synopsis "Implementation of the ISO/IEC Object Identifier (OID)")
-    (description
-     "This package is a const-friendly implementation of the ISO/IEC Object
-Identifier (OID) standard as defined in ITU X.660, with support for BER/DER
-encoding/decoding as well as heapless no_std (i.e., embedded) support.")
-    (license (list license:asl2.0 license:expat))))
+    (arguments `(#:skip-build? #t))))
 
 (define-public rust-const-random-0.1
   (package
@@ -12494,8 +12783,42 @@ semantics than those provided by @code{as} or @code{From}/@code{Into}.")
     (description "Convert strings into any case.")
     (license license:expat)))
 
+(define-public rust-cookie-0.15
+  (package
+    (name "rust-cookie")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03gql9c2l0wg3hpfp67wg2ns21wysk0xsjxwdbjrf0s6grrcgwfm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes-gcm" ,rust-aes-gcm-0.8)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-hkdf" ,rust-hkdf-0.10)
+        ("rust-hmac" ,rust-hmac-0.10)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-version-check" ,rust-version-check-0.9))))
+    (home-page "https://github.com/SergioBenitez/cookie-rs")
+    (synopsis
+     "Crate for parsing HTTP cookie headers and managing a cookie jar")
+    (description
+     "Parse HTTP cookie headers and manage a cookie jar with this crate.
+It supports signed and private (encrypted + signed) jars.")
+    ;; The user can choose either license.
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cookie-0.12
   (package
+    (inherit rust-cookie-0.15)
     (name "rust-cookie")
     (version "0.12.0")
     (source
@@ -12507,20 +12830,12 @@ semantics than those provided by @code{as} or @code{From}/@code{Into}.")
        (sha256
         (base32
          "1mdvqixahcywvqp0y8k2skkgbpfhsp0w73l9mz93dcrx1gq091l8"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-base64" ,rust-base64-0.10)
         ("rust-ring" ,rust-ring-0.14)
         ("rust-time" ,rust-time-0.1)
-        ("rust-url" ,rust-url-1))))
-    (home-page "https://github.com/SergioBenitez/cookie-rs")
-    (synopsis
-     "Crate for parsing HTTP cookie headers and managing a cookie jar")
-    (description
-     "Parse HTTP cookie headers and manage a cookie jar with this crate.
-It supports signed and private (encrypted + signed) jars.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-url" ,rust-url-1))))))
 
 (define-public rust-cookie-0.11
   (package
@@ -12640,36 +12955,6 @@ contents of the OS-level clipboard.")
 numbers using the CORDIC method.")
     (license license:bsd-3)))
 
-(define-public rust-cookie-0.15
-  (package
-    (name "rust-cookie")
-    (version "0.15.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "cookie" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "03gql9c2l0wg3hpfp67wg2ns21wysk0xsjxwdbjrf0s6grrcgwfm"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-aes-gcm" ,rust-aes-gcm-0.8)
-        ("rust-base64" ,rust-base64-0.13)
-        ("rust-hkdf" ,rust-hkdf-0.10)
-        ("rust-hmac" ,rust-hmac-0.10)
-        ("rust-percent-encoding" ,rust-percent-encoding-2)
-        ("rust-rand" ,rust-rand-0.8)
-        ("rust-sha2" ,rust-sha2-0.9)
-        ("rust-subtle" ,rust-subtle-2)
-        ("rust-time" ,rust-time-0.2)
-        ("rust-version-check" ,rust-version-check-0.9))))
-    (home-page "https://github.com/SergioBenitez/cookie-rs")
-    (synopsis "HTTP cookie parsing and cookie jar management")
-    (description "This package provides HTTP cookie parsing and cookie jar
-management.  It supports signed and private (encrypted, authenticated) jars.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-core2-0.3
   (package
     (name "rust-core2")
@@ -12912,14 +13197,14 @@ intrinsics.")
 (define-public rust-core-foundation-sys-0.8
   (package
     (name "rust-core-foundation-sys")
-    (version "0.8.2")
+    (version "0.8.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "core-foundation-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "06wq7yb7mlkc4h2kbc0yjfi0xv44z4snzdpr7c1l0zm4hi91n8pa"))))
+        (base32 "1p5r2wckarkpkyc4z83q08dwpvcafrb1h6fxfa3qnikh8szww9sq"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/servo/core-foundation-rs")
     (synopsis "Bindings to Core Foundation for macOS")
@@ -13234,16 +13519,16 @@ to the @code{is_x86_feature_detected!} macro.")
 (define-public rust-crates-io-0.33
   (package
     (name "rust-crates-io")
-    (version "0.33.0")
+    (version "0.33.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crates-io" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "147mggf85fz77vsrzsvsxxwid4f4fg30zwfyirx7sl1k7y33hw91"))))
+         "0nmpzr697a6v12ljwpmjrhqpmkf784nsm8m1g6jwadmkq96p3mxj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -13356,8 +13641,59 @@ final xor value.  It has many built-in CRC functions.")
 Rust.")
     (license license:bsd-3)))
 
+(define-public rust-criterion-0.4
+  (package
+    (name "rust-criterion")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "criterion" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1jsl4r0yc3fpkyjbi8aa1jrm69apqq9rxwnjnd9brqmaq44nxiz7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anes" ,rust-anes-0.1)
+        ("rust-async-std" ,rust-async-std-1)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-cast" ,rust-cast-0.3)
+        ("rust-ciborium" ,rust-ciborium-0.2)
+        ("rust-clap" ,rust-clap-3)
+        ("rust-criterion-plot" ,rust-criterion-plot-0.5)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-oorandom" ,rust-oorandom-11.1)
+        ("rust-plotters" ,rust-plotters-0.3)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-smol" ,rust-smol-1)
+        ("rust-tinytemplate" ,rust-tinytemplate-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-walkdir" ,rust-walkdir-2))
+       #:cargo-development-inputs
+       (("rust-approx" ,rust-approx-0.5)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://bheisler.github.io/criterion.rs/book/index.html")
+    (synopsis "Statistics-driven micro-benchmarking library")
+    (description
+     "This package provides a statistics-driven micro-benchmarking library.")
+    ;; The user can choose either license.
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-criterion-0.3
   (package
+    (inherit rust-criterion-0.4)
     (name "rust-criterion")
     (version "0.3.5")
     (source
@@ -13368,7 +13704,6 @@ Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "044d2x7cxfvw2g558lzyllcv7jcdkw9xmacmb0nzx8pv4pyxl10n"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-async-std" ,rust-async-std-1)
@@ -13398,12 +13733,7 @@ Rust.")
         ("rust-futures" ,rust-futures-0.3)
         ("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-rand" ,rust-rand-0.8)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (home-page "https://bheisler.github.io/criterion.rs/book/index.html")
-    (synopsis "Statistics-driven micro-benchmarking library")
-    (description
-     "This package provides a statistics-driven micro-benchmarking library.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-criterion-0.2
   (package
@@ -13468,8 +13798,35 @@ Rust.")
 criterion.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-criterion-plot-0.5
+  (package
+    (name "rust-criterion-plot")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "criterion-plot" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1c866xkjqqhzg4cjvg01f8w6xc1j3j7s58rdksl52skq89iq4l3b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-itertool-num" ,rust-itertools-num-0.1)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-rand" ,rust-rand-0.8))
+       #:cargo-inputs
+       (("rust-cast" ,rust-cast-0.3)
+        ("rust-itertools" ,rust-itertools-0.10))))
+    (home-page "https://github.com/bheisler/criterion.rs")
+    (synopsis "Criterion's plotting library")
+    (description "This package provides criterion's plotting library.")
+    ;; The user can choose either license.
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-criterion-plot-0.4
   (package
+    (inherit rust-criterion-plot-0.5)
     (name "rust-criterion-plot")
     (version "0.4.4")
     (source
@@ -13480,19 +13837,14 @@ criterion.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0mys2zkizh5az6ax77m5aqifk0vz35rn0a6wykvmjx9gkzg9c2fh"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cast" ,rust-cast-0.2)
         ("rust-itertools" ,rust-itertools-0.10))
        #:cargo-development-inputs
        (("rust-itertools-num" ,rust-itertools-num-0.1)
         ("rust-num-complex" ,rust-num-complex-0.2)
-        ("rust-rand" ,rust-rand-0.4))))
-    (home-page "https://github.com/bheisler/criterion.rs")
-    (synopsis "Criterion's plotting library")
-    (description "This package provides criterion's plotting library.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-rand" ,rust-rand-0.4))))))
 
 (define-public rust-criterion-plot-0.3
   (package
@@ -13521,14 +13873,14 @@ criterion.")
 (define-public rust-critical-section-1
   (package
     (name "rust-critical-section")
-    (version "1.1.0")
+    (version "1.1.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "critical-section" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "06p0j7yy289six3k7j3m3f1phk9n7h9x2cd8fjfbw6fhh4aaaayh"))))
+                "0ljyfwzl8avwsr42kqmg7mmcw01d5rn1m8gnw48y2j95bnns0j35"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/rust-embedded/critical-section")
     (synopsis "Critical section abstraction")
@@ -13562,24 +13914,25 @@ criterion.")
 (define-public rust-crossbeam-0.8
   (package
     (name "rust-crossbeam")
-    (version "0.8.0")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossbeam" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "103xnwzkk1zd9kiy6f0f131ap433qfkc757wyrha5bxa7pmsc0gx"))))
+        (base32 "0b0s0ans81ja6gm7awlaw3k2rqywzmhq4mm9ra8yaak16q6sy098"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
         ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
         ("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.9)
         ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.3)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))))
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/crossbeam-rs/crossbeam")
     (synopsis "Tools for concurrent programming in Rust")
     (description "This package provides tools for concurrent programming.")
@@ -13639,16 +13992,16 @@ message passing.")
   (package
     (inherit rust-crossbeam-channel-0.5)
     (name "rust-crossbeam-channel")
-    (version "0.4.2")
+    (version "0.4.4")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "crossbeam-channel" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0qd05n5bcwafkmbzq1lspwrfi29xnzlw46qarg1sl0lwj68qdvfc"))))
+          "11zvmp8p94vaqp4xyhzymw8xndnpwq12x5qgvxkway7lprygwlxi"))))
     (arguments
      `(#:cargo-inputs
         (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
@@ -13683,18 +14036,17 @@ message passing.")
 (define-public rust-crossbeam-deque-0.8
   (package
     (name "rust-crossbeam-deque")
-    (version "0.8.0")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossbeam-deque" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ad995vzq74k7jd1pgn9zxbacyzj9ii6l0svhlb2dxzy8vxnxbwl"))))
+        (base32 "1z6ifz35lyk0mw818xcl3brgss2k8islhgdmfk9s5fwjnr982pki"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.9)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))))
@@ -13708,16 +14060,16 @@ message passing.")
   (package
     (inherit rust-crossbeam-deque-0.8)
     (name "rust-crossbeam-deque")
-    (version "0.7.3")
+    (version "0.7.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossbeam-deque" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11c2c0x5grdba3ah3g94yn6b8s47xi8qwm85h8hq5vmf9nbsy0lz"))))
+         "1v99xcdjk4zixvxnq7pssip670mlyhw1ma3qc88ca11jxnfz43y2"))))
     (arguments
      `(#:cargo-inputs
        (("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.8)
@@ -13729,24 +14081,26 @@ message passing.")
 (define-public rust-crossbeam-epoch-0.9
   (package
     (name "rust-crossbeam-epoch")
-    (version "0.9.1")
+    (version "0.9.13")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossbeam-epoch" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17anyfg5azjpmcfidq6wn4phj9h0a0zqcxksi33w44akz4wsgam1"))))
+        (base32 "0nlxkmx3q93jvsshnmwaiich6bf7ddq1jzhzmaw4pxrf9hgsza81"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-const-fn" ,rust-const-fn-0.4)
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-memoffset" ,rust-memoffset-0.6)
-        ("rust-scopeguard" ,rust-scopeguard-1))))
+        ("rust-loom" ,rust-loom-0.5)
+        ("rust-memoffset" ,rust-memoffset-0.7)
+        ("rust-scopeguard" ,rust-scopeguard-1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-rustversion" ,rust-rustversion-1))))
     (home-page
      "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch")
     (synopsis "Epoch-based garbage collection")
@@ -13782,19 +14136,21 @@ message passing.")
 (define-public rust-crossbeam-queue-0.3
   (package
     (name "rust-crossbeam-queue")
-    (version "0.3.6")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossbeam-queue" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19ram1wp87i57w834hwl95mzz9g53qlzkraq6lvab629n21jbm0w"))))
+        (base32 "1p9s6n4ckwdgxkb7a8ay9zjzmgc8ppfbxix2vr07rwskibmb7kyi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))))
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.6))))
     (home-page
      "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils")
     (synopsis "Concurrent queues in Rust")
@@ -13846,20 +14202,22 @@ message passing.")
 (define-public rust-crossbeam-utils-0.8
   (package
     (name "rust-crossbeam-utils")
-    (version "0.8.11")
+    (version "0.8.14")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossbeam-utils" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1g426qw2j7czkbg0vw6mzifhgy1ng4qgpp2sn4vlamkvvi57v22i"))))
+        (base32 "17wjbnlj4whbdvc1syk2gfy8maqx01sg2hmqpdnjh9l7g7x6ddsg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-loom" ,rust-loom-0.5)
-        ("rust-once-cell" ,rust-once-cell-1))))
+        ("rust-loom" ,rust-loom-0.5))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-rustversion" ,rust-rustversion-1))))
     (home-page
      "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils")
     (synopsis "Utilities for concurrent programming")
@@ -14194,24 +14552,26 @@ using const generics.")
 (define-public rust-crypto-common-0.1
   (package
     (name "rust-crypto-common")
-    (version "0.1.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "crypto-common" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "1l4q4ync13i056vjc775v0za8qh987da7yvrjj25q909cd9nngb8"))))
+    (version "0.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crypto-common" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cvby95a6xg7kxdz5ln3rl9xh66nz66w46mm3g56ri1z5x815yqv"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build?
-        #t
-        #:cargo-inputs
-        (("rust-generic-array" ,rust-generic-array-0.14)
-         ("rust-rand-core" ,rust-rand-core-0.6))))
+     `(#:cargo-inputs
+       (("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-typenum" ,rust-typenum-1))))
     (home-page "https://github.com/RustCrypto/traits")
     (synopsis "Common cryptographic traits")
-    (description "Common cryptographic traits")
+    (description
+     "This package contains a collection of traits which describe functionality
+of cryptographic primitives.")
+    ;; The user can choose either license.
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-crypto-mac-0.11
@@ -14867,14 +15227,14 @@ use with bindgen.")
 (define-public rust-curl-0.4
   (package
     (name "rust-curl")
-    (version "0.4.34")
+    (version "0.4.43")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "curl" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0vkm6fyizf8m9yxpv3n5pm9ag3bwlyqa6nz2ga8qkzm5y4m1cs72"))))
+        (base32 "07v5s3qafyl9gnnlzbddgg5fzy41gncy00ahbbv46nr0xyp5bn1p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false                  ;require internet access
@@ -14904,15 +15264,15 @@ requests")
 (define-public rust-curl-sys-0.4
   (package
     (name "rust-curl-sys")
-    (version "0.4.44+curl-7.77.0")
+    (version "0.4.53+curl-7.82.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "curl-sys" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1wds1gi15fja0i8gjfgk0a6c17ljsv17jvlngh8ky69b6blqavab"))
+          "0lh398vd34c55afyw5csbxqmnp7caxgpgci3y89c60lmb9d914l0"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "curl") #t))))
@@ -15003,16 +15363,16 @@ attributes.")
 (define-public rust-cxx-1
   (package
     (name "rust-cxx")
-    (version "1.0.49")
+    (version "1.0.86")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "cxx" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0xj29zzd45bkk797902h22kppzmrzm7v9a2wijfiqr964vhrldk5"))))
+          "0yc5gz723hiwqk7waygj63655fh5vzq3551p1j2wyzc06xf0glai"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Cannot compile cxx-test-suite.
@@ -15063,16 +15423,16 @@ attributes.")
 (define-public rust-cxx-build-1
   (package
     (name "rust-cxx-build")
-    (version "1.0.49")
+    (version "1.0.86")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "cxx-build" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0shmkgv3cnh06ws1p555znj1hh23phynaz73rgnz95gradsdwnwg"))))
+          "0w5a2wdkdh44gmi0psynaazx4j7d1947sr7nyaccayxjc4gjhi2h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -15084,7 +15444,8 @@ attributes.")
         ("rust-scratch" ,rust-scratch-1)
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
-       (("rust-cxx-gen" ,rust-cxx-gen-0.7)
+       (("rust-cxx" ,rust-cxx-1)
+        ("rust-cxx-gen" ,rust-cxx-gen-0.7)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://cxx.rs")
     (synopsis "C++ code generator")
@@ -15123,21 +15484,20 @@ crate into a Cargo build.")
 (define-public rust-cxx-gen-0.7
   (package
     (name "rust-cxx-gen")
-    (version "0.7.49")
+    (version "0.7.86")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "cxx-gen" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "08v366jxd2vc8jc2cbvrga0866pwfcaq6hl8yylfx0vhs2n53j53"))))
+          "1z08a3c4xpnz91a4nc2b4f2kbmadjrrimr8awx1k4g0rmjdmq5mr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1)
-        ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+       (("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
@@ -15193,16 +15553,16 @@ crate into higher level tools.")
 (define-public rust-cxxbridge-flags-1
   (package
     (name "rust-cxxbridge-flags")
-    (version "1.0.49")
+    (version "1.0.86")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "cxxbridge-flags" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "18cv8a8sgyiwfqspdyfq18jizf0rlhg90ibdl0zp8jhcv498s6gr"))))
+          "073qx3gnf8df9xzfy9xfcz9b79m0638x4a0isfq2fb527g4hpdb1"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dtolnay/cxx")
     (synopsis "Compiler configuration of the `cxx` crate")
@@ -15228,16 +15588,16 @@ crate (implementation detail).")
 (define-public rust-cxxbridge-macro-1
   (package
     (name "rust-cxxbridge-macro")
-    (version "1.0.49")
+    (version "1.0.86")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "cxxbridge-macro" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0gkwvihw74dh8p3fz3552wnxanrpwmwfy38ylz2z8knjq0y8y4v3"))))
+          "19c7pjvjll72yb9wyrmpdylwqglizn8kayww8qcm24b2gvd1zrir"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -15725,16 +16085,16 @@ hexadecimal, base32, and base64.")
 (define-public rust-data-url-0.1
   (package
     (name "rust-data-url")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "data-url" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "176wa1n8h71iwyaxhar4sqwrgrvb5sxk26az0fy88vnxrsffjgyk"))))
+          "14z15yiyklp5dv0k0q6pd83irrn0y8hj9y3fj17akkrbf37byc1s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -15965,16 +16325,16 @@ verifying the contents.")
 (define-public rust-decimal-2
   (package
     (name "rust-decimal")
-    (version "2.0.4")
+    (version "2.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "decimal" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1vb3i8vg1dxrw3kzbfiag3gg7rdjd73z80mwbwkq60vnphiqfig6"))))
+          "0k8ij9brz6kdk7j4hq916s85qrplpy3ixs9v9h1ibsxsj5zbg2js"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -16400,14 +16760,14 @@ Rust.")
 (define-public rust-derive-arbitrary-1
   (package
     (name "rust-derive-arbitrary")
-    (version "1.0.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "derive_arbitrary" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nig0iydva7a9h9i9qyi6an9w5qjafmn3qlzvdqqiw0x2kp824jz"))))
+        (base32 "0zw12jc6k6aixqs6m2rsj56grhx2xjw2l8rhr8rj1wj897qdy0s9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -18065,17 +18425,16 @@ Rust.")
 (define-public rust-dtoa-0.4
   (package
     (name "rust-dtoa")
-    (version "0.4.4")
+    (version "0.4.8")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "dtoa" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0phbm7i0dpn44gzi07683zxaicjap5064w62pidci4fhhciv8mza"))))
+          "1c5j0wz118dhrczx6spc5za7dnbfxablr4adyahg9aknrsc9i2an"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/dtolnay/dtoa")
     (synopsis "Fast functions for printing floating-point primitives")
     (description "This crate provides fast functions for printing
@@ -18086,22 +18445,22 @@ floating-point primitives to an @code{io::Write}.")
 (define-public rust-dtoa-short-0.3
   (package
     (name "rust-dtoa-short")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "dtoa-short" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1wkn7ziqffq8hj0a411lgn7674ackzdk734ikp230rmp2f2hn0jr"))))
+          "1mh22nwja3v8922h0hq77c29k1da634lvkn9cvg9xrqhmqlk7q5x"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-dtoa" ,rust-dtoa-0.4))
        #:cargo-development-inputs
-       (("rust-float-cmp" ,rust-float-cmp-0.3))))
+       (("rust-float-cmp" ,rust-float-cmp-0.4))))
     (home-page "https://github.com/upsuper/dtoa-short")
     (synopsis "Serialize float number and truncate to certain precision")
     (description
@@ -18462,20 +18821,20 @@ signing, and verification in pure Rust.")
 (define-public rust-either-1
   (package
     (name "rust-either")
-    (version "1.6.1")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "either" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0mwl9vngqf5jvrhmhn9x60kr5hivxyjxbmby2pybncxfqhf4z3g7"))))
+         "15z70yaivlkpx27vzv99ibf8d2x5jp24yn69y0xi20w86v4c3rch"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-serde" ,rust-serde-1))))
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/bluss/either")
     (synopsis
      "Enum @code{Either} with variants @code{Left} and @code{Right}")
@@ -19022,16 +19381,16 @@ encodings.")
 (define-public rust-encoding-rs-0.8
   (package
     (name "rust-encoding-rs")
-    (version "0.8.28")
+    (version "0.8.31")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "encoding_rs" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0rf0r99q4kgjrx22kx7pjyjg4lm21599y3ggvy3hzj2spi7h5pw0"))))
+         "0azc6rblf75vd862ymjahdfch27j1sshb7zynshrx7ywi5an6llq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -19574,25 +19933,26 @@ deserialized from environment variables.")
 (define-public rust-erased-serde-0.3
   (package
     (name "rust-erased-serde")
-    (version "0.3.11")
+    (version "0.3.24")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "erased-serde" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lgkpkk7nx6f24gmr3psyj8d2avc9701r9jyw1i4ssp10lbnv2yq"))))
+         "0zdaj96bf39h75rkdxkd1znik97s3j7m8ppgbxxfq5y0h59n1jp4"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (;("rust-serde-cbor" ,rust-serde-cbor-0.9)
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde-cbor" ,rust-serde-cbor-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-serde-json" ,rust-serde-json-1))))
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/erased-serde")
     (synopsis "Type-erased Serialize and Serializer traits")
     (description
@@ -20110,20 +20470,28 @@ traits but without the boilerplate.")
 (define-public rust-eyre-0.6
   (package
     (name "rust-eyre")
-    (version "0.6.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "eyre" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1f0fbmrcykp84av1yb1d4cqj28jwf0zg1z49a1cgw8vrcf7ms8mw"))))
+    (version "0.6.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "eyre" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1sy7x8p74jfx1mvj4ifl0lxkxaqvmswdgdr84y1dqb6055d6nasc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-indenter" ,rust-indenter-0.3)
-        ("rust-once-cell" ,rust-once-cell-1))))
+     `(#:cargo-inputs (("rust-indenter" ,rust-indenter-0.3)
+                       ("rust-once-cell" ,rust-once-cell-1)
+                       ("rust-pyo3" ,rust-pyo3-0.13))
+       #:cargo-development-inputs (("rust-anyhow" ,rust-anyhow-1)
+                                   ("rust-backtrace" ,rust-backtrace-0.3)
+                                   ("rust-futures" ,rust-futures-0.3)
+                                   ("rust-pyo3" ,rust-pyo3-0.13)
+                                   ("rust-rustversion" ,rust-rustversion-1)
+                                   ("rust-syn" ,rust-syn-1)
+                                   ("rust-thiserror" ,rust-thiserror-1)
+                                   ("rust-trybuild" ,rust-trybuild-1))))
+    (native-inputs (list python))
     (home-page "https://github.com/yaahc/eyre")
     (synopsis "Trait object based error handling type")
     (description
@@ -22077,16 +22445,16 @@ stabilized, and eventually removed.  This library reïnstates these traits.")
 (define-public rust-futf-0.1
   (package
     (name "rust-futf")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futf" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0fxc18bnabird5jl941nsd6d25vq8cn8barmz4d30dlkzbiir73w"))))
+         "0hvqk2r7v4fnc34hvc3vkri89gn52d5m9ihygmwn75l1hhp0whnz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -22101,16 +22469,16 @@ stabilized, and eventually removed.  This library reïnstates these traits.")
 (define-public rust-futures-0.3
   (package
     (name "rust-futures")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0l7i1hcag46k5v34cbn5dk45gwxn5yy5rxcvmbaxhi02lnhm546s"))))
+         "115z5bqihd2jq75s8n7jxy4k83kpv67vhic4snch6d7h1wmpkqhk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -22153,16 +22521,16 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-channel-0.3
   (package
     (name "rust-futures-channel")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-channel" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0ihq3a3yc6ial3sw536q75hrhixq22xk6wn5qzpnxazgqxz1plzj"))))
+         "1xadcvj4hi6278hq6i0vnrsa231fyiylh2n03rx7d2ch79k1flrf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -22204,18 +22572,21 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-core-0.3
   (package
     (name "rust-futures-core")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-core" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0r8ag0mkxx9cd74yrccjk31lph4gr6lhgb9di6rx39wdvrfi9rbr"))))
+         "02467z5mv0219hkrgmpvsb3h7vb8pg31s1j901h7vxg11x6zz47c"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-portable-atomic" ,rust-portable-atomic-1))))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis "Core traits and types in for the @code{futures} library")
     (description "This package provides the core traits and types in for the
@@ -22271,16 +22642,16 @@ the computation on the threads themselves.")
 (define-public rust-futures-executor-0.3
   (package
     (name "rust-futures-executor")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-executor" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ffr1zclhz60ql49n2pj44jhhk22yah41xwlpyb30jws03f9zrg9"))))
+         "03mm37yv235i2ifjfaacw5cl8cmiyirj8ap3d64fr5xblqshmpp8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -22356,16 +22727,16 @@ intrusive collections.")
 (define-public rust-futures-io-0.3
   (package
     (name "rust-futures-io")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-io" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0005hz30pdxlbdamhd0imixmxcjpwrfxxr27kljxh6i84lshbgi8"))))
+         "0cc5s3qdgls25rlm3zpdf9fdk6gwmfp0fiiph39b5bmjdwdkgf5z"))))
     (build-system cargo-build-system)
     (arguments `(#:skip-build? #t))
     (home-page "https://rust-lang.github.io/futures-rs")
@@ -22478,20 +22849,19 @@ and removes almost all unsafe code from it.")
 (define-public rust-futures-macro-0.3
   (package
     (name "rust-futures-macro")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-macro" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1pgyb219ybh3fj3ig0h1c2b7k4cqldy95ifdpnd9yb9jvmdd51y2"))))
+        (base32 "0w3ahy69varlfw57rb2pag7jwngy771vvzmcag7mlfx3gpw3m9wm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
-        ("rust-proc-macro2" ,rust-proc-macro2-1)
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
     (home-page "https://rust-lang.github.io/futures-rs")
@@ -22565,16 +22935,16 @@ different @code{Future}s at once and handling the first one to complete.")
 (define-public rust-futures-sink-0.3
   (package
     (name "rust-futures-sink")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-sink" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1mj22d4w6digh7wfp6jkr5fdcl9r138q41fxzm1yg8mx568cdxfa"))))
+         "0r43djzf0caz89c724ishpzxy59y6nw7ykfvh1nd9kz8nc5q447k"))))
     (build-system cargo-build-system)
     (arguments `(#:skip-build? #t))
     (home-page "https://rust-lang.github.io/futures-rs")
@@ -22610,44 +22980,46 @@ futures-rs library.")
 (define-public rust-futures-task-0.3
   (package
     (name "rust-futures-task")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-task" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "11ldlpl7mis5crys731dj7s7npgigdgrzdm7mi2y86m8ivmhgphk"))))
+        (base32 "0rk3jg6lri1rrn03ns89cmw8lircbaf2i2d4mr10zc8hyqdrmxyw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-once-cell" ,rust-once-cell-1))))
+     `(#:skip-build? #t))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis "Tools for working with tasks")
     (description "This package provides tools for working with tasks.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-futures-test-0.3
   (package
     (name "rust-futures-test")
-    (version "0.3.5")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-test" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0v9r2mmgdbm0x4gppd5jzf4rss7439ivkqwi604m0r2il3zap6ci"))))
+         "0pbdzvbmzrnc67bpp7hbh7l5mavqifpgk2vhaprr0vlr6qrpcyi4"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f          ; Doc tests fail.
+       #:cargo-inputs
        (("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-executor" ,rust-futures-executor-0.3)
         ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-macro" ,rust-futures-macro-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
         ("rust-futures-task" ,rust-futures-task-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pin-project" ,rust-pin-project-1)
         ("rust-pin-utils" ,rust-pin-utils-0.1))))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis "Test components built off futures-rs")
@@ -22734,15 +23106,15 @@ timeouts and delays with futures.")
 (define-public rust-futures-util-0.3
   (package
     (name "rust-futures-util")
-    (version "0.3.12")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-util" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0jv25s07igmqavigdfzr02yw6j1q0vg8pw2p2vmgvcx4yb88qak3"))))
+        (base32 "1lbvdf6hq62yczd87glm6ih8h5qkagsl7xdiwhmqvwzymkins7cw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -22757,8 +23129,6 @@ timeouts and delays with futures.")
         ("rust-memchr" ,rust-memchr-2)
         ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
         ("rust-pin-utils" ,rust-pin-utils-0.1)
-        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
-        ("rust-proc-macro-nested" ,rust-proc-macro-nested-0.1)
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio-io" ,rust-tokio-io-0.1))))
     (home-page "https://rust-lang.github.io/futures-rs")
@@ -23996,7 +24366,7 @@ libcurl, which is intended to be used with the @code{git2} crate.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-approx" ,rust-approx-0.5)
-        ("rust-bytemuck" ,rust-bytemuck-1.5)
+        ("rust-bytemuck" ,rust-bytemuck-1)
         ("rust-mint" ,rust-mint-0.5)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.8)
@@ -24024,7 +24394,7 @@ graphics.")
      `(#:skip-build? #t  ; TODO: we need a more recent criterion
        #:cargo-inputs
        (("rust-approx" ,rust-approx-0.4)
-        ("rust-bytemuck" ,rust-bytemuck-1.5)
+        ("rust-bytemuck" ,rust-bytemuck-1)
         ("rust-mint" ,rust-mint-0.5)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.8)
@@ -24051,7 +24421,7 @@ graphics.")
     (arguments
      `(#:skip-build? #t  ; TODO: we need a more recent criterion
        #:cargo-inputs
-       (("rust-bytemuck" ,rust-bytemuck-1.5)
+       (("rust-bytemuck" ,rust-bytemuck-1)
         ("rust-mint" ,rust-mint-0.5)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.8)
@@ -24078,7 +24448,7 @@ graphics.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bytemuck" ,rust-bytemuck-1.5)
+       (("rust-bytemuck" ,rust-bytemuck-1)
         ("rust-mint" ,rust-mint-0.5)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.8)
@@ -24109,7 +24479,7 @@ graphics.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bytemuck" ,rust-bytemuck-1.5)
+       (("rust-bytemuck" ,rust-bytemuck-1)
         ("rust-mint" ,rust-mint-0.5)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.7)
@@ -25578,8 +25948,35 @@ consistent, and reasonably well performing.")
        #:cargo-inputs
        (("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))))
 
+(define-public rust-hermit-abi-0.2
+  (package
+    (name "rust-hermit-abi")
+    (version "0.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "hermit-abi" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1iz439yz9qzk3rh9pqx2rz5c4107v3qbd7bppfsbzb1mzr02clgf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+    (home-page "https://github.com/hermitcore/rusty-hermit")
+    (synopsis "Small interface to call functions from RustyHermit")
+    (description
+     "Hermit-abi is small interface to call functions from the unikernel RustyHermit.
+It is used to build the target x86_64-unknown-hermit.")
+    ;; The user can choose either license.
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hermit-abi-0.1
   (package
+    (inherit rust-hermit-abi-0.2)
     (name "rust-hermit-abi")
     (version "0.1.10")
     (source
@@ -25591,19 +25988,12 @@ consistent, and reasonably well performing.")
         (sha256
          (base32
           "0blmmzik5cs79ivq70s9gal8ypgzj50wnl2hwsaam46gjjbz2p3j"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
         (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
          ("rust-libc" ,rust-libc-0.2)
-         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
-    (home-page "https://github.com/hermitcore/rusty-hermit")
-    (synopsis "Small interface to call functions from RustyHermit")
-    (description
-     "Hermit-abi is small interface to call functions from the unikernel RustyHermit.
-It is used to build the target x86_64-unknown-hermit.")
-    (license (list license:expat license:asl2.0))))
+         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
 
 (define-public rust-hex-0.4
   (package
@@ -26999,6 +27389,56 @@ with hyper.")
      "This package provides a Knuth-Liang hyphenation for a variety of languages.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-iana-time-zone-haiku-0.1
+  (package
+    (name "rust-iana-time-zone-haiku")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "iana-time-zone-haiku" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1jix9qrqxclj9r4wkg7d3fr987d77vdg3qy2c5hl4ry19wlaw0q7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cxx" ,rust-cxx-1)
+        ("rust-cxx-build" ,rust-cxx-build-1))))
+    (home-page "https://github.com/strawlab/iana-time-zone")
+    (synopsis "IANA-time-zone support crate for Haiku OS")
+    (description
+     "This package provides iana-time-zone support crate for Haiku OS.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-iana-time-zone-0.1
+  (package
+    (name "rust-iana-time-zone")
+    (version "0.1.53")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "iana-time-zone" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ra7nvai8n3alvljswacjbnhfcpivpi7xqbc5n048w18gdk25hb4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ; Not all files included.
+       #:cargo-inputs
+       (("rust-android-system-properties" ,rust-android-system-properties-0.1)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
+        ("rust-iana-time-zone-haiku" ,rust-iana-time-zone-haiku-0.1)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://github.com/strawlab/iana-time-zone")
+    (synopsis "IANA time zone")
+    (description
+     "This package provides the IANA time zone for the current system.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ident-case-1
   (package
     (name "rust-ident-case")
@@ -27400,28 +27840,28 @@ that efficiently appends and removes common indentation after every newline.")
 (define-public rust-indexmap-1
   (package
     (name "rust-indexmap")
-    (version "1.7.0")
+    (version "1.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "indexmap" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19b2zwfajhsfcgny0clv8y4jppy704znfhv8nv2dw9a18l2kcqxw"))))
+        (base32 "16dkr2h5p379jcr8rnb420396yvzid2myirc2w70zcf43yffg18q"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.11)
-        ("rust-rayon" ,rust-rayon-1)
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rustc-rayon" ,rust-rustc-rayon-0.4)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-fnv" ,rust-fnv-1)
         ("rust-fxhash" ,rust-fxhash-0.2)
-        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-itertools" ,rust-itertools-0.10)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-quickcheck" ,rust-quickcheck-0.9)
-        ("rust-rand" ,rust-rand-0.7)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
         ("rust-serde-derive" ,rust-serde-derive-1))))
     (home-page "https://github.com/bluss/indexmap")
     (synopsis "Hash table with consistent order and fast iteration")
@@ -27435,6 +27875,33 @@ removals, and it allows lookup of its elements by either hash table key
 or numerical index.  A corresponding hash set type is also provided.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-indexmap-1.7
+  (package
+    (inherit rust-indexmap-1)
+    (name "rust-indexmap")
+    (version "1.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "indexmap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19b2zwfajhsfcgny0clv8y4jppy704znfhv8nv2dw9a18l2kcqxw"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.11)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-serde-derive" ,rust-serde-derive-1))))))
+
 (define-public rust-indicatif-0.16
   (package
     (name "rust-indicatif")
@@ -28080,35 +28547,57 @@ versions < 0.2.")
     ;; Either license can be chosen at the users option.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-io-lifetimes-1
+  (package
+    (name "rust-io-lifetimes")
+    (version "1.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "io-lifetimes" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0g76f1c4w3cgyl6qn3kfmi7srphrmjhx3a0rl4qks4ib4n9jl4a6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-async-std" ,rust-async-std-1)
+                       ("rust-fs-err" ,rust-fs-err-2)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-mio" ,rust-mio-0.8)
+                       ("rust-os-pipe" ,rust-os-pipe-1)
+                       ("rust-socket2" ,rust-socket2-0.4)
+                       ("rust-tokio" ,rust-tokio-1)
+                       ("rust-windows-sys" ,rust-windows-sys-0.42))))
+    (home-page "https://github.com/sunfishcode/io-lifetimes")
+    (synopsis "Low-level I/O ownership and borrowing library")
+    (description
+     "This package provides a low-level I/O ownership and borrowing
+library.")
+    ;; The user can choose either license.
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-io-lifetimes-0.7
   (package
+    (inherit rust-io-lifetimes-1)
     (name "rust-io-lifetimes")
     (version "0.7.5")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "io-lifetimes" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
                 "0x10ak2iy4p24g7bnp1rfrq6aqddjlzkykgwjdayi7nl97wmxkjr"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-async-std" ,rust-async-std-1)
              ("rust-fs-err" ,rust-fs-err-2)
              ("rust-libc" ,rust-libc-0.2)
              ("rust-mio" ,rust-mio-0.8)
              ("rust-os-pipe" ,rust-os-pipe-1)
              ("rust-socket2" ,rust-socket2-0.4)
              ("rust-tokio" ,rust-tokio-1)
-             ("rust-windows-sys" ,rust-windows-sys-0.42))))
-    (home-page "https://github.com/sunfishcode/io-lifetimes")
-    (synopsis "Low-level I/O ownership and borrowing library")
-    (description
-     "This package provides a low-level I/O ownership and borrowing
-library.")
-    (license (list license:asl2.0
-                   license:expat))))
+             ("rust-windows-sys" ,rust-windows-sys-0.42))))))
 
 (define-public rust-iovec-0.1
   (package
@@ -28374,6 +28863,31 @@ and locking in the core framework.")
 whether or not a given path points to an executable file.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-is-terminal-0.4
+  (package
+    (name "rust-is-terminal")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "is-terminal" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0c2322dg9s35h87ln33w6qsjlgplhzza89rwmkvac4r9ikvhjxlj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-hermit-abi" ,rust-hermit-abi-0.2)
+        ("rust-io-lifetimes" ,rust-io-lifetimes-1)
+        ("rust-rustix" ,rust-rustix-0.36)
+        ("rust-windows-sys" ,rust-windows-sys-0.42))))
+    (home-page "https://github.com/sunfishcode/is-terminal")
+    (synopsis "Test whether a given stream is a terminal")
+    (description
+     "@code{is-terminal} is a simple utility that tests whether a given
+stream runs in a TTY.")
+    (license license:expat)))
+
 (define-public rust-iso8601-0.3
   (package
     (name "rust-iso8601")
@@ -28398,14 +28912,14 @@ whether or not a given path points to an executable file.")
 (define-public rust-itertools-0.10
   (package
     (name "rust-itertools")
-    (version "0.10.3")
+    (version "0.10.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "itertools" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qy55fqbaisr9qgbn7cvdvqlfqbh1f4ddf99zwan56z7l6gx3ad9"))))
+        (base32 "0ww45h7nxx5kj6z2y6chlskxd1igvs4j507anr6dzg99x1h25zdh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -28915,16 +29429,16 @@ the jni-bindgen code generator for binding to JVM APIs from Rust.")
 (define-public rust-jobserver-0.1
   (package
     (name "rust-jobserver")
-    (version "0.1.22")
+    (version "0.1.24")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "jobserver" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1zg7p4khibisbvd8b1lqvvni6lr00g49d4bq2zj6m76bs7jmlbwp"))))
+         "1yn1vxbbqv7dqir6qbfcj8h8ddjf89m5mhvm36h13xx7k5raf9dg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -30373,16 +30887,16 @@ functions and static variables these libraries contain.")
 (define-public rust-libm-0.2
   (package
     (name "rust-libm")
-    (version "0.2.1")
+    (version "0.2.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libm" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0akh56sh51adhagmk9l84dyrlz60gv8ri05xhr13i1b18czkpmy7"))))
+         "1ywg7jfcgfv4jypxi3f6rpf7n9509ky695bfzy1fqhms7ymhi09l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -30906,16 +31420,16 @@ to count the number of lines in a file.")
 (define-public rust-link-cplusplus-1
   (package
     (name "rust-link-cplusplus")
-    (version "1.0.4")
+    (version "1.0.8")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "link-cplusplus" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0m7365ig7r88x7b4gkzj5m7b6wiq42pi1ign7mvyq63jr22sfspr"))))
+          "1x84vvg7gn94x9zrvd67602h3ricmhlv19cpl2alzhqkqz4hglpc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-cc" ,rust-cc-1))))
@@ -31020,8 +31534,37 @@ in plain text.  It is smart about where a link ends, such as with trailing
 punctuation.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-linux-raw-sys-0.1
+  (package
+    (name "rust-linux-raw-sys")
+    (version "0.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "linux-raw-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0zxlp1c4h7kkc4ldgcj5cn7dzynvlksg8y0s9czn2v1sjvc0i7wg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-static-assertions" ,rust-static-assertions-1))
+       #:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
+    (home-page "https://github.com/sunfishcode/linux-raw-sys")
+    (synopsis "Generated bindings for Linux APIs")
+    (description
+     "This package provides automatically generated bindings for
+Linux userspace APIs.")
+    ;; The user can choose either license, or a variant of ASL2.0 with
+    ;; LLVM exception.  See COPYRIGHT in the repository.
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-linux-raw-sys-0.0.46
   (package
+    (inherit rust-linux-raw-sys-0.1)
     (name "rust-linux-raw-sys")
     (version "0.0.46")
     (source (origin
@@ -31038,14 +31581,7 @@ punctuation.")
              ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))
            #:cargo-development-inputs
            `(("rust-libc" ,rust-libc-0.2)
-             ("rust-static-assertions" ,rust-static-assertions-1))))
-    (home-page "https://github.com/sunfishcode/linux-raw-sys")
-    (synopsis "Generated bindings for Linux APIs")
-    (description
-     "This package provides automatically generated bindings for
-Linux userspace APIs.")
-    (license (list license:asl2.0
-                   license:expat))))
+             ("rust-static-assertions" ,rust-static-assertions-1))))))
 
 (define-public rust-libssh2-sys-0.2
   (package
@@ -31182,19 +31718,20 @@ by inspecting the system for user preference.")
 (define-public rust-lock-api-0.4
   (package
     (name "rust-lock-api")
-    (version "0.4.5")
+    (version "0.4.9")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "lock_api" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "028izfyraynijd9h9x5miv1vmg6sjnw1v95wgm7f4xlr7h4lsaki"))))
+         "1py41vk243hwk345nhkn5nw0bd4m03gzjmprdjqq6rg5dwv12l23"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-owning-ref" ,rust-owning-ref-0.4)
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-owning-ref" ,rust-owning-ref-0.4)
         ("rust-scopeguard" ,rust-scopeguard-1)
         ("rust-serde" ,rust-serde-1))))
     (home-page "https://github.com/Amanieu/parking_lot")
@@ -31892,22 +32429,23 @@ library")
 (define-public rust-macrotest-1
   (package
     (name "rust-macrotest")
-    (version "1.0.8")
+    (version "1.0.9")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "macrotest" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "06xk9i9amh325vr6w9dmnlxfp6zamrq57zfl031zd0fscqm3vjx2"))))
+          (base32 "043gc53ch1szw7ihdclnygn464v62viw48iigd5l2iffhq4sx2bl"))))
     (build-system cargo-build-system)
     (arguments
       `(#:cargo-inputs
         (("rust-diff" ,rust-diff-0.1)
          ("rust-glob" ,rust-glob-0.3)
-         ("rust-rand" ,rust-rand-0.7)
+         ("rust-prettyplease" ,rust-prettyplease-0.1)
          ("rust-serde" ,rust-serde-1)
          ("rust-serde-json" ,rust-serde-json-1)
+         ("rust-syn" ,rust-syn-1)
          ("rust-toml" ,rust-toml-0.5))))
     (home-page "https://github.com/eupn/macrotest")
     (synopsis "Test harness for macro expansion")
@@ -32045,28 +32583,25 @@ algorithms.  It supports CBC block cipher mode, PKCS5 padding and 64, 128,
 (define-public rust-markup5ever-0.10
   (package
     (name "rust-markup5ever")
-    (version "0.10.0")
+    (version "0.10.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "markup5ever" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1aqxl1lsc8s6ycsw5ibwynadnb9qpiab4ggwgdq9pjlnjdk8vqxa"))))
+          "1zf8iq2czd6kz99fjs3pgf5c17lfz75ds31khkfiqbc50gxl0kx2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4)
         ("rust-phf" ,rust-phf-0.8)
-        ("rust-string-cache" ,rust-string-cache-0.8)
-        ("rust-tendril" ,rust-tendril-0.4)
         ("rust-phf-codegen" ,rust-phf-codegen-0.8)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5))))
+        ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5)
+        ("rust-tendril" ,rust-tendril-0.4))))
     (home-page "https://github.com/servo/html5ever")
     (synopsis "Common code for xml5ever and html5ever")
     (description
@@ -32172,17 +32707,16 @@ statement, the first matching branch is the item that gets emitted.")
 (define-public rust-matches-0.1
   (package
     (name "rust-matches")
-    (version "0.1.8")
+    (version "0.1.9")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "matches" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "020axl4q7rk9vz90phs7f8jas4imxal9y9kxl4z4v7a6719mrz3z"))))
+          "0gw5ib38jfgyyah8nyyxr036grqv1arkf1srgfa4h386dav7iqx3"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/SimonSapin/rust-std-candidates")
     (synopsis "Macro to evaluate whether an expression matches a pattern")
     (description "This package provides a macro to evaluate, as a boolean,
@@ -32356,21 +32890,21 @@ parallelize and optimize.")
   (package
     (inherit rust-matrixmultiply-0.3)
     (name "rust-matrixmultiply")
-    (version "0.2.3")
+    (version "0.2.4")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "matrixmultiply" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "13s7nfd3dfcsrixld2lk8c563ih5xzczl2w36hprfc016rkfrxyl"))))
+          "1hc4vp19x823xgkm374wsxnzmqbjhmyaj5nr0lhm9k9i02x0cs4i"))))
     (arguments
      `(#:cargo-inputs
        (("rust-rawpointer" ,rust-rawpointer-0.2))
        #:cargo-development-inputs
        (("rust-bencher" ,rust-bencher-0.1)
-        ("rust-itertools" ,rust-itertools-0.7))))))
+        ("rust-itertools" ,rust-itertools-0.8))))))
 
 (define-public rust-matrixmultiply-0.1
   (package
@@ -32600,21 +33134,24 @@ unstable -Z self-profile flag.")
 (define-public rust-memchr-2
   (package
     (name "rust-memchr")
-    (version "2.4.1")
+    (version "2.5.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "memchr" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0smq8xzd40njqpfzv5mghigj91fzlfrfg842iz8x0wqvw2dw731h"))))
+          "0vanfk5mzs1g1syqnj03q8n0syggnhn55dq535h2wxr7rwpfbzrd"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2))))
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-1))))
     (home-page "https://github.com/BurntSushi/rust-memchr")
     (synopsis "Safe interface to memchr")
     (description "The @code{memchr} crate provides heavily optimized routines
@@ -34392,7 +34929,7 @@ transformations and statically-sized or dynamically-sized matrices.")
         (("rust-abomonation" ,rust-abomonation-0.7)
          ("rust-alga" ,rust-alga-0.9)
          ("rust-approx" ,rust-approx-0.4)
-         ("rust-bytemuck" ,rust-bytemuck-1.5)
+         ("rust-bytemuck" ,rust-bytemuck-1)
          ("rust-glam" ,rust-glam-0.13)
          ("rust-matrixcompare-core" ,rust-matrixcompare-core-0.1)
          ("rust-matrixmultiply" ,rust-matrixmultiply-0.3)
@@ -35315,16 +35852,16 @@ cryptographic library.")
 (define-public rust-new-debug-unreachable-1
   (package
     (name "rust-new-debug-unreachable")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "new_debug_unreachable" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0c1br326qa0rrzxrn2rd5ah7xaprig2i9r4rwsx06vnvc1f003zl"))))
+         "0m1bg3wz3nvxdryg78x4i8hh9fys4wp2bi0zg821dhvf44v4g8p4"))))
     (build-system cargo-build-system)
     (arguments `(#:skip-build? #t))
     (home-page
@@ -36035,38 +36572,25 @@ implementation (which is unstable / requires nightly).")
 (define-public rust-nom-7
   (package
     (name "rust-nom")
-    (version "7.1.1")
+    (version "7.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nom" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0djc3lq5xihnwhrvkc4bj0fd58sjf632yh6hfiw545x355d3x458"))))
+         "132lkkqd8hcbmpb90hncwknr7rn6knfq7774d679k74iqilpfl75"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Tests require example directory, not included in tarball.
        #:cargo-inputs
        (("rust-memchr" ,rust-memchr-2)
-        ("rust-minimal-lexical" ,rust-minimal-lexical-0.2)
-        ("rust-version-check" ,rust-version-check-0.9))
+        ("rust-minimal-lexical" ,rust-minimal-lexical-0.2))
        #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-jemallocator" ,rust-jemallocator-0.3)
-        ("rust-proptest" ,rust-proptest-1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'override-jemalloc
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((jemalloc (assoc-ref inputs "jemalloc")))
-               (setenv "JEMALLOC_OVERRIDE"
-                       (string-append jemalloc "/lib/libjemalloc_pic.a")))
-             #t)))))
-    (native-inputs
-     (list jemalloc))
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-proptest" ,rust-proptest-1))))
     (home-page "https://github.com/Geal/nom")
     (synopsis
      "Byte-oriented, zero-copy, parser combinators library")
@@ -36079,20 +36603,27 @@ combinators library.")
   (package
     (inherit rust-nom-7)
     (name "rust-nom")
-    (version "6.0.1")
+    (version "6.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nom" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1w0ppq112myzwk23c8m0wmq0nv73xvn0g9gl2kfm83aadgylq0w8"))))
+         "19h3l5hajpcszwl6nzcmgs4mpng73ifn6akslq7n4g1s12wm2p4w"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Allow any version of memchr 2.
+           (substitute* "Cargo.toml"
+             ((">=2.0, <2.4") "2.0"))))))
     (arguments
      `(#:tests? #f  ; Tests require example directory, not included in tarball.
        #:cargo-inputs
        (("rust-bitvec" ,rust-bitvec-0.19)
+        ("rust-funty" ,rust-funty-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-lexical-core" ,rust-lexical-core-0.7)
         ("rust-memchr" ,rust-memchr-2)
@@ -36109,7 +36640,8 @@ combinators library.")
              (let ((jemalloc (assoc-ref inputs "jemalloc")))
                (setenv "JEMALLOC_OVERRIDE"
                        (string-append jemalloc "/lib/libjemalloc_pic.a")))
-             #t)))))))
+             #t)))))
+    (native-inputs (list jemalloc))))
 
 (define-public rust-nom-5
   (package
@@ -37157,16 +37689,16 @@ directly.")
   (package
     (inherit rust-num-rational-0.3)
     (name "rust-num-rational")
-    (version "0.2.3")
+    (version "0.2.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num-rational" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "18q3vq3xldhaj0z3f92am8f59m1awywgdj28c7wvx0bcksgwfkfs"))))
+         "1vsaz96chxcgpqd5a0dq8hb3b4sj6dnlhwmpbkf4mx6vnls0202w"))))
     (arguments
      `(#:cargo-inputs
        (("rust-num-bigint" ,rust-num-bigint-0.2)
@@ -37771,22 +38303,25 @@ other crates to create safe wrappers around Oniguruma.")
 (define-public rust-once-cell-1
   (package
     (name "rust-once-cell")
-    (version "1.15.0")
+    (version "1.17.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "once_cell" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1q9r8c0ls1qgjp89p4rd36sjv4671pz6710c106ajwcv2c2asbg8"))))
+         "0rpackaf6ljxkcaa3svaiak1ddsbh0hqf5z3l7bb78hyfjhznqbg"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f      ; Needs a newer rust
+       #:cargo-inputs
        (("rust-atomic-polyfill" ,rust-atomic-polyfill-1)
+        ("rust-critical-section" ,rust-critical-section-1)
         ("rust-parking-lot-core" ,rust-parking-lot-core-0.9))
        #:cargo-development-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+       (("rust-critical-section" ,rust-critical-section-1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1))))
     (home-page "https://github.com/matklad/once_cell")
@@ -37896,19 +38431,19 @@ the system.")
        (("rust-pathdiff" ,rust-pathdiff-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
-(define-public rust-opener-0.4
+(define-public rust-opener-0.5
   (package
     (name "rust-opener")
-    (version "0.4.1")
+    (version "0.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "opener" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1bpknqvhqkalhmq8n2m97apc0r3y194ppybl1qxay34xr83p848k"))))
+         "0lkrn4fv1h4m8gmp7ll6x7vjvb6kls2ngwa5cgsh2ix5fb6yp8sf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -37946,14 +38481,14 @@ crate.")
 (define-public rust-openssl-0.10
   (package
     (name "rust-openssl")
-    (version "0.10.41")
+    (version "0.10.49")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "openssl" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1l2vpxq5ln326s64lbacqs4hq6k5yn2zhwqbyby0sj9nagvfp3v1"))))
+                "0cssygqbgdim10y7qrgz0rj5k839jqiv2n9ccw1lx8ipp1m10bsd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -38056,28 +38591,28 @@ system for OpenSSL.")
 (define-public rust-openssl-sys-0.9
   (package
     (name "rust-openssl-sys")
-    (version "0.9.75")
+    (version "0.9.84")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "openssl-sys" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0bxlrsfkvryv179na416mvj0s90v9yngkmkkv8y1lm0h4w6bvyg5"))
+         (base32 "1ym0vcfnyp8bf8lidz8w0yx0n6pva37nvdww0c22kn62kp7fl81s"))
         (patches (search-patches "rust-openssl-sys-no-vendor.patch"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ;; Build dependencies:
         ("rust-autocfg" ,rust-autocfg-1)
-        ("rust-bindgen" ,rust-bindgen-0.59)
+        ("rust-bindgen" ,rust-bindgen-0.64)
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
      (list pkg-config))
-    (inputs
+    (propagated-inputs
      (list openssl))
     (home-page "https://github.com/sfackler/rust-openssl")
     (synopsis "FFI bindings to OpenSSL")
@@ -38193,8 +38728,37 @@ system for OpenSSL.")
 PartialOrd types, like floats.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ordered-float-3
+  (package
+    (name "rust-ordered-float")
+    (version "3.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ordered-float" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1gr31ksgbqariv6hz3s5bc15a5vh4k65dyn8m7j59lhnji0b2knq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-arbitrary" ,rust-arbitrary-1)
+                       ("rust-bytemuck" ,rust-bytemuck-1)
+                       ("rust-num-traits" ,rust-num-traits-0.2)
+                       ("rust-proptest" ,rust-proptest-1)
+                       ("rust-rand" ,rust-rand-0.8)
+                       ("rust-rkyv" ,rust-rkyv-0.7)
+                       ("rust-schemars" ,rust-schemars-0.8)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-speedy" ,rust-speedy-0.8))))
+    (home-page "https://github.com/reem/rust-ordered-float")
+    (synopsis "Wrappers for total ordering on floats")
+    (description
+     "This package provides wrappers for total ordering on floats in Rust.")
+    (license license:expat)))
+
 (define-public rust-ordered-float-2
   (package
+    (inherit rust-ordered-float-3)
     (name "rust-ordered-float")
     (version "2.1.1")
     (source
@@ -38206,20 +38770,14 @@ PartialOrd types, like floats.")
        (sha256
         (base32
          "0632g8bacvras6nig1bb1ihgc560476jkrb3is6n542ll86q8vvn"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build?
        #t
        #:cargo-inputs
        (("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (("rust-serde-test" ,rust-serde-test-1))))
-    (home-page "https://github.com/reem/rust-ordered-float")
-    (synopsis "Wrappers for total ordering on floats")
-    (description
-     "This package provides wrappers for total ordering on floats in Rust.")
-    (license license:expat)))
+       (("rust-serde-test" ,rust-serde-test-1))))))
 
 (define-public rust-ordered-float-1
   (package
@@ -38293,22 +38851,49 @@ iteration.  NOTE: This crate was renamed to @code{indexmap}.  Please use it
 under its new name.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-os-info-3
+  (package
+    (name "rust-os-info")
+    (version "3.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "os_info" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09x2sm4pgcpk14hakj4iq0zkglx1bwxlq3a5mbwc737dpwh11jba"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7))
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/stanislav-tkach/os_info")
+    (synopsis "Detect the operating system type and version")
+    (description
+     "This library detects the operating system type and version.")
+    (license license:expat)))
+
 (define-public rust-os-pipe-1
   (package
     (name "rust-os-pipe")
-    (version "1.0.1")
+    (version "1.1.2")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "os-pipe" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0mczqmqrkzmln4xg5ki1gwgykf4dsii0h4p7fxf667889ysz54ic"))))
+         (base32 "0fa640v9bi1qcq3jgq1p76lphi4fwj4a9msrmfrq87n1z3qm58n6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-windows-sys" ,rust-windows-sys-0.42))))
     (native-inputs
      (list python-minimal-wrapper))     ; For the tests.
     (home-page "https://github.com/oconnor663/os_pipe.rs")
@@ -38638,29 +39223,25 @@ normally prevent moving a type that has been borrowed from.")
 (define-public rust-packed-simd-2-0.3
   (package
     (name "rust-packed-simd-2")
-    (version "0.3.6")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "packed-simd-2" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1i8hmhsyzqsas2rhxg088mcwvzljrqhvf8lfz8b1dj6g2rkw1h3i"))
+        (base32 "10p2bm0p57shg3arlpfwm6z0bbnlkyr4g0dlkmpwvz6qaba4r4d1"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Unpin the dependencies.
            (substitute* "Cargo.toml"
-             (("=0.2.73") "^0.2.73")
-             (("=0.3.23") "^0.3.23"))
-           #t))))
+             (("version = \"=") "version = \"^"))))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f  ; error[E0432]: unresolved import `packed_simd`
-       #:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-core-arch" ,rust-core-arch-0.1)
         ("rust-libm" ,rust-libm-0.1)
         ("rust-sleef-sys" ,rust-sleef-sys-0.1))
@@ -38673,8 +39254,7 @@ normally prevent moving a type that has been borrowed from.")
        (modify-phases %standard-phases
          (add-after 'unpack 'enable-unstable-features
            (lambda _
-             (setenv "RUSTC_BOOTSTRAP" "1")
-             #t)))))
+             (setenv "RUSTC_BOOTSTRAP" "1"))))))
     (home-page "https://github.com/rust-lang-nursery/packed_simd")
     (synopsis "Portable Packed SIMD vectors")
     (description "Portable Packed SIMD vectors.")
@@ -39040,11 +39620,12 @@ unparking.")
         (base32 "13r2xk7mnxfc5g0g6dkdxqdqad99j7s7z8zhzz4npw5r0g0v4hip"))))
     (build-system cargo-build-system)
     (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-instant" ,rust-instant-0.1)
-             ("rust-lock-api" ,rust-lock-api-0.4)
-             ("rust-parking-lot-core" ,rust-parking-lot-core-0.8))))
+     (list #:cargo-inputs
+           `(("rust-lock-api" ,rust-lock-api-0.4)
+             ("rust-parking-lot-core" ,rust-parking-lot-core-0.9))
+           #:cargo-development-inputs
+           `(("rust-bincode" ,rust-bincode-1)
+             ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/Amanieu/parking_lot")
     (synopsis
      "Efficient implementations of the standard synchronization primitives")
@@ -39178,14 +39759,14 @@ synchronization primitives.")
 (define-public rust-parking-lot-core-0.9
   (package
     (name "rust-parking-lot-core")
-    (version "0.9.3")
+    (version "0.9.6")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "parking_lot_core" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0ab95rljb99rm51wcic16jgbajcr6lgbqkrr21w7bc2wyb5pk8h9"))))
+                "1grkf6s7zgl5blgw941g98z5csfjbrxavprspc8396aw9f0zh7ms"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -39196,7 +39777,7 @@ synchronization primitives.")
         ("rust-redox-syscall" ,rust-redox-syscall-0.2)
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-thread-id" ,rust-thread-id-4)
-        ("rust-windows-sys" ,rust-windows-sys-0.36))))
+        ("rust-windows-sys" ,rust-windows-sys-0.42))))
     (home-page "https://github.com/Amanieu/parking_lot")
     (synopsis "API for creating custom synchronization primitives")
     (description "This package provides an advanced API for creating custom
@@ -40177,20 +40758,22 @@ runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
 (define-public rust-pem-1
   (package
     (name "rust-pem")
-    (version "1.0.2")
+    (version "1.1.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "pem" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "0iqrvfnm71x9pvff39d5ajwn3gc9glxlv4d4h22max7342db18z9"))))
+          (base32 "1f184b7vs5kgwglfsy9adqqy7625jsq8jj1lsxah9abn78kmr0x8"))))
     (build-system cargo-build-system)
     (arguments
       `(#:cargo-inputs
-        (("rust-base64" ,rust-base64-0.13))
+        (("rust-base64" ,rust-base64-0.13)
+         ("rust-serde" ,rust-serde-1))
         #:cargo-development-inputs
-        (("rust-criterion" ,rust-criterion-0.3))))
+        (("rust-criterion" ,rust-criterion-0.3)
+         ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/jcreekmore/pem-rs")
     (synopsis "Parse and encode PEM-encoded data")
     (description
@@ -40356,41 +40939,44 @@ algorithm.")
 (define-public rust-pest-2
   (package
     (name "rust-pest")
-    (version "2.1.3")
+    (version "2.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pest" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0lry80bm90x47nq71wxq83kjrm9ashpz4kbm92p90ysdx4m8gx0h"))))
+         "02n3b2hv9ciysybs9qzxza25gp8493dd7r8b57kfkxwi9nhb8ms2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-serde" ,rust-serde-1)
+       (("rust-bytecount" ,rust-bytecount-0.6)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-thiserror" ,rust-thiserror-1)
         ("rust-ucd-trie" ,rust-ucd-trie-0.1))))
     (home-page "https://pest.rs/")
     (synopsis "The Elegant Parser")
     (description "The Elegant Parser.")
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-pest-derive-2
   (package
     (name "rust-pest-derive")
-    (version "2.1.0")
+    (version "2.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pest_derive" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1l5jfa6ril71cw5nsiw0r45br54dd8cj2r1nc2d1wq6wb3jilgc3"))))
+         "19m0wd2lcg6d2halnlfcgl0mfpgjy5a29q875vk6bp8c7cwxl714"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -40405,16 +40991,16 @@ algorithm.")
 (define-public rust-pest-generator-2
   (package
     (name "rust-pest-generator")
-    (version "2.1.1")
+    (version "2.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pest_generator" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1h3z8jccki87mn7gppy4292s1ah98z4md998w5pd04jpkclwz7vv"))))
+         "0z52iw9g9jcg8v7d56s9m49cbl1k5wsxax1wjl1666f8v0s3dda6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -40432,23 +41018,23 @@ algorithm.")
 (define-public rust-pest-meta-2
   (package
     (name "rust-pest-meta")
-    (version "2.1.2")
+    (version "2.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pest_meta" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0iymvrh7lcfi8iarkgq0hwgarr00np3l4xg4bx42rmvgi6czshyz"))))
+         "0lbskklh77xnyk1yr8c387l80s37s30lrfv636s7hild58rz3x0f"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-maplit" ,rust-maplit-1)
+       (("rust-once-cell" ,rust-once-cell-1)
         ("rust-pest" ,rust-pest-2)
-        ("rust-sha-1" ,rust-sha-1-0.8))))
+        ("rust-sha2" ,rust-sha2-0.10))))
     (home-page "https://pest.rs")
     (synopsis "Pest meta language parser and validator")
     (description
@@ -40545,21 +41131,22 @@ and graph algorithms.")
 (define-public rust-phf-0.10
   (package
     (name "rust-phf")
-    (version "0.10.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "phf" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17s0k0z1rjczk37cpbmn718h7dkqci1kk9w2spbmjjwc06qkvz5r"))))
+        (base32 "0naj8n5nasv5hj5ldlva3cl6y3sv7zp3kfgqylhbrg55v3mg3fzs"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f          ; Doc tests fail.
        #:cargo-inputs
        (("rust-phf-macros" ,rust-phf-macros-0.10)
         ("rust-phf-shared" ,rust-phf-shared-0.10)
-        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))))
+        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-serde" ,rust-serde-1))))
     (home-page "https://github.com/sfackler/rust-phf")
     (synopsis "Runtime support for perfect hash function data structures")
     (description "This package provides runtime support for perfect hash
@@ -40900,21 +41487,20 @@ function data structures.")
 (define-public rust-pin-project-1
   (package
     (name "rust-pin-project")
-    (version "1.0.2")
+    (version "1.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pin-project" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19qw2nm2kk38v9j16nsm8j3fkh0g8pjq0k4cplx7i2f4q8vj5k4w"))))
+        (base32 "1k3f9jkia3idxl2pqxamszwnl89dk52fa4jqj3p7zmmwnq4scadd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-pin-project-internal" ,rust-pin-project-internal-1))
        #:cargo-development-inputs
-       (("rust-pin-project-auxiliary-macro"
-         ,rust-pin-project-auxiliary-macro-0.0)
+       (("rust-macrotest" ,rust-macrotest-1)
         ("rust-rustversion" ,rust-rustversion-1)
         ("rust-static-assertions" ,rust-static-assertions-1)
         ("rust-trybuild" ,rust-trybuild-1))))
@@ -40928,18 +41514,28 @@ function data structures.")
   (package
     (inherit rust-pin-project-1)
     (name "rust-pin-project")
-    (version "0.4.22")
+    (version "0.4.30")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pin-project" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "05wwxy46j9z27ibbiisjqk0rivf0z00h4al1f92mwjp9pz6sdqqj"))))
+        (base32 "0nlxmsiq39bc73iryh92yslrp2jzlkdjjxd7rv5sjzpflljgkw1y"))
+       (snippet
+        #~(begin
+            (use-modules (guix build utils))
+            (substitute* "Cargo.toml"
+              (("version = \"=") "version = \"^"))))))
     (arguments
-     `(#:tests? #f ; XXX: Fix-me.
-       #:cargo-inputs
-       (("rust-pin-project-internal" ,rust-pin-project-internal-0.4))))))
+     `(#:cargo-inputs
+       (("rust-pin-project-internal" ,rust-pin-project-internal-0.4))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-ryu" ,rust-ryu-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-trybuild" ,rust-trybuild-1))))))
 
 (define-public rust-pin-project-auxiliary-macro-0.0
   (package
@@ -40962,14 +41558,14 @@ function data structures.")
 (define-public rust-pin-project-internal-1
   (package
     (name "rust-pin-project-internal")
-    (version "1.0.2")
+    (version "1.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pin-project-internal" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0pwy3m32scf3ypjb9ai151lmaa27vyj06lc64i28l0r31fzx5s7q"))))
+        (base32 "0maa6icn7rdfy4xvgfaq7m7bwpw9f19wg76f1ncsiixd0lgdp6q6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false
@@ -40988,20 +41584,22 @@ crate.")
   (package
     (inherit rust-pin-project-internal-1)
     (name "rust-pin-project-internal")
-    (version "0.4.22")
+    (version "0.4.30")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pin-project-internal" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xxac6f3ip45zqbfcmmk748ywjw9sbavz1fcswvqgn3rrx2zs3va"))))
+        (base32 "07p6mwz6kz317a6n3p93yk4llj939ihqdz7d1mwl7gmyx468s745"))))
     (arguments
-     `(#:tests? #f ; XXX: Fix-me.
+     `(#:tests? #f ; XXX: Doc tests fail.
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))))
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1))))))
 
 (define-public rust-pin-project-lite-0.2
   (package
@@ -41185,15 +41783,15 @@ with additional support for PKCS#8v2 asymmetric key packages (RFC 5958).")
 (define-public rust-pkg-config-0.3
   (package
     (name "rust-pkg-config")
-    (version "0.3.19")
+    (version "0.3.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pkg-config" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0k4860955riciibxr8bhnklp79jydp4xfylwdn5v9kj96hxlac9q"))))
+         "0q2i61dhqvawc51zfzl3jich57w0cjgfa894hn6ings7ffgsbjba"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -41992,6 +42590,40 @@ for constructing a Message Authentication Code (MAC).")
 overloading without macros in Rust.")
     (license license:expat)))
 
+(define-public rust-portable-atomic-1
+  (package
+    (name "rust-portable-atomic")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "portable-atomic" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "06p5dglnqj43m4fj70dwcqhv9rmy9amn9pdpgpzd8fx0hf30rh1r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Not all test dependencies declared.
+       #:cargo-inputs
+       (("rust-critical-section" ,rust-critical-section-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-critical-section" ,rust-critical-section-1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-paste" ,rust-paste-1)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-test" ,rust-serde-test-1)
+        ("rust-sptr" ,rust-sptr-0.3)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/taiki-e/portable-atomic")
+    (synopsis "Portable atomic types")
+    (description
+     "This package provides portable atomic types, including support for
+128-bit atomics, atomic float, etc.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-postgres-0.19
   (package
     (name "rust-postgres")
@@ -42642,6 +43274,29 @@ replacements, adding colorful diffs.")
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-env-logger" ,rust-env-logger-0.6))))))
 
+(define-public rust-prettyplease-0.1
+  (package
+    (name "rust-prettyplease")
+    (version "0.1.23")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "prettyplease" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0y2wbmflbkgp13ywd7qyq7hyi59x5zazmljnw8gg09wnfwak4zp9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/dtolnay/prettyplease")
+    (synopsis "Minimal `syn` syntax tree pretty-printer")
+    (description
+     "This package provides a minimal `syn` syntax tree pretty-printer.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-prettytable-rs-0.8
   (package
     (name "rust-prettytable-rs")
@@ -42910,15 +43565,15 @@ in your code.")
 (define-public rust-proc-macro2-1
   (package
     (name "rust-proc-macro2")
-    (version "1.0.43")
+    (version "1.0.47")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "proc-macro2" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1avvpf4qki8mg2na60yr3afbsfl5p6vllac6516xgwy93g3a4b0a"))))
+          "09g7alc7mlbycsadfh7lwskr1qfxbiic9qp9z751cqz3n04dk8sy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags '("--lib")
@@ -43788,19 +44443,17 @@ ecosystem.")
   (package
     (inherit rust-pyo3-build-config-0.16)
     (name "rust-pyo3-build-config")
-    (version "0.15.1")
+    (version "0.15.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pyo3-build-config" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0aw5zfqwzj5rzfxjyqvrqfam138d1009jh6kia4xrgdz538y9yfv"))))
+        (base32 "0414biclhrxv6y0bjm6s9fq9z6yah393ffkd8748pqdq83y3k4kp"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-once-cell" ,rust-once-cell-1))))
-    (native-inputs '())))
+     `(#:cargo-inputs
+       (("rust-once-cell" ,rust-once-cell-1))))))
 
 (define-public rust-pyo3-ffi-0.16
   (package
@@ -43854,22 +44507,21 @@ ecosystem.")
   (package
     (inherit rust-pyo3-macros-backend-0.16)
     (name "rust-pyo3-macros-backend")
-    (version "0.15.1")
+    (version "0.15.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pyo3-macros-backend" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12i1n1j8l4q4lzalsvvlw2pak1h8wnz3xcn7y82s2jgf4pl0jkzl"))))
-    (build-system cargo-build-system)
+        (base32 "15bhc1xib9yz4l1sd2lk3nc7scbqsjfvgvlr3mj0xq0jqh92i32s"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.15)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))))
+        ("rust-syn" ,rust-syn-1))))
+    (native-inputs (list python))))
 
 (define-public rust-pyo3-macros-0.16
   (package
@@ -43918,21 +44570,20 @@ ecosystem.")
   (package
     (inherit rust-pyo3-macros-0.16)
     (name "rust-pyo3-macros")
-    (version "0.15.1")
+    (version "0.15.2")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "pyo3-macros" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "0mfp3yz6743vrsp2vh8is3gbyzlxzx4bam5wnhi9g6hz5friww37"))))
-    (build-system cargo-build-system)
+         (base32 "0fmrzl185i00c6kdvy7icmhhc99c51pyha46incqggk4qvl4gch0"))))
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-pyo3-macros-backend" ,rust-pyo3-macros-backend-0.15)
-         ("rust-quote" ,rust-quote-1)
-         ("rust-syn" ,rust-syn-1))))))
+     `(#:cargo-inputs
+       (("rust-pyo3-macros-backend" ,rust-pyo3-macros-backend-0.15)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (native-inputs (list python))))
 
 (define-public rust-pyo3-0.16
   (package
@@ -43952,7 +44603,7 @@ ecosystem.")
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-eyre" ,rust-eyre-0.6)
         ("rust-hashbrown" ,rust-hashbrown-0.11)
-        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-indexmap" ,rust-indexmap-1.7)
         ("rust-indoc" ,rust-indoc-1)
         ("rust-inventory" ,rust-inventory-0.2)
         ("rust-libc" ,rust-libc-0.2)
@@ -44010,29 +44661,26 @@ Python code from a Rust binary is also supported.")
   (package
     (inherit rust-pyo3-0.16)
     (name "rust-pyo3")
-    (version "0.15.1")
+    (version "0.15.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pyo3" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "082p014xd8ipwnfsq1ln871wkslxmbrxd7kpqwa0mbq53jzivw3w"))
+        (base32 "0ljp3m1frg8y50al4cbadwxfwwrgsvslmljclp4cf20y4ykm07fl"))
        (modules '((guix build utils)))
        (snippet
-        ;; XXX: Relax "dev-dependencies.criterion"; this must match the
-        ;; version of RUST-CRITERION-0.3.
-        '(substitute* "Cargo.toml"
-           (("\"=0\\.3\\.4\"")
-            "\"^0.3.4\"")))))
-    (build-system cargo-build-system)
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (arguments
      `(#:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-eyre" ,rust-eyre-0.6)
         ("rust-hashbrown" ,rust-hashbrown-0.11)
-        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-indexmap" ,rust-indexmap-1.7)
         ("rust-indoc" ,rust-indoc-0.3)
         ("rust-inventory" ,rust-inventory-0.1)
         ("rust-libc" ,rust-libc-0.2)
@@ -44046,7 +44694,8 @@ Python code from a Rust binary is also supported.")
         ("rust-unindent" ,rust-unindent-0.1))
        #:cargo-development-inputs
        (("rust-assert-approx-eq" ,rust-assert-approx-eq-1)
-        ("rust-bitflags" ,rust-bitflags-1.2)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-clap" ,rust-clap-2)
         ("rust-criterion" ,rust-criterion-0.3)
         ("rust-half" ,rust-half-1)
         ("rust-proptest" ,rust-proptest-0.10)
@@ -44866,25 +45515,26 @@ learnt from TrieMap and Sequence Trie.")
 (define-public rust-rand-0.8
   (package
     (name "rust-rand")
-    (version "0.8.4")
+    (version "0.8.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rand" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1n5wska2fbfj4dsfz8mc0pd0dgjlrb6c9anpk5mwym345rip6x9f"))))
+        (base32 "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
         ("rust-rand-chacha" ,rust-rand-chacha-0.3)
         ("rust-rand-core" ,rust-rand-core-0.6)
-        ("rust-rand-hc" ,rust-rand-hc-0.3)
-        ("rust-serde" ,rust-serde-1))))
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-rand-pcg" ,rust-rand-pcg-0.3))))
     (home-page "https://crates.io/crates/rand")
     (synopsis "Random number generators and other randomness functionality")
     (description
@@ -45022,20 +45672,22 @@ useful types and distributions, and some randomness-related algorithms.")
 (define-public rust-rand-chacha-0.3
   (package
     (name "rust-rand-chacha")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rand_chacha" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "03df2xh5nbdvwr17qm3sviaxa95r8yhm1nil2pr0pqf90p7ka9z1"))))
+        (base32 "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-ppv-lite86" ,rust-ppv-lite86-0.2)
-        ("rust-rand-core" ,rust-rand-core-0.6))))
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://crates.io/crates/rand_chacha")
     (synopsis "ChaCha random number generator")
     (description
@@ -45083,18 +45735,17 @@ useful types and distributions, and some randomness-related algorithms.")
 (define-public rust-rand-core-0.6
   (package
     (name "rust-rand-core")
-    (version "0.6.2")
+    (version "0.6.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rand_core" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1rvas1afjvd2827b8mf2ilg78h3ksl9npkrdds3wbw9x33mndkrl"))))
+        (base32 "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-getrandom" ,rust-getrandom-0.2)
         ("rust-serde" ,rust-serde-1))))
     (home-page "https://rust-random.github.io/book")
@@ -45181,30 +45832,25 @@ tools for implementation.")
 (define-public rust-rand-distr-0.4
   (package
     (name "rust-rand-distr")
-    (version "0.4.2")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rand_distr" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0brd2946xfapm2bmhmczfbwck041x7khsfhqxw1f24kxis7m8kcn"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (substitute* "Cargo.toml"
-             ;; The resolver feature is not supported by our versions of Cargo.
-             (("resolver = \"2\".*") ""))))))
+        (base32 "0cgfwg3z0pkqhrl0x90c77kx70r6g9z4m6fxq9v0h2ibr2dhpjrj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-average" ,rust-average-0.13)
-        ("rust-num-traits" ,rust-num-traits-0.2)
+       (("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.8)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-special" ,rust-special-0.8))
+        ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (("rust-rand-pcg" ,rust-rand-pcg-0.3))))
+       (("rust-average" ,rust-average-0.13)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-pcg" ,rust-rand-pcg-0.3)
+        ("rust-special" ,rust-special-0.8))))
     (home-page "https://rust-random.github.io/book/")
     (synopsis "Sampling from random number distributions")
     (description "This package provides tool for sampling from random number
@@ -45261,19 +45907,18 @@ distributions.")
 (define-public rust-rand-hc-0.3
   (package
     (name "rust-rand-hc")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rand_hc" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0wra6ar22zdjkry9dsq1mg620m4h3qb9s8rfykkz4im4crqfz41i"))))
+        (base32 "1rwpykyvhkxs4jvqdja3mzp9dqaqamzn113cxaigs9z2dmcry7nm"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-rand-core" ,rust-rand-core-0.6))))
     (home-page "https://crates.io/crates/rand_hc")
     (synopsis "HC128 random number generator")
@@ -45466,15 +46111,15 @@ generator based on timing jitter.")
 (define-public rust-rand-pcg-0.3
   (package
     (name "rust-rand-pcg")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "rand_pcg" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1w47awndfhgcc31zbji66pwndqmc6lsyairqi9b17f82f19riqbx"))))
+          "0gn79wzs5b19iivybwa09wv4lhi4kbcqciasiqqynggnr8cd1jjr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -45868,27 +46513,23 @@ accessors.")
 (define-public rust-rayon-1
   (package
     (name "rust-rayon")
-    (version "1.5.1")
+    (version "1.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "143dl2453bazgk7rwjrickmyqd0ks3q69nfz8axcins19n0clsn0"))))
+        (base32 "1dsr0yyfgdsg8ggh37kq678mfa5j3js6p16ksb7knazhml9s5cvd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1)
-        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
-        ("rust-either" ,rust-either-1)
+       (("rust-either" ,rust-either-1)
         ("rust-rayon-core" ,rust-rayon-core-1))
        #:cargo-development-inputs
-       (("rust-docopt" ,rust-docopt-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.8)
-        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
-        ("rust-serde" ,rust-serde-1))))
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3))))
     (home-page "https://github.com/rayon-rs/rayon")
     (synopsis "Simple work-stealing parallelism for Rust")
     (description
@@ -45947,29 +46588,28 @@ Rust.")
 (define-public rust-rayon-core-1
   (package
     (name "rust-rayon-core")
-    (version "1.9.1")
+    (version "1.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon-core" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "13kdcnqp2p1a5a3amamfjpnm7ay463vq4dfxy4rrh9shr3i210fp"))))
+        (base32 "1lvavqk42lmll47q008j8y6nw54f3sfvcjlbaa26iaq0bnpi1i6a"))))
     (build-system cargo-build-system)
     (arguments
      ;; One of the tests attempts to overflow the stack, but the compiler has
      ;; since gotten smarter and the test became defective.
      `(#:tests? #f
        #:cargo-inputs
        (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
         ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-cpus" ,rust-num-cpus-1))
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
         ("rust-scoped-tls" ,rust-scoped-tls-1))))
     (home-page "https://github.com/rayon-rs/rayon")
     (synopsis "Core APIs for Rayon")
@@ -46322,14 +46962,14 @@ memory to speed up reallocation.")
 (define-public rust-regex-1
   (package
     (name "rust-regex")
-    (version "1.6.0")
+    (version "1.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "regex" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12wqvyh4i75j7pc8sgvmqh4yy3qaj4inc4alyv1cdf3lf4kb6kjc"))))
+        (base32 "0czp6hxg02lm02hvlhp9xjkd65cjcagw119crnaznwd5idsabaj8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -46653,6 +47293,26 @@ uses finite automata and guarantees linear time matching on all inputs.")
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))))
 
+(define-public rust-rend-0.3
+  (package
+    (name "rust-rend")
+    (version "0.3.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rend" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15fz3rw8c74586kxl6dcdn4s864ph884wfpg9shgnbrnnss69bvr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-bytecheck" ,rust-bytecheck-0.6))))
+    (home-page "https://github.com/rkyv/rend")
+    (synopsis "Endian-aware primitives for Rust")
+    (description
+     "This package provides endian-aware primitives for Rust.")
+    (license license:expat)))
+
 (define-public rust-reopen-0.3
   (package
     (name "rust-reopen")
@@ -47553,6 +48213,27 @@ rust.")
 and table-based tests.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rstest-0.11
+  (package
+    (inherit rust-rstest-0.15)
+    (name "rust-rstest")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rstest" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02nh4kpfg1j4v95fhc0bxx9ak3wnz5jg70f94z92wfzyx9mcd212"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1)
+                       ("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-rustc-version" ,rust-rustc-version-0.4)
+                       ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-rstest-0.10
   (package
     (inherit rust-rstest-0.15)
@@ -48502,8 +49183,41 @@ hex conversion traits.")
         (sha256
           (base32 "07pff94vqc1mhrqp9i06xzayiad4xfx7588zkqsdw875lpkqrsqc"))))))
 
+(define-public rust-rustc-rayon-0.4
+  (package
+    (name "rust-rustc-rayon")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustc-rayon" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ykjr1i56jmi8ykkcr7x555wnxki1vsi703mz6n2x7k0naqg0y8s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f                      ;XXX can not find rayon?
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
+        ("rust-either" ,rust-either-1)
+        ("rust-rustc-rayon-core" ,rust-rustc-rayon-core-0.4))
+       #:cargo-development-inputs
+       (("rust-docopt" ,rust-docopt-1))))
+    (home-page "https://github.com/rust-lang/rustc-rayon")
+    (synopsis
+     "Simple work-stealing parallelism for Rust - fork for rustc")
+    (description
+     "Rustc-rayon is a fork of the Rayon crate.  It adds a few \"in progress\"
+features that rustc is using, mostly around deadlock detection.  These features
+are not stable and should not be used by others -- though they may find their
+way into rayon proper at some point.  In general, if you are not rustc, you
+should be using the real rayon crate, not rustc-rayon.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rustc-rayon-0.3
   (package
+    (inherit rust-rustc-rayon-0.4)
     (name "rust-rustc-rayon")
     (version "0.3.0")
     (source
@@ -48515,7 +49229,6 @@ hex conversion traits.")
        (sha256
         (base32
          "0fjvy8bf0hd1zq9d3fdxbdp4z4p1k8jfyx51k5qip3wk1pwnf9zk"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
        #:cargo-inputs
@@ -48529,20 +49242,39 @@ hex conversion traits.")
         ("rust-rand" ,rust-rand-0.6)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1))))
+        ("rust-serde-derive" ,rust-serde-derive-1))))))
+
+(define-public rust-rustc-rayon-core-0.4
+  (package
+    (name "rust-rustc-rayon-core")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustc-rayon-core" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0c4cf58056ya3282c24bnyq39cwm1rd1m96lymfbb6yvl12929h2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f   ;XXX cannot find rayon_core?
+       #:cargo-inputs
+       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-num-cpus" ,rust-num-cpus-1))))
     (home-page "https://github.com/rust-lang/rustc-rayon")
-    (synopsis
-     "Simple work-stealing parallelism for Rust - fork for rustc")
+    (synopsis "Core APIs for Rayon - fork for rustc")
     (description
-     "Rustc-rayon is a fork of the Rayon crate.  It adds a few \"in progress\"
-features that rustc is using, mostly around deadlock detection.  These features
-are not stable and should not be used by others -- though they may find their
-way into rayon proper at some point.  In general, if you are not rustc, you
-should be using the real rayon crate, not rustc-rayon.")
+     "Note: This package is an unstable fork made for use in rustc
+
+Rayon-core represents the \"core, stable\" APIs of Rayon: join, scope, and so
+forth, as well as the ability to create custom thread-pools with ThreadPool.")
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-rustc-rayon-core-0.3
   (package
+    (inherit rust-rustc-rayon-core-0.4)
     (name "rust-rustc-rayon-core")
     (version "0.3.0")
     (source
@@ -48554,7 +49286,6 @@ should be using the real rayon crate, not rustc-rayon.")
         (sha256
          (base32
           "1cwc50mcclzfmhmi87953fjk6cc9ppmchn9mlwzfllq03y1jf97a"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
        #:cargo-inputs
@@ -48567,15 +49298,7 @@ should be using the real rayon crate, not rustc-rayon.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-rand" ,rust-rand-0.6)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
-        ("rust-scoped-tls" ,rust-scoped-tls-1))))
-    (home-page "https://github.com/rust-lang/rustc-rayon")
-    (synopsis "Core APIs for Rayon - fork for rustc")
-    (description
-     "Note: This package is an unstable fork made for use in rustc
-
-Rayon-core represents the \"core, stable\" APIs of Rayon: join, scope, and so
-forth, as well as the ability to create custom thread-pools with ThreadPool.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-scoped-tls" ,rust-scoped-tls-1))))))
 
 (define-public rust-rustc-serialize-0.3
   (package
@@ -48812,8 +49535,28 @@ rustc compiler.")
      "This package provides a tool to manipulate rustdoc comments.")
     (license license:asl2.0)))
 
+(define-public rust-rustfix-0.6
+  (package
+    (name "rust-rustfix")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustfix" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0apkjxv3z70vhnyz2kpwsivvndk6qk7kkp0rf7sg8pk7q1gy02vg"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/rust-lang/rustfix")
+    (synopsis "Automatically apply the suggestions made by rustc")
+    (description "Automatically apply the suggestions made by rustc.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rustfix-0.5
   (package
+    (inherit rust-rustfix-0.6)
     (name "rust-rustfix")
     (version "0.5.1")
     (source
@@ -48839,12 +49582,7 @@ rustc compiler.")
         ("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-log" ,rust-log-0.4)
         ("rust-proptest" ,rust-proptest-0.9)
-        ("rust-tempdir" ,rust-tempdir-0.3))))
-    (home-page "https://github.com/rust-lang/rustfix")
-    (synopsis "Automatically apply the suggestions made by rustc")
-    (description
-     "Automatically apply the suggestions made by rustc.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
 
 (define-public rust-rustfix-0.4
   (package/inherit rust-rustfix-0.5
@@ -48865,18 +49603,60 @@ rustc compiler.")
         `(("rust-failure" ,rust-failure-0.1)
           ,@(alist-delete "rust-anyhow" cargo-inputs)))))))
 
+(define-public rust-rustix-0.36
+  (package
+    (name "rust-rustix")
+    (version "0.36.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustix" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "08vwnvf76nkgb2bbxf8cn51c43x6sc9k462khrwbb2z0g19fi4yb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-ctor" ,rust-ctor-0.1)
+        ("rust-errno" ,rust-errno-0.2)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-io-lifetimes" ,rust-io-lifetimes-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.7)
+        ("rust-serial-test" ,rust-serial-test-0.6))
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-errno" ,rust-errno-0.2)
+        ("rust-io-lifetimes" ,rust-io-lifetimes-1)
+        ("rust-itoa" ,rust-itoa-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-linux-raw-sys" ,rust-linux-raw-sys-0.1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-windows-sys" ,rust-windows-sys-0.42))))
+    (home-page "https://github.com/bytecodealliance/rustix")
+    (synopsis "Safe Rust bindings to POSIX syscalls")
+    (description
+     "This package provides safe Rust bindings to POSIX syscalls.")
+    ;; Apache 2.0, Apache 2.0 with LLVM exception, or Expat.
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rustix-0.35
   (package
+    (inherit rust-rustix-0.36)
     (name "rust-rustix")
     (version "0.35.13")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "rustix" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
                 "1yfmkj5nwghxd3nha5ywf1cj6zqh44qwm0cavwifr1ppcmnilykj"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-bitflags" ,rust-bitflags-1)
@@ -48901,14 +49681,7 @@ rustc compiler.")
              ("rust-libc" ,rust-libc-0.2)
              ("rust-memoffset" ,rust-memoffset-0.6)
              ("rust-serial-test" ,rust-serial-test-0.6)
-             ("rust-tempfile" ,rust-tempfile-3))))
-    (home-page "https://github.com/bytecodealliance/rustix")
-    (synopsis "Safe Rust bindings to POSIX syscalls")
-    (description
-     "This package provides safe Rust bindings to POSIX syscalls.")
-    ;; Apache 2.0, Apache 2.0 with LLVM exception, or Expat.
-    (license (list license:asl2.0
-                   license:expat))))
+             ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-rustls-0.20
   (package
@@ -49622,75 +50395,118 @@ sub-processes using a fork-like interface.")
         (base32
          "1n3iw9kaq70dw1rvvma0gjwydbj0f2mvvqvrva69f5cl6yv1dnd0"))))))
 
+(define-public rust-rkyv-0.7
+  (package
+    (name "rust-rkyv")
+    (version "0.7.39")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rkyv" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05gdspzw03hq6l58si4ixfj5xd27ljw6fiqksggnvn87bd4b7hnf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-bytecheck" ,rust-bytecheck-0.6)
+                       ("rust-hashbrown" ,rust-hashbrown-0.12)
+                       ("rust-indexmap" ,rust-indexmap-1)
+                       ("rust-ptr-meta" ,rust-ptr-meta-0.1)
+                       ("rust-rend" ,rust-rend-0.3)
+                       ("rust-rkyv-derive" ,rust-rkyv-derive-0.7)
+                       ("rust-seahash" ,rust-seahash-4)
+                       ("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-tinyvec" ,rust-tinyvec-1)
+                       ("rust-uuid" ,rust-uuid-1))))
+    (home-page "https://github.com/rkyv/rkyv")
+    (synopsis "Zero-copy deserialization framework for Rust")
+    (description "Rkyv is a zero-copy deserialization framework for Rust.")
+    (license license:expat)))
+
 (define-public rust-rkyv-0.6
   (package
+    (inherit rust-rkyv-0.7)
     (name "rust-rkyv")
     (version "0.6.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rkyv" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "01wsn0i8gsw958j892w8i4fyzjdsyhrh7c5zajig049kbqz5n4yb"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bytecheck" ,rust-bytecheck-0.5)
         ("rust-memoffset" ,rust-memoffset-0.6)
         ("rust-ptr-meta" ,rust-ptr-meta-0.1)
         ("rust-rkyv-derive" ,rust-rkyv-derive-0.6)
-        ("rust-seahash" ,rust-seahash-4))))
+        ("rust-seahash" ,rust-seahash-4))))))
+
+
+(define-public rust-rkyv-derive-0.7
+  (package
+    (name "rust-rkyv-derive")
+    (version "0.7.39")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rkyv_derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1i1lmir3lm8zj8k1an7j2rchv1admqhysh6r6bfkcgmmi3fdmbkf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;#:skip-build? #t
+       #:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/rkyv/rkyv")
-    (synopsis "Zero-copy deserialization framework for Rust")
-    (description "Rkyv is a zero-copy deserialization framework for Rust.")
+    (synopsis "Derive macro for zero-copy deserialization framework")
+    (description "This package provides a Derive macro for the rkyv
+deserialization framework.")
     (license license:expat)))
 
 (define-public rust-rkyv-derive-0.6
   (package
+    (inherit rust-rkyv-derive-0.7)
     (name "rust-rkyv-derive")
     (version "0.6.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rkyv_derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1mc7rnps41gdywahsffqlypsp9jqmp0r6hlh2nxm31bddfgli3xs"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/rkyv/rkyv")
-    (synopsis "Derive macro for zero-copy deserialization framework")
-    (description "This package provides a Derive macro for the rkyv
-deserialization framework.")
-    (license license:expat)))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-ryu-1
   (package
     (name "rust-ryu")
-    (version "1.0.3")
+    (version "1.0.12")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "ryu" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0xlx9ybzncrb7d6r9533g8ydlg6mr252pfzl4g9cqaqkpvk24mjk"))))
+          "1ppcgnyfs12p545bl7762jp9b11rlzmgb7yzrr5lnzb8xm1rfjvv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-no-panic" ,rust-no-panic-0.1))
        #:cargo-development-inputs
        (("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-rand-xorshift" ,rust-rand-xorshift-0.2))))
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3))))
     (home-page "https://github.com/dtolnay/ryu")
     (synopsis "Fast floating point to string conversion")
     (description
@@ -51121,18 +51937,17 @@ macOS and iOS.")
 (define-public rust-semver-1
   (package
     (name "rust-semver")
-    (version "1.0.3")
+    (version "1.0.16")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "semver" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gna1p10i86sf1pqfqndkwl0wks35x84yvjw77c74ckzxrbsqfjz"))))
+        (base32 "0amsbj3572r1kx5wdcpcgfhfwbmcc17axp9adc6nkiwg6xkrbg2q"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))))
     (home-page "https://docs.rs/crate/semver")
     (synopsis "Semantic version parsing and comparison")
@@ -51412,14 +52227,14 @@ fragment of code.")
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-    (version "1.0.133")
+    (version "1.0.152")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "16lq33l09nkm0hxdhfjjmh3yjv83rrcqw9lbxb8y4q3va5km0mlp"))))
+        (base32 "1ysykpc4a9f1yn7zikdwhyfs0bpa7mlc8vsm7sl4glr1606iyzdv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -51479,21 +52294,21 @@ fragment of code.")
 (define-public rust-serde-big-array-0.3
   (package
     (name "rust-serde-big-array")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-big-array" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0qpy3nk3dpxrrmcfmcnsijad10yi0jxy1x6gc6bbwywma9vhxchq"))))
+        (base32 "190hrlbilvarn5almh3n2s4di9qagxnz3chv6xaw1c72dygzacfd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1))
+       (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (("rust-serde-json" ,rust-serde-json-1))))
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/est31/serde-big-array")
     (synopsis "Big array helper for serde")
     (description "This package provides a big array helper for serde.")
@@ -51542,19 +52357,18 @@ fragment of code.")
 (define-public rust-serde-bytes-0.11
   (package
     (name "rust-serde-bytes")
-    (version "0.11.5")
+    (version "0.11.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_bytes" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1fcb6sw8wkrj4ylm118wkb31hw124nkjnqyhbgqnd8w85zfhgbhn"))))
+        (base32 "06a8lv3x1zm1ynzq6xri4k46zklnzh62i6y47w4rjvxkypzwb3bi"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1)
@@ -51767,22 +52581,21 @@ TOML/JSON/MessagePack strings and serializable values.")
 (define-public rust-serde-derive-1
   (package
     (name "rust-serde-derive")
-    (version "1.0.133")
+    (version "1.0.152")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0dym0l8a0pch0mkqnhrf89n4wngzwf0d1z88hb8dhs456acic87d"))))
+        (base32 "07jlbk3khspawlqayr5lhzgqirv031ap4p8asw199l7ciq8psj5g"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))
-       #:cargo-development-inputs
-       (("rust-serde" ,rust-serde-1))))
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://serde.rs")
     (synopsis
      "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]")
@@ -51844,16 +52657,16 @@ derive macros.")
 (define-public rust-serde-ignored-0.1
   (package
     (name "rust-serde-ignored")
-    (version "0.1.2")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_ignored" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0bzz3546g3p01hgwh6jh0gyqdwc28xcp3pir4al2wbsgs4wpsb0w"))))
+         "19j5mrngznhxa7yfvxwmc4dc0mdzvm7w92i0m4adz2xshx04mswl"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -51871,24 +52684,27 @@ data.  This crate provides a wrapper that works with any existing Serde
 (define-public rust-serde-json-1
   (package
     (name "rust-serde-json")
-    (version "1.0.74")
+    (version "1.0.91")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-json" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0hiixjnrnrvvpyh58av73ds924zgzi4wl0mv8p9nan0w0v6vjazf"))))
+        (base32 "10v8vb4959ayycw1zmqvxxi758djqkskchj6qal0fjbi6daj6z47"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-indexmap" ,rust-indexmap-1)
         ("rust-itoa" ,rust-itoa-1)
         ("rust-ryu" ,rust-ryu-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-automod" ,rust-automod-1)
+        ("rust-indoc" ,rust-indoc-1)
+        ("rust-ref-cast" ,rust-ref-cast-1)
         ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
         ("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-stacker" ,rust-serde-stacker-0.1)
@@ -51927,20 +52743,18 @@ data.  This crate provides a wrapper that works with any existing Serde
 (define-public rust-serde-path-to-error-0.1
   (package
     (name "rust-serde-path-to-error")
-    (version "0.1.4")
+    (version "0.1.9")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "serde-path-to-error" version))
         (file-name
           (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32
-            "0n5ilbsxvi174m2fd506ivd43kws0yh523li1xz0zqh60ngi1xj2"))))
+         (base32 "0hbkdhmz82hwx5bxasym776f74jlvnivsx00l4qi7jb3nli4zc16"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
+      `(#:cargo-inputs
         (("rust-serde" ,rust-serde-1))
         #:cargo-development-inputs
         (("rust-serde-derive" ,rust-serde-derive-1)
@@ -51991,21 +52805,25 @@ commonly used by Ruby on Rails via Rack.")
 (define-public rust-serde-repr-0.1
   (package
     (name "rust-serde-repr")
-    (version "0.1.6")
+    (version "0.1.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_repr" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0xhwamlb1ax3w87mpq0awcphwchprh93y1hb47rm3c0p3favgiid"))))
+        (base32 "0knbzc87nlrfnm1jh3zmx77hxflnzk0xl8xcv7jvn3m2fkxcjpls"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/serde-repr")
     (synopsis "Serialize and deserialize C-like enum as underlying repr")
     (description
@@ -52017,16 +52835,16 @@ of a C-like enum.")
 (define-public rust-serde-stacker-0.1
   (package
     (name "rust-serde-stacker")
-    (version "0.1.4")
+    (version "0.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-stacker" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1qlfpy0nmxrvahz4hs9p1y84rb0vy6mbxn1lfgvq6fryls8j7jgl"))))
+         "1zgwd22cswfsjsxmnpf97nw5fzyv0s6mif5blbb948q7qgskvxrm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -52044,19 +52862,20 @@ by dynamically growing the stack.")
 (define-public rust-serde-test-1
   (package
     (name "rust-serde-test")
-    (version "1.0.113")
+    (version "1.0.152")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_test" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "02s7zjs12m5abk13j5farc00rzissk1anpl015vawpzz914jsan3"))))
+         "17pdigm0w1wvch7vpnk13199wn3gmkb0883l0hr53qv75l6j249n"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f                  ; Requires a newer rust
+       #:cargo-inputs
        (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde" ,rust-serde-1)
@@ -52118,21 +52937,23 @@ by dynamically growing the stack.")
 (define-public rust-serde-urlencoded-0.7
   (package
     (name "rust-serde-urlencoded")
-    (version "0.7.0")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_urlencoded" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1s9wnjrak5a0igfhcghhz51kvi7n010j5rs9lmhd5hfrz2kmgypd"))))
+        (base32 "1zgklbdaysj3230xivihs30qi5vkhigg323a9m62k8jwf4a1qjfk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-form-urlencoded" ,rust-form-urlencoded-1)
-        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-itoa" ,rust-itoa-1)
         ("rust-ryu" ,rust-ryu-1)
-        ("rust-serde" ,rust-serde-1))))
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1))))
     (home-page "https://github.com/nox/serde_urlencoded")
     (synopsis "`x-www-form-urlencoded` meets Serde")
     (description
@@ -52214,23 +53035,24 @@ for later processing.")
 (define-public rust-serde-yaml-0.8
   (package
     (name "rust-serde-yaml")
-    (version "0.8.17")
+    (version "0.8.26")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_yaml" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "08xvb5zxz3x5dgx0fy1q0aq9aa9fibcvi75333wnnwk1mga4wr8m"))))
+        (base32 "06y7gxy312mink8nsnmci9cw0ykpgsdcxmayg0snmdbnnwrp92jp"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-dtoa" ,rust-dtoa-0.4)
-        ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-ryu" ,rust-ryu-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-yaml-rust" ,rust-yaml-rust-0.4))
        #:cargo-development-inputs
-       (("rust-indoc" ,rust-indoc-1)
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-indoc" ,rust-indoc-1)
         ("rust-serde-derive" ,rust-serde-derive-1))))
     (home-page "https://github.com/dtolnay/serde-yaml")
     (synopsis "YAML support for Serde")
@@ -53763,16 +54585,25 @@ designed for @code{immutable.rs}.")
 (define-public rust-slab-0.4
   (package
     (name "rust-slab")
-    (version "0.4.2")
+    (version "0.4.8")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "slab" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1y59xsa27jk84sxzswjk60xcjf8b4fm5960jwpznrrcmasyva4f1"))))
+          "0bgwxig8gkqp6gz8rvrpdj6qwa10karnsxwx7wsj5ay8kcf3aa35"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-test" ,rust-serde-test-1))
+       #:cargo-inputs (("rust-autocfg" ,rust-autocfg-1)
+                       ("rust-serde" ,rust-serde-1))))
+    (native-inputs
+     (list rust-autocfg-1))
     (home-page "https://github.com/carllerche/slab")
     (synopsis "Pre-allocated storage for a uniform data type")
     (description "This create provides a pre-allocated storage for a uniform
@@ -54083,14 +54914,14 @@ implementations.")
 (define-public rust-slog-stdlog-4
   (package
     (name "rust-slog-stdlog")
-    (version "4.1.0")
+    (version "4.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "slog-stdlog" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nhg9mwaf5y1gs2f7nbz3r9fngq0g3d3qvz66z5lzgxd09rsna42"))))
+        (base32 "0gpsf62ckblpc6a70dnhsz677c7s5cz4glpqsf8p5bmvwnnb41k7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -54258,23 +55089,25 @@ inline storage.")
 (define-public rust-smallvec-1
   (package
     (name "rust-smallvec")
-    (version "1.9.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "smallvec" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lfss4vs5z5njm3ac9c499s5m1gphzm5a7gxcbw1zncpjmsdpl1g"))))
+         "1q2k15fzxgwjpcdv3f323w24rbbfyv711ayz85ila12lg7zbw1x5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (("rust-bincode" ,rust-bincode-1))))
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-debugger-test" ,rust-debugger-test-0.1)
+        ("rust-debugger-test-parser" ,rust-debugger-test-parser-0.1))))
     (home-page "https://github.com/servo/rust-smallvec")
     (synopsis "Small vector optimization")
     (description
@@ -54898,6 +55731,57 @@ maximal amount of configuration possible intended.")
      "An RSpec inspired minimal testing framework for Rust.")
     (license license:expat)))
 
+(define-public rust-speedy-0.8
+  (package
+    (name "rust-speedy")
+    (version "0.8.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "speedy" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02crzzdlaadz2ya2ij86wamsixbklhp6lbbnji6wz46rkdhqdmip"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-chrono" ,rust-chrono-0.4)
+                       ("rust-glam" ,rust-glam-0.17)
+                       ("rust-indexmap" ,rust-indexmap-1)
+                       ("rust-memoffset" ,rust-memoffset-0.7)
+                       ("rust-regex" ,rust-regex-1)
+                       ("rust-smallvec" ,rust-smallvec-1)
+                       ("rust-speedy-derive" ,rust-speedy-derive-0.8)
+                       ("rust-uuid" ,rust-uuid-1))))
+    (home-page "https://github.com/koute/speedy")
+    (synopsis "Binary serialization framework")
+    (description
+     "This package provides a fast binary serialization framework for Rust.")
+    ;; The user can choose either license.
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-speedy-derive-0.8
+  (package
+    (name "rust-speedy-derive")
+    (version "0.8.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "speedy-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1xx4v0h2i6ncnvi7v5y5l44xh12v4pjfkakahk6f27c0c084lazb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
+                       ("rust-quote" ,rust-quote-1)
+                       ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/koute/speedy")
+    (synopsis "Binary serialization framework")
+    (description
+     "This package provides a fast binary serialization framework,
+@code{#[derive(Readable, Writable)]} support")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-spin-0.9
   (package
     (name "rust-spin")
@@ -55235,6 +56119,22 @@ service.")
      "This package provides a single-producer single-consumer lock-free buffer.")
     (license license:expat)))
 
+(define-public rust-sptr-0.3
+  (package
+    (name "rust-sptr")
+    (version "0.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sptr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0shddkys046nnrng929mrnjjrh31mlxl95ky7dgxd6i4kclkk6rv"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/Gankra/sptr")
+    (synopsis "The Strict Provenance Polyfill")
+    (description "This package provides sptr, The Strict Provenance Polyfill.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-sqlite-0.26
   (package
     (name "rust-sqlite")
@@ -56087,22 +56987,23 @@ configurable byte storage.")
 (define-public rust-string-cache-0.8
   (package
     (name "rust-string-cache")
-    (version "0.8.0")
+    (version "0.8.4")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "string-cache" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "12i0synp8l0qpnzi5qki4pjq3jx28ykikyffjjjg6fsfxddwfh19"))))
+          "020ahbx93gp85s3k3k5c342j10ml0b77i4q4hri180xmlavr8d11"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-new-debug-unreachable" ,rust-new-debug-unreachable-1)
-        ("rust-phf-shared" ,rust-phf-shared-0.8)
+       (("rust-new-debug-unreachable" ,rust-new-debug-unreachable-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-phf-shared" ,rust-phf-shared-0.10)
         ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
         ("rust-serde" ,rust-serde-1))))
     (home-page "https://github.com/servo/string-cache")
@@ -56142,21 +57043,21 @@ developed as part of the Servo project.")
 (define-public rust-string-cache-codegen-0.5
   (package
     (name "rust-string-cache-codegen")
-    (version "0.5.1")
+    (version "0.5.2")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "string-cache-codegen" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "15vbk5i7kkj5bbx7f0fi477js4svw5py39gi4rk74anj35g8wk7j"))))
+          "1249fafaa7r3m67zxcbcw1bddanygv13r3209bvlzgi2ny4h5cvb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-phf-generator" ,rust-phf-generator-0.8)
-        ("rust-phf-shared" ,rust-phf-shared-0.8)
+       (("rust-phf-generator" ,rust-phf-generator-0.10)
+        ("rust-phf-shared" ,rust-phf-shared-0.10)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1))))
     (home-page "https://github.com/servo/string-cache")
@@ -57040,15 +57941,15 @@ interface")
 (define-public rust-syn-1
   (package
     (name "rust-syn")
-    (version "1.0.99")
+    (version "1.0.105")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "syn" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04xba78p559nl737llv7nqcwm723dp6ah5bbp0h5w1amqrpfznsq"))))
+         "0279ivl07g0y5fs5bwmglhkdvi99ypcm36yb774f8bbh8lyv9fb0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -57911,15 +58812,15 @@ without a mutable reference.")
 (define-public rust-tar-0.4
   (package
     (name "rust-tar")
-    (version "0.4.26")
+    (version "0.4.36")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "tar" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1lr6v3cpkfxd2lk5ll2jd8wr1xdskwj35smnh5sfb8xvzzxnn6dk"))))
+          "0iz40bd47xr69dsbckd6rv5ry2nqb2dp3z850q41pvpnmk6xk441"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Test tarballs not included in crate.
@@ -58777,20 +59678,19 @@ directories.")
 (define-public rust-tendril-0.4
   (package
     (name "rust-tendril")
-    (version "0.4.1")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tendril" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0fsx7blrrzgca8aa2yqy8zxyi8s7amskhgkk1ml5sbaqyalyszvh"))))
+         "1c3vip59sqwxn148i714nmkrvjzbk7105vj0h92s6r64bw614jnj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-encoding" ,rust-encoding-0.2)
         ("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-futf" ,rust-futf-0.1)
@@ -60266,19 +61166,20 @@ C library.")
 (define-public rust-tinyvec-1
   (package
     (name "rust-tinyvec")
-    (version "1.2.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tinyvec" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0hn3fkpb9nca9nf9znz2dxlp4ccv37hnbh67aczpzpmpbgq20ljv"))))
+        (base32 "0l6bl2h62a5m44jdnpn7lmj14rd44via8180i7121fvm73mmrk47"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-serde" ,rust-serde-1)
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-serde" ,rust-serde-1)
         ("rust-tinyvec-macros" ,rust-tinyvec-macros-0.1))))
     (home-page "https://crates.io/crates/tinyvec")
     (synopsis "Safe vec-like data structures")
@@ -61918,36 +62819,62 @@ stream-based WebSocket implementation.")
     (description "Unix Domain sockets for Tokio.")
     (license license:expat)))
 
-(define-public rust-tokio-util-0.6
+(define-public rust-tokio-util-0.7
   (package
     (name "rust-tokio-util")
-    (version "0.6.4")
+    (version "0.7.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tokio-util" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0agvfvvgh225vgb2z9w83lwqcqsy3pvkcbvnaz7m7rj6dg6facgc"))))
+        (base32 "0h67jb56bsxy4pi1a41pda8d52569ci5clvqv3c6cg9vy1sy1chb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bytes" ,rust-bytes-1)
         ("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-io" ,rust-futures-io-0.3)
         ("rust-futures-sink" ,rust-futures-sink-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-log" ,rust-log-0.4)
+        ("rust-hashbrown" ,rust-hashbrown-0.12)
         ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
         ("rust-slab" ,rust-slab-0.4)
-        ("rust-tokio" ,rust-tokio-1))))
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing" ,rust-tracing-0.1))))
     (home-page "https://tokio.rs")
     (synopsis "Additional utilities for working with Tokio")
     (description
      "This package provides additional utilities for working with Tokio.")
     (license license:expat)))
 
+(define-public rust-tokio-util-0.6
+  (package
+    (inherit rust-tokio-util-0.7)
+    (name "rust-tokio-util")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-util" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0agvfvvgh225vgb2z9w83lwqcqsy3pvkcbvnaz7m7rj6dg6facgc"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-tokio" ,rust-tokio-1))))))
+
 (define-public rust-tokio-util-0.4
   (package
     (inherit rust-tokio-util-0.6)
@@ -62106,6 +63033,27 @@ serializing Rust structures.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-toml-datetime-0.5
+  (package
+    (name "rust-toml-datetime")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "toml_datetime" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1zcjvygkix0hm7nv7i6ag4fd0l1pglga1wyq2l8zgy0fgpjm32w0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/toml-rs/toml")
+    (synopsis "TOML-compatible datetime type")
+    (description
+     "This package provides a TOML-compatible datetime type for Rust.")
+    ;; The user can choose either license.
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-toml-edit-0.14
   (package
     (name "rust-toml-edit")
@@ -63658,14 +64606,14 @@ the Trust-DNS client to use rustls for TLS.")
 (define-public rust-trybuild-1
   (package
     (name "rust-trybuild")
-    (version "1.0.54")
+    (version "1.0.75")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "trybuild" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0gzxbal0zdjnwilsisgbm59c242gvym8dafwsl5s8b5nhvzl6hzh"))))
+        (base32 "1wylxysdpbjz3cddaxvjnfk8vadi05chdivwg9l878c7b8hjq8gi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -64092,16 +65040,18 @@ deserialization.")
 (define-public rust-typenum-1
   (package
     (name "rust-typenum")
-    (version "1.12.0")
+    (version "1.15.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "typenum" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0cvbksljz61ian21fnn0h51kphl0pwpzb932bv4s0rwy1wh8lg1p"))))
+          "11yrvz1vd43gqv738yw1v75rzngjbs7iwcgzjy3cq5ywkv2imy6w"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-scale-info" ,rust-scale-info-1))))
     (home-page "https://github.com/paholg/typenum")
     (synopsis "Rust library for type-level numbers evaluated at compile time")
     (description "Typenum is a Rust library for type-level numbers evaluated at
@@ -64140,19 +65090,18 @@ Unicode character database.")
 (define-public rust-ucd-trie-0.1
   (package
     (name "rust-ucd-trie")
-    (version "0.1.2")
+    (version "0.1.5")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "ucd-trie" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "1hh6kyzh5xygwy96wfmsf8v8czlzhps2lgbcyhj1xzy1w1xys04g"))))
+         (base32 "10ggllapxq99cxxy179wbklmabj5fikm02233v4idf7djvcw8ycy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1))))
+       (("rust-once-cell" ,rust-once-cell-1))))
     (home-page "https://github.com/BurntSushi/ucd-generate")
     (synopsis "Trie for storing Unicode codepoint sets and maps")
     (description
@@ -65293,16 +66242,16 @@ Unix users and groups.")
 (define-public rust-utf-8-0.7
   (package
     (name "rust-utf-8")
-    (version "0.7.5")
+    (version "0.7.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "utf-8" version))
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1iw5rp4i3mfi9k51picbr5bgjqhjcmnxx7001clh5ydq31y2zr05"))))
+         "1a9ns3fvgird0snjkd3wbdhwd3zdpc2h5gpyybrfr6ra5pkqxk09"))))
     (build-system cargo-build-system)
     (arguments `(#:skip-build? #t))
     (home-page "https://github.com/SimonSapin/rust-utf8")
@@ -65409,8 +66358,47 @@ first byte.")
         (base32
          "0zamsj2986shm4x9zncjf2m5qy9scaw7qnxw4f89b2afpg6a8wl7"))))))
 
+(define-public rust-uuid-1
+  (package
+    (name "rust-uuid")
+    (version "1.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "uuid" version))
+              (file-name
+               (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0k6fchay62ryjhkxsbbj38030lm3797c13vsp54bkd9ij3gf0bj2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
+        ("rust-windows-sys" ,rust-windows-sys-0.42))
+       #:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-atomic" ,rust-atomic-0.5)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-md-5" ,rust-md-5-0.10)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-sha1-smol" ,rust-sha1-smol-1)
+        ("rust-slog" ,rust-slog-2)
+        ("rust-uuid-macro-internal" ,rust-uuid-macro-internal-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-zerocopy" ,rust-zerocopy-0.6))))
+    (home-page "https://github.com/uuid-rs/uuid")
+    (synopsis "Library to generate and parse UUIDs")
+    (description
+     "This package provides a library to generate and parse UUIDs.")
+    ;; The user can choose either license.
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-uuid-0.8
   (package
+    (inherit rust-uuid-1)
     (name "rust-uuid")
     (version "0.8.2")
     (source
@@ -65422,21 +66410,15 @@ first byte.")
         (sha256
          (base32
           "1dy4ldcp7rnzjy56dxh7d2sgrcvn4q77y0a8r0a48946h66zjp5w"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-getrandom" ,rust-getrandom-0.2)
         ("rust-md5" ,rust-md5-0.7)
         ("rust-serde" ,rust-serde-1)
         ("rust-sha1" ,rust-sha1-0.6)
         ("rust-slog" ,rust-slog-2)
-        ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/uuid-rs/uuid")
-    (synopsis "Library to generate and parse UUIDs")
-    (description
-     "This package provides a library to generate and parse UUIDs.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-uuid-0.7
   (package
@@ -65495,6 +66477,31 @@ first byte.")
         ("rust-serde" ,rust-serde-1)
         ("rust-sha1" ,rust-sha1-0.2))))))
 
+(define-public rust-uuid-macro-internal-1
+  (package
+    (name "rust-uuid-macro-internal")
+    (version "1.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "uuid-macro-internal" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1n3nw8vydhm5l3d32j3wgdwfd68rg71m400y4ijyd4s5i7r8kg3k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/uuid-rs/uuid")
+    (synopsis "@code{uuid!} macro implementation details")
+    (description
+     "This package contains private implementation details of the
+@code{uuid!} macro.  It is not intended for direct usage.")
+    ;; The user can choose either license.
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-v-frame-0.2
   (package
     (name "rust-v-frame")
@@ -67996,8 +69003,43 @@ extended attributes.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-xcb-1
+  (package
+    (name "rust-xcb")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "xcb" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ifnchjzf9xlwy6pfa90mwa6j43bx2bi5xl40m5gykymwbbv9bhg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-build-flags '("--all-features")
+       #:cargo-test-flags '("--all-features")
+       #:cargo-development-inputs
+       (("rust-gl" ,rust-gl-0.14)
+        ("rust-png" ,rust-png-0.17)
+        ("rust-x11" ,rust-x11-2))
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-quick-xml" ,rust-quick-xml-0.22)
+        ("rust-x11" ,rust-x11-2))))
+    (inputs
+     (list mesa))                      ;required by rust-x11-2
+    (native-inputs
+     (list pkg-config))
+    (home-page "https://github.com/rust-x-bindings/rust-xcb")
+    (synopsis "Rust bindings and wrappers for XCB")
+    (description
+     "This package provides Rust bindings and wrappers for XCB.")
+    (license license:expat)))
+
 (define-public rust-xcb-0.9
   (package
+    (inherit rust-xcb-1)
     (name "rust-xcb")
     (version "0.9.0")
     (source
@@ -68020,12 +69062,7 @@ extended attributes.")
     (inputs
      (list libx11 libxcb xcb-proto))
     (native-inputs
-     (list pkg-config python))
-    (home-page "https://github.com/rtbo/rust-xcb")
-    (synopsis "Rust bindings and wrappers for XCB")
-    (description
-     "This package provides Rust bindings and wrappers for XCB.")
-    (license license:expat)))
+     (list pkg-config python))))
 
 (define-public rust-xcursor-0.3
   (package
@@ -68199,16 +69236,16 @@ including a line breaking iterator.")
 (define-public rust-xml5ever-0.16
   (package
     (name "rust-xml5ever")
-    (version "0.16.1")
+    (version "0.16.2")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "xml5ever" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0nbapmdrn4zqry5p01l2mmbb48fcq0gga377p1c4lkb1x3k546qb"))))
+          "0rfqys8yyigkzrqcrn5c6r10v42pwxahccyyzhc293px30w1cd4j"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 5f1fbb8..0f2dce0 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -133,6 +133,7 @@
   #:use-module (gnu packages perl-web)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
@@ -900,29 +901,19 @@ Language.")
 (define-public mariadb
   (package
     (name "mariadb")
-    (version "10.5.12")
+    (version "10.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.mariadb.com/MariaDB"
                                   "/mariadb-" version "/source/mariadb-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1gg4h9ahmk78cx01zyw0fqr6hhd78fsyhs0s34p3gi9hkak1qkxb"))
+                "1ciw7y08wms9g3hzhyria49r1b9n5wpbhkndazv95d925c8x1jsp"))
               (modules '((guix build utils)))
               (snippet
                '(begin
-                  ;; Delete bundled snappy and xz.
-                  (delete-file-recursively "storage/tokudb/PerconaFT/third_party")
-                  (substitute* "storage/tokudb/PerconaFT/CMakeLists.txt"
-                    ;; This file checks that the bundled sources are present and
-                    ;; declares build procedures for them.
-                    (("^include\\(TokuThirdParty\\)") ""))
-                  (substitute* "storage/tokudb/PerconaFT/ft/CMakeLists.txt"
-                    ;; Don't attempt to use the procedures we just removed.
-                    ((" build_lzma build_snappy") ""))
-
-                  ;; Preserve CMakeLists.txt for these.
+                  ;; Delete bundled libraries, but preserve CMakeLists.txt.
                   (for-each (lambda (file)
                               (unless (string-suffix? "CMakeLists.txt" file)
                                 (delete-file file)))
@@ -934,21 +925,10 @@ Language.")
      `(#:configure-flags
        (list
          "-DBUILD_CONFIG=mysql_release"
-         ;; Linking with libarchive fails, like this:
-
-         ;; ld: /gnu/store/...-libarchive-3.2.2/lib/libarchive.a(archive_entry.o):
-         ;; relocation R_X86_64_32 against `.bss' can not be used when
-         ;; making a shared object; recompile with -fPIC
-
-         ;; For now, disable the features that that use libarchive (xtrabackup).
-         "-DWITH_LIBARCHIVE=OFF"
-
-         ;; Disable the TokuDB engine, because its test suite frequently fails,
-         ;; and loading it crashes the server: <https://bugs.gnu.org/35521>.
-         "-DTOKUDB_OK=OFF"
 
          ;; Ensure the system libraries are used.
          "-DWITH_JEMALLOC=yes"
+         "-DWITH_LIBFMT=system"
          "-DWITH_PCRE=system"
          "-DWITH_SSL=system"
          "-DWITH_ZLIB=system"
@@ -988,14 +968,6 @@ Language.")
        #:parallel-tests? ,(target-x86-64?)
        #:phases
        (modify-phases %standard-phases
-         ,@(if (target-ppc32?)
-             `((add-after 'unpack 'apply-libatomics-patch
-                 (lambda* (#:key inputs #:allow-other-keys)
-                   (let ((patch-file
-                           (assoc-ref inputs
-                                               "mariadb-link-libatomic.patch")))
-                     (invoke "patch" "-p1" "-i" patch-file)))))
-             '())
          (add-after 'unpack 'adjust-output-references
            (lambda _
              ;; The build system invariably prepends $CMAKE_INSTALL_PREFIX
@@ -1031,6 +1003,9 @@ Language.")
                       "main.explain_non_select"
                       "main.upgrade_MDEV-19650"
                       "roles.acl_statistics"
+                      "main.stat_tables_innodb"
+                      "main.stat_tables"
+                      "main.mysql_upgrade"
 
                       ;; Probably same as above, test failure reported upstream:
                       ;; <https://jira.mariadb.org/browse/MDEV-26320>.
@@ -1057,36 +1032,19 @@ Language.")
                          disabled-tests)
                (close-port unstable-tests)
 
-               ;; XXX: These fail because they expect a latin1 charset and
-               ;; collation.  See <https://jira.mariadb.org/browse/MDEV-21264>.
-               (substitute* '("mysql-test/main/gis_notembedded.result"
-                              "mysql-test/main/system_mysql_db.result")
-                 (("latin1_swedish_ci") "utf8_general_ci")
-                 (("\tlatin1") "\tutf8"))
-
                (substitute* "mysql-test/suite/binlog/t/binlog_mysqlbinlog_stop_never.test"
                  (("/bin/bash")
                   (which "bash")))
 
-               (substitute* "mysql-test/mysql-test-run.pl"
+               (substitute* "mysql-test/mariadb-test-run.pl"
                  (("/bin/ls") (which "ls"))
                  (("/bin/sh") (which "sh"))))))
-         (add-before 'configure 'disable-plugins
-           (lambda _
-             (let ((disable-plugin (lambda (name)
-                                     (call-with-output-file
-                                         (string-append "plugin/" name
-                                                        "/CMakeLists.txt")
-                                       (lambda (port)
-                                         (format port "\n")))))
-                   (disabled-plugins '(;; XXX: Causes a test failure.
-                                       "disks")))
-               (for-each disable-plugin disabled-plugins))))
          (replace 'check
            (lambda* (#:key (tests? #t) parallel-tests? #:allow-other-keys)
              (if tests?
                  (with-directory-excursion "mysql-test"
-                   (invoke "./mtr" "--verbose"
+                   (invoke "./mariadb-test-run"
+                           "--verbose"
                            "--retry=3"
                            "--suite=main"
                            "--testcase-timeout=40"
@@ -1100,13 +1058,12 @@ Language.")
                            "--skip-rpl"
                            "--skip-test-list=unstable-tests"))
                  (format #t "test suite not run~%"))))
-         (add-after
-          'install 'post-install
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (let* ((out     (assoc-ref outputs "out"))
+         (add-after 'install 'post-install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out     (assoc-ref outputs "out"))
                    (dev     (assoc-ref outputs "dev"))
                    (lib     (assoc-ref outputs "lib"))
-                   (openssl (assoc-ref inputs "openssl")))
+                   (openssl (dirname (search-input-file inputs "lib/libssl.so"))))
               (substitute* (list (string-append out "/bin/mariadb-install-db")
                                  (string-append out "/bin/mysql_install_db"))
                 (("basedir=\"\"")
@@ -1133,7 +1090,7 @@ Language.")
               (mkdir-p (string-append dev "/lib"))
               (rename-file (string-append lib "/lib/pkgconfig")
                            (string-append dev "/lib/pkgconfig"))
-              (rename-file (string-append lib "/bin/mariadb_config")
+              (rename-file (string-append out "/bin/mariadb_config")
                            (string-append dev "/bin/mariadb_config"))
               (rename-file (string-append out "/bin/mysql_config")
                            (string-append dev "/bin/mysql_config"))
@@ -1144,25 +1101,20 @@ Language.")
               (substitute* (list (string-append dev "/bin/mysql_config")
                                  (string-append dev "/lib/pkgconfig/mariadb.pc"))
                 (("-lssl -lcrypto" all)
-                 (string-append "-L" openssl "/lib " all)))))))))
+                 (string-append "-L" openssl " " all)))))))))
     (native-inputs
-     (if (target-ppc32?)
-       `(("mariadb-link-libatomic.patch"
-          ,(search-patch "mariadb-link-libatomic.patch"))
-         ("patch" ,patch)
-         ("bison" ,bison)
-         ("perl" ,perl))
-       (list bison perl)))
+     (list bison perl))
     (inputs
-     `(("jemalloc" ,jemalloc)
-       ("libaio" ,libaio)
-       ("libxml2" ,libxml2)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl-1.1)
-       ("pam" ,linux-pam)
-       ("pcre2" ,pcre2)
-       ("xz" ,xz)
-       ("zlib" ,zlib)))
+     (list fmt
+           jemalloc
+           libaio
+           libxml2
+           ncurses
+           openssl
+           linux-pam
+           pcre2
+           xz
+           zlib))
     ;; The test suite is very resource intensive and can take more than three
     ;; hours on a x86_64 system.  Give slow and busy machines some leeway.
     (properties '((timeout . 64800)))        ;18 hours
@@ -1288,14 +1240,14 @@ pictures, sounds, or video.")
   (package
     (inherit postgresql-15)
     (name "postgresql")
-    (version "14.4")
+    (version "14.6")
     (source (origin
               (inherit (package-source postgresql-15))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "0slg7ld5mldmv3pn1wxxwglm4s3xc6c91ixx24apj713qlvn4fy2"))))))
+                "08nzkq321fzfi8ba8gck9zxxg7xvv8vz3mbl4avrmlq933y4122h"))))))
 
 (define-public postgresql-13
   (package
@@ -4106,7 +4058,7 @@ reasonable substitute.")
 (define-public python-redis
   (package
     (name "python-redis")
-    (version "4.5.2")
+    (version "4.5.4")
     (source (origin
               ;; The PyPI archive lacks some test resources such as the TLS
               ;; certificates under docker/stunnel/keys.
@@ -4117,7 +4069,7 @@ reasonable substitute.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0cz3gji3rb1h5dczyl11hm42wgsbz5v896cgbi14dij160b7m35i"))))
+                "0s5pswykjcyqbx471ib3gwy29xxa5ckgch9hy476x2s4pvhkbgmr"))))
     (build-system pyproject-build-system)
     (arguments
      (list
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 98b71e0..e1ab054 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2019 Clément Lassieur <[email-masked]>
 ;;; Copyright © 2021 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2021 Leo Famulari <[email-masked]>
-;;; Copyright © 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -252,7 +252,7 @@ supported devices, as well as input/output file format support.")
 (define-public openboardview
   (package
     (name "openboardview")
-    (version "8.95.2")
+    (version "9.95.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -271,10 +271,10 @@ supported devices, as well as input/output file format support.")
                             (scandir "." (negate (cut member <> keep))))))
               (patches
                (search-patches "openboardview-use-system-imgui.patch"
-                               "openboardview-use-system-utf8.patch"))
+                               "openboardview-use-system-mpc.patch"))
               (sha256
                (base32
-                "1n2yfi8wpky0y231kq2zdgwn7f7kff8m53m904hxi5ppmwhx1d6q"))))
+                "1safjd729a7591rigkiy3c678bivrj5q1qwg1f18sijhlsfkf5b3"))))
     (build-system cmake-build-system)
     (arguments
      (list
@@ -298,13 +298,6 @@ supported devices, as well as input/output file format support.")
                   "add_subdirectory("
                   (search-input-directory inputs "share/glad") ;source_dir
                   " src/glad)\n")))))                          ;binary dir
-          (add-before 'configure 'fix-utf8-include-directive
-            ;; Our utf8-h package makes the header available as "utf8.h"
-            ;; directly rather than "utf8/utf8.h".
-            (lambda _
-              (substitute* '("src/openboardview/FileFormats/BRDFile.cpp"
-                             "src/openboardview/BoardView.cpp")
-                (("utf8/utf8.h") "utf8.h"))))
           (add-before 'configure 'dynamically-load-gtk-via-absolute-path
             ;; The GTK library is not linked thus not present in the RUNPATH of
             ;; the produced binary; the absolute path of the libraries must to
@@ -327,11 +320,14 @@ supported devices, as well as input/output file format support.")
     (inputs
      (list fontconfig
            gtk+
-           imgui
+           ;; OpenBoardView can build with Dear ImGui 1.88, but there are some
+           ;; usability problems such as the difficulty to register clicks.
+           imgui-1.87
+           orangeduck-mpc
            sdl2
            sqlite
            zlib))
-    (home-page "https://openboardview.org/")
+    (home-page "https://github.com/OpenBoardView/OpenBoardView")
     (synopsis "Viewer for BoardView files")
     (description "OpenBoardView is a viewer for BoardView files, which present
 the details of a printed circuit board (PCB).  It comes with features
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 7e73b21..fa1f07e 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2021 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2023 c4droid <[email-masked]>
+;;; Copyright © 2023 Yovan Naumovski <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2539,7 +2540,7 @@ on a Commodore C64, C128 etc.")
     (license license:zlib)))
 
 (define-public uxn
-  (let ((commit "1b2049e238df96f32335edf1c6db35bd09f8b42d")
+  (let ((commit "83237c9641490d303a42c81ca247314d11055dea")
         (revision "1"))
     (package
       (name "uxn")
@@ -2552,7 +2553,7 @@ on a Commodore C64, C128 etc.")
                 (file-name (string-append name "-" version))
                 (sha256
                  (base32
-                  "0d3hy1db1mfk2l7q7wdxvp1z0vkmyyb9pdp81d9zm58ylpxaq2cp"))))
+                  "159qfz66k1jc43jhyl8by3yiphsr2dyiyclw1x7mkr3zciwc29z3"))))
       (build-system gnu-build-system)
       (arguments
        (list #:tests? #f ;no tests
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 6ef3cd8..4aa143a 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -260,37 +260,41 @@ Cyrillic, Canadian Syllabics and most Latin based languages are supported.")
     (license license:cc0)))
 
 (define-public font-abattis-cantarell
-  (package
-    (name "font-abattis-cantarell")
-    (version "0.303")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://gitlab.gnome.org/GNOME/cantarell-fonts")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1d1ay0fdqchk0wa5yqxis2c98imvzsbbd2kjv0x8sk4fm419847b"))))
-    (build-system meson-build-system)
-    (arguments
-     (list #:configure-flags #~(list "-Dbuildstatics=true")))
-    (native-inputs
-     (list gettext-minimal
-           psautohint
-           python
-           python-cffsubr
-           python-fontmath
-           python-statmake
-           python-ufo2ft))
-    (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
-    (synopsis "Cantarell sans-serif typeface")
-    (description "The Cantarell font family is a contemporary Humanist
+  ;; Use the latest commit, as the last released version, 0.303, has problems
+  ;; with the newer statmake.  The dependency has been removed in the latest
+  ;; code base.
+  (let ((commit "e049149faf0c15b0711e8d790e2333be923f0486")
+        (revision "0"))
+    (package
+      (name "font-abattis-cantarell")
+      (version (git-version "0.303" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.gnome.org/GNOME/cantarell-fonts")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "032csq99bkmmgh9mmmbrgg4fzxgkcsvxv4wy595qms72mmlgmcc7"))))
+      (build-system meson-build-system)
+      (arguments
+       (list #:configure-flags #~(list "-Dbuildstatics=true")))
+      (native-inputs
+       (list gettext-minimal
+             psautohint
+             python
+             python-cffsubr
+             python-fontmath
+             python-ufo2ft))
+      (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
+      (synopsis "Cantarell sans-serif typeface")
+      (description "The Cantarell font family is a contemporary Humanist
 sans-serif designed for on-screen reading.  It is used by GNOME@tie{}3.
 This package contains both the non-variable as well as the variable versions
 of the font.")
-    (license license:silofl1.1)))
+      (license license:silofl1.1))))
 
 (define-public font-lato
   (package
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 5638560..fd1784a 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2019, 2020, 2022 Marius Bakke <[email-masked]>
 ;;; Copyright © 2020 Roel Janssen <[email-masked]>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <[email-masked]>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Sarah Morgensen <[email-masked]>
 ;;; Copyright © 2022 Felipe Balbi <[email-masked]>
 ;;;
@@ -34,6 +34,7 @@
 (define-module (gnu packages fontutils)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -139,14 +140,13 @@ them as it goes.")
 (define-public python-afdko
   (package
     (name "python-afdko")
-    (version "3.9.1")
+    (version "3.9.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "afdko" version))
        (sha256
-        (base32 "0k1204vykgx32saa495s1lgmz1dixcp8bjiv486imx77killvm02"))
-       (patches (search-patches "python-afdko-suppress-copyright-test.patch"))
+        (base32 "1d3b1590gxlindh1sjhwvxnryn5zil98hgdwbgsr76fd657r3f99"))
        (modules '((guix build utils)))
        (snippet
         #~(begin
@@ -172,27 +172,13 @@ them as it goes.")
               (substitute* "CMakeLists.txt"
                 (("CMAKE_CXX_STANDARD 11")
                  "CMAKE_CXX_STANDARD 17"))))
-          (add-after 'unpack 'use-system-libxml2
-            (lambda _
-              ;; XXX: These horrifying substitutions revert this upstream
-              ;; PR: <https://github.com/adobe-type-tools/afdko/pull/1527>.
-              ;; Hopefully it's only temporary..!
-              (substitute* (find-files "." "^CMakeLists.txt$")
-                (("\\(\\(NOT \\$\\{LibXml2_FOUND\\}\\) OR \
-\"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)")
-                 "(NOT ${LibXml2_FOUND})")
-                (("\\(\\(\\$\\{LibXml2_FOUND\\}\\) AND \
-\\(NOT \"\\$\\{CMAKE_SYSTEM\\}\" MATCHES \"Linux\"\\)\\)")
-                 "(${LibXml2_FOUND})"))
-                (substitute* "cmake/ExternalLibXML2.cmake"
-                  (("set\\(LIBXML2_STATIC_INCLUDE_DIR")
-                   "set(LIBXML2_INCLUDE_DIR)"))))
           (add-after 'unpack 'patch-problematic-requirements
             (lambda _
               (substitute* "requirements.txt"
                 ;; Remove lxml because the version requested here is different
                 ;; than the one propagated by the python-fonttools package.
-                (("^lxml==.*") ""))))
+                (("^lxml==.*") "")
+                (("<=4.38.0") ">=4.38.0"))))
           (add-after 'unpack 'patch-setup.py
             (lambda _
               ;; There is no use for Python-provided CMake nor Ninja binaries.
@@ -232,7 +218,14 @@ them as it goes.")
                         (number->string (parallel-job-count))
                         ;; This test is known to fail on multiple architectures.
                         ;; https://github.com/adobe-type-tools/afdko/issues/1163
-                        "-k not test_type1mm_inputs"))))
+                        "-k"
+                        (string-append
+                         "not test_type1mm_inputs "
+                         ;; These tests fail for unknown reasons (see:
+                         ;; https://github.com/adobe-type-tools/afdko/issues/1635).
+                         "and not test_rvrn_vf "
+                         "and not test_cjk_vf "
+                         "and not test_sparse_cjk_vf")))))
           (add-after 'check 'wrap
             (assoc-ref %standard-phases 'wrap))
           (add-before 'wrap 'wrap-PATH
@@ -257,7 +250,8 @@ them as it goes.")
            python-setuptools-scm
            python-wheel))
     (inputs
-     (list java-antlr4-runtime-cpp
+     (list bash-minimal
+           java-antlr4-runtime-cpp
            libxml2
            `(,util-linux "lib")))
     (propagated-inputs
@@ -444,23 +438,15 @@ converts any cubic curves to quadratic.  The most useful function is probably
 (define-public python-ufo2ft
   (package
     (name "python-ufo2ft")
-    (version "2.28.0")
+    (version "2.31.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ufo2ft" version))
        (sha256
-        (base32 "068hm62s1iphyg66w96vgiif6ahpcsaf8fr44rk6jdf71f6fyqd5"))))
-    (build-system python-build-system)
-    (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               (replace 'check
-                 (lambda* (#:key tests? #:allow-other-keys)
-                   (when tests?
-                     (invoke "pytest" "-vv")))))))
-    (native-inputs
-     (list python-pytest python-setuptools-scm))
+        (base32 "1rg2997af8blvswlwif0kpz2vxrlh555gzqslz6yv9y7i7v8lphl"))))
+    (build-system pyproject-build-system)
+    (native-inputs (list python-pytest python-setuptools-scm))
     (propagated-inputs
      (list python-booleanoperations
            python-cffsubr
@@ -482,13 +468,13 @@ to generate OpenType font binaries from Unified Font Objects (UFOs).")
 (define-public python-fontmath
   (package
     (name "python-fontmath")
-    (version "0.9.2")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "fontMath" version ".zip"))
        (sha256
-        (base32 "014407hpvqdx123g06i664qrfq86bf9l621x7jllpgqw3rqir2sc"))))
+        (base32 "070v1jz5f18g15if459ppwswq4w5hzffwp1gvdc5j47bgz5qflva"))))
     (build-system python-build-system)
     (propagated-inputs (list python-fonttools))
     (native-inputs
@@ -555,13 +541,13 @@ implementing the pen protocol for manipulating glyphs.")
   (hidden-package
    (package
      (name "python-fontparts-bootstrap")
-     (version "0.10.8")
+     (version "0.11.0")
      (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "fontParts" version ".zip"))
         (sha256
-         (base32 "0i5ww6yl9m74wnjd7gyvjkdh7m56haql4gv7lasmppdipay2209g"))))
+         (base32 "0j4h8hszky639gmfy1avmw670y80ya49kca8yc635h5ihl0c3v8x"))))
      (build-system python-build-system)
      (propagated-inputs
       (list python-booleanoperations
@@ -754,23 +740,22 @@ suite of the @code{psautohint} package.")
        (uri (pypi-uri "psautohint" version))
        (sha256
         (base32 "0zzz7hy1kkkjfrrm9ly2di3xv2x1ywdqhbyqy21k670jysldw3nm"))))
-    (build-system python-build-system)
+    (build-system pyproject-build-system)
     (arguments
      (list
+      ;; The CJKSparseVar.subset.hinted.otf test fails with slightly different
+      ;; output caused by the newer fonttools version used in Guix.
+      #:test-flags #~(list "-k" "not CJKSparseVar.subset.hinted.otf")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'copy-font-data
             ;; The data is copied as it needs to be writable for the tests.
             (lambda _
               (copy-recursively
                #$(this-package-native-input "psautohint-font-data")
                "tests/integration/data")
               (for-each make-file-writable
-                        (find-files "tests/integration/data"))))
-          (replace 'check
-            (lambda* (#:key tests? #:allow-other-keys)
-              (when tests?
-                (invoke "pytest" "-vv")))))))
+                        (find-files "tests/integration/data")))))))
     (propagated-inputs (list python-fonttools-next))
     (native-inputs
      (list psautohint-font-data
@@ -1554,16 +1539,16 @@ generate bitmaps.")
 (define-public python-statmake
   (package
     (name "python-statmake")
-    (version "0.5.1")
+    (version "0.6.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/daltonmaag/statmake")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0qavzspxhwnaayj5mxq6ncjjziggabxj157ls04h2rdrpq167706"))))
+                "1k6fkzyhsfkgi599sb017wzf4jzbnp5wjg1kla1b33vgjpa7n5nw"))))
     (build-system pyproject-build-system)
     (arguments
      (list
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d63faed..8eb1a20 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -27,7 +27,7 @@
 ;;; Copyright © 2021 Robby Zambito <[email-masked]>
 ;;; Copyright © 2021, 2022 Maxime Devos <[email-masked]>
 ;;; Copyright © 2021, 2022 John Kehayias <[email-masked]>
-;;; Copyright © 2021, 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2022 Daniel Meißner <[email-masked]>
 ;;; Copyright © 2022 muradm <[email-masked]>
 ;;; Copyright © 2022 Petr Hodina <[email-masked]>
@@ -225,73 +225,75 @@ application-centers for distributions.")
        (sha256
         (base32 "1sd8syldyq6bphfdm129s3gq554vfv7vh1vcwzk48gjryf101awk"))
        (patches
-        (search-patches
-         "farstream-gupnp.patch"        ;for test 'transmitter/rawudp'
-         "farstream-make.patch"))))
+        (search-patches "farstream-gupnp.patch" ;for test 'transmitter/rawudp'
+                        "farstream-make.patch"))))
     (build-system glib-or-gtk-build-system)
     (outputs '("out" "doc"))
     (arguments
-     `(#:configure-flags
-       (list
-        "--enable-gtk-doc"
-        "--enable-glib-asserts"
-        (string-append "--with-html-dir="
-                       (assoc-ref %outputs "doc")
-                       "/share/gtk-doc/html"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'copy-common
-           (lambda _
-             (delete-file "autogen.sh")
-             (copy-recursively
-              (assoc-ref %build-inputs "common")
-              "common")
-             #t))
-         (add-after 'unpack 'disable-timeout-tests
-           (lambda _
-             (substitute* "tests/check/Makefile.am"
-               ;; This test timeouts despite changing
-               ;; the value of 'CK_DEFAULT_TIMEOUT' to 600,
-               ;; as per %common-gstreamer-phases.
-               ;; Reported to upstream:
-               ;; https://gitlab.freedesktop.org/farstream/farstream/-/issues/20
-               (("[ \t]*transmitter/nice.*$") ""))))
-         (add-after 'unpack 'patch-docbook-xml
-           (lambda* (#:key inputs #:allow-other-keys)
-             (with-directory-excursion "docs"
-               (substitute* '("libs/farstream-libs-docs.sgml"
-                              "plugins/farstream-plugins-docs.sgml")
-                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
-                  (string-append (assoc-ref inputs "docbook-xml")
-                                 "/xml/dtd/docbook/"))))
-             #t)))))
+     (list
+      #:configure-flags
+      #~(list "--enable-gtk-doc"
+              "--enable-glib-asserts"
+              (string-append "--with-html-dir=" #$output
+                             "/share/gtk-doc/html"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'copy-common
+            (lambda _
+              (delete-file "autogen.sh")
+              (copy-recursively
+               #$(origin
+                   (method git-fetch)
+                   (uri
+                    (git-reference
+                     (url "https://gitlab.freedesktop.org/gstreamer/common.git")
+                     (commit "52adcdb89a9eb527df38c569539d95c1c7aeda6e")))
+                   (file-name (git-file-name "common" "latest.52adcdb"))
+                   (sha256
+                    (base32
+                     "1zlm1q1lgcb76gi82rial5bwy2j9sz1x6x48ijhiz89cml7xxd1r")))
+               "common")))
+          (add-after 'unpack 'disable-problematic-tests
+            (lambda _
+              (substitute* "tests/check/Makefile.am"
+                ;; This test fails since updating gstreamer to version 1.22.1
+                ;; (see:
+                ;; https://gitlab.freedesktop.org/farstream/farstream/-/issues/25).
+                (("^\trtp/recvcodecs.*") "")
+                ;; This test timeouts despite changing the value of
+                ;; 'CK_DEFAULT_TIMEOUT' to 600 (see:
+                ;; https://gitlab.freedesktop.org/farstream/farstream/-/issues/20).
+                (("^\ttransmitter/nice.*") ""))))
+          (add-after 'unpack 'patch-docbook-xml
+            (lambda* (#:key native-inputs inputs #:allow-other-keys)
+              (with-directory-excursion "docs"
+                (substitute* '("libs/farstream-libs-docs.sgml"
+                               "plugins/farstream-plugins-docs.sgml")
+                  (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                   (search-input-directory (or native-inputs inputs)
+                                           "xml/dtd/docbook/")))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("common"
-        ,(origin
-           (method git-fetch)
-           (uri
-            (git-reference
-             (url "https://gitlab.freedesktop.org/gstreamer/common.git")
-             (commit "88e512ca7197a45c4114f7fa993108f23245bf50")))
-           (file-name
-            (git-file-name "common" "latest.88e512c"))
-           (sha256
-            (base32 "1nk94pnskjyngqcfb9p32g4yvf4nzpjszisw24r9azl0pawqpsn6"))))
-       ("docbook-xml" ,docbook-xml-4.1.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("libtool" ,libtool)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("xsltproc" ,libxslt)))
+     (list autoconf
+           automake
+           docbook-xml-4.1.2
+           docbook-xsl
+           gobject-introspection
+           gtk-doc/stable
+           libtool
+           libxslt
+           perl
+           pkg-config
+           python-wrapper))
     (inputs
-     (list glib gtk+ gupnp-igd libnice))
+     (list glib
+           gtk+
+           gupnp-igd
+           libnice))
     (propagated-inputs
-     (list gstreamer gst-plugins-bad gst-plugins-base gst-plugins-good))
+     (list gstreamer
+           gst-plugins-bad
+           gst-plugins-base
+           gst-plugins-good))
     (synopsis "The Farstream VVoIP framework")
     (description "Farstream is a collection of GStreamer modules and libraries
 for videoconferencing.")
@@ -474,112 +476,82 @@ display servers.  It supports many different languages and emoji.")
     (name "xdg-utils")
     (version "1.1.3")
     (source
-      (origin
-        (method url-fetch)
-          (uri (string-append
-                 "https://portland.freedesktop.org/download/xdg-utils-"
-                 version ".tar.gz"))
-          (sha256
-            (base32
-             "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://portland.freedesktop.org/download/xdg-utils-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p"))))
     (build-system gnu-build-system)
     (native-inputs
      (list docbook-xsl docbook-xml-4.1.2 libxslt w3m-for-tests xmlto))
     (inputs
-     `(("awk" ,gawk)
-       ;; TODO(staging): Make this unconditional, to avoid canonical packages,
-       ;; see <https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00148.html>.
-       ,@(if (%current-target-system)
-             `(("bash-minimal" ,bash-minimal)) ; for 'wrap-program'
-             '())
-       ("coreutils" ,coreutils)
-       ,@(if (%current-target-system)
-             `(("file" ,file))
-             '())
-       ("grep" ,grep)
-       ("inetutils" ,inetutils) ; xdg-screensaver uses `hostname'
-       ("perl-file-mimeinfo" ,perl-file-mimeinfo) ; for mimeopen fallback
-       ("sed" ,sed)
-       ("xprop" ,xprop) ; for Xfce detecting
-       ("xset" ,xset))) ; for xdg-screensaver
+     (list bash-minimal                 ;for 'wrap-program'
+           coreutils
+           file
+           gawk
+           grep
+           inetutils                    ;xdg-screensaver uses `hostname'
+           perl-file-mimeinfo           ;for mimeopen fallback
+           sed
+           xprop                        ;for Xfce detecting
+           xset))                       ;for xdg-screensaver
     (arguments
-     `(#:tests? #f   ; no check target
-       #:modules ((srfi srfi-26)
+     (list
+      #:tests? #f                       ;no check target
+      #:modules `((srfi srfi-26)
                   ,@%gnu-build-system-modules)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-hardcoded-paths
-           ;; TODO(staging): make unconditional
-           (,@(if (%current-target-system)
-                 '(lambda* (#:key inputs #:allow-other-keys))
-                 '(lambda _))
+      #:phases
+      #~(modify-phases %standard-phases
+        (add-after 'unpack 'patch-hardcoded-paths
+          (lambda* (#:key inputs #:allow-other-keys)
             (substitute* "scripts/xdg-mime.in"
               (("/usr/bin/file")
-               (,@(if (%current-target-system)
-                      '(search-input-file inputs "bin/file")
-                      '(which "file")))))
+               (search-input-file inputs "bin/file")))
             (substitute* "scripts/xdg-open.in"
               (("/usr/bin/printf")
-               (,@(if (%current-target-system)
-                      '(search-input-file inputs "bin/printf")
-                      '(which "printf")))))
-            #t))
-         (add-before 'build 'locate-catalog-files
-           ;; TODO(staging): Make unconditional for simplicity.
-           (lambda* (#:key inputs ,@(if (%current-target-system)
-                                        '(native-inputs)
-                                        '()) #:allow-other-keys)
-             ;; TODO(staging): Make unconditional for simplicity and
-             ;; to avoid depending on input labels.
-             (let ,(if (%current-target-system)
-                       `((native-inputs (or native-inputs inputs))
-                         (xmldoc (search-input-directory native-inputs
-                                                         "xml/dtd/docbook"))
-                         (xsldoc
-                          (search-input-directory
-                           native-inputs
-                           (string-append "xml/xsl/docbook-xsl-"
-                                          ,(package-version docbook-xsl)))))
-                       `((xmldoc
-                          (string-append (assoc-ref inputs "docbook-xml")
-                                         "/xml/dtd/docbook"))
-                         (xsldoc
-                          (string-append (assoc-ref inputs "docbook-xsl")
-                                         "/xml/xsl/docbook-xsl-"
-                                         ,(package-version docbook-xsl)))))
-               (for-each (lambda (file)
-                           (substitute* file
-                             (("http://.*/docbookx\\.dtd")
-                              (string-append xmldoc "/docbookx.dtd"))))
-                         (find-files "scripts/desc" "\\.xml$"))
-               (substitute* "scripts/Makefile"
-                 ;; Apparently `xmlto' does not bother to looks up the stylesheets
-                 ;; specified in the XML, unlike the above substitition. Instead it
-                 ;; uses a hard-coded URL. Work around it here, but if this is
-                 ;; common perhaps we should hardcode this path in xmlto itself.
-                 (("\\$\\(XMLTO\\) man")
-                  (string-append "$(XMLTO) -x " xsldoc
-                                 "/manpages/docbook.xsl man")))
-               (setenv "STYLESHEET"
-                       (string-append xsldoc "/html/docbook.xsl"))
-               ;; TODO(staging): Might as well remove the #t while we are at
-               ;; it.
-               #t)))
-         (add-after 'install 'wrap-executables
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (with-directory-excursion (string-append out "/bin")
-                 (let ((path-ext
-                        (map (cute string-append <> "/bin")
-                             (cons out
-                                   (map (cute assoc-ref inputs <>)
-                                        '("awk" "coreutils" "grep" "inetutils"
-                                          "perl-file-mimeinfo" "sed" "xprop"
-                                          "xset"))))))
-                   (for-each (cute wrap-program <>
-                                   `("PATH" ":" prefix ,path-ext))
-                             (find-files "."))))
-               #t))))))
+               (search-input-file inputs "bin/printf")))))
+        (add-before 'build 'locate-catalog-files
+          (lambda* (#:key native-inputs inputs #:allow-other-keys)
+            (let* ((native (or native-inputs inputs))
+                   (xmldoc (search-input-directory native
+                                                   "xml/dtd/docbook"))
+                   (xsldoc (search-input-directory
+                            native
+                            (string-append "xml/xsl/docbook-xsl-"
+                                           #$(package-version
+                                              (this-package-native-input
+                                               "docbook-xsl"))))))
+              (for-each (lambda (file)
+                          (substitute* file
+                            (("http://.*/docbookx\\.dtd")
+                             (string-append xmldoc "/docbookx.dtd"))))
+                        (find-files "scripts/desc" "\\.xml$"))
+              (substitute* "scripts/Makefile"
+                ;; Apparently `xmlto' does not bother to looks up the stylesheets
+                ;; specified in the XML, unlike the above substitition. Instead it
+                ;; uses a hard-coded URL. Work around it here, but if this is
+                ;; common perhaps we should hardcode this path in xmlto itself.
+                (("\\$\\(XMLTO\\) man")
+                 (string-append "$(XMLTO) -x " xsldoc
+                                "/manpages/docbook.xsl man")))
+              (setenv "STYLESHEET"
+                      (string-append xsldoc "/html/docbook.xsl")))))
+        (add-after 'install 'wrap-executables
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (let* ((dependencies '("awk" "grep" "hostname" "ls" "mimeopen"
+                                   "sed" "xprop" "xset"))
+                   (pkgs (map (lambda (cmd)
+                                (search-input-file inputs
+                                                   (string-append "bin/" cmd)))
+                              dependencies))
+                   (bindirs (map dirname pkgs)))
+              (with-directory-excursion (string-append #$output "/bin")
+                (for-each (cute wrap-program <>
+                                `("PATH" ":" prefix ,bindirs))
+                          (find-files ".")))))))))
     (home-page "https://www.freedesktop.org/wiki/Software/xdg-utils/")
     (synopsis "Freedesktop.org scripts for desktop integration")
     (description "The xdg-utils package is a set of simple scripts that
@@ -1802,15 +1774,15 @@ which speak the Qualcomm MSM Interface (QMI) protocol.")
 (define-public modem-manager
   (package
     (name "modem-manager")
-    (version "1.18.10")
+    (version "1.18.12")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://www.freedesktop.org/software/ModemManager/"
                     "ModemManager-" version ".tar.xz"))
               (sha256
                (base32
-                "1sv53lvz9nfbq6jzprl5xhai0vylc01kglcdrgz2vszf5615y98n"))))
+                "0c74n5jl1qvq2qlbwzfkgxny8smjcgkid1nhdnl6qnlmbn9f8r5l"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -1961,32 +1933,32 @@ different sorts of messages in different formats.")
     (license license:lgpl2.1+)))
 
 (define-public telepathy-idle
-  (package
-    (name "telepathy-idle")
-    (version "0.2.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/TelepathyIM/telepathy-idle")
-             (commit (string-append "telepathy-idle-" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1pfw4g2cicw3ykxhsy743r0fc1yqbdrqxh2c5ha6am19dajcr95l"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list autoconf automake libtool pkg-config))
-    (inputs
-     (list libxslt python-2 python2-dbus))
-    (propagated-inputs
-     (list telepathy-glib))
-    (home-page "https://telepathy.freedesktop.org/")
-    (synopsis "Telepathy IRC connection manager")
-    (description
-     "Idle is an IRC connection manager for the Telepathy framework.  This
+  ;; Use the latest commit, as the latest release does not support Python 3.
+  (let ((commit "b516eab0f2b92e078e0f5cab4224214d215b2ea5")
+        (revision "0"))
+    (package
+      (name "telepathy-idle")
+      (version (git-version "0.2.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/TelepathyIM/telepathy-idle")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "02wb61h2k3hhis5y2xi5rhc6pmikd13x722hk620sqb9b3m5pn3s"))))
+      (build-system gnu-build-system)
+      (native-inputs (list autoconf automake libtool pkg-config))
+      (inputs (list libxslt python-wrapper python-dbus))
+      (propagated-inputs (list telepathy-glib))
+      (home-page "https://telepathy.freedesktop.org/")
+      (synopsis "Telepathy IRC connection manager")
+      (description
+       "Idle is an IRC connection manager for the Telepathy framework.  This
 package enables usage of IRC channels and private messages in Telepathy instant
 messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
-    (license (list license:lgpl2.1 license:lgpl2.1+))))
+      (license (list license:lgpl2.1 license:lgpl2.1+)))))
 
 (define-public telepathy-mission-control
   (package
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 643e49b..0fba4f5 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3637,17 +3637,17 @@ for common mesh file formats, and collision detection.")
   (package
     (inherit irrlicht)
     (name "irrlicht-for-minetest")
-    (version "1.9.0mt8")
+    (version "1.9.0mt10")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/minetest/irrlicht")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1646pj40dqkzbbc2lxzbmq2pjyrkgggbi2lah6pa5mv420p402kg"))))
+         "0y5vchz91khs8dmrkpgc7sqmvzx2yjj6svivvm80r4yppv7s03rw"))))
     (build-system cmake-build-system)
     (arguments
      ;; No check target.
@@ -6015,7 +6015,7 @@ for Un*x systems with X11.")
 (define-public freeciv
   (package
    (name "freeciv")
-   (version "3.0.6")
+   (version "3.0.7")
    (source
     (origin
      (method url-fetch)
@@ -6027,7 +6027,7 @@ for Un*x systems with X11.")
                   (version-major+minor version) "/" version
                   "/freeciv-" version ".tar.xz")))
      (sha256
-      (base32 "0hp4mkbcf5sipqkfjynls4m1qlh6kn0mp3jlqjrjwylmgcah3rs0"))))
+      (base32 "1i6sm2ich9bazbg8wjzn8z1c5hgmg541lgw8f899fgfhgvqhdrpn"))))
    (build-system gnu-build-system)
    (inputs
     (list curl cyrus-sasl gtk+ sdl-mixer zlib))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 4ae9603..fd69e6d 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -110,15 +110,15 @@ as ASCII text.")
 (define-public freeglut
   (package
     (name "freeglut")
-    (version "3.2.2")
+    (version "3.4.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/FreeGLUTProject/freeglut/releases"
                     "/download/v" version "/freeglut-" version ".tar.gz"))
               (sha256
                (base32
-                "0l3s57zw51fy3mn5qfdm4z775kfhflgxppanaxmskfzh5l44m565"))))
+                "1v7ayg3a03mv8b6lsr1qm21lbr8xg8dh3gdfxnbhl64vbn8wn2rw"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ;no test target
@@ -615,29 +615,32 @@ glxdemo, glxgears, glxheads, and glxinfo.")
 (define-public glew
   (package
     (name "glew")
-    (version "2.1.0")
+    (version "2.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/glew/glew/" version
                                   "/glew-" version ".tgz"))
               (sha256
                (base32
-                "159wk5dc0ykjbxvag5i1m2mhp23zkk6ra04l26y3jc3nwvkr3ph4"))
+                "1qak8f7g1iswgswrgkzc7idk7jmqgwrs58fhg2ai007v7j4q5z6l"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   (substitute* "config/Makefile.linux"
                     (("= cc") "= gcc")
                     (("/lib64") "/lib"))
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases (delete 'configure))
-       #:make-flags (list (string-append "GLEW_PREFIX="
-                                         (assoc-ref %outputs "out"))
-                          (string-append "GLEW_DEST="
-                                         (assoc-ref %outputs "out")))
-       #:tests? #f))                              ;no 'check' target
+     (list #:make-flags #~(list (string-append "GLEW_PREFIX=" #$output)
+                                (string-append "GLEW_DEST=" #$output))
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               (add-after 'install 'delete-static
+                 (lambda _
+                   (delete-file (string-append #$output "/lib/libGLEW.a")))))
+           #:tests? #f))                ;no 'check' target
     (inputs
      (list libxi libxmu libx11 mesa))
 
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 725471c..9eb60c5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -39,7 +39,7 @@
 ;;; Copyright © 2019 Giacomo Leidi <[email-masked]>
 ;;; Copyright © 2019 Jelle Licht <[email-masked]>
 ;;; Copyright © 2019 Jonathan Frederickson <[email-masked]>
-;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2019, 2020 Martin Becze <[email-masked]>
 ;;; Copyright © 2019 David Wilson <[email-masked]>
 ;;; Copyright © 2019, 2020 Raghav Gururajan <[email-masked]>
@@ -2670,13 +2670,13 @@ forgotten when the session ends.")
 (define-public evince
   (package
     (name "evince")
-    (version "42.3")
+    (version "44.1")
     (source (origin
               (method url-fetch)
-              (uri "mirror://gnome/sources/evince/42/evince-42.3.tar.xz")
+              (uri "mirror://gnome/sources/evince/44/evince-44.1.tar.xz")
               (sha256
                (base32
-                "0pk42icnf4kdcaqaj17mcf4sxi82h1fdg2ds2zdrcv4lbj2czbj9"))))
+                "0523lzk7xpfr6gir8nx80fmp1lhajm837hilmgn8zczz2nxx7bqm"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -2687,8 +2687,10 @@ forgotten when the session ends.")
          (add-after 'unpack 'skip-gtk-update-icon-cache
            ;; Don't create 'icon-theme.cache'.
            (lambda _
-             (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true")))))))
+             (substitute* "meson.build"
+               (("(glib_compile_schemas|gtk_update_icon_cache|\
+update_desktop_database): true" _ tool)
+                (string-append tool ": false"))))))))
     (inputs
      (list libarchive
            libgxps
@@ -5443,19 +5445,19 @@ and other secrets.  It communicates with the \"Secret Service\" using DBus.")
 (define-public gi-docgen
   (package
     (name "gi-docgen")
-    (version "2022.1")
+    (version "2023.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "gi-docgen" version))
               (sha256
                (base32
-                "1v2wspm2ld27lq1n5v5pzrmkhchfa7p7ahp8rmjm4zcdyagqf7gr"))))
+                "18vzbw1k531qxi9qcwlxl97xk9dg16has7khg6a5d0pqrflyvbc8"))))
     (build-system python-build-system)
     (propagated-inputs (list python-jinja2
                              python-markdown
                              python-markupsafe
                              python-pygments
-                             python-toml
+                             python-tomli
                              python-typogrify))
     (home-page "https://gitlab.gnome.org/GNOME/gi-docgen")
     (synopsis "Documentation tool for GObject-based libraries")
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 4d662d7..f080d72 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2020 Michael Rohleder <[email-masked]>
 ;;; Copyright © 2022 Maxime Devos <[email-masked]>
 ;;; Copyright © 2023 Adam Faiz <[email-masked]>
+;;; Copyright © 2023 Maxim Cournoyer <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,6 +32,7 @@
 
 (define-module (gnu packages gnunet)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages file)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages autotools)
@@ -259,82 +261,93 @@ supports HTTP, HTTPS and GnuTLS.")
 
 (define-public gnunet
   (package
-   (name "gnunet")
-   (version "0.19.3")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnu/gnunet/gnunet-" version
-                          ".tar.gz"))
-      (sha256
-       (base32
-        "09bspbjl6cll8wcrl1vnb56jwp30pcrg1yyj6xy3i0fl2bzdbdw2"))
-      (modules '((guix build utils)))
-      (snippet
-       #~(begin
-           ;; This is fixed in the upstream repository but the fix
-           ;; has not been released.
-           (substitute* "src/gns/test_proxy.sh"
-             (("test_gnunet_proxy.conf") "test_gns_proxy.conf"))))))
-   (build-system gnu-build-system)
-   (inputs
-    (list bluez
-          glpk
-          curl
-          gnutls/dane
-          gstreamer
-          jansson
-          libextractor
-          libidn2
-          libgcrypt
-          libjpeg-turbo
-          libltdl
-          libmicrohttpd
-          libogg
-          libsodium
-          libunistring
-          miniupnpc
-          opus
-          pulseaudio
-          sqlite
-          zbar
-          zlib))
-   (native-inputs
-    (list curl
-          openssl
-          pkg-config
-          python
-          python-sphinx
-          python-sphinx-rtd-theme
-          xxd
-          (@ (gnu packages base) which)))
-   (arguments
-    '(#:parallel-tests? #f ; Parallel tests aren't supported.
+    (name "gnunet")
+    (version "0.19.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://gnu/gnunet/gnunet-" version
+                           ".tar.gz"))
+       (sha256
+        (base32
+         "16q0mkkr9b33wlm307ignfgvv0kilzr42155m5dpz66m13s3v9h0"))
+       (modules '((guix build utils)))
+       (snippet
+        #~(begin
+            ;; This is fixed in the upstream repository but the fix
+            ;; has not been released.
+            (substitute* "src/gns/test_proxy.sh"
+              (("test_gnunet_proxy.conf") "test_gns_proxy.conf"))))))
+    (build-system gnu-build-system)
+    (inputs
+     (list bluez
+           glpk
+           curl
+           gnutls/dane
+           gstreamer
+           jansson
+           libextractor
+           libidn2
+           libgcrypt
+           libjpeg-turbo
+           libltdl
+           libmicrohttpd
+           libogg
+           libsodium
+           libunistring
+           miniupnpc
+           opus
+           pulseaudio
+           sqlite
+           zbar
+           zlib))
+    (native-inputs
+     (list curl
+           openssl
+           pkg-config
+           python
+           python-sphinx
+           python-sphinx-rtd-theme
+           xxd
+           which))
+    (arguments
+     (list
+      #:parallel-tests? #f              ;parallel tests aren't supported
       #:phases
-      (modify-phases %standard-phases
-        (add-before 'check 'set-env-var-for-tests
-          (lambda _
-            (setenv "LANG" "en_US.UTF-8")))
-        ;; Swap 'check and 'install phases and add installed binaries to $PATH.
-        (add-before 'check 'set-path-for-check
-          (lambda* (#:key outputs #:allow-other-keys)
-           (let ((out (assoc-ref outputs "out")))
-             (setenv "GNUNET_PREFIX" (string-append out "/lib"))
-             (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin")))
-           #t))
-        (delete 'check)
-        (add-after 'install 'check
-          (assoc-ref %standard-phases 'check)))))
-   (synopsis "Secure, decentralized, peer-to-peer networking framework")
-   (description
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'disable-problematic-tests
+            (lambda _
+              (substitute* "src/cadet/Makefile.in"
+                ;; The speed_reliable tests appear to be unreliable (see:
+                ;; https://bugs.gnunet.org/view.php?id=7787).
+                (("test_cadet_[0-9]+_speed_reliable\\$\\(EXEEXT)")
+                 ""))
+              (substitute* "src/core/Makefile.in"
+                ;; The 'test_core_api' test fails non-deterministically (see:
+                ;; https://bugs.gnunet.org/view.php?id=7784).
+                (("test_core_api\\$\\(EXEEXT) ") ""))))
+          (add-before 'check 'set-env-var-for-tests
+            (lambda _
+              (setenv "LANG" "en_US.UTF-8")))
+          ;; Swap 'check and 'install phases and add installed binaries to $PATH.
+          (add-before 'check 'set-path-for-check
+            (lambda _
+              (setenv "GNUNET_PREFIX" (string-append #$output "/lib"))
+              (setenv "PATH" (string-append (getenv "PATH") ":"
+                                            #$output "/bin"))))
+          (delete 'check)
+          (add-after 'install 'check
+            (assoc-ref %standard-phases 'check)))))
+    (synopsis "Secure, decentralized, peer-to-peer networking framework")
+    (description
      "GNUnet is a framework for secure peer-to-peer networking.  The
 high-level goal is to provide a strong foundation of free software for a
 global, distributed network that provides security and privacy.  GNUnet in
 that sense aims to replace the current internet protocol stack.  Along with
 an application for secure publication of files, it has grown to include all
 kinds of basic applications for the foundation of a GNU internet.")
-   (license license:agpl3+)
-   (home-page "https://gnunet.org/en/")))
+    (license license:agpl3+)
+    (home-page "https://www.gnunet.org/en/")))
 
 (define-public guile-gnunet                       ;GSoC 2015!
   (let ((commit "d12167ab3c8d7d6caffd9c606e389ef043760602")
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 932c0f9..c17ce27 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -704,9 +704,11 @@ variable defined below.  It requires guile-json to be installed."
            libxcomposite
            libxt
            libffi
-           ffmpeg
+           ;; Support for FFmpeg 6 was only added in version 112 (see:
+           ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1819374).
+           ffmpeg-5
            libvpx
-           icu4c-71  ; TODO: Change to 'icu4c' when its version is >= 71.
+           icu4c-71       ;TODO: Change to 'icu4c' when its version is >= 71.
            pixman
            pulseaudio
            mesa
@@ -962,7 +964,7 @@ variable defined below.  It requires guile-json to be installed."
               ;; complain that it's not able to change Cargo.lock.
               ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
               (substitute* "build/RunCbindgen.py"
-                           (("\"--frozen\",") ""))))
+                (("\"--frozen\",") ""))))
           (delete 'bootstrap)
           (replace 'configure
             ;; configure does not work followed by both "SHELL=..." and
@@ -1116,6 +1118,176 @@ standards of the IceCat project.")
     "ru" "sco" "si" "sk" "sl" "son" "sq" "sr" "sv-SE" "szl" "ta" "te" "th" "tl"
     "tr" "trs" "uk" "ur" "uz" "vi" "xh" "zh-CN" "zh-TW"))
 
+(define icecat-102.9.0-source
+  (let* ((base-version "102.9.0")
+         (version "102.9.0-guix0-preview1")
+         (major-version (first  (string-split base-version #\.)))
+         (minor-version (second (string-split base-version #\.)))
+         (sub-version   (third  (string-split base-version #\.)))
+
+         (upstream-firefox-version (string-append base-version "esr"))
+         (upstream-firefox-source
+          (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://ftp.mozilla.org/pub/firefox/releases/"
+                  upstream-firefox-version "/source/"
+                  "firefox-" upstream-firefox-version ".source.tar.xz"))
+            (sha256
+             (base32
+              "1l8xlbba8sa9dg132k96ch8mz97i5lyhpvkxi8d85jh97xi79c1i"))))
+
+         ;; The upstream-icecat-base-version may be older than the
+         ;; base-version.
+         (upstream-icecat-base-version base-version)
+         (gnuzilla-commit "f55ede39713d1533734f37e39927cbb78abe1604")
+         (gnuzilla-source
+          (origin
+            (method git-fetch)
+            (uri (git-reference
+                  (url "git://git.savannah.gnu.org/gnuzilla.git")
+                  (commit gnuzilla-commit)))
+            (file-name (git-file-name "gnuzilla"
+                                      ;;upstream-icecat-base-version
+                                      (string-take gnuzilla-commit 8)))
+            (sha256
+             (base32
+              "0z15h3lxfn9pmj5bj62qim3h320dcd2v69xrg1phb7lh5gq0bylf"))))
+
+         ;; 'search-patch' returns either a valid file name or #f, so wrap it
+         ;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
+         (makeicecat-patch
+          (local-file (assume-valid-file-name
+                       (search-patch "icecat-makeicecat.patch")))))
+
+    (origin
+      (method computed-origin-method)
+      (file-name (string-append "icecat-" version ".tar.xz"))
+      (sha256 #f)
+      (uri
+       (delay
+        (with-imported-modules '((guix build utils))
+          #~(begin
+              (use-modules (guix build utils))
+              (let ((firefox-dir
+                     (string-append "firefox-" #$base-version))
+                    (icecat-dir
+                     (string-append "icecat-" #$version)))
+
+                (set-path-environment-variable
+                 "PATH" '("bin")
+                 (list #+python
+                       #+(canonical-package bash)
+                       #+(canonical-package coreutils)
+                       #+(canonical-package findutils)
+                       #+(canonical-package patch)
+                       #+(canonical-package xz)
+                       #+(canonical-package sed)
+                       #+(canonical-package grep)
+                       #+(canonical-package bzip2)
+                       #+(canonical-package gzip)
+                       #+(canonical-package tar)))
+
+                (set-path-environment-variable
+                 "PYTHONPATH"
+                 (list #+(format #f "lib/python~a/site-packages"
+                                 (version-major+minor
+                                  (package-version python))))
+                 '#+(cons python-jsonschema
+                          (map second
+                               (package-transitive-propagated-inputs
+                                python-jsonschema))))
+
+                ;; Needed by the 'makeicecat' script.
+                (setenv "RENAME_CMD" "rename")
+
+                ;; We copy the gnuzilla source directory because it is
+                ;; read-only in 'gnuzilla-source', and the makeicecat script
+                ;; uses "cp -a" to copy parts of it and assumes that the
+                ;; copies will be writable.
+                (copy-recursively #+gnuzilla-source "/tmp/gnuzilla"
+                                  #:log (%make-void-port "w"))
+
+                (with-directory-excursion "/tmp/gnuzilla"
+                  (make-file-writable "makeicecat")
+                  (invoke "patch" "--force" "--no-backup-if-mismatch"
+                          "-p1" "--input" #+makeicecat-patch)
+                  (patch-shebang "makeicecat")
+                  (substitute* "makeicecat"
+                    (("^readonly FFMAJOR=(.*)" all ffmajor)
+                     (unless (string=? #$major-version
+                                       (string-trim-both ffmajor))
+                       ;; The makeicecat script cannot be expected to work
+                       ;; properly on a different version of Firefox, even if
+                       ;; no errors occur during execution.
+                       (error "makeicecat major version mismatch"))
+                     (string-append "readonly FFMAJOR=" #$major-version "\n"))
+                    (("^readonly FFMINOR=.*")
+                     (string-append "readonly FFMINOR=" #$minor-version "\n"))
+                    (("^readonly FFSUB=.*")
+                     (string-append "readonly FFSUB=" #$sub-version "\n"))
+                    (("^readonly DATADIR=.*")
+                     "readonly DATADIR=/tmp/gnuzilla/data\n")
+                    (("^readonly SOURCEDIR=.*")
+                     (string-append "readonly SOURCEDIR=" icecat-dir "\n"))
+                    (("/bin/sed")
+                     #+(file-append (canonical-package sed) "/bin/sed"))))
+
+                (format #t "Unpacking upstream firefox tarball...~%")
+                (force-output)
+                (invoke "tar" "xf" #+upstream-firefox-source)
+                (rename-file firefox-dir icecat-dir)
+
+                (with-directory-excursion icecat-dir
+                  (format #t "Populating l10n directory...~%")
+                  (force-output)
+                  (mkdir "l10n")
+                  (with-directory-excursion "l10n"
+                    (for-each
+                     (lambda (locale-dir)
+                       (let ((locale
+                              (string-drop (basename locale-dir)
+                                           (+ 32  ; length of hash
+                                              (string-length "-mozilla-locale-")))))
+                         (format #t "  ~a~%" locale)
+                         (force-output)
+                         (copy-recursively locale-dir locale
+                                           #:log (%make-void-port "w"))
+                         (for-each make-file-writable (find-files locale))
+                         (with-directory-excursion locale
+                           (when (file-exists? ".hgtags")
+                             (delete-file ".hgtags"))
+                           (mkdir-p "browser/chrome/browser/preferences")
+                           (call-with-output-file
+                               "browser/chrome/browser/preferences/advanced-scripts.dtd"
+                             (lambda (port) #f)))))
+                     '#+all-mozilla-locales)
+                    (copy-recursively #+mozilla-compare-locales
+                                      "compare-locales"
+                                      #:log (%make-void-port "w"))
+                    (delete-file "compare-locales/.gitignore")
+                    (delete-file "compare-locales/.hgignore")
+                    (delete-file "compare-locales/.hgtags")))
+
+                (format #t "Running makeicecat script...~%")
+                (force-output)
+                (invoke "bash" "/tmp/gnuzilla/makeicecat")
+
+                (format #t "Packing IceCat source tarball...~%")
+                (force-output)
+                (setenv "XZ_DEFAULTS" (string-join (%xz-parallel-args)))
+                (invoke "tar" "cfa" #$output
+                        ;; Avoid non-determinism in the archive.  We set the
+                        ;; mtime of files in the archive to early 1980 because
+                        ;; the build process fails if the mtime of source
+                        ;; files is pre-1980, due to the creation of zip
+                        ;; archives.
+                        "--mtime=@315619200" ; 1980-01-02 UTC
+                        "--owner=root:0"
+                        "--group=root:0"
+                        "--sort=name"
+                        icecat-dir)))))))))
+
 (define %icedove-build-id "20230411000000") ;must be of the form YYYYMMDDhhmmss
 (define %icedove-version "102.10.0")
 
@@ -1191,7 +1363,7 @@ list of languages supported as well as the currently used changeset."
                ;; Extract the base Icecat tarball, renaming its top-level
                ;; directory.
                (invoke "tar" "--transform" (string-append "s,[^/]*," #$name ",")
-                       "-xf" #$icecat-source)
+                       "-xf" #$icecat-102.9.0-source)
                (chdir #$name)
 
                ;; Merge the Thunderdbird localization data.
@@ -1494,7 +1666,8 @@ ca495991b7852b855"))
            cairo
            cups
            dbus-glib
-           ffmpeg
+           ;; Support for FFmpeg 6 was only added in version 112 (see:
+           ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1819374).
            freetype
            gdk-pixbuf
            glib
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 7709053..24dae34 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -244,7 +244,7 @@
     (native-inputs
      (list pkg-config which net-base perl))
 
-    (home-page "https://golang.org/")
+    (home-page "https://go.dev/")
     (synopsis "Compiler and libraries for Go, a statically-typed language")
     (description "Go, also commonly referred to as golang, is an imperative
 programming language designed primarily for systems programming.  Go is a
@@ -631,17 +631,17 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.16)
     (name "go")
-    (version "1.17.11")
+    (version "1.17.13")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/golang/go")
              (commit (string-append "go" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "11wy6092qm7v0n10cjkyp49sbchqazi3vnij8k2sq7k7jaj63z5p"))))
+         "05m8gr050kagvn22lfnjrgms03l5iphd1m4v6z7yqlhn9gdp912d"))))
     (outputs '("out" "tests")) ; 'tests' contains distribution tests.
     (arguments
      `(#:modules ((ice-9 match)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 336f1dd..e84ae9b 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -480,100 +480,95 @@ typically encountered in feature film production.")
 (define-public blender
   (package
     (name "blender")
-    (version "3.3.1")
+    (version "3.3.5")                   ;3.3.x is the current LTS version
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.blender.org/source/"
                                   "blender-" version ".tar.xz"))
               (sha256
                (base32
-                "1jlc26axbhh97d2j6kfg9brgiq8j412mgmw7p41ah34apzq4inia"))))
+                "1pwl4lbc00g0bj97rd8l9fnrv3w1gny9ci6mrma3pp2acgs56502"))))
     (build-system cmake-build-system)
     (arguments
+     (list
+      ;; Test files are very large and not included in the release tarball.
+      #:tests? #f
+      #:configure-flags
       (let ((python-version (version-major+minor (package-version python))))
-       `(;; Test files are very large and not included in the release tarball.
-         #:tests? #f
-         #:configure-flags
-         (list "-DWITH_CODEC_FFMPEG=ON"
-               "-DWITH_CODEC_SNDFILE=ON"
-               "-DWITH_CYCLES=ON"
-               "-DWITH_DOC_MANPAGE=ON"
-               "-DWITH_FFTW3=ON"
-               "-DWITH_IMAGE_OPENJPEG=ON"
-               "-DWITH_INPUT_NDOF=ON"
-               "-DWITH_INSTALL_PORTABLE=OFF"
-               "-DWITH_JACK=ON"
-               "-DWITH_MOD_OCEANSIM=ON"
-               "-DWITH_OPENVDB=ON"
-               "-DWITH_OPENSUBDIV=ON"
-               "-DWITH_PYTHON_INSTALL=OFF"
-               (string-append "-DPYTHON_LIBRARY=python" ,python-version)
-               (string-append "-DPYTHON_LIBPATH=" (assoc-ref %build-inputs "python")
-                              "/lib")
-               (string-append "-DPYTHON_INCLUDE_DIR=" (assoc-ref %build-inputs "python")
-                              "/include/python" ,python-version)
-               (string-append "-DPYTHON_VERSION=" ,python-version)
-               (string-append "-DPYTHON_NUMPY_INCLUDE_DIRS="
-                              (assoc-ref %build-inputs "python-numpy")
-                              "/lib/python" ,python-version "/site-packages/numpy/core/include/")
-               (string-append "-DPYTHON_NUMPY_PATH="
-                              (assoc-ref %build-inputs "python-numpy")
-                              "/lib/python" ,python-version "/site-packages/"))
-         #:phases
-         (modify-phases %standard-phases
-           ;; XXX This file doesn't exist in the Git sources but will probably
-           ;; exist in the eventual 2.80 source tarball.
-           (add-after 'unpack 'fix-broken-import
-             (lambda _
-               (substitute* "release/scripts/addons/io_scene_fbx/json2fbx.py"
-                 (("import encode_bin") "from . import encode_bin"))
-               #t))
-           (add-after 'set-paths 'add-ilmbase-include-path
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; OpenEXR propagates ilmbase, but its include files do not
-               ;; appear in the C_INCLUDE_PATH, so we need to add
-               ;; "$ilmbase/include/OpenEXR/" to the C_INCLUDE_PATH to satisfy
-               ;; the dependency on "half.h" and "Iex.h".
-               (let ((headers (string-append
-                               (assoc-ref inputs "ilmbase")
-                               "/include/OpenEXR")))
-                 (setenv "C_INCLUDE_PATH"
-                         (string-append headers ":"
-                                        (or (getenv "C_INCLUDE_PATH") "")))
-                 (setenv "CPLUS_INCLUDE_PATH"
-                         (string-append headers ":"
-                                        (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))))
+        #~(list "-DWITH_CODEC_FFMPEG=ON"
+                "-DWITH_CODEC_SNDFILE=ON"
+                "-DWITH_CYCLES=ON"
+                "-DWITH_DOC_MANPAGE=ON"
+                "-DWITH_FFTW3=ON"
+                "-DWITH_IMAGE_OPENJPEG=ON"
+                "-DWITH_INPUT_NDOF=ON"
+                "-DWITH_INSTALL_PORTABLE=OFF"
+                "-DWITH_JACK=ON"
+                "-DWITH_MOD_OCEANSIM=ON"
+                "-DWITH_OPENVDB=ON"
+                "-DWITH_OPENSUBDIV=ON"
+                "-DWITH_PYTHON_INSTALL=OFF"
+                (string-append "-DPYTHON_LIBRARY=python" #$python-version)
+                (string-append "-DPYTHON_LIBPATH="
+                               (assoc-ref %build-inputs "python")
+                               "/lib")
+                (string-append "-DPYTHON_INCLUDE_DIR="
+                               (assoc-ref %build-inputs "python")
+                               "/include/python" #$python-version)
+                (string-append "-DPYTHON_VERSION=" #$python-version)
+                (string-append "-DPYTHON_NUMPY_INCLUDE_DIRS="
+                               (assoc-ref %build-inputs "python-numpy")
+                               "/lib/python" #$python-version
+                               "/site-packages/numpy/core/include/")
+                (string-append "-DPYTHON_NUMPY_PATH="
+                               (assoc-ref %build-inputs "python-numpy")
+                               "/lib/python" #$python-version
+                               "/site-packages/")
+                ;; OpenEXR propagates ilmbase, but its include files do not
+                ;; appear in the C_INCLUDE_PATH, so we need to add
+                ;; "$ilmbase/include/OpenEXR/" to the C_INCLUDE_PATH to
+                ;; satisfy the dependency on "half.h" and "Iex.h".
+                (string-append "-DCMAKE_CXX_FLAGS=-I"
+                               (search-input-directory %build-inputs
+                                                       "include/OpenEXR"))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-broken-import
+            (lambda _
+              (substitute* "release/scripts/addons/io_scene_fbx/json2fbx.py"
+                (("import encode_bin")
+                 "from . import encode_bin")))))))
     (inputs
-     `(("boost" ,boost)
-       ("jemalloc" ,jemalloc)
-       ("libx11" ,libx11)
-       ("libxi" ,libxi)
-       ("libxrender" ,libxrender)
-       ("opencolorio" ,opencolorio)
-       ("openimageio" ,openimageio)
-       ("openexr" ,openexr-2)
-       ("opensubdiv" ,opensubdiv)
-       ("ilmbase" ,ilmbase)
-       ("openjpeg" ,openjpeg)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("ffmpeg" ,ffmpeg)
-       ("fftw" ,fftw)
-       ("gmp" ,gmp) ;; needed for boolean operations on meshes
-       ("jack" ,jack-1)
-       ("libsndfile" ,libsndfile)
-       ("freetype" ,freetype)
-       ("glew" ,glew)
-       ("openal" ,openal)
-       ("pugixml" ,pugixml)
-       ("python" ,python)
-       ("python-numpy" ,python-numpy)
-       ("openvdb" ,openvdb)
-       ("tbb" ,tbb)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")
-       ("embree" ,embree)))
+     (list boost
+           embree
+           ffmpeg-5
+           fftw
+           freetype
+           glew
+           gmp                        ;needed for boolean operations on meshes
+           ilmbase
+           jack-1
+           jemalloc
+           libjpeg-turbo
+           libpng
+           libsndfile
+           libtiff
+           libx11
+           libxi
+           libxrender
+           openal
+           opencolorio
+           openexr-2
+           openimageio
+           openjpeg
+           opensubdiv
+           openvdb
+           pugixml
+           python
+           python-numpy
+           tbb
+           zlib
+           `(,zstd "lib")))
     (home-page "https://blender.org/")
     (synopsis "3D graphics creation suite")
     (description
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index f33a30a..0d05143 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -44,6 +44,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages compression)
@@ -403,15 +404,15 @@ arrays of data.")
 (define-public gstreamer-docs
   (package
     (name "gstreamer-docs")
-    (version "1.20.3")
+    (version "1.22.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://gstreamer.freedesktop.org/src/gstreamer-docs"
                     "/gstreamer-docs-" version ".tar.xz"))
               (sha256
                (base32
-                "1gziccq5f4fy23q6dm8nwbmzh68gn9rfbqw0xcn4r8yn82545z3k"))))
+                "1fljaydlinzw9jf5nkhwf7ihfzd5250k2cv220mi8dxxf7rgn18y"))))
     (build-system trivial-build-system)
     (arguments
      `(#:modules ((guix build utils))
@@ -463,19 +464,21 @@ the GStreamer multimedia framework.")
 (define-public gstreamer
   (package
     (name "gstreamer")
-    (version "1.20.3")
+    (version "1.22.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
              version ".tar.xz"))
        (sha256
         (base32
-         "0aisl8nazcfi4b5j6fz8zwpp0k9csb022zniz65b2pxxpdjayzb0"))))
+         "08cfz2vkf494rsg0bn75px26fxs3syvxnsc9lj5n074j0cvfgbxj"))))
     (build-system meson-build-system)
     (arguments
-     (list #:phases
+     (list #:disallowed-references (list python)
+           #:meson meson-0.63
+           #:phases
            #~(modify-phases %standard-phases
                #$@%common-gstreamer-phases
                #$@(if (string-prefix? "i686" (or (%current-target-system)
@@ -491,22 +494,32 @@ test_stress_cleanup_unschedule.*")
                               (("tcase_add_test \\(tc_chain, \
 test_stress_reschedule.*")
                                "")))))
-                      '()))))
+                      '())
+               (add-after 'patch-shebangs 'do-not-capture-python
+                 (lambda _
+                   ;; The patch-source-shebangs phase causes the following build
+                   ;; script to reference Python in its shebang, which is
+                   ;; unnecessary.
+                   (substitute* (string-append
+                                 #$output "/libexec/gstreamer-1.0/"
+                                 "gst-plugins-doc-cache-generator")
+                     (((which "python3"))
+                      "/usr/bin/env python3")))))))
     (propagated-inputs
      ;; In gstreamer-1.0.pc:
      ;;   Requires: glib-2.0, gobject-2.0
      ;;   Requires.private: gmodule-no-export-2.0 libunwind libdw
-     (list elfutils ; libdw
+     (list elfutils                     ;libdw
            glib libunwind))
     (native-inputs
      (list bash-completion
            bison flex
            gettext-minimal
            `(,glib "bin")
            gobject-introspection
            perl
            pkg-config
-           python-wrapper))
+           python))
     (inputs
      (list gmp libcap
            ;; For tests.
@@ -533,15 +546,15 @@ This package provides the core library and elements.")
 (define-public gst-plugins-base
   (package
     (name "gst-plugins-base")
-    (version "1.20.3")
+    (version "1.22.2")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "17rw8wj1x1bg153m9z76pdvgz5k93m3riyalfpzq00x7h7fv6c3y"))))
+        "0jcxcx4mgfjvfb3ixibwhx8j330mq3ap469w7hapm6z79q614rgb"))))
     (build-system meson-build-system)
     (propagated-inputs
      (list glib                     ;required by gstreamer-sdp-1.0.pc
@@ -580,6 +593,7 @@ This package provides the core library and elements.")
            xorg-server-for-tests))
     (arguments
      (list
+      #:meson meson-0.63
       #:phases
       #~(modify-phases %standard-phases
           #$@%common-gstreamer-phases
@@ -632,19 +646,20 @@ for the GStreamer multimedia library.")
 (define-public gst-plugins-good
   (package
     (name "gst-plugins-good")
-    (version "1.20.3")
+    (version "1.22.2")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append
          "https://gstreamer.freedesktop.org/src/" name "/"
          name "-" version ".tar.xz"))
        (sha256
-        (base32 "1dv8b2md1xk6d45ir1wzbvqhxbvm6mxv881rjl0brnjwpw3c5wzq"))))
+        (base32 "1p8cpkk4dynglw0xswqyf57xl5fnxmb3xld71kv35cpj4nacb33w"))))
     (build-system meson-build-system)
     (arguments
      (list
+      #:meson meson-0.63
       #:glib-or-gtk? #t              ; To wrap binaries and/or compile schemas
       #:phases
       #~(modify-phases %standard-phases
@@ -659,6 +674,11 @@ for the GStreamer multimedia library.")
                  (string-append prefix "\"" libsoup "\"\n")))))
           (add-after 'unpack 'skip-failing-tests
             (lambda _
+              (substitute* "tests/check/elements/flvmux.c"
+                ;; This test randomly times out (see:
+                ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/786).
+                ((".*tcase_add_test.*test_video_caps_late.*")
+                 ""))
               (substitute* "tests/check/meson.build"
                 ;; Reported as shaky upstream, see
                 ;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/785>
@@ -746,37 +766,28 @@ model to base your own plug-in on, here it is.")
 (define-public gst-plugins-bad
   (package
     (name "gst-plugins-bad")
-    (version "1.20.3")
+    (version "1.22.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gstreamer.freedesktop.org/src/"
                                   name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0kys6m5hg5bc30wfg8qa3s7dmkdz3kj1j8lhvn3267fxalxw24bs"))
+                "03rd09wsrf9xjianpnnvamb4n3lndhd4x31srqsqab20wcfaz3rx"))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   ;; Delete bundled copy of usrsctp.
                   (delete-file-recursively "ext/sctp/usrsctp")))))
     (build-system meson-build-system)
     (arguments
      (list
+      #:meson meson-0.63
       #:configure-flags #~(list "-Dsctp-internal-usrsctp=disabled")
       #:glib-or-gtk? #t              ; To wrap binaries and/or compile schemas
       #:phases
       #~(modify-phases %standard-phases
           #$@%common-gstreamer-phases
-          #$@(if (string-prefix? "arm" (or (%current-target-system)
-                                           (%current-system)))
-                 ;; Disable test that fails on ARMv7.
-                 ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1188
-                 `((add-after 'unpack 'disable-asfmux-test
-                     (lambda _
-                       (substitute* "tests/check/meson.build"
-                         (("\\[\\['elements/asfmux\\.c'\\]\\],")
-                          "")))))
-                 '())
           (add-after 'unpack 'adjust-tests
             (lambda* (#:key native-inputs inputs #:allow-other-keys)
               (let ((gst-plugins-good (assoc-ref (or native-inputs inputs)
@@ -788,29 +799,19 @@ model to base your own plug-in on, here it is.")
                    (string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '"
                                   gst-plugins-good "/lib/gstreamer-1.0'"))
 
-                  ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1136
-                  ((".*elements/msdkh264enc\\.c.*") "")
-                  ((".*elements/svthevcenc\\.c.*") "")
-
                   ;; The 'elements_shm.test_shm_live' test sometimes times out
                   ;; (see:
                   ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/790).
                   ((".*'elements/shm\\.c'.*") "")
 
-                  ;; FIXME: Why is this failing.
-                  ((".*elements/dash_mpd\\.c.*") "")
-
                   ;; This test is flaky on at least some architectures.
                   ;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1244
                   #$@(if (member (%current-system)
                                  '("i686-linux" "aarch64-linux" "riscv64-linux"))
                          `((("'elements/camerabin\\.c'\\]\\],")
                             "'elements/camerabin.c'], true, ],"))
                          '())
 
-                  ;; These tests are flaky and occasionally time out:
-                  ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932
-                  ((".*elements/curlhttpsrc\\.c.*") "")
                   ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412
                   ((".*elements/dtls\\.c.*") ""))
                 (substitute* "tests/check/elements/zxing.c"
@@ -949,18 +950,19 @@ par compared to the rest.")
 (define-public gst-plugins-ugly
   (package
     (name "gst-plugins-ugly")
-    (version "1.20.3")
+    (version "1.22.2")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "https://gstreamer.freedesktop.org/src/"
                        name "/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "1zdfsq0zm1d3wj3w3z44bf3v28clr8yd6qzmkjs09hq9k9w21alc"))))
+        (base32 "1486x08bwasq6l7kc75nph5az61siq9mbgkgpw4kf1mxn16z8c4g"))))
     (build-system meson-build-system)
     (arguments
-     (list #:glib-or-gtk? #t         ; To wrap binaries and/or compile schemas
+     (list #:meson meson-0.63
+           #:glib-or-gtk? #t         ; To wrap binaries and/or compile schemas
            #:phases
            #~(modify-phases %standard-phases
                #$@%common-gstreamer-phases
@@ -1006,17 +1008,18 @@ think twice about shipping them.")
 (define-public gst-libav
   (package
     (name "gst-libav")
-    (version "1.20.3")
+    (version "1.22.2")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append
          "https://gstreamer.freedesktop.org/src/" name "/"
          name "-" version ".tar.xz"))
        (sha256
-        (base32 "1zkxybdzdkn07wwmj0rrgxyvbry472dggjv2chdsmpzwc02x3v9z"))))
+        (base32 "1zfg7giwampmjxkqr5pqy66vck42b0akmwby661brwz8iy3zkapw"))))
     (build-system meson-build-system)
+    (arguments (list #:meson meson-0.63))
     (native-inputs
      (list perl pkg-config python-wrapper ruby))
     (inputs
@@ -1032,18 +1035,19 @@ decoders, muxers, and demuxers provided by FFmpeg.")
 (define-public gst-editing-services
   (package
     (name "gst-editing-services")
-    (version "1.20.3")
+    (version "1.22.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://gstreamer.freedesktop.org/src/" name "/"
                     "gst-editing-services-" version ".tar.xz"))
               (sha256
                (base32
-                "18msiadg6wi1636ylp02yfiwphxlz39gh3vbxchl9qpvd7g9dn2z"))))
+                "1gyfw11ns2la1cm6gvvvv5qj3q5gcvcypc3wk8kdwmrqzij18fs5"))))
     (build-system meson-build-system)
     (arguments
      (list
+      #:meson meson-0.63
       #:tests? #f                    ; FIXME: 16/23 failing tests.
       #:glib-or-gtk? #t              ; To wrap binaries and/or compile schemas
       #:phases #~(modify-phases %standard-phases
@@ -1100,18 +1104,19 @@ binary, but none of the actual plugins.")))
 (define-public python-gst
   (package
     (name "python-gst")
-    (version "1.20.3")
+    (version "1.22.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://gstreamer.freedesktop.org/src/gst-python/"
                     "gst-python-" version ".tar.xz"))
               (sha256
                (base32
-                "1p6g05k88nbbv5x9madsvphxcdkfl1z0lmp39p6bhmg9x8h82d6v"))))
+                "1bak46bj92gyz613m99mnl0yw0qhbhq5dfxifnvldgp45kcb7wmy"))))
     (build-system meson-build-system)
     (arguments
      (list
+      #:meson meson-0.63
       #:modules `((guix build meson-build-system)
                   (guix build utils)
                   ((guix build python-build-system) #:prefix python:))
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 2bcad54..a1d9e3f 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2021 Felix Gruber <[email-masked]>
 ;;; Copyright © 2021 Songlin Jiang <[email-masked]>
 ;;; Copyright © 2021 Taiju HIGASHI <[email-masked]>
-;;; Copyright © 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2023 Luis Felipe López Acevedo <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -91,7 +91,7 @@
     (outputs '("out" "doc"))
     (arguments
      (list
-      #:configure-flags #~(list "--enable-python-library"
+      #:configure-flags #~(list "--disable-gtk2"
                                 "--enable-gtk-doc"
                                 "--enable-memconf"
                                 (string-append
@@ -186,29 +186,23 @@
                (string-append #$output:doc "/share/gtk-doc"))))
           (add-after 'wrap-program 'wrap-with-additional-paths
             (lambda* (#:key outputs #:allow-other-keys)
-              ;; Make sure 'ibus-setup' runs with the correct PYTHONPATH and
-              ;; GI_TYPELIB_PATH.
+              ;; Make sure 'ibus-setup' runs with the correct GI_TYPELIB_PATH.
               (wrap-program (search-input-file outputs "bin/ibus-setup")
-                `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
                 `("GI_TYPELIB_PATH" ":" prefix
                   (,(getenv "GI_TYPELIB_PATH")
                    ,(string-append #$output "/lib/girepository-1.0")))))))))
     (inputs
      (list bash-minimal
            dbus
            dconf
            glib
-           gtk+-2
            gtk+
            iso-codes
            json-glib
            libnotify
            libx11
            libxkbcommon
            libxtst
-           python-pygobject
-           python
-           python-dbus
            setxkbmap
            ucd
            unicode-cldr-common
@@ -244,9 +238,23 @@ may also simplify input method development.")
 
 (define-public ibus
   (package/inherit ibus-minimal
-    (arguments (substitute-keyword-arguments (package-arguments ibus-minimal)
-                 ((#:configure-flags flags)
-                  #~(cons* "--enable-gtk4" #$flags))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments ibus-minimal)
+       ((#:configure-flags flags)
+        #~(cons* "--enable-gtk4"
+                 "--enable-python-library"
+                 #$flags))
+       ((#:phases phases '%standard-phases)
+        #~(modify-phases #$phases
+            (replace 'wrap-with-additional-paths
+              (lambda* (#:key outputs #:allow-other-keys)
+                ;; Make sure 'ibus-setup' runs with the correct
+                ;; GUIX_PYTHONPATH and GI_TYPELIB_PATH.
+                (wrap-program (search-input-file outputs "bin/ibus-setup")
+                  `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
+                  `("GI_TYPELIB_PATH" ":" prefix
+                    (,(getenv "GI_TYPELIB_PATH")
+                     ,(string-append #$output "/lib/girepository-1.0"))))))))))
     (inputs (modify-inputs (package-inputs ibus-minimal)
               (prepend gtk)))
     (properties (alist-delete 'hidden? (package-properties ibus-minimal)))))
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index a236ff7..ceb33df 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1303,7 +1303,7 @@ language bindings to VIGRA.")
 (define-public libwebp
   (package
     (name "libwebp")
-    (version "1.2.2")
+    (version "1.2.4")
     (source
      (origin
        ;; No tarballs are provided for >0.6.1.
@@ -1314,7 +1314,7 @@ language bindings to VIGRA.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1khqkm5j9aiii9jfsbxzzyz3x33sifzcx537cyjyb3a2g2rl969k"))))
+         "1jndbc99dd19a6d7h4ds51xyak7gfddkbi41nxdm8n23w7ks35r8"))))
     (build-system gnu-build-system)
     (inputs
      (list freeglut
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index acf57c2..db120f2 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -68,7 +68,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20230206.0")
+(define %jami-version "20230323.0")
 
 (define %jami-sources
   ;; Return an origin object of the tarball release sources archive of the
@@ -85,7 +85,7 @@
      '(delete-file-recursively "daemon/contrib/tarballs"))
     (sha256
      (base32
-      "1fx7c6q8j0x3q8cgzzd4kpsw3npqggsi1n493cv1jg7v5d01d3jz"))
+      "0vjsjr37cb87j9hqbmipyxn4877k1wn3l0vzca3l3ldgknglz7v2"))
     (patches (search-patches "jami-disable-integration-tests.patch"
                              "jami-libjami-headers-search.patch"))))
 
@@ -107,8 +107,8 @@
                   patches))))
 
 (define-public pjproject-jami
-  (let ((commit "20e00fcdd16459444bae2bae9c0611b63cf87297")
-        (revision "2"))
+  (let ((commit "e4b83585a0bdf1523e808a4fc1946ec82ac733d0")
+        (revision "3"))
     (package
       (inherit pjproject)
       (name "pjproject-jami")
@@ -127,7 +127,7 @@
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1g8nkb5ln5y208k2hhmlcddv2dzf6plfrsvi4x8sa7iwgb4prgb8"))))
+                  "0gky5idyyqxhqk959lzys5l7x1i925db773lfdpvxxmkmfizdq21"))))
       (arguments
        (substitute-keyword-arguments (package-arguments pjproject)
          ((#:phases phases '%standard-phases)
@@ -179,6 +179,7 @@
     "--enable-muxer=h264"
     "--enable-muxer=hevc"
     "--enable-muxer=matroska"
+    "--enable-muxer=wav"
     "--enable-muxer=webm"
     "--enable-muxer=ogg"
     "--enable-muxer=pcm_s16be"
@@ -257,40 +258,30 @@
     "--enable-encoder=libopus"
     "--enable-decoder=libopus"
 
-    ;; Decoders for ringtones and audio streaming.
+    ;; Encoders/decoders for ringtones and audio streaming.
     "--enable-decoder=flac"
     "--enable-decoder=vorbis"
     "--enable-decoder=aac"
     "--enable-decoder=ac3"
     "--enable-decoder=eac3"
     "--enable-decoder=mp3"
-    "--enable-decoder=pcm_u24be"
     "--enable-decoder=pcm_u24le"
-    "--enable-decoder=pcm_u32be"
     "--enable-decoder=pcm_u32le"
     "--enable-decoder=pcm_u8"
     "--enable-decoder=pcm_f16le"
-    "--enable-decoder=pcm_f24le"
-    "--enable-decoder=pcm_f32be"
     "--enable-decoder=pcm_f32le"
-    "--enable-decoder=pcm_f64be"
     "--enable-decoder=pcm_f64le"
-    "--enable-decoder=pcm_s16be"
-    "--enable-decoder=pcm_s16be_planar"
     "--enable-decoder=pcm_s16le"
-    "--enable-decoder=pcm_s16le_planar"
-    "--enable-decoder=pcm_s24be"
     "--enable-decoder=pcm_s24le"
-    "--enable-decoder=pcm_s24le_planar"
-    "--enable-decoder=pcm_s32be"
     "--enable-decoder=pcm_s32le"
-    "--enable-decoder=pcm_s32le_planar"
-    "--enable-decoder=pcm_s64be"
     "--enable-decoder=pcm_s64le"
-    "--enable-decoder=pcm_s8"
-    "--enable-decoder=pcm_s8_planar"
-    "--enable-decoder=pcm_u16be"
     "--enable-decoder=pcm_u16le"
+    "--enable-encoder=pcm_u8"
+    "--enable-encoder=pcm_f32le"
+    "--enable-encoder=pcm_f64le"
+    "--enable-encoder=pcm_s16le"
+    "--enable-encoder=pcm_s32le"
+    "--enable-encoder=pcm_s64le"
 
     ;; Encoders/decoders for images.
     "--enable-encoder=gif"
@@ -349,21 +340,10 @@
 
 (define-public ffmpeg-jami
   (package
-    (inherit ffmpeg-5)
+    (inherit ffmpeg)
     (name "ffmpeg-jami")
-    ;; XXX: Use a slightly older version, otherwise the
-    ;; 'libopusdec-enable-FEC' patch doesn't apply.
-    (version "5.0.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg"))))
-    (outputs '("out" "debug"))
     (arguments
-     (substitute-keyword-arguments (package-arguments ffmpeg-5)
+     (substitute-keyword-arguments (package-arguments ffmpeg)
        ((#:configure-flags _ '())
         #~(cons* "--disable-static"
                  "--enable-shared"
@@ -382,19 +362,7 @@
                              "rtp_ext_abs_send_time"
                              "libopusdec-enable-FEC"
                              "libopusenc-reload-packet-loss-at-encode"
-                             "screen-sharing-x11-fix"))))
-            (add-after 'apply-patches 'disable-problematic-tests
-              (lambda _
-                ;; The "rtp_ext_abs_send_time" patch causes the 'lavf-mov_rtphint'
-                ;; test to fail (see:
-                ;; https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/685).
-                (substitute* "tests/fate/lavf-container.mak"
-                  (("mov mov_rtphint ismv")
-                   "mov ismv")
-                  (("fate-lavf-mov_rtphint:.*") ""))))))))
-    (inputs (modify-inputs (package-inputs ffmpeg-5)
-              (replace "libvpx" libvpx-next)
-              (replace "libx264" libx264-next)))))
+                             "screen-sharing-x11-fix"))))))))))
 
 (define-public libjami
   (package
@@ -570,8 +538,8 @@ P2P-DHT.")
 
 (define-public jami-docs
   ;; There aren't any tags, so use the latest commit.
-  (let ((revision "0")
-        (commit "b00574bcc46538c4b405b5edb3b43bf5404ff511"))
+  (let ((revision "1")
+        (commit "ff466ebadb9b99a1672a814126793de670c3099b"))
     (package
       (name "jami-docs")
       (version (git-version "0.0.0" revision commit))
@@ -583,7 +551,7 @@ P2P-DHT.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0iayi6yrb6djk0l2dwdxzlsga9c18ra8adplh8dad3zjdi75wnsq"))))
+                  "1n8a9dk8mi617rk3ycz5jrzbwv9ybfynlci5faz1klckx0aqdf6q"))))
       (build-system copy-build-system)
       (arguments
        (list
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 10b8ac0..3dbce00 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -97,16 +97,16 @@
 (define-public extra-cmake-modules
   (package
     (name "extra-cmake-modules")
-    (version "5.98.0")
+    (version "5.104.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://kde/stable/frameworks/"
                     (version-major+minor version) "/"
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0669m98vqy4hpacfjs7xpgjj1bns24kjybrjipxzp82092g8y69w"))))
+                "1nc5ynfz903jc87xawnww3pf1y73x9jvmxnbrj24nqv6vcgv57p4"))))
     (build-system cmake-build-system)
     (native-inputs
      ;; Add test dependency, except on armhf where building it is too
@@ -523,21 +523,19 @@ and the older vCalendar.")
 (define-public kcodecs
   (package
     (name "kcodecs")
-    (version "5.98.0")
+    (version "5.104.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://kde/stable/frameworks/"
                     (version-major+minor version) "/"
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0n10r7s9r25xp7vlym41qi421kld00niig73yark7yghj0r41jcz"))))
+                "0swxj2kr37pnwdxsipfii8q02g58lvm9lsh4kflqgfjyhvv0kjby"))))
     (build-system cmake-build-system)
-    (native-inputs
-     (list extra-cmake-modules gperf qttools-5))
-    (inputs
-     (list qtbase-5))
+    (native-inputs (list extra-cmake-modules gperf qttools-5))
+    (inputs (list qtbase-5))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "String encoding and manipulating library")
     (description "KCodecs provide a collection of methods to manipulate
diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm
index 99bcb04..1ac15c3 100644
--- a/gnu/packages/less.scm
+++ b/gnu/packages/less.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email-masked]>
 ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <[email-masked]>
 ;;; Copyright © 2022 Hartmut Goebel <[email-masked]>
+;;; Copyright © 2022 Efraim Flashner <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,17 +37,17 @@
 (define-public less
   (package
     (name "less")
-    (version "590")
+    (version "608")
     (source
      (origin
        (method url-fetch)
        (uri (list (string-append "mirror://gnu/less/less-"
                                  version ".tar.gz")
                   (string-append "http://www.greenwoodsoftware.com/less/less-"
                                  version ".tar.gz")))
        (patches (search-patches "less-hurd-path-max.patch"))
        (sha256
-        (base32 "044fl3izmsi8n1vqzsqdp65q0qyyn5kmsg4sk7id0mxzx15zbbba"))))
+        (base32 "02f2d9d6hyf03va28ip620gjc6rf4aikmdyk47h7frqj18pbx6m6"))))
     (build-system gnu-build-system)
     (inputs (list ncurses))
     (home-page "https://www.gnu.org/software/less/")
diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm
index 86e77b0..c0ec47a 100644
--- a/gnu/packages/libcanberra.scm
+++ b/gnu/packages/libcanberra.scm
@@ -104,12 +104,6 @@ GNOME.  It comes with several backends (ALSA, PulseAudio, OSS, GStreamer,
 null) and is designed to be portable.")
     (license lgpl2.1+)))
 
-(define-public libcanberra/gtk+-2
-  (package/inherit libcanberra
-    (name "libcanberra-gtk2")
-    (inputs `(,@(alist-delete "gtk+" (package-inputs libcanberra))
-              ("gtk+" ,gtk+-2)))))
-
 (define-public sound-theme-freedesktop
   (package
     (name "sound-theme-freedesktop")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9df451e..36b3544 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -484,50 +484,50 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The current "stable" kernels. That is, the most recently released major
 ;; versions that are still supported upstream.
 
-(define-public linux-libre-6.2-version "6.2.10")
+(define-public linux-libre-6.2-version "6.2.11")
 (define-public linux-libre-6.2-gnu-revision "gnu")
 (define deblob-scripts-6.2
   (linux-libre-deblob-scripts
    linux-libre-6.2-version
    linux-libre-6.2-gnu-revision
    (base32 "15wrksnimwb099qgqc631rp8dgv5b61l6s5kknk23frqdwkp4shp")
    (base32 "0ir5vvbdh6dly5ld8mfp7285g8k88w5bb32hj4wmgyqsbfqc6rf2")))
 (define-public linux-libre-6.2-pristine-source
   (let ((version linux-libre-6.2-version)
-        (hash (base32 "1zm4xvxdy6sqqwcich46mr4dh3kpmp40bawwahrg4lr7rp1n5iap")))
+        (hash (base32 "0iyx03z58pv1d5nrryjx94k3nxwyvm4b3bim6nawg1qbws26f8qd")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.2)))
 
-(define-public linux-libre-6.1-version "6.1.23")
+(define-public linux-libre-6.1-version "6.1.24")
 (define-public linux-libre-6.1-gnu-revision "gnu")
 (define deblob-scripts-6.1
   (linux-libre-deblob-scripts
    linux-libre-6.1-version
    linux-libre-6.1-gnu-revision
    (base32 "10igxhqvlh5ar98i68xf5w9ywfb9l05vg20s8yxmgc62pj72h0yi")
    (base32 "0cchdhjra74zanyk14brv2l2dvxpg8dn58rn477lgfb44mcnhq33")))
 (define-public linux-libre-6.1-pristine-source
   (let ((version linux-libre-6.1-version)
-        (hash (base32 "1szblfmm8gx0am017y30ywc60b1gqarplgmcs5zy7bshhwp3fn3l")))
+        (hash (base32 "0135aj8asplpxqr48hwdmwynx8n8hzhdgh55yl8r0n1kivisgrma")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.1)))
 
 ;; 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.15-version "5.15.106")
+(define-public linux-libre-5.15-version "5.15.107")
 (define-public linux-libre-5.15-gnu-revision "gnu")
 (define deblob-scripts-5.15
   (linux-libre-deblob-scripts
    linux-libre-5.15-version
    linux-libre-5.15-gnu-revision
    (base32 "0vj60bra81fmbx3lz924czbhxs4dmvd4d584g9mcs80b7c4q52kg")
    (base32 "03hwhwbcicwyx5i30d6m715kwgrxz4h21xhk55wnawlk8zhx3r35")))
 (define-public linux-libre-5.15-pristine-source
   (let ((version linux-libre-5.15-version)
-        (hash (base32 "1r4g7ipcmj7k9dpwd5p2kd0f3iidnzl6z9g2cq4mfcw0h97r7rl4")))
+        (hash (base32 "1a5gqpxmzls5mp4a0cw10ldrps4pvbn19nzfri91ys25j1v0wdqr")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.15)))
@@ -5727,15 +5727,15 @@ Bluetooth audio output devices like headphones or loudspeakers.")
 (define-public bluez
   (package
     (name "bluez")
-    (version "5.64")
+    (version "5.66")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://kernel.org/linux/bluetooth/bluez-"
                     version ".tar.xz"))
               (sha256
                (base32
-                "0d6yl7l5zrlx5w3y503k72m9xsydx6gi1c65icchq1xknrjpwhxf"))))
+                "0x5mn9x6g626izxnw236933wvq83qagsh9qc9ac9550cb55sdzir"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -7146,15 +7146,15 @@ of flash storage.")
 (define-public libseccomp
   (package
     (name "libseccomp")
-    (version "2.5.3")
+    (version "2.5.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/seccomp/libseccomp/"
                                   "releases/download/v" version
                                   "/libseccomp-" version ".tar.gz"))
               (sha256
                (base32
-                "0xhan73zn4p0n7s8vx6s47wjmidvk4x8r90vfbljairn6f3mq1jr"))))
+                "1nyb3lspc5bsirpsx89vah3n54pmwlgxrwsfaxl01kq50i004afq"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 13e9e5b..5f64809 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -11691,20 +11691,20 @@ be used with @code{cl-yacc}.")
   (sbcl-package->ecl-package sbcl-cl-lex))
 
 (define-public sbcl-cl-colors2
-  (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
-        (revision "1"))
+  (let ((commit "d620e7fb504bbec3ed48cc7cd03f60ce2bb3735d")
+        (revision "2"))
     (package
       (name "sbcl-cl-colors2")
-      (version (git-version "0.2.1" revision commit))
+      (version (git-version "0.5.0" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://notabug.org/cage/cl-colors2.git")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
+          (base32 "14wx006lv4bhf86z68484kphm5jsh86ns60pb4i1bi8kl8lp03r0"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        (list sbcl-clunit2))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index a8ee627..4f1243e 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -435,7 +435,13 @@ an interpreter, a compiler, a debugger, and much more.")
        (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
                            version "-source.tar.bz2"))
        (sha256
-        (base32 "1ahyrc3p9cf7y5zbgzvb9yxa8a480ccis4ksijlajck3z8n1dk24"))))
+        (base32 "1ahyrc3p9cf7y5zbgzvb9yxa8a480ccis4ksijlajck3z8n1dk24"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Don't force ARMv5.
+           (substitute* "src/runtime/Config.arm-linux"
+             (("-march=armv5") ""))))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (native-inputs
@@ -481,13 +487,6 @@ an interpreter, a compiler, a debugger, and much more.")
                   (srfi srfi-1))
        #:phases
        (modify-phases %standard-phases
-         ,@(if (target-arm32?)
-             ;; TODO: Move to snippet in staging.
-             `((add-after 'unpack 'dont-force-armv5
-                 (lambda _
-                   (substitute* "src/runtime/Config.arm-linux"
-                     (("-march=armv5") "")))))
-             '())
          (delete 'configure)
          (add-after 'unpack 'fix-build-id
            ;; One of the build scripts makes a build id using the current date.
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index febcb5a..00efff0 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -107,15 +107,15 @@ textfiles to roff for terminal display, and also to HTML for the web.")
 (define-public libpipeline
   (package
     (name "libpipeline")
-    (version "1.5.3")
+    (version "1.5.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://savannah/libpipeline/libpipeline-"
                     version ".tar.gz"))
               (sha256
                (base32
-                "1c5dl017xil2ssb6a5vg927bnsbc9vymfgi9ahvqbb8gypx0igsx"))))
+                "15xpx7kbzkn63ab8mkghv7jkzji8pdbsyxm7ygjji19rvkkvkyv0"))))
     (build-system gnu-build-system)
     (home-page "https://libpipeline.nongnu.org/")
     (synopsis "C library for manipulating pipelines of subprocesses")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index c10fc80..ff3f1cf 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1387,7 +1387,7 @@ incompatible with HDF5.")
 (define-public hdf5-1.8
   (package
     (name "hdf5")
-    (version "1.8.22")
+    (version "1.8.23")
     (source
      (origin
       (method url-fetch)
@@ -1402,7 +1402,7 @@ incompatible with HDF5.")
                                    (string-append major minor)))
                                 "/src/hdf5-" version ".tar.bz2")))
       (sha256
-       (base32 "194ki2s5jrgl4czkvy5nc9nwjyapah0fj72l0gb0aysplp38i6v8"))
+       (base32 "0km65mr6dgk4ia2dqr1b9dzw9qg15j5z35ymbys9cnny51z1zb39"))
       (patches (search-patches "hdf5-config-date.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -1442,8 +1442,7 @@ incompatible with HDF5.")
              (substitute* "hl/fortran/src/Makefile.in"
                (("libhdf5hl_fortran_la_LDFLAGS =")
                 (string-append "libhdf5hl_fortran_la_LDFLAGS = -Wl,-rpath="
-                               (assoc-ref outputs "fortran") "/lib")))
-             #t))
+                               (assoc-ref outputs "fortran") "/lib")))))
          (add-after 'configure 'patch-settings
            (lambda _
              ;; libhdf5.settings contains the full path of the
@@ -1456,16 +1455,14 @@ incompatible with HDF5.")
               ;; Don't record the build-time kernel version to make the
               ;; settings file reproducible.
               (("Uname information:.*")
-               "Uname information: Linux\n"))
-             #t))
+               "Uname information: Linux\n"))))
          (add-after 'install 'patch-references
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
                    (zlib (assoc-ref inputs "zlib")))
                (substitute* (find-files bin "h5p?cc")
                  (("-lz" lib)
-                  (string-append "-L" zlib "/lib " lib)))
-               #t)))
+                  (string-append "-L" zlib "/lib " lib))))))
          (add-after 'install 'split
             (lambda* (#:key inputs outputs #:allow-other-keys)
               ;; Move all fortran-related files
@@ -1500,8 +1497,7 @@ incompatible with HDF5.")
                             (rename-file file
                                          (string-append fex "/" (basename file))))
                           (find-files ex ".*"))
-                (delete-file-recursively ex))
-              #t)))))
+                (delete-file-recursively ex)))))))
     (home-page "https://www.hdfgroup.org")
     (synopsis "Management suite for extremely large and complex data")
     (description "HDF5 is a suite that makes possible the management of
@@ -1512,7 +1508,7 @@ extremely large and complex data collections.")
 (define-public hdf5-1.10
   (package
     (inherit hdf5-1.8)
-    (version "1.10.7")
+    (version "1.10.9")
     (source
      (origin
        (method url-fetch)
@@ -1526,13 +1522,33 @@ extremely large and complex data collections.")
                                         (take (string-split version #\.) 2))
                                  "/src/hdf5-" version ".tar.bz2")))
        (sha256
-        (base32 "0pm5xxry55i0h7wmvc7svzdaa90rnk7h78rrjmnlkz2ygsn8y082"))
+        (base32 "14gih7kmjx4h3lc7pg4fwcl28hf1qqkf2x7rljpxqvzkjrqbxi00"))
        (patches (search-patches "hdf5-config-date.patch"))))))
 
 (define-public hdf5-1.12
   (package
     (inherit hdf5-1.8)
-    (version "1.12.1")
+    (version "1.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/"
+                                 "hdf5-" (version-major+minor version)
+                                 "/hdf5-" version "/src/hdf5-"
+                                 version ".tar.bz2")
+                  (string-append "https://support.hdfgroup.org/ftp/HDF5/"
+                                 "current"
+                                 (apply string-append
+                                        (take (string-split version #\.) 2))
+                                 "/src/hdf5-" version ".tar.bz2")))
+       (sha256
+        (base32 "1zlawdzb0gsvcxif14fwr5ap2gk4b6j02wirr2hcx8hkcbivp20s"))
+       (patches (search-patches "hdf5-config-date.patch"))))))
+
+(define-public hdf5-1.14
+  (package
+    (inherit hdf5-1.8)
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
@@ -1546,7 +1562,7 @@ extremely large and complex data collections.")
                                         (take (string-split version #\.) 2))
                                  "/src/hdf5-" version ".tar.bz2")))
        (sha256
-        (base32 "074g3z504xf77ff38igs30i1aqxpm508p7yw78ykva7dncrgbyda"))
+        (base32 "181bdh8hp7v9xqwcby3lknr92lxlicc2hqscba3f5nhf8lrr9rz4"))
        (patches (search-patches "hdf5-config-date.patch"))))))
 
 (define-public hdf5
diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
index 4c14d94..bf0df31 100644
--- a/gnu/packages/minetest.scm
+++ b/gnu/packages/minetest.scm
@@ -52,16 +52,16 @@
 (define-public minetest
   (package
     (name "minetest")
-    (version "5.6.1")
+    (version "5.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/minetest/minetest")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1bgk369n7r52vh3hdngrlf98k3v84ch2qp341xhs53ixrns2crfn"))
+                "008l44zwwsarwk4hn7wx2nj2m21b1iqsphl7g69rrlxj760zl0pl"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -106,7 +106,8 @@
                   "(void)0;"))
                (setenv "MINETEST_SUBGAME_PATH" ; for check
                        (string-append (getcwd) "/games"))))
-           (replace 'check
+           (delete 'check)
+           (add-after 'install 'check
              (lambda* (#:key tests? #:allow-other-keys)
                ;; Thanks to our substitutions, the tests should also run
                ;; when invoked on the target outside of `guix build'.
@@ -165,7 +166,7 @@ in different ways.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1w0vdk6a1rhsfwyfviayfwsyqbzwikqazkgbrfl39anf3a50rvv1"))))
+                "02kbj1h6jsq6k8x4v2ir0njczdz7nyx6dbym85ixxp3mrqxiws61"))))
     (build-system copy-build-system)
     (arguments
      (list #:install-plan
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index bcf587f..915c28f 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -52,6 +52,7 @@
 ;;; Copyright © 2022 jgart <[email-masked]>
 ;;; Copyright © 2023 Jonathan Brielmaier <[email-masked]>
 ;;; Copyright © 2023 Antero Mejr <[email-masked]>
+;;; Copyright © 2023 Sharlatan Hellseher <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -69,44 +70,43 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages music)
-  #:use-module (guix gexp)
-  #:use-module (guix utils)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix build-system gnu)
   #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
+  #:use-module (guix build-system pyproject)
   #: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)
-  #:use-module (guix build-system waf)
   #:use-module (guix build-system trivial)
-  #:use-module (guix build-system go)
-  #:use-module (guix build-system qt)
+  #:use-module (guix build-system waf)
+  #:use-module (guix download)
+  #:use-module (guix gexp)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages apr)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages assembly)
   #: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)
   #:use-module (gnu packages cdrom)
-  #:use-module (gnu packages code)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
@@ -125,13 +125,14 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnunet)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages gpodder)
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages graphviz)
@@ -144,12 +145,13 @@
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages java)
   #:use-module (gnu packages kde-frameworks)
-  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux) ; for alsa-utils
   #:use-module (gnu packages lirc)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages mpd)
@@ -182,8 +184,8 @@
   #:use-module (gnu packages stb)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages terminals)
-  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tex)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
@@ -194,11 +196,9 @@
   #:use-module (gnu packages wm)
   #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages xiph)
-  #:use-module (gnu packages golang)
-  #:use-module (gnu packages lua)
   #:use-module ((srfi srfi-1) #:select (last)))
 
 (define-public audacious
@@ -1556,60 +1556,61 @@ listeners answer questions about music quickly and simply.")
 (define-public abjad
   (package
     (name "abjad")
+    ;; XXX: The latest version which supports current Guix's Python 3.9.9.
     (version "3.4")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-         (url "https://github.com/Abjad/abjad")
-         (commit (string-append "v" version))))
+             (url "https://github.com/Abjad/abjad")
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0s63vk9fifp0im9c31kb9ck39mbaxhrls993d8fvg0nkg41z1jnz"))))
-    (build-system python-build-system)
+        (base32 "0s63vk9fifp0im9c31kb9ck39mbaxhrls993d8fvg0nkg41z1jnz"))))
+    (build-system pyproject-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'loosen-requirements
-           (lambda _
-             (substitute* "setup.py"
-               ;; Permit newer versions of uqbar.  Remove for >3.4.
-               ((", <0\\.5\\.0")
-                ""))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               ;; See: https://stackoverflow.com/a/34140498
-               (invoke "python" "-m" "pytest" "tests")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; XXX. Permit newer version of uqbar, remove for >3.4. Remove in
+          ;; the next update.
+          (add-after 'unpack 'loosen-requirements
+            (lambda _
+              (substitute* "setup.py"
+                ((", <0\\.5\\.0") ""))))
+          ;; FIXME: Check why it's failing with this: Note: compilation failed
+          ;; and \version outdated, did you update input syntax with
+          ;; convert-ly?
+          (add-before 'check 'disable-failing-tests
+            (lambda _
+              (substitute* "tests/test_ext_sphinx.py"
+                (("def test_ext_sphinx_01") "def __off_test_ext_sphinx_01")))))))
     (inputs
      (list lilypond))
-    (propagated-inputs
-     (list python-ply
-           python-quicktions
-           python-roman
-           python-six
-           python-uqbar
-           ;; XXX: These test dependencies(?) are listed as install_requires
-           ;; in setup.py.  Propagate accordingly.
-           python-black
-           python-flake8
+    (native-inputs
+     (list python-flake8
            python-isort
            python-mypy
            python-pytest
            python-pytest-cov
            python-pytest-helpers-namespace
+           python-six
            python-sphinx-autodoc-typehints))
+    (propagated-inputs
+     (list python-quicktions
+           python-ply
+           python-roman
+           python-uqbar))
     (home-page "https://abjad.github.io")
     (synopsis "Python API for building LilyPond files")
     (description
      "Abjad helps composers build up complex pieces of music notation in iterative
 and incremental ways.  Use Abjad to create a symbolic representation of all the notes,
 rests, chords, tuplets, beams and slurs in any score.  Because Abjad extends the Python
 programming language, you can use Abjad to make systematic changes to music as you work.
 Because Abjad wraps the LilyPond music notation package, you can use Abjad to control the
 typographic detail of symbols on the page.")
-     (license license:expat)))
+    (license license:expat)))
 
 (define-public abjad-ext-rmakers
   (package
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 60247f3..056fdba 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -40,15 +40,15 @@
 (define-public nspr
   (package
     (name "nspr")
-    (version "4.34")
+    (version "4.35")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v"
                     version "/src/nspr-" version ".tar.gz"))
               (sha256
                (base32
-                "177rxcf3lglabs7sgwcvf72ww4v56qa71lc495wl13sxs4f03vxy"))))
+                "13xwda56yhp1w7v02qvlxvlqiniw8kr4g3fxlljmv6wnlmz2k8vy"))))
     (build-system gnu-build-system)
     (inputs
      (list perl                         ;for 'compile-et.pl'
@@ -126,7 +126,7 @@ in the Mozilla clients.")
     (replacement nss/fixed)
     ;; Also update and test the nss-certs package, which duplicates version and
     ;; source to avoid a top-level variable reference & module cycle.
-    (version "3.81")
+    (version "3.85")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
@@ -137,7 +137,7 @@ in the Mozilla clients.")
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "19ncvhz45dhr0nmymwkxspq9l44gaafkspxiwxbqs1hpnqxmzgx8"))
+                "15yj2gddlp68wj1k9q4q70vs6r7zx5qkbavcppmls5di212xdndg"))
               ;; Create nss.pc and nss-config.
               (patches (search-patches "nss-3.56-pkgconfig.patch"
                                        "nss-getcwd-nonnull.patch"
@@ -200,7 +200,7 @@ in the Mozilla clients.")
                     ;; leading to test failures:
                     ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>.  To
                     ;; work around that, set the time to roughly the release date.
-                    (invoke "faketime" "2022-06-01" "./nss/tests/all.sh"))
+                    (invoke "faketime" "2022-11-01" "./nss/tests/all.sh"))
                   (format #t "test suite not run~%"))))
           (replace 'install
             (lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 29cb481..f9032d6 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1377,8 +1377,8 @@ environments.")
                   "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
 
 (define-public guix-build-coordinator
-  (let ((commit "3c9354e1c0b0767e0121ecbd03abfe37c895e34b")
-        (revision "76"))
+  (let ((commit "7f6db4b55411f79ab5f2639318dc5871c1452f00")
+        (revision "77"))
     (package
       (name "guix-build-coordinator")
       (version (git-version "0" revision commit))
@@ -1389,7 +1389,7 @@ environments.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "19gc4ya56inxnjpf1br2sdva0k4jyc1jn5q84qdfpiwn1ryb0jjd"))
+                  "07pi5yjgagv0xyz9f5cnfz1c06gzx1mpi17h3a1w5h6lp3kwqrv9"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
diff --git a/gnu/packages/patches/glslang-install-static-libs.patch b/gnu/packages/patches/glslang-install-static-libs.patch
new file mode 100644
index 0000000..a155dde
--- /dev/null
+++ b/gnu/packages/patches/glslang-install-static-libs.patch
@@ -0,0 +1,61 @@
+Install OGLCompiler et.al. even when building shared libraries.  Also fix
+CMake file locations.
+
+Patch taken from Gentoo:
+
+  https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-util/glslang/files/glslang-1.3.231-Install-static-libs.patch
+
+diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt
+--- a/OGLCompilersDLL/CMakeLists.txt
++++ b/OGLCompilersDLL/CMakeLists.txt
+@@ -41,7 +41,7 @@ if(WIN32)
+     source_group("Source" FILES ${SOURCES})
+ endif(WIN32)
+ 
+-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
++if(ENABLE_GLSLANG_INSTALL)
+     install(TARGETS OGLCompiler EXPORT glslang-targets)
+ 
+     # Backward compatibility
+@@ -49,7 +49,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
+         message(WARNING \"Using `OGLCompilerTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
+ 
+         if (NOT TARGET glslang::OGLCompiler)
+-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
++            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+         endif()
+ 
+         add_library(OGLCompiler ALIAS glslang::OGLCompiler)
+diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
+--- a/glslang/CMakeLists.txt
++++ b/glslang/CMakeLists.txt
+@@ -203,7 +203,7 @@ endif()
+ ################################################################################
+ if(ENABLE_GLSLANG_INSTALL)
+     install(TARGETS glslang EXPORT glslang-targets)
+-    if(NOT BUILD_SHARED_LIBS)
++    if(BUILD_SHARED_LIBS)
+         install(TARGETS MachineIndependent EXPORT glslang-targets)
+         install(TARGETS GenericCodeGen EXPORT glslang-targets)
+ 
+diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
+--- a/glslang/OSDependent/Unix/CMakeLists.txt
++++ b/glslang/OSDependent/Unix/CMakeLists.txt
+@@ -52,7 +52,7 @@ else()
+     target_link_libraries(OSDependent Threads::Threads)
+ endif()
+ 
+-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
++if(ENABLE_GLSLANG_INSTALL)
+     install(TARGETS OSDependent EXPORT glslang-targets)
+ 
+     # Backward compatibility
+@@ -60,7 +60,7 @@ if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
+         message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
+ 
+         if (NOT TARGET glslang::OSDependent)
+-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
++            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+         endif()
+ 
+         add_library(OSDependent ALIAS glslang::OSDependent)
diff --git a/gnu/packages/patches/jami-libjami-headers-search.patch b/gnu/packages/patches/jami-libjami-headers-search.patch
index b3384ba..92cc92a 100644
--- a/gnu/packages/patches/jami-libjami-headers-search.patch
+++ b/gnu/packages/patches/jami-libjami-headers-search.patch
@@ -1,48 +1,28 @@
-From 1168aba6181e30ee4c322e5f437bde22bece5698 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <[email-masked]>
-Date: Sat, 5 Nov 2022 23:18:13 -0400
-Subject: [PATCH 1/3] cmake: Simplify lookup logic for libjami headers.
-
-* extras/build/cmake/modules/FindLibJami.cmake: Rename
-LIBJAMI_INCLUDE_DIRS to LIBJAMI_INCLUDE_DIR.  Use find_path to search
-for jami.h directory.
-* CMakeLists.txt: Adjust accordingly.
-* src/libclient/CMakeLists.txt: Likewise.
-* src/libclient/qtwrapper/CMakeLists.txt: Likewise.
-
-Change-Id: I494358f9bfafb41f000daeec4196747b2c184401
----
-Upstream status: https://review.jami.net/c/jami-client-qt/+/22973
-
- CMakeLists.txt                               |  2 +-
- extras/build/cmake/modules/FindLibJami.cmake | 21 ++++++--------------
- src/libclient/CMakeLists.txt                 |  2 +-
- src/libclient/qtwrapper/CMakeLists.txt       |  2 +-
- 4 files changed, 9 insertions(+), 18 deletions(-)
+Upstream status: https://review.jami.net/c/jami-client-qt/+/24273.
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d0a8fd70..94ac6074 100644
+index 8d71b84b..36729698 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -118,7 +118,7 @@ set(CMAKE_MODULE_PATH
+@@ -136,7 +136,7 @@ set(CMAKE_MODULE_PATH
    ${CMAKE_MODULE_PATH} "${EXTRAS_DIR}/build/cmake/modules")
  find_package(LibJami REQUIRED)
  if(LIBJAMI_FOUND)
 -  include_directories(${LIBJAMI_INCLUDE_DIRS})
 +  include_directories(${LIBJAMI_INCLUDE_DIR})
  endif()
  
  include(FindPython3)
 diff --git a/extras/build/cmake/modules/FindLibJami.cmake b/extras/build/cmake/modules/FindLibJami.cmake
-index ddb05319..9ad20d2b 100644
+index 5cce45fc..11746cd8 100644
 --- a/extras/build/cmake/modules/FindLibJami.cmake
 +++ b/extras/build/cmake/modules/FindLibJami.cmake
-@@ -20,28 +20,19 @@
+@@ -20,30 +20,19 @@
  
  # Once done, this find module will set:
  #
 -#   LIBJAMI_INCLUDE_DIRS - libjami include directories
-+#   LIBJAMI_INCLUDE_DIR - libjami include directories
++#   LIBJAMI_INCLUDE_DIR - libjami include directory
  #   LIBJAMI_FOUND - whether it was able to find the include directories
  #   LIBJAMI_LIB - path to libjami or libring library
  
@@ -62,24 +42,26 @@ index ddb05319..9ad20d2b 100644
 -    set(LIBJAMI_INCLUDE_DIRS ${RING_BUILD_DIR}/jami)
 -  elseif(EXISTS ${CMAKE_INSTALL_PREFIX}/include/jami/jami.h)
 -    set(LIBJAMI_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include/jami)
+-  elseif(EXISTS ${CMAKE_INSTALL_PREFIX}/daemon/include/jami/jami.h)
+-    set(LIBJAMI_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/daemon/include/jami)
 -  else()
 +  find_path(LIBJAMI_INCLUDE_DIR jami.h PATH_SUFFIXES jami)
 +  if(NOT LIBJAMI_INCLUDE_DIR)
      message(STATUS "Jami daemon headers not found!
 -Set -DLIBJAMI_BUILD_DIR or -DCMAKE_INSTALL_PREFIX")
-+Set -DCMAKE_INSTALL_PREFIX or use -DWITH_DAEMON_SUBMODULE")
++To build using the daemon git submodule, set -DWITH_DAEMON_SUBMODULE")
      set(LIBJAMI_FOUND false)
    endif()
  endif()
-@@ -102,5 +93,5 @@ endif()
+@@ -115,5 +104,5 @@ endif()
  # Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES.
  set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig})
  
 -message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIRS})
 +message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
  message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
 diff --git a/src/libclient/CMakeLists.txt b/src/libclient/CMakeLists.txt
-index 2676c9c4..ac58ea2b 100644
+index 144efaf5..cb87fc2a 100644
 --- a/src/libclient/CMakeLists.txt
 +++ b/src/libclient/CMakeLists.txt
 @@ -62,7 +62,7 @@ set(CMAKE_MODULE_PATH
@@ -92,7 +74,7 @@ index 2676c9c4..ac58ea2b 100644
  
  string(SUBSTRING ${CMAKE_GENERATOR} 0 14 CMAKE_GENERATOR_SHORT)
 diff --git a/src/libclient/qtwrapper/CMakeLists.txt b/src/libclient/qtwrapper/CMakeLists.txt
-index acee0d0c..ba68aac4 100644
+index 46887051..a20658ad 100644
 --- a/src/libclient/qtwrapper/CMakeLists.txt
 +++ b/src/libclient/qtwrapper/CMakeLists.txt
 @@ -46,7 +46,7 @@ else()
@@ -104,6 +86,3 @@ index acee0d0c..ba68aac4 100644
  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../dbus)
  
--- 
-2.37.3
-
diff --git a/gnu/packages/patches/libcdio-glibc-compat.patch b/gnu/packages/patches/libcdio-glibc-compat.patch
new file mode 100644
index 0000000..1d325bc
--- /dev/null
+++ b/gnu/packages/patches/libcdio-glibc-compat.patch
@@ -0,0 +1,43 @@
+Fix test failure with glibc 2.36:
+
+  https://savannah.gnu.org/bugs/?62948
+
+Patch taken from upstream:
+
+  https://git.savannah.gnu.org/cgit/libcdio.git/commit/?id=56335fff0f21d294cd0e478d49542a43e9495ed0
+
+diff --git a/test/driver/realpath.c b/test/driver/realpath.c
+index 289253e..cd46d62 100644
+--- a/test/driver/realpath.c
++++ b/test/driver/realpath.c
+@@ -1,5 +1,7 @@
+ /* -*- C -*-
+-  Copyright (C) 2010-2012, 2015, 2017 Rocky Bernstein <[email-masked]>
++
++  Copyright (C) 2010-2012, 2015, 2017, 2022 Rocky Bernstein
++  <[email-masked]>
+ 
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+@@ -175,16 +177,17 @@ main(int argc, const char *argv[])
+         rc = check_rc(symlink(psz_symlink_file, psz_symlink_file),
+                       "symlink", psz_symlink_file);
+         if (0 == rc) {
+-            cdio_realpath(psz_symlink_file, psz_file_check);
+-            if (0 != strncmp(psz_file_check, symlink_file, PATH_MAX)) {
++            char *retvalue = cdio_realpath(psz_symlink_file, psz_file_check);
++            if (0 != retvalue) {
++	      if (0 != strncmp(psz_file_check, symlink_file, PATH_MAX)) {
+                 fprintf(stderr, "direct cdio_realpath cycle test failed. %s vs %s\n",
+                         psz_file_check, symlink_file);
+ 		rc = 5;
+ 		goto err_exit;
++	      }
++	      check_rc(unlink(psz_symlink_file), "unlink", psz_symlink_file);
+             }
+-            check_rc(unlink(psz_symlink_file), "unlink", psz_symlink_file);
+         }
+-
+     }
+ 
+     check_rc(unlink(psz_orig_file), "unlink", psz_orig_file);
diff --git a/gnu/packages/patches/mariadb-link-libatomic.patch b/gnu/packages/patches/mariadb-link-libatomic.patch
deleted file mode 100644
index f331067..0000000
--- a/gnu/packages/patches/mariadb-link-libatomic.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-https://github.com/MariaDB/server/commit/f502ccbcb5dfce29067434885a23db8d1bd5f134.patch
-This was apparently merged in 10.8.2.
-
-From f502ccbcb5dfce29067434885a23db8d1bd5f134 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Vicen=C8=9Biu=20Ciorbaru?= <[email-masked]>
-Date: Fri, 15 Oct 2021 16:51:05 +0300
-Subject: [PATCH] Link with libatomic to enable C11 atomics support
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Some architectures (mips) require libatomic to support proper
-atomic operations. Check first if support is available without
-linking, otherwise use the library.
-
-Contributors:
-James Cowgill <[email-masked]>
-Jessica Clarke <[email-masked]>
-Vicențiu Ciorbaru <[email-masked]>
----
- configure.cmake      | 20 +++++++++++++++++++-
- mysys/CMakeLists.txt |  4 ++++
- sql/CMakeLists.txt   |  1 -
- 3 files changed, 23 insertions(+), 2 deletions(-)
-
-diff --git a/configure.cmake b/configure.cmake
-index 7a1369d77703f..db8742bb93b5a 100644
---- a/configure.cmake
-+++ b/configure.cmake
-@@ -895,7 +895,25 @@ int main()
-   long long int *ptr= &var;
-   return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
- }"
--HAVE_GCC_C11_ATOMICS)
-+HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
-+IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC)
-+  SET(HAVE_GCC_C11_ATOMICS True)
-+ELSE()
-+  SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
-+  LIST(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
-+  CHECK_CXX_SOURCE_COMPILES("
-+  int main()
-+  {
-+    long long int var= 1;
-+    long long int *ptr= &var;
-+    return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST);
-+  }"
-+  HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+  IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+    SET(HAVE_GCC_C11_ATOMICS True)
-+  ENDIF()
-+  SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
-+ENDIF()
- 
- IF(WITH_VALGRIND)
-   SET(HAVE_valgrind 1)
-diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
-index f97e3b4d3904c..09d3f726ffc74 100644
---- a/mysys/CMakeLists.txt
-+++ b/mysys/CMakeLists.txt
-@@ -78,6 +78,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
-  ${LIBNSL} ${LIBM} ${LIBRT} ${CMAKE_DL_LIBS} ${LIBSOCKET} ${LIBEXECINFO} ${CRC32_LIBRARY})
- DTRACE_INSTRUMENT(mysys)
- 
-+IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
-+  TARGET_LINK_LIBRARIES(mysys atomic)
-+ENDIF()
-+
- IF(HAVE_BFD_H)
-   TARGET_LINK_LIBRARIES(mysys bfd)  
- ENDIF(HAVE_BFD_H)
-diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
-index 5f5d7daf1a5bc..f574f1f20295d 100644
---- a/sql/CMakeLists.txt
-+++ b/sql/CMakeLists.txt
-@@ -307,7 +307,6 @@ IF(WITH_MYSQLD_LDFLAGS)
-      "${MYSQLD_LINK_FLAGS} ${WITH_MYSQLD_LDFLAGS}")
- ENDIF()
- 
--
- FIND_PACKAGE(BISON 2.0)
- 
- 
diff --git a/gnu/packages/patches/openboardview-use-system-mpc.patch b/gnu/packages/patches/openboardview-use-system-mpc.patch
new file mode 100644
index 0000000..7726c55
--- /dev/null
+++ b/gnu/packages/patches/openboardview-use-system-mpc.patch
@@ -0,0 +1,42 @@
+Upstream status: https://github.com/OpenBoardView/OpenBoardView/pull/281
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 452dfa9..e30c3cf 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -206,13 +206,15 @@ endif()
+ add_definitions(-DSTBI_FAILURE_USERMSG)
+ 
+ ## mpc - Micro Parser Combinators ##
+-execute_process(
+-	COMMAND git submodule update --init src/mpc
+-	WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+-)
+-
+-add_library(mpc STATIC "mpc/mpc.c")
+-
++pkg_check_modules(MPC QUIET mpc)
++if(NOT MPC_FOUND)
++	execute_process(
++		COMMAND git submodule update --init src/mpc
++		WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
++    	)
++        add_library(mpc STATIC "mpc/mpc.c")
++        include_directories(${CMAKE_CURRENT_SOURCE_DIR}/mpc)
++endif()
+ 
+ ## OpenBoardView ##
+ add_subdirectory(openboardview)
+diff --git a/src/openboardview/FileFormats/GenCADFile.h b/src/openboardview/FileFormats/GenCADFile.h
+index 1ccf8df..c57f7ff 100644
+--- a/src/openboardview/FileFormats/GenCADFile.h
++++ b/src/openboardview/FileFormats/GenCADFile.h
+@@ -5,7 +5,7 @@
+ 
+ #include "build-generated/GenCADFileGrammar.h"
+ 
+-#include "mpc/mpc.h"
++#include "mpc.h"
+ 
+ #include <map>
+ #include <string>
diff --git a/gnu/packages/patches/openboardview-use-system-utf8.patch b/gnu/packages/patches/openboardview-use-system-utf8.patch
deleted file mode 100644
index 25b5952..0000000
--- a/gnu/packages/patches/openboardview-use-system-utf8.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 251e23422f37c93a3f460fb660c5e5bfa8200d91 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <[email-masked]>
-Date: Sun, 2 Dec 2018 16:40:39 -0500
-Subject: [PATCH] build system: Allow using utf8.h from the system.
-
----
- src/CMakeLists.txt               | 12 ++++++++----
- src/openboardview/CMakeLists.txt |  1 +
- 2 files changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 90442ed..26d4a69 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -8,10 +8,14 @@ if(NOT WIN32 OR MINGW)
- endif()
- 
- ## utf8.h ##
--execute_process(
--	COMMAND git submodule update --init src/utf8
--	WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
--)
-+FIND_PATH(UTF8_INCLUDE_DIR utf8.h)
-+if(NOT UTF8_INCLUDE_DIR)
-+  execute_process(
-+    COMMAND git submodule update --init src/utf8
-+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
-+    )
-+  set(UTF8_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/utf8)
-+endif()
- 
- ## zlib ##
- find_package(ZLIB)
-diff --git a/src/openboardview/CMakeLists.txt b/src/openboardview/CMakeLists.txt
-index b0bdbe3..6c4564c 100644
---- a/src/openboardview/CMakeLists.txt
-+++ b/src/openboardview/CMakeLists.txt
-@@ -44,6 +44,7 @@ include_directories(
- 	${CMAKE_CURRENT_SOURCE_DIR}
- 	${CMAKE_CURRENT_SOURCE_DIR}/..
- 	${IMGUI_INCLUDE_DIRS}
-+	${UTF8_INCLUDE_DIR}
- 	${GLAD_INCLUDE_DIRS}
- 	${GTK_INCLUDE_DIRS}
- 	${OPENGL_INCLUDE_DIR}
--- 
-2.34.0
-
diff --git a/gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch b/gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch
new file mode 100644
index 0000000..f615551
--- /dev/null
+++ b/gnu/packages/patches/orangeduck-mpc-fix-pkg-config.patch
@@ -0,0 +1,25 @@
+Upstream status: https://github.com/orangeduck/mpc/pull/160
+
+diff --git a/Makefile b/Makefile
+index 7719acc..fe798c5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,7 +15,7 @@ EXAMPLESEXE = $(EXAMPLES:.c=)
+ 
+ .PHONY: all check clean libs $(DIST)/$(PROJ).pc
+ 
+-all: $(EXAMPLESEXE) check
++all: $(EXAMPLESEXE) check libs $(DIST)/$(PROJ).pc
+ 
+ $(DIST):
+ 	$(MKDIR) $(DIST)
+@@ -65,7 +65,8 @@ install: all
+ 	install -m755 -t $(DESTDIR)$(PREFIX)/lib $(DIST)/lib*
+ 	install -m644 -t $(DESTDIR)$(PREFIX)/share/$(PROJ) $(PROJ).c $(PROJ).h
+ 	install -m644 $(PROJ).h $(DESTDIR)$(PREFIX)/include/$(PROJ).h
+-	install -m644 $(PROJ).pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/$(PROJ).pc
++	install -m644 $(DIST)/$(PROJ).pc \
++	  $(DESTDIR)$(PREFIX)/lib/pkgconfig/$(PROJ).pc
+ 
+ uninstall:
+ 	rm -rf -- \
diff --git a/gnu/packages/patches/python-afdko-suppress-copyright-test.patch b/gnu/packages/patches/python-afdko-suppress-copyright-test.patch
deleted file mode 100644
index 94cd73d..0000000
--- a/gnu/packages/patches/python-afdko-suppress-copyright-test.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Supress copyright check in tests which can differ based on current year.
-
-  https://github.com/adobe-type-tools/afdko/issues/1589
-
-Adapted from upstream:
-
-  https://github.com/adobe-type-tools/afdko/commit/feebd77d9b6507a0b32f837535511be3c94d9c6f
-
-diff --git a/tests/tx_test.py b/tests/tx_test.py
---- a/tests/tx_test.py
-+++ b/tests/tx_test.py
-@@ -1246,7 +1246,7 @@ def test_ufo_fontinfo_parsing(file, msg, ret_code):
-     if (ret_code == 0):
-         expected_path = generate_ps_dump(expected_path)
-         output_path = generate_ps_dump(output_path)
--        assert differ([expected_path, output_path])
-+        assert differ([expected_path, output_path, '-s'] + PFA_SKIP)
-     else:
-         arg = [TOOL, '-t1', '-f', ufo_input_path]
-         assert subprocess.call(arg) == 6
diff --git a/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch b/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch
deleted file mode 100644
index a185f41..0000000
--- a/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Adjust for OpenSSL 1.1.1:
-
-  https://github.com/pyca/pyopenssl/issues/1043
-
-Taken from upstream:
-
-  https://github.com/pyca/pyopenssl/commit/cc5c00ae5fd3c19d07fff79b5c4a08f5e58697ad
-
-diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py
-index 59f21cec..fcdee047 100644
---- a/src/OpenSSL/SSL.py
-+++ b/src/OpenSSL/SSL.py
-@@ -1421,6 +1421,12 @@ def set_alpn_protos(self, protos):
-             This list should be a Python list of bytestrings representing the
-             protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``.
-         """
-+        # Different versions of OpenSSL are inconsistent about how they handle empty
-+        # proto lists (see #1043), so we avoid the problem entirely by rejecting them
-+        # ourselves.
-+        if not protos:
-+            raise ValueError("at least one protocol must be specified")
-+
-         # Take the list of protocols and join them together, prefixing them
-         # with their lengths.
-         protostr = b"".join(
-@@ -2449,6 +2455,12 @@ def set_alpn_protos(self, protos):
-             This list should be a Python list of bytestrings representing the
-             protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``.
-         """
-+        # Different versions of OpenSSL are inconsistent about how they handle empty
-+        # proto lists (see #1043), so we avoid the problem entirely by rejecting them
-+        # ourselves.
-+        if not protos:
-+            raise ValueError("at least one protocol must be specified")
-+
-         # Take the list of protocols and join them together, prefixing them
-         # with their lengths.
-         protostr = b"".join(
-diff --git a/tests/test_ssl.py b/tests/test_ssl.py
-index ffc505d8..ca363b45 100644
---- a/tests/test_ssl.py
-+++ b/tests/test_ssl.py
-@@ -1928,7 +1928,7 @@ def test_alpn_call_failure(self):
-         protocols list. Ensure that we produce a user-visible error.
-         """
-         context = Context(SSLv23_METHOD)
--        with pytest.raises(Error):
-+        with pytest.raises(ValueError):
-             context.set_alpn_protos([])
- 
-     def test_alpn_set_on_connection(self):
diff --git a/gnu/packages/patches/rust-openssl-sys-no-vendor.patch b/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
index 3e300ea..5872d4c 100644
--- a/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
+++ b/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
@@ -1,12 +1,17 @@
-https://sources.debian.org/data/main/r/rust-openssl-sys/0.9.53-1/debian/patches/disable-vendor.patch
-"MIT" licensed according to debian/copyright file
-slightly modified to only change the vendored openssl-src dependency
-
-Starting from [email-masked] Cargo.toml starts searching for openssl-3.0.
-
---- a/Cargo.toml
-+++ b/Cargo.toml
-@@ -31,15 +31,12 @@
+--- openssl-sys-0.9.84/Cargo.toml.orig	2023-04-03 09:10:11.979197979 -0400
++++ openssl-sys-0.9.84/Cargo.toml	2023-04-03 12:07:30.285315609 -0400
+@@ -31,10 +31,6 @@
+ [package.metadata.pkg-config]
+ openssl = "1.0.1"
+ 
+-[dependencies.bssl-sys]
+-version = "0.1.0"
+-optional = true
+-
+ [dependencies.libc]
+ version = "0.2"
+ 
+@@ -46,16 +42,12 @@
  [build-dependencies.cc]
  version = "1.0"
  
@@ -18,9 +23,10 @@ Starting from [email-masked] Cargo.toml starts searching for openssl-3.
  version = "0.3.9"
  
  [features]
- vendored = ["openssl-src"]
-+openssl-src = []
+-unstable_boringssl = ["bssl-sys"]
+-vendored = ["openssl-src"]
++unstable_boringssl = []
++vendored = []
  
  [target."cfg(target_env = \"msvc\")".build-dependencies.vcpkg]
  version = "0.2.8"
-
diff --git a/gnu/packages/patches/webkitgtk-libelogind.patch b/gnu/packages/patches/webkitgtk-libelogind.patch
new file mode 100644
index 0000000..fa1fbc8
--- /dev/null
+++ b/gnu/packages/patches/webkitgtk-libelogind.patch
@@ -0,0 +1,38 @@
+From 8d46803c09edc2b6d4e35c778a3d2f90e5baad0b Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <[email-masked]>
+Date: Sat, 25 Mar 2023 22:55:16 -0400
+Subject: [PATCH] Fallback to elogind when systemd is unavailable at build time
+ https://bugs.webkit.org/show_bug.cgi?id=254475
+
+Reviewed by NOBODY (OOPS!).
+
+The build system supports elogind, but it only considers the
+'libsystemd' library name for the pkg-config lookup and not
+'libelogind'.  This change makes the build system fallback to search
+for libelogind when libsystemd was not found.
+
+* Source/cmake/FindJournald.cmake [!PC_SYSTEMD_FOUND]: Search for libelogind.
+---
+ Source/cmake/FindJournald.cmake | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/Source/cmake/FindJournald.cmake b/Source/cmake/FindJournald.cmake
+index 18dd6b50908c..e0dc9ce1d397 100644
+--- a/Source/cmake/FindJournald.cmake
++++ b/Source/cmake/FindJournald.cmake
+@@ -55,6 +55,10 @@ find_package(PkgConfig QUIET)
+ 
+ # libelogind provides compatible pc and header files
+ pkg_check_modules(PC_SYSTEMD QUIET libsystemd)
++if (NOT PC_SYSTEMD_FOUND)
++    pkg_check_modules(PC_SYSTEMD QUIET libelogind)
++endif ()
++
+ set(Journald_COMPILE_OPTIONS ${PC_SYSTEMD_CFLAGS_OTHER})
+ set(Journald_VERSION ${PC_SYSTEMD_VERSION})
+ 
+
+base-commit: 43ea8744bc6065aad7ae5988e32d31d253905e5f
+-- 
+2.39.2
+
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 6562390..7bf5883 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -546,15 +546,15 @@ Test::More and friends.")
 (define-public perl-test-fatal
   (package
     (name "perl-test-fatal")
-    (version "0.014")
+    (version "0.016")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
                            "Test-Fatal-" version ".tar.gz"))
        (sha256
         (base32
-         "1c6bs68mss4q7cyapkv2c0jn66i21050p0faxf3s3417gdffzp5w"))))
+         "13vqdyk95y89msk1r8g1vp1jw6rzkl1y76lprnw3085sy8qd90vj"))))
     (build-system perl-build-system)
     (propagated-inputs (list perl-try-tiny))
     (home-page "https://metacpan.org/release/Test-Fatal")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 64089f9..335e08d 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -11318,15 +11318,15 @@ Tree::Simple::Visitor::* objects.")
 (define-public perl-try-tiny
   (package
     (name "perl-try-tiny")
-    (version "0.30")
+    (version "0.31")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
                            "Try-Tiny-" version ".tar.gz"))
        (sha256
         (base32
-         "0szgvlz19yz3mq1lbzmwh8w5dh6agg5s16xv22zrnl83r7ax0nys"))))
+         "1ghidhh2wasxbmjsdsyfcy20wgli3m58dkj6ixnv4xa0i8fx601k"))))
     (build-system perl-build-system)
     (home-page "https://metacpan.org/release/Try-Tiny")
     (synopsis "Minimal try/catch with proper preservation of $@@")
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 89a942b..c498703 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -207,7 +207,6 @@ cameras (CRW/CR2, NEF, RAF, DNG, and others).")
     ;; both two licensing modes for your changes/additions."
     (license (list license:lgpl2.1 license:cddl1.0))))
 
-
 (define-public libexif
   (package
     (name "libexif")
@@ -222,9 +221,8 @@ cameras (CRW/CR2, NEF, RAF, DNG, and others).")
                (base32
                 "0zi5vvb0khlzc6xyfayk6mjx5lgkrj8r7s8lfv4j7wkcgndjga0j"))))
     (build-system gnu-build-system)
-    (native-inputs
-     (list autoconf automake gettext-minimal libtool))
-    (home-page "https://libexif.github.io/")
+    (native-inputs (list autoconf automake gettext-minimal libtool))
+    (home-page "https://github.com/libexif/libexif")
     (synopsis "Read and manipulate EXIF data in digital photographs")
     (description
      "The libexif C library allows applications to read, edit, and save EXIF
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 41a6997..1046602 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2019, 2021, 2022 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <[email-masked]>
-;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2019, 2021 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2020, 2022 Julien Lepiller <[email-masked]>
 ;;; Copyright © 2020, 2022 Marius Bakke <[email-masked]>
@@ -941,24 +941,23 @@ in Pytest.")
 (define-public python-pytest-subtests
   (package
     (name "python-pytest-subtests")
-    (version "0.5.0")
+    (version "0.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-subtests" version))
        (sha256
-        (base32 "087i03nmkmfnrpc7mmizvr40ijnjw4lfxc22rnk8jk6s1szy9lav"))))
+        (base32 "05zvnxx0hdrd9w4z51qhchg3nkz5s47agryw68g8q7krq5kim5nr"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda* (#:key inputs outputs tests? #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
                (invoke "python" "-m" "pytest")))))))
-    (native-inputs
-     (list python-pytest python-setuptools-scm))
+    (native-inputs (list python-pytest-7.1 python-setuptools-scm))
     (home-page "https://github.com/pytest-dev/pytest-subtests")
     (synopsis "Unittest subTest() support and subtests fixture")
     (description "This Pytest plugin provides unittest @code{subTest()}
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index c483d68..f3530e5 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -342,20 +342,18 @@ Python strings.")
 (define-public python-lz4
   (package
     (name "python-lz4")
-    (version "4.0.2")
+    (version "4.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "lz4" version))
        (sha256
         (base32
-         "16vj2bnhhdkcz2a2ai2mx2kf9ngx1cjr18636yp1514kq9r72fq8"))
+         "1nmc36j5xnk7mvwwpm0nb1sddjk5iv77h877fdkkxcngm621shz1"))
        (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Remove bundled copy of lz4.
-           (delete-file-recursively "lz4libs")
-           #t))))
+       (snippet '(begin
+                   ;; Remove bundled copy of lz4.
+                   (delete-file-recursively "lz4libs")))))
     (build-system python-build-system)
     (arguments
      (list #:phases
@@ -510,13 +508,13 @@ wrapper.  It provides a backport of the @code{Path} object.")
 (define-public python-zopfli
   (package
     (name "python-zopfli")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "zopfli" version ".zip"))
        (sha256
-        (base32 "1ipjkcgdbplsrhr31ypk48px8cax4cm9gcjj7yrcrhg20ql3s9p5"))))
+        (base32 "1z1akqx3fjnwa75insch9p08hafikqdvqkj6mxv1k6fr81sxnj9d"))))
     (build-system python-build-system)
     (arguments
      (list
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index c3e36ff..220f2b9 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -24,7 +24,7 @@
 ;;; Copyright © 2020 Alexandros Theodotou <[email-masked]>
 ;;; Copyright © 2020 Justus Winter <[email-masked]>
 ;;; Copyright © 2020, 2021 Vinicius Monego <[email-masked]>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Maxime Devos <[email-masked]>
 ;;; Copyright © 2022 Antero Mejr <[email-masked]>
 ;;;
@@ -60,6 +60,7 @@
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages password-utils)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
@@ -524,198 +525,146 @@ for example, for recording or replaying web content.")
 is used by the Requests library to verify HTTPS requests.")
     (license license:asl2.0)))
 
-(define-public python-cryptography-vectors-next
+(define-public python-cryptography-vectors
   (package
     (name "python-cryptography-vectors")
-    (version "37.0.4")
+    (version "40.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography_vectors" version))
        (sha256
         (base32
-         "1a1yi37ygw0jp72q280cmxd3qn9y9vmcch2bcnjkg2g2202l0qas"))))
+         "0hd0ppss5xg0kzf36q8cdaxh1xw8ry4k7jkianlf832xbdmp0q44"))))
     (build-system python-build-system)
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
     (description
       "This package contains test vectors for the cryptography package.")
     ;; Distributed under either BSD-3 or ASL2.0
     (license (list license:bsd-3 license:asl2.0))))
 
-(define-public python-cryptography-vectors
-  (package
-    (inherit python-cryptography-vectors-next)
-    (version "3.4.8")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "cryptography_vectors" version))
-              (sha256
-               (base32 "1wl0ynh3lzhc6q59g8mybvijmnp195x7fjxlb3h3sgcraw14312c"))))))
-
-(define-public python-cryptography-next
+(define-public python-cryptography
   (package
     (name "python-cryptography")
-    (version "37.0.4")
+    (version "40.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography" version))
        (sha256
         (base32
-         "10haq7sn8mrdlhcfs791rczknnxm0wpww0lkpjzcqx141ryc3yb3"))))
-    (build-system python-build-system)
+         "0wilrilfcyl78caxcpna2k3aya6qamppwv4j35262pz9n7wg40r8"))))
+    (build-system pyproject-build-system)
     (arguments
      (list
-      #:imported-modules (append %cargo-build-system-modules
-                                 %python-build-system-modules)
-      #:modules `(((guix build cargo-build-system) #:prefix cargo:)
-                  ,@%python-build-system-modules
-                  (srfi srfi-1)
-                  (ice-9 match))
-      #:phases
-      #~(modify-phases (@ (guix build python-build-system) %standard-phases)
-          (add-after 'unpack 'adjust-pyo3-requirement
-            (lambda _
-              ;; The package depends on 0.15.2, which is not on crates.io(!?).
-              ;; Downgrade to 0.15.1...
-              (substitute* "src/rust/Cargo.toml"
-                (("pyo3 = \\{ version = \"0\\.15\\.2\"")
-                 "pyo3 = { version = \"0.15.1\""))))
-          (add-before 'build 'configure-cargo
-            (lambda* (#:key inputs #:allow-other-keys)
-              ;; Hide irrelevant inputs from cargo-build-system so it does
-              ;; not try to unpack sanity-check.py, etc.
-              (let ((cargo-inputs (filter (match-lambda
-                                            ((name . path)
-                                             (or (string-prefix? "rust-" name)
-                                                 (string=? "gcc" name))))
-                                          inputs)))
-                (with-directory-excursion "src/rust"
-                  ((assoc-ref cargo:%standard-phases 'unpack-rust-crates)
-                   #:inputs cargo-inputs
-                   #:vendor-dir "guix-vendor")
-                  ((assoc-ref cargo:%standard-phases 'configure)
-                   #:inputs cargo-inputs)
-                  ((assoc-ref cargo:%standard-phases 'patch-cargo-checksums)
-                   #:vendor-dir "guix-vendor"))
-                (rename-file "src/rust/.cargo" ".cargo"))))
-          (replace 'check
-            (lambda* (#:key tests? #:allow-other-keys)
-              (when tests?
-                (invoke "pytest" "-vv" "tests")))))))
-    (inputs
-     (list openssl
-           ;; TODO: Most of these inputs are transitive dependencies of
-           ;; the Rust requirements (see src/rust/cargo.toml).  Surely
-           ;; there is a better way than manually listing everything..?
-           rust-aliasable-0.1
-           rust-asn1-0.8
-           rust-asn1-derive-0.8
-           rust-autocfg-1
-           rust-base64-0.13
-           rust-bitflags-1
-           rust-cfg-if-0.1
-           rust-cfg-if-1
-           rust-chrono-0.4
-           rust-cloudabi-0.1
-           rust-lazy-static-1
-           rust-libc-0.2
-           rust-indoc-0.3
-           rust-indoc-impl-0.3
-           rust-inflector-0.11
-           rust-instant-0.1
-           rust-lock-api-0.4
-           rust-num-integer-0.1
-           rust-num-traits-0.2
-           rust-once-cell-1
-           rust-ouroboros-0.15
-           rust-ouroboros-macro-0.15
-           rust-parking-lot-0.11
-           rust-parking-lot-core-0.8
-           rust-paste-0.1
-           rust-paste-impl-0.1
-           rust-pem-1
-           rust-proc-macro-error-1
-           rust-proc-macro-error-attr-1
-           rust-proc-macro-hack-0.5
-           rust-proc-macro2-1
-           rust-pyo3-0.15
-           rust-pyo3-build-config-0.15
-           rust-pyo3-macros-0.15
-           rust-pyo3-macros-backend-0.15
-           rust-quote-1
-           rust-redox-syscall-0.2
-           rust-scopeguard-1
-           rust-smallvec-1
-           rust-stable-deref-trait-1
-           rust-syn-1
-           rust-unicode-xid-0.2
-           rust-unindent-0.1
-           rust-version-check-0.9
-           rust-winapi-0.3))
-    (propagated-inputs
-     (list python-asn1crypto python-cffi python-six python-idna
-           python-iso8601))
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'disable-rust-extension-build
+                     (lambda _
+                       ;; The Rust extension is built separately as
+                       ;; 'python-cryptography-rust', so there's no need
+                       ;; to build it here.
+                       (substitute* "pyproject.toml"
+                         ((".*setuptools-rust.*") ""))
+                       (delete-file "setup.py")))
+                   (add-before 'check 'symlink-rust-library
+                     (lambda* (#:key inputs outputs #:allow-other-keys)
+                       (symlink (search-input-file
+                                 inputs "lib/libcryptography_rust.so")
+                                (string-append (site-packages inputs outputs)
+                                               "/cryptography/hazmat/bindings/"
+                                               "_rust.abi3.so")))))))
+
     (native-inputs
-     (list python-cryptography-vectors-next
+     (list python-cryptography-vectors
            python-hypothesis
+           python-iso8601
            python-pretend
-           python-pytz
-           python-pytest
+           python-pytest-7.1            ;for subtests
            python-pytest-benchmark
-           python-pytest-subtests
-           python-setuptools-rust
-           rust
-           `(,rust "cargo")))
+           python-pytest-subtests))
+    (inputs (list python-cryptography-rust))
+    (propagated-inputs (list python-cffi))
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Cryptographic recipes and primitives for Python")
     (description
-      "cryptography is a package which provides cryptographic recipes and
-primitives to Python developers.  It aims to be the “cryptographic standard
-library” for Python.  The package includes both high level recipes, and low
-level interfaces to common cryptographic algorithms such as symmetric ciphers,
-message digests and key derivation functions.")
+     "@code{cryptography} is a package which provides cryptographic recipes
+and primitives to Python developers.  It aims to be the “cryptographic
+standard library” for Python.  The package includes both high level recipes,
+and low level interfaces to common cryptographic algorithms such as symmetric
+ciphers, message digests and key derivation functions.")
     ;; Distributed under either BSD-3 or ASL2.0
     (license (list license:bsd-3 license:asl2.0))))
 
-(define-public python-cryptography
+;;; This is the Rust component of the python-cryptography library, extracted
+;;; as a separate package to ease the Rust build.
+(define-public python-cryptography-rust
   (package
-    (inherit python-cryptography-next)
-    (version "3.4.8")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "cryptography" version))
-              (sha256
-               (base32 "072awar70cwfd2hnx0pvp1dkc7gw45mbm3wcyddvxz5frva5xk4l"))))
+    (inherit python-cryptography)
+    (name "python-cryptography-rust")
+    (build-system cargo-build-system)
     (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               (add-after 'unpack 'set-no-rust
-                 (lambda _
-                   (setenv "CRYPTOGRAPHY_DONT_BUILD_RUST" "1"))))))
-    (inputs (list openssl-1.1))
-    (native-inputs
-     (list python-cryptography-vectors
-           python-hypothesis
-           python-pretend
-           python-pytz
-           python-pytest
-           python-setuptools-rust))))
+     (list
+      #:modules '((guix build cargo-build-system)
+                  (guix build utils)
+                  (srfi srfi-1)
+                  (ice-9 match))
+      ;; XXX: Building the test objects appear to fail due to a missing link
+      ;; directive to Python's shared library (e.g.: "ld:
+      ;; cryptography_rust.c950d742-cgu.11:(.text._ZN3...+0x57): undefined
+      ;; reference to `PyLong_FromLong'").
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'chdir
+            (lambda _
+              (chdir "src/rust")))
+          (replace 'unpack-rust-crates
+            ;; This is to avoid the non-crate source from being erroneously
+            ;; unpacked by this phase, causing an error.
+            (lambda* (#:key inputs #:allow-other-keys #:rest args)
+              (apply (assoc-ref %standard-phases 'unpack-rust-crates)
+                     (append args
+                             (list #:inputs (alist-delete "source" inputs))))))
+          (replace 'configure
+            (lambda* (#:key inputs #:allow-other-keys #:rest args)
+              (apply (assoc-ref %standard-phases 'configure)
+                     (append args
+                             (list #:inputs (alist-delete "source" inputs))))))
+          (add-after 'install 'install-shared-library
+            (lambda _
+              (install-file "target/release/libcryptography_rust.so"
+                            (string-append #$output "/lib")))))
+      #:cargo-inputs
+      `(("rust-asn1-0.13" ,rust-asn1-0.13)
+        ("rust-chrono-0.4" ,rust-chrono-0.4)
+        ("rust-foreign-types-shared-0.1" ,rust-foreign-types-shared-0.1)
+        ("rust-once-cell-1" ,rust-once-cell-1)
+        ("rust-openssl-0.10" ,rust-openssl-0.10)
+        ("rust-openssl-sys-0.9" ,rust-openssl-sys-0.9)
+        ("rust-ouroboros-0.15" ,rust-ouroboros-0.15)
+        ("rust-pem-1" ,rust-pem-1)
+        ("rust-pyo3-0.15" ,rust-pyo3-0.15))
+      #:cargo-development-inputs
+      `(("rust-cc" ,rust-cc-1))))
+    (native-inputs (list pkg-config python python-cffi))
+    ;; XXX: Adding rust-openssl-sys-0.9 is needed because #:cargo-inputs
+    ;; doesn't honor propagated-inputs.
+    (inputs (list python rust-openssl-sys-0.9))
+    (propagated-inputs '())
+    (synopsis "Core implementation of the Cryptography Python library")))
 
-;; This is the last version which is compatable with python-cryptography < 35.
 (define-public python-pyopenssl
   (package
     (name "python-pyopenssl")
-    (version "21.0.0")
+    (version "23.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyOpenSSL" version))
        (sha256
         (base32
-         "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay"))
-       (patches (search-patches "python2-pyopenssl-openssl-compat.patch"))))
+         "1dxhip610zw1j2bz35g1w1h7vh374g0bnzn4nsqj65n6pswrh544"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -727,7 +676,7 @@ message digests and key derivation functions.")
                 ;; PyOpenSSL runs tests against a certificate with a fixed
                 ;; expiry time.  To ensure successful builds in the future,
                 ;; set the time to roughly the release date.
-                (invoke "faketime" "2022-02-01" "py.test" "-v" "-k"
+                (invoke "faketime" "2023-03-25" "pytest" "-vv" "-k"
                         (string-append
                          ;; This test tries to look up certificates from
                          ;; the compiled-in default path in OpenSSL, which
@@ -739,17 +688,13 @@ message digests and key derivation functions.")
                          ;; Fails on i686-linux and possibly other 32-bit platforms
                          ;; https://github.com/pyca/pyopenssl/issues/974
                          "and not test_verify_with_time"))))))))
-    (propagated-inputs
-     (list python-cryptography python-six))
-    (inputs
-     (list openssl))
-    (native-inputs
-     (list libfaketime python-flaky python-pretend python-pytest))
+    (propagated-inputs (list python-cryptography))
+    (inputs (list openssl))
+    (native-inputs (list libfaketime python-flaky python-pretend python-pytest))
     (home-page "https://github.com/pyca/pyopenssl")
     (synopsis "Python wrapper module around the OpenSSL library")
-    (description
-      "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
-library.")
+    (description "PyOpenSSL is a high-level wrapper around a subset of the
+OpenSSL library.")
     (license license:asl2.0)))
 
 (define-public python-ed25519
@@ -1291,18 +1236,17 @@ derivation function.")
 (define-public python-service-identity
   (package
     (name "python-service-identity")
-    (version "18.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "service_identity" version))
-       (sha256
-        (base32
-         "0b9f5qiqjy8ralzgwjgkhx82h6h8sa7532psmb8mkd65md5aan08"))))
-    (build-system python-build-system)
-    (propagated-inputs
-     (list python-attrs python-pyasn1 python-pyasn1-modules
-           python-pyopenssl))
+    (version "21.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "service-identity" version))
+              (sha256
+               (base32
+                "0d4x84crbz0a17d8gi90z6zlxwm9pslc65rx0cdw2797ra360v3f"))))
+    (build-system pyproject-build-system)
+    (native-inputs (list python-idna python-pytest))
+    (propagated-inputs (list python-attrs python-cryptography python-pyasn1
+                             python-pyasn1-modules python-six))
     (home-page "https://service-identity.readthedocs.io/")
     (synopsis "Service identity verification for PyOpenSSL")
     (description
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 495e13a..d84b5ef 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -26,7 +26,7 @@
 ;;; Copyright © 2018 Tomáš Čech <[email-masked]>
 ;;; Copyright © 2018, 2019, 2021 Nicolas Goaziou <[email-masked]>
 ;;; Copyright © 2018 Mathieu Othacehe <[email-masked]>
-;;; Copyright © 2018, 2020, 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2018, 2020, 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2019 Vagrant Cascadian <[email-masked]>
 ;;; Copyright © 2019 Brendan Tildesley <[email-masked]>
 ;;; Copyright © 2019 Pierre Langlois <[email-masked]>
@@ -3765,13 +3765,13 @@ for the basic TCP/IP protocols.")
 (define-public python-geventhttpclient
   (package
     (name "python-geventhttpclient")
-    (version "1.5.3")
+    (version "2.0.9")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "geventhttpclient" version))
               (sha256
                (base32
-                "104p14p67xa5gch8dy2zqmzmjra31fflk1c1alrry8dp8bzwj3nq"))
+                "04qmcc7qpnif70ph61339dcld4g107fkhpa0gdmbs8z98v9kkg4a"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -3794,15 +3794,14 @@ for the basic TCP/IP protocols.")
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "pytest"  "src/geventhttpclient/tests" "-v"
+               (invoke "pytest" "src/geventhttpclient/tests" "-v"
                        ;; Append the test modules to sys.path to avoid
                        ;; namespace conflict which breaks SSL tests.
                        "--import-mode=append")))))))
-    (native-inputs
-     (list python-dpkt python-pytest))
-    (propagated-inputs
-     (list python-brotli python-certifi python-gevent python-six))
-    (home-page "https://github.com/gwik/geventhttpclient")
+    (native-inputs (list python-dpkt python-pytest))
+    (propagated-inputs (list python-brotli python-certifi python-gevent
+                             python-six python-urllib3))
+    (home-page "https://github.com/geventhttpclient/geventhttpclient")
     (synopsis "HTTP client library for gevent")
     (description "@code{python-geventhttpclient} is a high performance,
 concurrent HTTP client library for python using @code{gevent}.")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 06eae3d..0147870 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -968,7 +968,7 @@ Markdown.  All extensions are found under the module namespace of pymdownx.")
                 "0rv0cbala7ibjbaf6kkcn0mdhqdbajnvlcw0f15gwzfwg10g0z1q"))))
     (build-system python-build-system)
     (native-inputs
-     (list python-pytest
+     (list python-pytest-7.1            ;for pytest-subtests
            python-pytest-cov
            python-pytest-mpl
            python-pytest-subtests
@@ -3542,16 +3542,16 @@ and is not compatible with JSON.")
 (define-public python-exceptiongroup
   (package
     (name "python-exceptiongroup")
-    (version "1.0.0rc8")
+    (version "1.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/agronholm/exceptiongroup")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0xsbpv22n51p6yvyvz231mf8zhbi1i88b4zmacaxxx31zrq5ifv4"))))
+                "0wcvzwgjs0xmggs6dh92jxdqi988gafzh10hrzvw10kasy0xakfj"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -12164,36 +12164,17 @@ the @code{sendfile(2)} system call.")
 (define-public python-pyftpdlib
   (package
     (name "python-pyftpdlib")
-    (version "1.5.6")
+    (version "1.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyftpdlib" version))
        (sha256
-        (base32 "0pnv2byzmzg84q5nmmhn1xafvfil85qa5y52bj455br93zc5b9px"))))
-    (build-system python-build-system)
-    (arguments
-     (list
-      #:phases
-      #~(modify-phases %standard-phases
-          (replace 'check
-            (lambda* (#:key tests? #:allow-other-keys)
-              (when tests?
-                (invoke
-                 "pytest"
-                 ;; Deselect failing tests.
-                 "-k" (string-append
-                       ;; Using Pytest instead of the Makefile causes the
-                       ;; command line tests to fail on unknown Pytest
-                       ;; arguments.
-                       "not TestCommandLineParser "
-                       ;; https://github.com/giampaolo/pyftpdlib/issues/478
-                       "and not test_use_gmt_times "
-                       ;; https://github.com/giampaolo/pyftpdlib/issues/550
-                       "and not test_masquerade_address "
-                       ;; https://github.com/giampaolo/pyftpdlib/issues/500
-                       "and not test_rest_on_stor "
-                       "and not test_stor_ascii"))))))))
+        (base32 "0vk5gcx4svjrpm014ykwxmijqihgb4ha17kb3yphk0nv6x0wx8vy"))))
+    (build-system pyproject-build-system)
+    ;; Using Pytest instead of the Makefile causes the command line tests to
+    ;; fail on unknown Pytest arguments.
+    (arguments (list #:test-flags #~(list "-k" "not TestCommandLineParser")))
     (native-inputs (list python-psutil python-pytest))
     (propagated-inputs (list python-pyopenssl python-pysendfile))
     (home-page "https://github.com/giampaolo/pyftpdlib/")
@@ -12302,7 +12283,12 @@ from an XML-based format.")
                                     "test_read_fontdimens_mathex"
                                     "test_read_fontdimens_vanilla"
                                     "test_read_boundary_char"
-                                    "fontTools.tfmLib")
+                                    "fontTools.tfmLib"
+                                    ;; The MtiTest tests fail for unknown
+                                    ;; reasons (see:
+                                    ;; https://github.com/fonttools/
+                                    ;; fonttools/issues/3078)
+                                    "MtiTest")
                                   " and not "))))))))))
     (native-inputs
      (modify-inputs (package-native-inputs python-fonttools)
@@ -12320,14 +12306,14 @@ from an XML-based format.")
 (define-public python-fonttools-next
   (package
     (inherit python-fonttools-full)
-    (version "4.37.1")
+    (version "4.39.3")
     (source (origin
               (inherit (package-source python-fonttools-full))
               (method url-fetch)
               (uri (pypi-uri "fonttools" version ".zip"))
               (sha256
                (base32
-                "1ryc1wca2v92wn24baryj5fr32lspl8rbsig32fnkxp1islf21j6"))))))
+                "1msibi5cmi5znykkg66dq7xshl07lkqjxhrz5hcipqvlggsvjd4j"))))))
 
 (define-public python-ly
   (package
@@ -14608,26 +14594,24 @@ simulation, statistical modeling, machine learning and much more.")
 (define-public python-chardet
   (package
     (name "python-chardet")
-    (version "5.0.0")
+    (version "5.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "chardet" version))
        (sha256
         (base32
-         "1amqmz8731ly6f9rkbk09w4jqgmmgyxykd1bawhgrdbqzlmxys03"))))
+         "1r9ixxnish9j3dq4h0z0cwlkr4f5lgi6d8mhbzw59hbbjlmp2qhd"))))
     (native-inputs
      (list python-pytest))
-    (build-system python-build-system)
+    (build-system pyproject-build-system)
     (arguments
-     (list #:phases
+     (list #:test-flags
+           ;; Disable test that fails sporadically:
+           ;; https://github.com/chardet/chardet/issues/256
+           #~'("-k" "not test_detect_all_and_detect_one_should_agree")
+           #:phases
            #~(modify-phases %standard-phases
-               (replace 'check
-                 (lambda _
-                   (invoke "pytest" "-vv" "-k"
-                           ;; Disable test that fails sporadically:
-                           ;; https://github.com/chardet/chardet/issues/256
-                           "not test_detect_all_and_detect_one_should_agree")))
                ;; This package provides a 'chardetect' executable that only
                ;; depends on Python, so customize the wrap phase to avoid
                ;; adding pytest and friends in order to save size.
@@ -15750,13 +15734,13 @@ expression.")
 (define-public python-unicodedata2
   (package
     (name "python-unicodedata2")
-    (version "14.0.0")
+    (version "15.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "unicodedata2" version))
        (sha256
-        (base32 "110nnvh02ssp92xbmswy39aa186jrmb7m41x4220wigl8c0dzxs1"))))
+        (base32 "0bcgls7m2zndpd8whgznnd5908jbsa50si2bh88wsn0agcznhv7d"))))
     (build-system python-build-system)
     (home-page "https://github.com/fonttools/unicodedata2")
     (synopsis "Python unicodedata backport")
@@ -16425,7 +16409,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.")
            python-iniconfig
            python-moto
            python-msgpack
-           python-pytest
+           python-pytest-7.1            ;for pytest-subtests
            python-pytest-celery
            python-pytest-subtests
            python-pytest-timeout
@@ -18321,13 +18305,13 @@ parsing UK postcodes.")
 (define-public python-faker
   (package
     (name "python-faker")
-    (version "13.3.4")
+    (version "15.0.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Faker" version))
               (sha256
                (base32
-                "04855dqvvi2mr739l5x3qf82rxq0a7spc8gl76k8xixmbw36328q"))))
+                "1yx3gsivisf8ls43v0fgzy4n5q9625xrp9fr9cb5gp3h6k9cfpr4"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -24828,13 +24812,13 @@ project.")
 (define-public python-trio
   (package
     (name "python-trio")
-    (version "0.20.0")
+    (version "0.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "trio" version))
        (sha256
-        (base32 "0w30cwmdwfa8zq2agqv3h62jzwwsk7ms8f683ag8f3jx279m42k7"))))
+        (base32 "1kxa9v0cds0xnklvzppv4ix4xg81r73p5pm4qlvv2iqa832z2s6f"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -24860,7 +24844,8 @@ project.")
                          ;; Assertion errors.
                          " and not test_guest_mode_ki"
                          " and not test_run_in_trio_thread_ki"
-                         " and not test_simple_cancel_scope_usage_doesnt_create_cyclic_garbage"
+                         " and not test_simple_cancel_scope_usage_doesnt_create\
+_cyclic_garbage"
                          " and not test_nursery_cancel_doesnt_create_cyclic_garbage"
                          " and not test_cancel_scope_exit_doesnt_create_cyclic_garbage"
                          " and not test_locals_destroyed_promptly_on_cancel"
@@ -24890,6 +24875,8 @@ project.")
     (propagated-inputs
      (list python-async-generator
            python-attrs
+           python-cffi
+           python-exceptiongroup
            python-idna
            python-outcome
            python-sniffio
@@ -24906,22 +24893,15 @@ programs that do multiple things at the same time with parallelized I/O.")
 (define-public python-trio-typing
   (package
     (name "python-trio-typing")
-    (version "0.5.0")
+    (version "0.8.0")
     (source
      (origin
-      (method url-fetch)
-      (uri (pypi-uri "trio-typing" version))
-      (sha256
-       (base32 "1yvlj4vf3wyvp16dw6vyfm4i2idm8lvdc3fvjhi6mhm62zv7s07j"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "pytest" "-vv"))))))
-    (native-inputs
-     (list python-attrs python-pytest))
+       (method url-fetch)
+       (uri (pypi-uri "trio-typing" version))
+       (sha256
+        (base32 "15wa66cs165wawh4pi808ac43n67b8jqddi5ppdcbkj5gfi68hpi"))))
+    (build-system pyproject-build-system)
+    (native-inputs (list python-attrs python-pytest))
     (propagated-inputs
      (list python-mypy python-mypy-extensions python-trio
            python-typing-extensions))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 2e9cc3e..8cda634 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -337,13 +337,13 @@ system, and the core design of Django is reused in Grantlee.")
 (define-public qtbase-5
   (package
     (name "qtbase")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
               (method url-fetch)
               (uri (qt-urls name version))
               (sha256
                (base32
-                "1p2fa94m1y8qzhdfi2d7dck93qh1lgsinibwl1wy92bwmacwfhhc"))
+                "175ynjndpzsw69vnsq4swykn9f48568ww9b4z3yw7azkqwk13cdz"))
               ;; Use TZDIR to avoid depending on package "tzdata".
               (patches (search-patches "qtbase-use-TZDIR.patch"
                                        "qtbase-moc-ignore-gcc-macro.patch"
@@ -364,50 +364,50 @@ system, and the core design of Django is reused in Grantlee.")
            ;; Use which the package, not the function
            (@ (gnu packages base) which)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("cups" ,cups)
-       ("dbus" ,dbus)
-       ("double-conversion" ,double-conversion)
-       ("eudev" ,eudev)
-       ("expat" ,expat)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)                   ;for GTK theme support
-       ("harfbuzz" ,harfbuzz)
-       ("icu4c" ,icu4c)
-       ("libinput" ,libinput-minimal)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libmng" ,libmng)
-       ("libpng" ,libpng)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxcursor" ,libxcursor)
-       ("libxfixes" ,libxfixes)
-       ("libxi" ,libxi)
-       ("libxinerama" ,libxinerama)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxml2" ,libxml2)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("libxslt" ,libxslt)
-       ("libxtst" ,libxtst)
-       ("mtdev" ,mtdev)
-       ("mariadb-dev" ,mariadb "dev")
-       ("nss" ,nss)
-       ("openssl" ,openssl)
-       ("pcre2" ,pcre2)
-       ("postgresql" ,postgresql)
-       ("pulseaudio" ,pulseaudio)
-       ("sqlite" ,sqlite)
-       ("unixodbc" ,unixodbc)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-image" ,xcb-util-image)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xcb-util-renderutil" ,xcb-util-renderutil)
-       ("xcb-util-wm" ,xcb-util-wm)
-       ("xdg-utils" ,xdg-utils)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           cups
+           dbus
+           double-conversion
+           eudev
+           expat
+           fontconfig
+           freetype
+           glib
+           gtk+               ;for GTK theme support
+           harfbuzz
+           icu4c
+           libinput-minimal
+           libjpeg-turbo
+           libmng
+           libpng
+           libx11
+           libxcomposite
+           libxcursor
+           libxfixes
+           libxi
+           libxinerama
+           libxkbcommon
+           libxml2
+           libxrandr
+           libxrender
+           libxslt
+           libxtst
+           mtdev
+           `(,mariadb "dev")
+           nss
+           openssl
+           pcre2
+           postgresql
+           pulseaudio
+           sqlite
+           unixodbc
+           xcb-util
+           xcb-util-image
+           xcb-util-keysyms
+           xcb-util-renderutil
+           xcb-util-wm
+           xdg-utils
+           zlib))
     (native-inputs
      (list bison
            flex
@@ -772,6 +772,9 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                       ;; Actual   (dt5.offsetFromUtc()): 0
                       ;; Expected (46800)              : 46800
                       "tst_qdatetime"
+                      ;; The tst_QObjectRace::destroyRace is flaky (see:
+                      ;; https://bugreports.qt.io/browse/QTBUG-103489).
+                      "tst_qobjectrace"
                       ;; The 'tst_QSettings::fromFile' assumes the data
                       ;; location to be relative to the root directory and
                       ;; fails.
@@ -872,13 +875,13 @@ developers using C++ or QML, a CSS & JavaScript like language.")
   (package
     (inherit qtbase-5)
     (name "qt3d")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
               (method url-fetch)
               (uri (qt-urls name version))
               (sha256
                (base32
-                "1m3y7d58crn0qgfwkimxcggssn2pbs8nj5b9diwns6rwqg4aqk20"))))
+                "18hbv4l9w0czaxcch6af9130fgs4sf400xp0pfzl81c78fwrkfsb"))))
     (propagated-inputs `())
     (native-inputs (list perl))
     (inputs (list mesa qtbase-5 vulkan-headers zlib))
@@ -964,13 +967,13 @@ came with the @{qtgraphicaleffects} Qt 5 package.")
   (package
     (inherit qtbase-5)
     (name "qtsvg")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
               (method url-fetch)
               (uri (qt-urls name version))
               (sha256
                (base32
-                "0cdhmhxngv4y7kl5vbcii4l4anbz0hj7dvhlddy1agyl19j9xky4"))))
+                "0qnmcvp5jap4qq9w7xak66g6fsb48q1lg02rn4lycvnhgwzblbww"))))
     (propagated-inputs `())
     (native-inputs (list perl))
     (inputs
@@ -1063,13 +1066,13 @@ HostData=lib/qt5
 (define-public qtimageformats
   (package (inherit qtsvg-5)
     (name "qtimageformats")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
              (method url-fetch)
              (uri (qt-urls name version))
              (sha256
               (base32
-               "1xjb2z2h1ajw7z9cwq8djpdvjwalpnmirwcwrlbjqv5r4ghmi82a"))
+               "0c6fq9zcw5hbkiny56wx2fbm123x14l7habydv6zhvnhn3rhwi31"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -1090,13 +1093,13 @@ support for MNG, TGA, TIFF and WBMP image formats.")))
 (define-public qtx11extras
   (package (inherit qtsvg-5)
     (name "qtx11extras")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
              (method url-fetch)
              (uri (qt-urls name version))
              (sha256
               (base32
-               "0wxsrnnkkn68myy211rfz98brs7j3qmx3hmy097vh5avgsmw11bn"))))
+               "1gzmf0y2byzrgfbing7xk3cwlbk1cyjlhqjbfh8n37y09gg65maf"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1155,13 +1158,13 @@ XLSX document format.")
 (define-public qtxmlpatterns
   (package (inherit qtsvg-5)
     (name "qtxmlpatterns")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
              (method url-fetch)
              (uri (qt-urls name version))
              (sha256
               (base32
-               "065vj1gk5i4cg0f9spksyb9ps4px0vssx262y77aakvw408vfmq5"))))
+               "1inf7ar32a557faqpwdsmafhz1p6k8hywpw3wbsdjlj74dkgdq35"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:phases phases)
@@ -1181,38 +1184,35 @@ XML and custom data models.  It contains programs such as xmlpatterns and
 xmlpatternsvalidator.")))
 
 (define-public qtdeclarative-5
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtdeclarative")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0ji5131g7h2mrgxw1wxc5mcvmsn3fbw64j28gzpa25gv3vcnkhaw"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1kb8nj17vmnky0ayiwypim7kf6rmlmfcjf6gnrw8rydmp61w0vh2"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:tests? _ #f) #f)             ;TODO: Enable the tests
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'build 'fix-qt5core-install-prefix
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 ;; The Qt5Core install prefix is set to qtbase, but qmlcachegen
-                 ;; is provided by qtdeclarative-5.
-                 (substitute*
-                     "lib/cmake/Qt5QuickCompiler/Qt5QuickCompilerConfig.cmake"
-                   (("\\$\\{_qt5Core_install_prefix\\}") out)))))
-           ;; TODO: Add phase unconditionally.
-           ,@(if (target-riscv64?)
-               '((add-after 'unpack 'fix-linking-riscv64
-                   (lambda _
-                     (substitute* "src/qml/qml.pro"
-                       (("DEFINES \\+= QT_NO_FOREACH")
-                        (string-append
-                          "isEqual(QT_ARCH, \"riscv64\"): QMAKE_LIBS += -latomic\n\n"
-                          "DEFINES += QT_NO_FOREACH"))))))
-               '())))))
+        #~(modify-phases #$phases
+            (add-after 'build 'fix-qt5core-install-prefix
+              (lambda _
+                ;; The Qt5Core install prefix is set to qtbase, but qmlcachegen
+                ;; is provided by qtdeclarative-5.
+                (substitute*
+                    "lib/cmake/Qt5QuickCompiler/Qt5QuickCompilerConfig.cmake"
+                  (("\\$\\{_qt5Core_install_prefix\\}") #$output))))
+            (add-after 'unpack 'fix-linking-riscv64
+              (lambda _
+                (substitute* "src/qml/qml.pro"
+                  (("DEFINES \\+= QT_NO_FOREACH")
+                   (string-append
+                    "isEqual(QT_ARCH, \"riscv64\"): QMAKE_LIBS += -latomic\n\n"
+                    "DEFINES += QT_NO_FOREACH")))))))))
     (native-inputs
      (list perl
            pkg-config
@@ -1362,15 +1362,16 @@ integrate QML code with JavaScript and C++.")
     (license (package-license qtbase))))
 
 (define-public qtconnectivity
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtconnectivity")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0b2dnxw1rjbp1srhgns148cwl99f50mx29588dal3avv0f73s597"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1j6qgkg77ycwcjxnhh38i9np1z8pjsqrzvfk3zsyq07f6k563fnc"))))
     (native-inputs
      (list perl pkg-config qtdeclarative-5))
     (inputs
@@ -1382,13 +1383,13 @@ with Bluetooth and NFC.")))
 (define-public qtwebsockets-5
   (package (inherit qtsvg-5)
     (name "qtwebsockets")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
              (method url-fetch)
              (uri (qt-urls name version))
              (sha256
               (base32
-               "0f120rfqnmlffjhrm5jbpipk1qsbzp1a2v3q8gz94hz6n9dqpav6"))))
+               "12h520lpj2pljgkyq36p1509mw4pxgb76n30d32kg52crjsk34pa"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
@@ -1442,25 +1443,26 @@ consume data received from the server, or both.")
     (license (package-license qtbase))))
 
 (define-public qtsensors
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtsensors")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0zlhm4js02niibb23rw87wf4ik0gy4ai08fwprnwy7zf4rm1ss3d"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1fdpgbikvxjacyipcyac0czqhv96pvc75dl9cyafslws8m53fm56"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:parallel-tests? _ #f) #f) ; can lead to race condition
+       ((#:parallel-tests? _ #f) #f)    ; can lead to race condition
        ((#:phases phases)
         `(modify-phases ,phases
            (add-after 'unpack 'fix-tests
              (lambda _
                (substitute* "tests/auto/qsensorgestures_gestures/tst_sensorgestures_gestures.cpp"
-                 (("2000") "5000")                                      ;lengthen test timeout
-                 (("QTest::newRow(\"twist\") << \"twist\"") ""))))))))  ;failing test
+                 (("2000") "5000")      ;lengthen test timeout
+                 (("QTest::newRow(\"twist\") << \"twist\"") "")))))))) ;failing test
     (native-inputs
      (list perl qtdeclarative-5))
     (inputs (list qtbase-5))
@@ -1473,21 +1475,21 @@ recognition API for devices.")))
   (package
     (inherit qtsvg-5)
     (name "qtmultimedia")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0q76iy1frcgm85mid17lh4p6gnn04n19n6zklgpv4w3md1ng97xw"))
-             (modules '((guix build utils)))
-             (snippet
-              '(begin
-                 (delete-file-recursively
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1fz0ffpckvbg6qfhab2rrzfnvh4mlalqxcn0kbkd21mi44apjirk"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively
                    "examples/multimedia/spectrum/3rdparty")
-                 ;; We also prevent the spectrum example from being built.
-                 (substitute* "examples/multimedia/multimedia.pro"
-                   (("spectrum") "#"))))))
+                  ;; We also prevent the spectrum example from being built.
+                  (substitute* "examples/multimedia/multimedia.pro"
+                    (("spectrum") "#"))))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:phases phases)
@@ -1609,38 +1611,38 @@ set of plugins for interacting with pulseaudio and GStreamer.")
     (license (package-license qtbase))))
 
 (define-public qtwayland-5
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtwayland")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (patches (search-patches "qtwayland-gcc-11.patch"
-                                      "qtwayland-dont-recreate-callbacks.patch"
-                                      "qtwayland-cleanup-callbacks.patch"))
-             (sha256
-              (base32
-               "0yy8qf9kn15iqsxi2r7jbcsc0vsdyfz7bbxmfn4i9qmz1yvg0jgr"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (patches (search-patches "qtwayland-gcc-11.patch"
+                                       "qtwayland-dont-recreate-callbacks.patch"
+                                       "qtwayland-cleanup-callbacks.patch"))
+              (sha256
+               (base32
+                "0aa5jcvvap6qca6imdkhs1mhv5bnaxn466mmpl7x78jx1za7n3ps"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'disable-failing-tests
-             (lambda _
-               ;; FIXME: tst_seatv4::animatedCursor() fails for no good
-               ;; reason and breaks these two tests.
-               (substitute* "tests/auto/client/seatv4/tst_seatv4.cpp"
-                 (((string-append "QVERIFY\\(!cursorSurface\\(\\)->"
-                                  "m_waitingFrameCallbacks\\.empty\\(\\)\\);"))
-                  "")
-                 (("QTRY_COMPARE\\(bufferSpy\\.count\\(\\), 1\\);")
-                  ""))))
-           (add-before 'check 'set-test-environment
-             (lambda _
-               ;; Do not fail just because /etc/machine-id is missing.
-               (setenv "DBUS_FATAL_WARNINGS" "0")))))))
-    (native-inputs
-     (list glib perl pkg-config qtdeclarative-5))
+        #~(modify-phases #$phases
+            (add-after 'unpack 'disable-failing-tests
+              (lambda _
+                ;; FIXME: tst_seatv4::animatedCursor() fails for no good
+                ;; reason and breaks these two tests.
+                (substitute* "tests/auto/client/seatv4/tst_seatv4.cpp"
+                  (((string-append "QVERIFY\\(!cursorSurface\\(\\)->"
+                                   "m_waitingFrameCallbacks\\.empty\\(\\)\\);"))
+                   "")
+                  (("QTRY_COMPARE\\(bufferSpy\\.count\\(\\), 1\\);")
+                   ""))))
+            (add-before 'check 'set-test-environment
+              (lambda _
+                ;; Do not fail just because /etc/machine-id is missing.
+                (setenv "DBUS_FATAL_WARNINGS" "0")))))))
+    (native-inputs (list glib perl pkg-config qtdeclarative-5))
     (inputs
      (list fontconfig
            freetype
@@ -1709,75 +1711,75 @@ compositor libraries.")
     (license (package-license qtbase))))
 
 (define-public qtserialport
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtserialport")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0xg2djwhrj5jqamawlp75g70nmwbp2ph2hh1pm45s36jkxm0k7al"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "04i8pdyml1sw4dkk9vyw2xy5bz3fp6f90fws7ag5y8iizfgs5v2v"))))
     (native-inputs (list perl))
-    (inputs
-     (list qtbase-5 eudev))
+    (inputs (list qtbase-5 eudev))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'patch-dlopen-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "src/serialport/qtudev_p.h"
-               ;; Use the absolute paths for dynamically loaded libs,
-               ;; otherwise the lib will be searched in LD_LIBRARY_PATH which
-               ;; typically is not set in guix.
-               (("^\\s*(udevLibrary->setFileNameAndVersion\\(QStringLiteral\\(\")(udev\"\\),\\s*[0-9]+\\);)" _ a b)
-                (string-append a (assoc-ref inputs "eudev") "/lib/lib" b)))))))))
+        #~(modify-phases #$phases
+            (add-after 'unpack 'patch-dlopen-paths
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "src/serialport/qtudev_p.h"
+                  ;; Use the absolute paths for dynamically loaded libs,
+                  ;; otherwise the lib will be searched in LD_LIBRARY_PATH which
+                  ;; typically is not set in guix.
+                  (("setFileNameAndVersion\\(QStringLiteral\\(\"udev\")")
+                   (format #f "setFileNameAndVersion(QStringLiteral(~s))"
+                           (string-append #$(this-package-input "eudev")
+                                          "/lib/libudev"))))))))))
     (synopsis "Qt Serial Port module")
     (description "The Qt Serial Port module provides the library for
 interacting with serial ports from within Qt.")))
 
 (define-public qtserialbus
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtserialbus")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "180gm1jvqfn0h3251zafdd1wd3af00phwaa5qljsbrj6s6ywj79j"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "0ws3pjbp4g8f49k8q0qa5hgyisbyk3m7kl8pwzkfws048glvz570"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'patch-libsocketcan-reference
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let* ((libcansocket (assoc-ref inputs "libsocketcan"))
-                      (libcansocket.so (string-append libcansocket
-                                                      "/lib/libsocketcan.so")))
-                 (substitute* "src/plugins/canbus/socketcan/libsocketcan.cpp"
-                   (("QStringLiteral\\(\"socketcan\"\\)")
-                    (format #f "QStringLiteral(~s)" libcansocket.so))))))))))
-    (inputs
-     (list libsocketcan qtbase-5 qtserialport))
+        #~(modify-phases #$phases
+            (add-after 'unpack 'patch-libsocketcan-reference
+              (lambda* (#:key inputs #:allow-other-keys)
+                (substitute* "src/plugins/canbus/socketcan/libsocketcan.cpp"
+                  (("QStringLiteral\\(\"socketcan\"\\)")
+                   (format #f "QStringLiteral(~s)"
+                           (search-input-file inputs
+                                              "lib/libsocketcan.so"))))))))))
+    (inputs (list libsocketcan qtbase-5 qtserialport))
     (synopsis "Qt Serial Bus module")
     (description "The Qt Serial Bus API provides classes and functions to
 access the various industrial serial buses and protocols, such as CAN, ModBus,
 and others.")))
 
 (define-public qtwebchannel-5
   (package (inherit qtsvg-5)
     (name "qtwebchannel")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
              (method url-fetch)
              (uri (qt-urls name version))
              (sha256
               (base32
-               "1w8mcpdqlphgg3a6yfq18liwlj2nkwrafv0n80h242x5l2mk3ljf"))))
-    (native-inputs
-     (list perl qtdeclarative-5 qtwebsockets-5))
+               "1pfmy6fqis47awjb590r63y13vvsfm0fq70an3ylsknhyq3firgn"))))
+    (native-inputs (list perl qtdeclarative-5 qtwebsockets-5))
     (inputs (list qtbase-5))
     (synopsis "Web communication library for Qt")
     (description "The Qt WebChannel module enables peer-to-peer communication
@@ -1823,74 +1825,73 @@ application).")
     (license (package-license qtbase))))
 
 (define-public qtwebglplugin
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtwebglplugin")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "1m0p4ssykw07lbip2qyv6w34f8ng13bxb63j0w446f5w0492nn9f"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1gvzhgfn55kdp5g11fg5yja5xb6wghx5sfc8vfp8zzpxnak7pbn1"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'disable-network-tests
-             (lambda _ (substitute* "tests/plugins/platforms/platforms.pro"
-                         (("webgl") "# webgl"))))))))
+        #~(modify-phases #$phases
+            (add-after 'unpack 'disable-network-tests
+              (lambda _
+                (substitute* "tests/plugins/platforms/platforms.pro"
+                  (("webgl") "# webgl"))))))))
     (native-inputs '())
-    (inputs
-     (list mesa qtbase-5 qtdeclarative-5 qtwebsockets-5 zlib))
+    (inputs (list mesa qtbase-5 qtdeclarative-5 qtwebsockets-5 zlib))
     (synopsis "QPA plugin for running applications via a browser using
 streamed WebGL commands")
     (description "Qt back end that uses WebGL for rendering. It allows Qt
 applications (with some limitations) to run in a web browser that supports
 WebGL.  WebGL is a JavaScript API for rendering 2D and 3D graphics within any
 compatible web browser without the use of plug-ins.  The API is similar to
 OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
 
 (define-public qtwebview
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtwebview")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0arwaky3jy5ql3z4d8f7k7diidzb1kncdans7pn50hsa1bzacfal"))))
-    (native-inputs
-     (list perl))
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1b03dzlff840n2i53r105c7sv91ivwzxn7ldpgnhiyrhr897i9kj"))))
+    (native-inputs (list perl))
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Display web content in a QML application")
     (description "Qt WebView provides a way to display web content in a QML
 application without necessarily including a full web browser stack by using
 native APIs where it makes sense.")))
 
 (define-public qtlocation
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtlocation")
     (version "5.15.5")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0mlhhhcxx3gpr9kh04c6fljxcj50c2j21r0wb9f7d7nk4flip7b2"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "0mlhhhcxx3gpr9kh04c6fljxcj50c2j21r0wb9f7d7nk4flip7b2"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f)   ; TODO: Enable the tests
+       ((#:tests? _ #f) #f)             ; TODO: Enable the tests
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'check 'pre-check
-             (lambda _
-               (setenv "HOME" "/tmp")))))))
-    (native-inputs
-     (list perl qtdeclarative-5 qtquickcontrols-5 qtserialport))
-    (inputs
-     (list icu4c openssl qtbase-5 zlib))
+        #~(modify-phases #$phases
+            (add-before 'check 'pre-check
+              (lambda _
+                (setenv "HOME" "/tmp")))))))
+    (native-inputs (list perl qtdeclarative-5 qtquickcontrols-5 qtserialport))
+    (inputs (list icu4c openssl qtbase-5 zlib))
     (synopsis "Qt Location and Positioning modules")
     (description "The Qt Location module provides an interface for location,
 positioning and geolocation plugins.")))
@@ -1928,22 +1929,21 @@ plugin for Adobe After Effects.")
     (license (package-license qtbase))))
 
 (define-public qttools-5
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qttools")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0v7wkzq9i8w3qrw0z8al7lb6clr57lfisyb1fm9cnhi73fvph1vd"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1i79fwsn799x3n3jidp3f4gz9d5vi9gg6p8g8lbswb832gggigm3"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (native-inputs
-     (list perl qtdeclarative-5 vulkan-headers))
-    (inputs
-     (list mesa qtbase-5))
+       ((#:tests? _ #f) #f)))           ; TODO: Enable the tests
+    (native-inputs (list perl qtdeclarative-5 vulkan-headers))
+    (inputs (list mesa qtbase-5))
     (synopsis "Qt Tools and Designer modules")
     (description "The Qt Tools module provides a set of applications to browse
 the documentation, translate applications, generate help files and other stuff
@@ -2011,60 +2011,59 @@ the Qt community.")
     (license (list license:gpl3))))
 
 (define-public qtscript
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtscript")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "17yk0p8ci47xlfpllc17arlycng47wrnnskimskzz85bspabc8pm"))
-             (patches (search-patches "qtscript-disable-tests.patch"))))
-    (native-inputs
-     (list perl qttools-5))
-    (inputs
-     (list qtbase-5))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "0rjj1pn0fwdq0qz0nzisxza671ywfrq5cv6iplywfyflh7q4dmcs"))
+              (patches (search-patches "qtscript-disable-tests.patch"))))
+    (native-inputs (list perl qttools-5))
+    (inputs (list qtbase-5))
     (synopsis "Qt Script module")
     (description "Qt provides support for application scripting with ECMAScript.
 The following guides and references cover aspects of programming with
 ECMAScript and Qt.")))
 
 (define-public qtquickcontrols-5
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtquickcontrols")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0mjw25wcgd2bvjz9rr4qjydb423c63615rcx1vws4jmydqdihssr"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "0yp47bpkfckms76vw0hrwnzchy8iak23ih6w9pnwrnjkmbc65drc"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+       ((#:tests? _ #f) #f)))           ; TODO: Enable the tests
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Qt Quick Controls and other Quick modules")
     (description "The QtScript module provides classes for making Qt
 applications scriptable.  This module provides a set of extra components that
 can be used to build complete interfaces in Qt Quick.")))
 
 (define-public qtquickcontrols2-5
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtquickcontrols2")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "1cxg4ml07k1zcyi5m4lx06sz8f5l67isb5vhk7nakxm0wnn7p8y4"))))
-    (arguments
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "058dkj6272za47vnz3mxsmwsj85gxf6g0ski645fphk8s3jp2bk5"))))
+    (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+       ((#:tests? _ #f) #f)))           ; TODO: Enable the tests
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Qt Quick Controls 2 and other Quick 2 modules")
     (description "The Qt Quick Controls 2 module contains the Qt Labs Platform
 module that provides platform integration: native dialogs, menus and menu bars,
@@ -2078,40 +2077,40 @@ not available.")))
   (deprecated-package "qtquickcontrols2" qtdeclarative))
 
 (define-public qtgraphicaleffects
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtgraphicaleffects")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0xznn5zqp6xrqfgl54l8cig9asqf9m2hz0p3ga514rh8spmdazr3"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "0wypji8i19kjq18qd92z8kkd3fj2n0d5hgh6xiza96833afvibj9"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+       ((#:tests? _ #f) #f)))           ; TODO: Enable the tests
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Qt Graphical Effects module")
     (description "The Qt Graphical Effects module provides a set of QML types
 for adding visually impressive and configurable effects to user interfaces.
 Effects are visual items that can be added to Qt Quick user interface as UI
 components.  The API consists of over 20 effects provided as separate QML
 types.  The effects cover functional areas such as blending, masking, blurring,
 coloring, and many more.")))
 
 (define-public qtgamepad
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtgamepad")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0wa4d8f025hlp4bmdzdy5wcahm9wjg6bkwig8dpw9nrsj3idz5b0"))))
-    (native-inputs
-     (list perl pkg-config))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "0vgxprgk7lak209wsg2ljzfkpwgjzscpbxmj5fyvvwm2pbnpspvk"))))
+    (native-inputs (list perl pkg-config))
     (inputs
      (list fontconfig
            freetype
@@ -2127,27 +2126,26 @@ primary target audience are embedded devices with fullscreen user interfaces,
 and mobile applications targeting TV-like form factors.")))
 
 (define-public qtscxml
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtscxml")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0xf5mqsrw16h8xjglymgfc8qg2qa5bi4fgdl4j3dkhvvpr7vrphp"))
-             (modules '((guix build utils)))
-             (snippet
-              '(begin
-                 (delete-file-recursively "tests/3rdparty")
-                 ;; the scion test refers to the bundled 3rd party test code.
-                 (substitute* "tests/auto/auto.pro"
-                   (("scion") "#"))))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "17j6npvgr8q3lyrqmvfh1n47mkhfzk18r998hcjm2w75xj46km1n"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "tests/3rdparty")
+                  ;; the scion test refers to the bundled 3rd party test code.
+                  (substitute* "tests/auto/auto.pro"
+                    (("scion") "#"))))))
+    (arguments (substitute-keyword-arguments (package-arguments qtsvg-5)
+                 ((#:tests? _ #f) #f))) ; TODO: Enable the tests
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Qt SCXML module")
     (description "The Qt SCXML module provides functionality to create state
 machines from SCXML files.  This includes both dynamically creating state
@@ -2186,65 +2184,64 @@ information and perform area based monitoring.")
     (license (package-license qtbase))))
 
 (define-public qtpurchasing
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtpurchasing")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "04z6mwzn73gg56hgs7gividinfgndx4kmcnp7w6h3wamrdlkfdx7"))))
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "0bjky5ncg9yhz4a63g3jl1r5pa6i09f6g8wgzs591mhybrbmhcw8"))))
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Qt Purchasing module")
     (description "The Qt Purchasing module provides and in-app API for
 purchasing goods and services.")))
 
 (define-public qtcharts
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtcharts")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0y051i1837bfybkf8cm7cx8k5wjmbi47pxawaaz6wm0hd2z5b4qi"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1q11ank69l9qw3iks2svr0g2g6pzng9v8p87dpsmjs988f4ysmll"))))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg-5)
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'remove-failing-test
-             (lambda _
-               (substitute* "tests/auto/auto.pro"
-                 (("qml") "# qml")
-                 (("qml-qtquicktest") "# qml-qtquicktest"))))))))
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+        #~(modify-phases #$phases
+            (add-after 'unpack 'remove-failing-test
+              (lambda _
+                (substitute* "tests/auto/auto.pro"
+                  (("qml") "# qml")
+                  (("qml-qtquicktest") "# qml-qtquicktest"))))))))
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Qt Charts module")
     (description "The Qt Charts module provides a set of easy to use chart
 components.  It uses the Qt Graphics View Framework, therefore charts can be
 easily integrated to modern user interfaces.  Qt Charts can be used as QWidgets,
 QGraphicsWidget, or QML types. Users can easily create impressive graphs by
 selecting one of the charts themes.")
     (license license:gpl3)))
 
 (define-public qtdatavis3d
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtdatavis3d")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0sczwqlc36jdywf7bqxz0hm6mr7fn8p1fsnc33jliiqzn9yrg77x"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1mr2kdshahxrkjs9wlgpr59jbqvyvlax16rlnca4iq00w3v5hrdh"))))
+    (arguments (substitute-keyword-arguments (package-arguments qtsvg-5)
+                 ((#:tests? _ #f) #f))) ; TODO: Enable the tests
+    (inputs (list qtbase-5 qtdeclarative-5))
     (synopsis "Qt Data Visualization module")
     (description "The Qt Data Visualization module provides a way to visualize
 data in 3D as bar, scatter, and surface graphs. It is especially useful for
@@ -2256,15 +2253,14 @@ customized by using themes or by adding custom items and labels to them.")
 (define-public qtnetworkauth-5
   (package (inherit qtsvg-5)
     (name "qtnetworkauth")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
              (method url-fetch)
              (uri (qt-urls name version))
              (sha256
               (base32
-               "0c7mz715rlpg0cqgs6s0aszmslyamkhnpamc1iij6i571sj5j2f1"))))
-    (inputs
-     (list qtbase-5))
+               "0fsmpjwkzzy3281shld7gs1gj217smb1f8ai63gdvnkp0jb2fhc5"))))
+    (inputs (list qtbase-5))
     (synopsis "Qt Network Authorization module")
     (description "The Qt Network Authorization module provides an
 implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
@@ -2290,54 +2286,57 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt.")
     (license (package-license qtbase))))
 
 (define-public qtremoteobjects
-  (package (inherit qtsvg-5)
+  (package
     (name "qtremoteobjects")
-    (version "5.15.5")
+    (version "6.3.2")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "1m0xcqlbxsfn0cd4ajin1h3i4l51dajmkw91v0r4a61xi14i0kks"))))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "099b3vchi458i4fci9kfwan871jplqlk5l8q78mfnh33g80qnasi"))))
+    (build-system cmake-build-system)
     (arguments
-     (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-after 'unpack 'remove-failing-test
-             (lambda _
-               ;; This test can't find its imports.
-               (substitute* "tests/auto/qml/qml.pro"
-                 (("integration") "# integration")
-                 (("usertypes") "# usertypes"))
-               ;; disable failing tests: they need network
-               (substitute* "tests/auto/auto.pro"
-                 (("integration_multiprocess proxy_multiprocess integration_external restart")
-                   "integration_multiprocess"))))))))
-    (inputs
-     (list qtbase-5 qtdeclarative-5))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'set-display
+            (lambda _
+              ;; Make Qt render "offscreen", required for tests.
+              (setenv "QT_QPA_PLATFORM" "offscreen")))
+          (delete 'check)               ;move after the install phase
+          (add-after 'install 'check
+            (assoc-ref %standard-phases 'check))
+          (add-before 'check 'prepare-for-tests
+            (lambda _
+              (setenv "QML2_IMPORT_PATH"
+                      (string-append #$output "/lib/qt6/qml:"
+                                     (getenv "QML2_IMPORT_PATH"))))))))
+    (native-inputs (list perl vulkan-headers))
+    (inputs (list libxkbcommon qtbase qtdeclarative))
     (synopsis "Qt Remote Objects module")
     (description "The Qt Remote Objects module is an @dfn{inter-process
 communication} (IPC) module developed for Qt.  The idea is to extend existing
 Qt's functionalities to enable an easy exchange of information between
-processes or computers.")))
+processes or computers.")
+    (home-page (package-home-page qtbase))
+    (license (package-license qtbase))))
 
 (define-public qtspeech
-  (package (inherit qtsvg-5)
+  (package
+    (inherit qtsvg-5)
     (name "qtspeech")
-    (version "5.15.5")
+    (version "5.15.8")
     (source (origin
-             (method url-fetch)
-             (uri (qt-urls name version))
-             (sha256
-              (base32
-               "0xskp9dzjy5nqszygk8gwvjyiylgynx5sq3nk2vi3zwgfdh5jpm4"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments qtsvg-5)
-       ((#:tests? _ #f) #f))) ; TODO: Enable the tests
-    (inputs
-     (list qtbase-5))
-    (native-inputs
-     (list perl qtdeclarative-5 qtmultimedia-5 qtxmlpatterns))
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1q56lyj7s05sx52j5z6gcs000mni4c7mb7qyq4lfval7c06hw5p6"))))
+    (arguments (substitute-keyword-arguments (package-arguments qtsvg-5)
+                 ((#:tests? _ #f) #f))) ; TODO: Enable the tests
+    (inputs (list qtbase-5))
+    (native-inputs (list perl qtdeclarative-5 qtmultimedia-5 qtxmlpatterns))
     (synopsis "Qt Speech module")
     (description "The Qt Speech module enables a Qt application to support
 accessibility features such as text-to-speech, which is useful for end-users
@@ -2434,195 +2433,196 @@ using the Enchant spell-checking library.")
   (package
     (inherit qtsvg-5)
     (name "qtwebengine")
-    (version "5.15.5")
+    (version "5.15.8")
     (source
      (origin
        (method url-fetch)
        (uri (qt-urls name version))
        (sha256
         (base32
-         "0zahr9w6rqdxwh2whsgk3fhcszs7wa9j95lq4sqi8xzin2wcgl17"))
+         "1qv15g5anhlfsdwnjxy21vc3zxxm8149vysi774l93iab6mxqmjg"))
        (modules '((ice-9 ftw)
                   (ice-9 match)
                   (srfi srfi-1)
                   (srfi srfi-26)
                   (guix build utils)))
        (snippet
         #~(begin
-           (let ((preserved-third-party-files
-                  '("base/third_party/double_conversion"
-                    "base/third_party/cityhash"
-                    "base/third_party/cityhash_v103"
-                    "base/third_party/dynamic_annotations"
-                    "base/third_party/icu"
-                    "base/third_party/libevent"
-                    "base/third_party/nspr"
-                    "base/third_party/superfasthash"
-                    "base/third_party/symbolize"
-                    "base/third_party/xdg_mime"
-                    "base/third_party/xdg_user_dirs"
-                    "net/third_party/mozilla_security_manager"
-                    "net/third_party/nss"
-                    "net/third_party/quiche"
-                    "net/third_party/uri_template"
-                    "third_party/abseil-cpp"
-                    "third_party/angle"
-                    "third_party/angle/src/common/third_party/base"
-                    "third_party/angle/src/common/third_party/smhasher"
-                    "third_party/angle/src/common/third_party/xxhash"
-                    "third_party/angle/src/third_party/compiler"
-                    "third_party/axe-core"
-                    "third_party/blink"
-                    "third_party/boringssl"
-                    "third_party/boringssl/src/third_party/fiat"
-                    "third_party/breakpad"
-                    "third_party/brotli"
-                    "third_party/catapult/common/py_vulcanize/py_vulcanize"
-                    "third_party/catapult/common/py_vulcanize/third_party"
-                    "third_party/catapult/third_party/beautifulsoup4"
-                    "third_party/catapult/third_party/html5lib-python"
-                    "third_party/catapult/third_party/polymer/components"
-                    "third_party/catapult/tracing"
-                    "third_party/catapult/tracing/third_party"
-                    "third_party/ced"
-                    "third_party/cld_3"
-                    "third_party/closure_compiler"
-                    "third_party/crashpad"
-                    "third_party/crashpad/crashpad/third_party/lss"
-                    "third_party/crashpad/crashpad/third_party/zlib"
-                    "third_party/crc32c"
-                    "third_party/dav1d"
-                    "third_party/dawn"
-                    "third_party/devtools-frontend"
-                    "third_party/devtools-frontend/src/front_end/third_party"
-                    "third_party/devtools-frontend/src/third_party/typescript"
-                    "third_party/emoji-segmenter"
-                    "third_party/ffmpeg"
-                    "third_party/googletest"
-                    "third_party/harfbuzz-ng/utils"
-                    "third_party/hunspell"
-                    "third_party/iccjpeg"
-                    "third_party/icu"
-                    "third_party/inspector_protocol"
-                    "third_party/jinja2"
-                    "third_party/jsoncpp"
-                    "third_party/jstemplate"
-                    "third_party/khronos"
-                    "third_party/leveldatabase"
-                    "third_party/libaddressinput"
-                    "third_party/libavif"
-                    "third_party/libgifcodec"
-                    "third_party/libjingle_xmpp"
-                    "third_party/libjpeg_turbo"
-                    "third_party/libpng"
-                    "third_party/libsrtp"
-                    "third_party/libsync"
-                    "third_party/libudev"
-                    "third_party/libvpx"
-                    "third_party/libwebm"
-                    "third_party/libwebp"
-                    "third_party/libxml"
-                    "third_party/libxslt"
-                    "third_party/libyuv"
-                    "third_party/lottie"
-                    "third_party/lss"
-                    "third_party/mako"
-                    "third_party/markupsafe"
-                    "third_party/mesa_headers"
-                    "third_party/metrics_proto"
-                    "third_party/modp_b64"
-                    "third_party/nasm"
-                    "third_party/node"
-                    "third_party/one_euro_filter"
-                    "third_party/openh264/src/codec/api/svc"
-                    "third_party/opus"
-                    "third_party/ots"
-                    "third_party/pdfium"
-                    "third_party/pdfium/third_party/agg23"
-                    "third_party/pdfium/third_party/base"
-                    "third_party/pdfium/third_party/freetype"
-                    "third_party/pdfium/third_party/lcms"
-                    "third_party/pdfium/third_party/libopenjpeg20"
-                    "third_party/pdfium/third_party/skia_shared"
-                    "third_party/perfetto"
-                    "third_party/pffft"
-                    "third_party/ply"
-                    "third_party/polymer"
-                    "third_party/protobuf"
-                    "third_party/protobuf/third_party/six"
-                    "third_party/pyjson5"
-                    "third_party/re2"
-                    "third_party/rnnoise"
-                    "third_party/skia"
-                    "third_party/skia/include/third_party/skcms/skcms.h"
-                    "third_party/skia/include/third_party/vulkan"
-                    "third_party/skia/third_party/skcms"
-                    "third_party/smhasher"
-                    "third_party/snappy"
-                    "third_party/sqlite"
-                    "third_party/usb_ids"
-                    "third_party/usrsctp"
-                    "third_party/vulkan_memory_allocator"
-                    "third_party/web-animations-js"
-                    "third_party/webrtc"
-                    "third_party/webrtc/common_audio/third_party/ooura/fft_size_128"
-                    "third_party/webrtc/common_audio/third_party/ooura/fft_size_256"
-                    "third_party/webrtc/common_audio/third_party/spl_sqrt_floor"
-                    "third_party/webrtc/modules/third_party/fft"
-                    "third_party/webrtc/modules/third_party/g711"
-                    "third_party/webrtc/modules/third_party/g722"
-                    "third_party/webrtc/rtc_base/third_party/base64"
-                    "third_party/webrtc/rtc_base/third_party/sigslot"
-                    "third_party/webrtc_overrides"
-                    "third_party/widevine/cdm/widevine_cdm_common.h"
-                    "third_party/widevine/cdm/widevine_cdm_version.h"
-                    "third_party/woff2"
-                    "third_party/xcbproto"
-                    "third_party/zlib"
-                    "url/third_party/mozilla"
-                    "v8/src/third_party/utf8-decoder"
-                    "v8/src/third_party/valgrind"
-                    "v8/src/third_party/siphash"
-                    "v8/third_party/v8/builtins"
-                    "v8/third_party/inspector_protocol")))
+            (let ((preserved-third-party-files
+                   '("base/third_party/double_conversion"
+                     "base/third_party/cityhash"
+                     "base/third_party/cityhash_v103"
+                     "base/third_party/dynamic_annotations"
+                     "base/third_party/icu"
+                     "base/third_party/libevent"
+                     "base/third_party/nspr"
+                     "base/third_party/superfasthash"
+                     "base/third_party/symbolize"
+                     "base/third_party/xdg_mime"
+                     "base/third_party/xdg_user_dirs"
+                     "net/third_party/mozilla_security_manager"
+                     "net/third_party/nss"
+                     "net/third_party/quiche"
+                     "net/third_party/uri_template"
+                     "third_party/abseil-cpp"
+                     "third_party/angle"
+                     "third_party/angle/src/common/third_party/base"
+                     "third_party/angle/src/common/third_party/smhasher"
+                     "third_party/angle/src/common/third_party/xxhash"
+                     "third_party/angle/src/third_party/compiler"
+                     "third_party/axe-core"
+                     "third_party/blink"
+                     "third_party/boringssl"
+                     "third_party/boringssl/src/third_party/fiat"
+                     "third_party/breakpad"
+                     "third_party/brotli"
+                     "third_party/catapult/common/py_vulcanize/py_vulcanize"
+                     "third_party/catapult/common/py_vulcanize/third_party"
+                     "third_party/catapult/third_party/beautifulsoup4"
+                     "third_party/catapult/third_party/html5lib-python"
+                     "third_party/catapult/third_party/polymer/components"
+                     "third_party/catapult/tracing"
+                     "third_party/catapult/tracing/third_party"
+                     "third_party/ced"
+                     "third_party/cld_3"
+                     "third_party/closure_compiler"
+                     "third_party/crashpad"
+                     "third_party/crashpad/crashpad/third_party/lss"
+                     "third_party/crashpad/crashpad/third_party/zlib"
+                     "third_party/crc32c"
+                     "third_party/dav1d"
+                     "third_party/dawn"
+                     "third_party/devtools-frontend"
+                     "third_party/devtools-frontend/src/front_end/third_party"
+                     "third_party/devtools-frontend/src/third_party/typescript"
+                     "third_party/emoji-segmenter"
+                     "third_party/ffmpeg"
+                     "third_party/googletest"
+                     "third_party/harfbuzz-ng/utils"
+                     "third_party/hunspell"
+                     "third_party/iccjpeg"
+                     "third_party/icu"
+                     "third_party/inspector_protocol"
+                     "third_party/jinja2"
+                     "third_party/jsoncpp"
+                     "third_party/jstemplate"
+                     "third_party/khronos"
+                     "third_party/leveldatabase"
+                     "third_party/libaddressinput"
+                     "third_party/libavif"
+                     "third_party/libgifcodec"
+                     "third_party/libjingle_xmpp"
+                     "third_party/libjpeg_turbo"
+                     "third_party/libpng"
+                     "third_party/libsrtp"
+                     "third_party/libsync"
+                     "third_party/libudev"
+                     "third_party/libvpx"
+                     "third_party/libwebm"
+                     "third_party/libwebp"
+                     "third_party/libxml"
+                     "third_party/libxslt"
+                     "third_party/libyuv"
+                     "third_party/lottie"
+                     "third_party/lss"
+                     "third_party/mako"
+                     "third_party/markupsafe"
+                     "third_party/mesa_headers"
+                     "third_party/metrics_proto"
+                     "third_party/modp_b64"
+                     "third_party/nasm"
+                     "third_party/node"
+                     "third_party/one_euro_filter"
+                     "third_party/openh264/src/codec/api/svc"
+                     "third_party/opus"
+                     "third_party/ots"
+                     "third_party/pdfium"
+                     "third_party/pdfium/third_party/agg23"
+                     "third_party/pdfium/third_party/base"
+                     "third_party/pdfium/third_party/freetype"
+                     "third_party/pdfium/third_party/lcms"
+                     "third_party/pdfium/third_party/libopenjpeg20"
+                     "third_party/pdfium/third_party/skia_shared"
+                     "third_party/perfetto"
+                     "third_party/pffft"
+                     "third_party/ply"
+                     "third_party/polymer"
+                     "third_party/protobuf"
+                     "third_party/protobuf/third_party/six"
+                     "third_party/pyjson5"
+                     "third_party/re2"
+                     "third_party/rnnoise"
+                     "third_party/skia"
+                     "third_party/skia/include/third_party/skcms/skcms.h"
+                     "third_party/skia/include/third_party/vulkan"
+                     "third_party/skia/third_party/skcms"
+                     "third_party/smhasher"
+                     "third_party/snappy"
+                     "third_party/sqlite"
+                     "third_party/usb_ids"
+                     "third_party/usrsctp"
+                     "third_party/vulkan_memory_allocator"
+                     "third_party/web-animations-js"
+                     "third_party/webrtc"
+                     "third_party/webrtc/common_audio/third_party/ooura/fft_size_128"
+                     "third_party/webrtc/common_audio/third_party/ooura/fft_size_256"
+                     "third_party/webrtc/common_audio/third_party/spl_sqrt_floor"
+                     "third_party/webrtc/modules/third_party/fft"
+                     "third_party/webrtc/modules/third_party/g711"
+                     "third_party/webrtc/modules/third_party/g722"
+                     "third_party/webrtc/rtc_base/third_party/base64"
+                     "third_party/webrtc/rtc_base/third_party/sigslot"
+                     "third_party/webrtc_overrides"
+                     "third_party/widevine/cdm/widevine_cdm_common.h"
+                     "third_party/widevine/cdm/widevine_cdm_version.h"
+                     "third_party/woff2"
+                     "third_party/xcbproto"
+                     "third_party/zlib"
+                     "url/third_party/mozilla"
+                     "v8/src/third_party/utf8-decoder"
+                     "v8/src/third_party/valgrind"
+                     "v8/src/third_party/siphash"
+                     "v8/third_party/v8/builtins"
+                     "v8/third_party/inspector_protocol")))
 
-             (with-directory-excursion "src/3rdparty"
-               ;; TODO: Try removing "gn" too for future versions of qtwebengine-5.
-               (delete-file-recursively "ninja")
+              (with-directory-excursion "src/3rdparty"
+                ;; TODO: Try removing "gn" too for future versions of qtwebengine-5.
+                (delete-file-recursively "ninja")
 
-               (with-directory-excursion "chromium"
-                 ;; Delete bundled software and binaries that were not explicitly
-                 ;; preserved above.
-                 #$remove-third-party-files
+                (with-directory-excursion "chromium"
+                  ;; Delete bundled software and binaries that were not explicitly
+                  ;; preserved above.
+                  #$remove-third-party-files
 
-                 ;; Use relative header locations instead of hard coded ones.
-                 (substitute*
-                   "base/third_party/dynamic_annotations/dynamic_annotations.c"
-                   (("base/third_party/valgrind") "valgrind"))
-                 (substitute*
-                   '("third_party/breakpad/breakpad/src/common/linux/http_upload.cc"
-                     "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h")
-                   (("third_party/curl") "curl"))
-                 (substitute*
-                   '("components/viz/common/gpu/vulkan_context_provider.h"
-                     "components/viz/common/resources/resource_format_utils.h"
-                     "gpu/config/gpu_info_collector_win.cc"
-                     "gpu/config/gpu_util.cc"
-                     "gpu/config/vulkan_info.h")
-                   (("third_party/vulkan_headers/include/")
-                    ""))
+                  ;; Use relative header locations instead of hard coded ones.
+                  (substitute*
+                      "base/third_party/dynamic_annotations/dynamic_annotations.c"
+                    (("base/third_party/valgrind") "valgrind"))
+                  (substitute* '("third_party/breakpad/breakpad/src/common\
+/linux/http_upload.cc"
+                                 "third_party/breakpad/breakpad/src/common/\
+linux/libcurl_wrapper.h")
+                    (("third_party/curl") "curl"))
+                  (substitute*
+                      '("components/viz/common/gpu/vulkan_context_provider.h"
+                        "components/viz/common/resources/resource_format_utils.h"
+                        "gpu/config/gpu_info_collector_win.cc"
+                        "gpu/config/gpu_util.cc"
+                        "gpu/config/vulkan_info.h")
+                    (("third_party/vulkan_headers/include/")
+                     ""))
 
-                 ;; Replace Google Analytics bundle with an empty file and hope
-                 ;; no one notices.
-                 (mkdir-p "third_party/analytics")
-                 (call-with-output-file
-                     "third_party/analytics/google-analytics-bundle.js"
-                   (lambda (port)
-                     (const #t)))))
-             ;; Do not enable support for loading the Widevine DRM plugin.
-             (substitute* "src/buildtools/config/common.pri"
-               (("enable_widevine=true")
-                "enable_widevine=false")))))))
+                  ;; Replace Google Analytics bundle with an empty file and hope
+                  ;; no one notices.
+                  (mkdir-p "third_party/analytics")
+                  (call-with-output-file
+                      "third_party/analytics/google-analytics-bundle.js"
+                    (lambda (port)
+                      (const #t)))))
+              ;; Do not enable support for loading the Widevine DRM plugin.
+              (substitute* "src/buildtools/config/common.pri"
+                (("enable_widevine=true")
+                 "enable_widevine=false")))))))
     (build-system gnu-build-system)
     (native-inputs
      (list bison
@@ -2693,53 +2693,54 @@ using the Enchant spell-checking library.")
           (guix build utils)
           (ice-9 textual-ports)))
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'configure 'substitute-source
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (with-atomic-file-replacement
-                  "src/buildtools/config/linux.pri"
-                  (lambda (in out)
-                    (display (get-string-all in) out)
-                    (display "\ngn_args += use_system_openh264=true\n" out)
-                    (display "\ngn_args += link_pulseaudio = true\n" out)))
-                 ;; Qtwebengine is not installed into the same prefix as
-                 ;; qtbase.  Some qtbase QTLibraryInfo constants will not
-                 ;; work.  Replace with the full path to the qtwebengine-5
-                 ;; translations and locales in the store.
-                 (substitute* "src/core/web_engine_library_info.cpp"
-                   (("QLibraryInfo::location\\(QLibraryInfo::TranslationsPath\\)")
-                    (string-append "QLatin1String(\"" out "/share/qt5/translations\")"))
-                   (("QLibraryInfo::location\\(QLibraryInfo::DataPath\\)")
-                    (string-append "QLatin1String(\"" out "/share/qt5\")")))
-                 ;; Substitute full dynamic library path for nss.
-                 (substitute* "src/3rdparty/chromium/crypto/nss_util.cc"
-                   (("libnssckbi.so")
-                    (search-input-file inputs "lib/nss/libnssckbi.so")))
-                 ;; Substitute full dynamic library path for udev.
-                 (substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc"
-                   (("libudev.so.1")
-                    (search-input-file inputs "lib/libudev.so.1"))))))
-           (add-before 'configure 'set-env
-             (lambda _
-               ;; Avoids potential race conditions.
-               (setenv "PYTHONDONTWRITEBYTECODE" "1")
-               (setenv "NINJAFLAGS"
-                       (string-append "-k1" ;less verbose build output
-                                      ;; Respect the '--cores' option of 'guix build'.
-                                      " -j" (number->string (parallel-job-count))))))
-           (replace 'configure
-             (lambda _
-               ;; Valid QT_BUILD_PARTS variables are:
-               ;; libs tools tests examples demos docs translations
-               (invoke "qmake" "QT_BUILD_PARTS = libs tools" "--"
-                       "--webengine-printing-and-pdf=no"
-                       "--webengine-ffmpeg=system"
+        #~(modify-phases #$phases
+            (add-before 'configure 'substitute-source
+              (lambda* (#:key inputs #:allow-other-keys)
+                (with-atomic-file-replacement
+                 "src/buildtools/config/linux.pri"
+                 (lambda (in out)
+                   (display (get-string-all in) out)
+                   (display "\ngn_args += use_system_openh264=true\n" out)
+                   (display "\ngn_args += link_pulseaudio = true\n" out)))
+                ;; Qtwebengine is not installed into the same prefix as
+                ;; qtbase.  Some qtbase QTLibraryInfo constants will not
+                ;; work.  Replace with the full path to the qtwebengine-5
+                ;; translations and locales in the store.
+                (substitute* "src/core/web_engine_library_info.cpp"
+                  (("QLibraryInfo::location\\(QLibraryInfo::TranslationsPath\\)")
+                   (string-append "QLatin1String(\"" #$output
+                                  "/share/qt5/translations\")"))
+                  (("QLibraryInfo::location\\(QLibraryInfo::DataPath\\)")
+                   (string-append "QLatin1String(\"" #$output
+                                  "/share/qt5\")")))
+                ;; Substitute full dynamic library path for nss.
+                (substitute* "src/3rdparty/chromium/crypto/nss_util.cc"
+                  (("libnssckbi.so")
+                   (search-input-file inputs "lib/nss/libnssckbi.so")))
+                ;; Substitute full dynamic library path for udev.
+                (substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc"
+                  (("libudev.so.1")
+                   (search-input-file inputs "lib/libudev.so.1")))))
+            (add-before 'configure 'set-env
+              (lambda _
+                ;; Avoids potential race conditions.
+                (setenv "PYTHONDONTWRITEBYTECODE" "1")
+                (setenv "NINJAFLAGS"
+                        (string-append "-k1" ;less verbose build output
+                                       ;; Respect the '--cores' option of 'guix build'.
+                                       " -j" (number->string (parallel-job-count))))))
+            (replace 'configure
+              (lambda _
+                ;; Valid QT_BUILD_PARTS variables are:
+                ;; libs tools tests examples demos docs translations
+                (invoke "qmake" "QT_BUILD_PARTS = libs tools" "--"
+                        "--webengine-printing-and-pdf=no"
+                        "--webengine-ffmpeg=system"
                        ;; FIXME: Building qtwebengine-5 5.12.2 with
                        ;; icu4c >= 68 fails.
                        ;;"--webengine-icu=system"
-                       "--webengine-pepper-plugins=no"
-                       "-webengine-proprietary-codecs")))))
+                        "--webengine-pepper-plugins=no"
+                        "-webengine-proprietary-codecs")))))
        ;; Tests are disabled due to "Could not find QtWebEngineProcess error"
        ;; It's possible this can be fixed by setting QTWEBENGINEPROCESS_PATH
        ;; before running tests.
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index c589f95..8192aef 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2022 Sheng Yang <[email-masked]>
 ;;; Copyright © 2022 Greg Hogan <[email-masked]>
 ;;; Copyright © 2022 Ryan Tolboom <[email-masked]>
+;;; Copyright © 2023 Sharlatan Hellseher <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1591,7 +1592,6 @@ focused on DXing and being shaped by community of DXers.JTDX")
 
 (define-public js8call
   (package
-    (inherit wsjtx)
     (name "js8call")
     (version "2.2.0")
     (source
@@ -1603,49 +1603,63 @@ focused on DXing and being shaped by community of DXers.JTDX")
         (base32 "149sjwc4zg6ckgq26af93p4fxappa4k9dh7rdy67g8ajfjad4cd8"))
        (modules '((guix build utils)))
        (snippet
-        '(begin
-           ;; Delete bundled boost to use the shared one.
-           (delete-file-recursively "boost")
-           #t))))
+        #~(begin
+            ;; Delete bundled boost to use the shared one.
+            (delete-file-recursively "boost")))))
     (build-system qt-build-system)
-    (native-inputs
-     (list asciidoc gfortran pkg-config qttools-5 ruby-asciidoctor))
-    (inputs
-     `(("boost" ,boost)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("hamlib" ,wsjtx-hamlib)
-       ("libusb" ,libusb)
-       ("qtbase" ,qtbase-5)
-       ("qtmultimedia-5" ,qtmultimedia-5)
-       ("qtserialport" ,qtserialport)))
     (arguments
-     `(#:tests? #f ; No test suite
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("DESTINATION /usr/share")
-                (string-append "DESTINATION "
-                               (assoc-ref outputs "out")
-                               "/share")))))
-         (add-after 'unpack 'fix-hamlib
-           (lambda _
-             (substitute* "CMake/Modules/Findhamlib.cmake"
-               (("set \\(ENV\\{PKG_CONFIG_PATH\\}.*\\)")
-                "set (__pc_path $ENV{PKG_CONFIG_PATH})
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-paths
+            (lambda _
+              ;; XXX: How to get the /tmp/<build-name>.drv-<num> path? Use
+              ;; output path for after install check phase instead.
+              (substitute* "media/tests/test"
+                (("~/js8call-prefix/build/js8")
+                 (string-append #$output "/bin/js8"))
+                (("/opt/js8call/bin/js8")
+                 (string-append #$output "/bin/js8")))
+              (substitute* "CMakeLists.txt"
+                (("DESTINATION /usr/share")
+                 (string-append "DESTINATION " #$output "/share")))))
+          (add-after 'unpack 'fix-hamlib
+            (lambda _
+              (substitute* "CMake/Modules/Findhamlib.cmake"
+                (("set \\(ENV\\{PKG_CONFIG_PATH\\}.*\\)")
+                 "set (__pc_path $ENV{PKG_CONFIG_PATH})
   list (APPEND __pc_path \"${__hamlib_pc_path}\")
   set (ENV{PKG_CONFIG_PATH} \"${__pc_path}\")"))
-             (substitute* "HamlibTransceiver.hpp"
-               (("#ifdef JS8_USE_LEGACY_HAMLIB")
-                "#if 1")))))))
+              (substitute* "HamlibTransceiver.hpp"
+                (("#ifdef JS8_USE_LEGACY_HAMLIB")
+                 "#if 1"))))
+          (delete 'check)
+          (add-after 'install 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (with-directory-excursion "../js8call/media/tests"
+                  (invoke "./test"))))))))
+    (native-inputs
+     (list asciidoc
+           gfortran
+           pkg-config
+           qttools-5
+           ruby-asciidoctor))
+    (inputs
+     (list boost
+           fftw
+           fftwf
+           libusb
+           qtbase-5
+           qtmultimedia-5
+           qtserialport
+           wsjtx-hamlib))
+    (home-page "http://js8call.com/")
     (synopsis "Weak-signal ham radio communication program")
     (description
      "JS8Call is a software using the JS8 digital mode (a derivative of the FT8
 mode) providing weak signal keyboard to keyboard messaging to amateur radio
 operators.")
-    (home-page "http://js8call.com/")
     (license license:gpl3)))
 
 (define-public xnec2c
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index c830620..b1abb65 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -81,6 +81,12 @@
                  "")
                 ((".*behaviors/encoded_key_cache_behavior.*")
                  ""))
+              (when #$(target-x86-32?)
+                ;; This test fails on i686 (see:
+                ;; https://github.com/rails/rails/issues/47832).
+                (substitute* "test/core_ext/duration_test.rb"
+                  (("def test_iso8601_output_and_reparsing.*" all)
+                   (string-append all "    skip('fails on i686')\n"))))
               (delete-file "test/evented_file_update_checker_test.rb")
               ;; These tests require cache_store_behavior, disabled above.
               (delete-file "test/cache/stores/file_store_test.rb")
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 6c212b9..834c0df 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6243,8 +6243,9 @@ to reproduce user environments.")
       #~(modify-phases %standard-phases
           (add-after 'install 'delete-mkmf.log
             (lambda _
-              ;; This build log captures non-deterministic file names (see:
-              ;; https://github.com/sparklemotion/nokogiri/issues/2755).
+              ;; Rubygems installs build log files that embed volatile file
+              ;; names (see:
+              ;; https://github.com/rubygems/rubygems/issues/6259).
               (for-each delete-file (find-files #$output "^mkmf\\.log$")))))))
     (native-inputs (list ruby-hoe))
     (inputs (list zlib libxml2 libxslt))
@@ -7818,10 +7819,8 @@ alternative to Marshal for Object serialization.")
                              (string-append (getenv "GEM_PATH") ":" new-gem))
                      (when tests?
                        (invoke "rspec"))))))))
-    (native-inputs
-     (list ruby-rake-compiler ruby-hoe ruby-rspec))
-    (inputs
-     (list postgresql))
+    (native-inputs (list ruby-rake-compiler ruby-hoe ruby-rspec))
+    (inputs (list postgresql))
     (synopsis "Ruby interface to PostgreSQL")
     (description "Pg is the Ruby interface to the PostgreSQL RDBMS.  It works
 with PostgreSQL 9.3 and later.")
@@ -11526,17 +11525,17 @@ part of the Prawn PDF generator.")
 (define-public ruby-puma
   (package
     (name "ruby-puma")
-    (version "6.1.1")
+    (version "6.2.0")
     (source
      (origin
        (method git-fetch)               ;for tests
        (uri (git-reference
              (url "https://github.com/puma/puma")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0v4nn3z0bj0ry0gpx1hsf5mzkinsx9sv716j4jf2nb1x6hcwv993"))))
+         "0d71h5ggvfgnxq9msd1hmcz3s8mspzf7kqas1hzr0w9pfafddyv3"))))
     (build-system ruby-build-system)
     (arguments
      (list
@@ -11572,6 +11571,12 @@ part of the Prawn PDF generator.")
             (lambda* (#:key tests? #:allow-other-keys)
               (when tests?
                 (invoke "bundle" "exec" "rake" "test"))))
+          (add-after 'install 'delete-mkmf.log
+            (lambda _
+              ;; Rubygems installs build log files that embed volatile file
+              ;; names (see:
+              ;; https://github.com/rubygems/rubygems/issues/6259).
+              (for-each delete-file (find-files #$output "^mkmf\\.log$"))))
           (add-before 'check 'disable-problematic-tests
             (lambda _
               (let-syntax ((skip-tests
@@ -11594,6 +11599,7 @@ part of the Prawn PDF generator.")
                             "test_off_tls1_2")
                 (skip-tests "test/test_integration_cluster.rb"
                             "test_fork_worker_on_refork"
+                            "test_hot_restart_does_not_drop_connections"
                             "test_culling_strategy_oldest_fork_worker"
                             "test_usr1_fork_worker")
                 (skip-tests "test/test_integration_pumactl.rb"
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 73ed31c..ba32757 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2021 Sharlatan Hellseher <[email-masked]>
 ;;; Copyright © 2021, 2022 Zheng Junjie <[email-masked]>
 ;;; Copyright © 2021 Alexandru-Sergiu Marton <[email-masked]>
-;;; Copyright © 2021 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021, 2022 Petr Hodina <[email-masked]>
 ;;; Copyright © 2021 jgart <[email-masked]>
 ;;; Copyright © 2021 Nicolas Graves <[email-masked]>
@@ -1075,6 +1075,19 @@ rebase.")
               (base32
                "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))
 
+(define-public rust-cbindgen-0.20
+  (package
+    (inherit rust-cbindgen-0.24)
+    (name "rust-cbindgen")
+    (version "0.20.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cbindgen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1p67vvjkxh07yfizfkvm6bjlv2bywrnl57hshcsz9h2x2qxrgqsi"))))))
+
 (define-public rust-cbindgen-0.19
   (package
     (inherit rust-cbindgen)
@@ -1823,24 +1836,25 @@ language.  It is a part of a larger rls-2.0 effort to create excellent IDE
 support for Rust.")
     (license (list license:expat license:asl2.0))))
 
+;;; Note: keep in sync with our current Rust/Cargo version.
 (define-public rust-cargo-c
   (package
     (name "rust-cargo-c")
-    (version "0.8.1+cargo-0.53")
+    (version "0.9.8+cargo-0.60")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "cargo-c" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0fwdxhdj2963xr6xfqr56i7hikhsdv562vgxq2dj3h2mi3dil1k6"))))
+          "1zdzs3drjr9p6chg32inyi05rfv1c12nkk4bi7qpha12m6rsn26d"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cbindgen" ,rust-cbindgen-0.19)
-        ("rust-cargo" ,rust-cargo-0.53) ;
+       (("rust-cbindgen" ,rust-cbindgen-0.20)
+        ("rust-cargo" ,rust-cargo-0.60)
         ("rust-anyhow" ,rust-anyhow-1)
         ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4)
         ("rust-structopt" ,rust-structopt-0.3)
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index b37ab08..a373f20 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2019 Kei Kebreau <[email-masked]>
 ;;; Copyright © 2019, 2020 Nicolas Goaziou <[email-masked]>
-;;; Copyright © 2019 Marius Bakke <[email-masked]>
+;;; Copyright © 2019, 2022 Marius Bakke <[email-masked]>
 ;;; Copyright © 2019 Pierre Neidhardt <[email-masked]>
 ;;; Copyright © 2020 Timotej Lazar <[email-masked]>
 ;;; Copyright © 2020 Oleg Pykhalov <[email-masked]>
@@ -115,15 +115,15 @@ joystick, and graphics hardware.")
   (package
     (inherit sdl)
     (name "sdl2")
-    (version "2.24.0")
+    (version "2.26.2")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://libsdl.org/release/SDL2-"
                               version ".tar.gz"))
               (sha256
                (base32
-                "15vd9najhjh6s9z9hhx7zp51iby690a1g3h7kcwjvyb82x5w7r4i"))))
+                "1q4r1camsr17mnpv00d6h3qy93b481rp68r6fbxbszq3vv1rplwm"))))
     (arguments
      (substitute-keyword-arguments (package-arguments sdl)
        ((#:configure-flags flags)
@@ -468,22 +468,23 @@ directory.")
 (define-public sdl2-image
   (package (inherit sdl-image)
     (name "sdl2-image")
-    (version "2.0.5")
+    (version "2.6.2")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "https://www.libsdl.org/projects/SDL_image/release/"
                        "SDL2_image-" version ".tar.gz"))
        (sha256
-        (base32 "1l0864kas9cwpp2d32yxl81g98lx40dhbdp03dz7sbv84vhgdmdx"))))
+        (base32 "0xs7h5cp0sz082rn1bqjqbrgwjhwcskz9i6ikiisq2yhv2s5yda8"))))
     (propagated-inputs
-     (propagated-inputs-with-sdl2 sdl-image))))
+     (propagated-inputs-with-sdl2 sdl-image))
+    (properties '((upstream-name . "SDL2_image")))))
 
 (define-public sdl2-mixer
   (package (inherit sdl-mixer)
     (name "sdl2-mixer")
-    (version "2.0.4")
+    (version "2.6.2")
     (source
      (origin
        (method url-fetch)
@@ -496,63 +497,74 @@ directory.")
                    (delete-file-recursively "external")
                    #t))
        (sha256
-        (base32 "0694vsz5bjkcdgfdra6x9fq8vpzrl8m6q96gh58df7065hw5mkxl"))))
+        (base32 "0wd35a9fcj1bv534k9cr4jdk076dpiqq0ayk6cybmv3d6q8aiplc"))))
     (arguments
-      (substitute-keyword-arguments (package-arguments sdl-mixer)
-         ((#:configure-flags flags)
-          `(cons*
-            "--disable-music-opus-shared"
-            ;; These options were renamed in SDL2 mixer. Keeping the inherited
-            ;; variants produces a harmless warning.
-            "--disable-music-mod-modplug-shared"
-            "--disable-music-midi-fluidsynth-shared"
-            ,flags))))
-    (inputs
-     (modify-inputs (package-inputs sdl-mixer)
-       (delete "libmikmod")
-       (prepend opusfile
-                ;; The default MOD library changed in SDL2 mixer.
-                libmodplug)))
+     (list #:tests? #f                     ;no tests
+           #:configure-flags
+           #~'(;; Prefer system libraries to bundled codecs.
+               "--enable-music-flac-libflac"
+               "--enable-music-midi-fluidsynth"
+               "--enable-music-mod-modplug"
+               "--enable-music-mp3-mpg123"
+               "--enable-music-ogg-vorbis"
+               "--enable-music-opus"
+               ;; Link the libraries instead of dlopening them.
+               "--enable-music-flac-libflac-shared=no"
+               "--enable-music-midi-fluidsynth-shared=no"
+               "--enable-music-mod-modplug-shared=no"
+               "--enable-music-mp3-mpg123-shared=no"
+               "--enable-music-ogg-vorbis-shared=no"
+               "--enable-music-opus-shared=no")))
     (native-inputs
-     `(("pkgconfig" ,pkg-config))) ; Needed to find the opus library.
+     (list pkg-config))
+    (inputs '())
     (propagated-inputs
-     (propagated-inputs-with-sdl2 sdl-mixer))))
+     (modify-inputs (propagated-inputs-with-sdl2 sdl-mixer)
+       ;; In Requires.private of SDL2_mixer.pc.
+       (append flac fluidsynth libmodplug libvorbis mpg123 opusfile)))
+    (properties '((upstream-name . "SDL2_mixer")))))
 
 (define-public sdl2-net
   (package (inherit sdl-net)
     (name "sdl2-net")
-    (version "2.0.1")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "http://www.libsdl.org/projects/SDL_net/release/"
                        "SDL2_net-" version ".tar.gz"))
        (sha256
         (base32
-         "08cxc1bicmyk89kiks7izw1rlx5ng5n6xpy8fy0zxni3b9z8mkhm"))))
+         "1svzhpf7k48jfga8ph127l99lwpgs5g5isgl9ybp2qiii0cqjjjf"))))
     (propagated-inputs
-     (propagated-inputs-with-sdl2 sdl-net))))
+     (propagated-inputs-with-sdl2 sdl-net))
+    (properties '((upstream-name . "SDL2_net")))))
 
 (define-public sdl2-ttf
   (package (inherit sdl-ttf)
     (name "sdl2-ttf")
-    (version "2.0.15")
+    (version "2.20.1")
     (source (origin
              (method url-fetch)
              (uri
               (string-append "https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-"
                              version ".tar.gz"))
              (modules '((guix build utils)))
-             (snippet (begin
-                        ;; Remove bundled libraries.
-                        '(delete-file-recursively "external")
-                        #t))
+             (snippet
+              ;; Remove bundled libraries.
+              '(delete-file-recursively "external"))
              (sha256
               (base32
-               "0cyd48dipc0m399qy8s03lci8b0bpiy8xlkvrm2ia7wcv0dfpv59"))))
+               "0mqcgpcvzp927xv1gs51f2wqly9k9f8nxfxi69lxlfncyd8svkbq"))))
+    (arguments
+     (list #:configure-flags #~'("--enable-freetype-builtin=no"
+                                 "--enable-harfbuzz-builtin=no")))
     (propagated-inputs
-     (propagated-inputs-with-sdl2 sdl-ttf))))
+     (modify-inputs (propagated-inputs-with-sdl2 sdl-ttf)
+       ;; In Requires.private of SDL2_ttf.pc.
+       (prepend harfbuzz freetype)))
+    (properties '((upstream-name . "SDL2_ttf")))))
 
 (define-public guile-sdl
   (package
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index addf439..40633b7 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -804,18 +804,27 @@ scientific documentation.")
 (define-public python-breathe
   (package
     (name "python-breathe")
-    (version "4.34.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "breathe" version))
-       (sha256
-        (base32
-         "18fvphs1cb2cns9q82195fx7lmlwfikzwa10cczavpaax2jnh1xc"))))
+    (version "4.35.0")
+    (source (origin
+              (method git-fetch) ;git repo has tests
+              (uri (git-reference
+                    (url "https://github.com/breathe-doc/breathe")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1hlcrhr533yjkz9ds83xnmn8h6z3r6vfzz7qrpy14n9j4ysyz59c"))))
     (build-system python-build-system)
-    (propagated-inputs
-     (list python-docutils python-sphinx))
-    (home-page "https://github.com/michaeljones/breathe")
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (with-directory-excursion "tests"
+                                (invoke "python" "-m" "pytest" "-v"))))))))
+    (native-inputs (list python-pytest))
+    (propagated-inputs (list python-docutils python-sphinx))
+    (home-page "https://www.breathe-doc.org")
     (synopsis "ReStructuredText and Sphinx bridge to Doxygen")
     (description "This package is an extension to reStructuredText and Sphinx
 to be able to read and render the Doxygen xml output.")
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index 769cc85..55c9d87 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2022 Efraim Flashner <[email-masked]>
+;;; Copyright © 2016, 2017, 2019-2023 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2020 Vinicius Monego <[email-masked]>
 ;;; Copyright © 2021 Felix Gruber <[email-masked]>
@@ -223,14 +223,14 @@ cards.")
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.29")
+    (version "2.30.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
-        (base32 "0szx4pivkaja8v399m6v7ycp1xprm4cz7n5z929g4j191hg81f8q"))))
+        (base32 "0bv0al3inay6jsggaz2zja4j9jp1ffn8bp4i4jr8wd1c9asgsgs1"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 81621e9..c921507 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2020 Brett Gilio <[email-masked]>
 ;;; Copyright © 2020, 2022 Michael Rohleder <[email-masked]>
 ;;; Copyright © 2020 Raghav Gururajan <[email-masked]>
-;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2020 Vincent Legoll <[email-masked]>
 ;;; Copyright © 2021 LibreMiami <[email-masked]>
 ;;; Copyright © 2021 Sarah Morgensen <[email-masked]>
@@ -729,17 +729,17 @@ your calls and messages.")
 (define-public pjproject
   (package
     (name "pjproject")
-    (version "2.12.1")
+    (version "2.13")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/pjsip/pjproject")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0xrj4sznbaip22y9hclff6y81l285bzkkj1smzifskpk3kiwp00w"))
+         "0ld0adp9y2ydnz2ldwdzig3hpk4ayx1va6aqc3nja8zfdnd36fyb"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -820,7 +820,10 @@ your calls and messages.")
                  "#define INCLUDE_TCP_TEST 0\n")
                 ;; The TSX tests takes a very long time to run; skip them.
                 (("#define INCLUDE_TSX_GROUP.*")
-                 "#define INCLUDE_TSX_GROUP 0\n"))
+                 "#define INCLUDE_TSX_GROUP 0\n")
+                ;; The resolve test requires a working domain name resolver.
+                (("#define INCLUDE_RESOLVE_TEST.*")
+                 "#define INCLUDE_RESOLVE_TEST 0\n"))
               (substitute* "pjsip/src/test/dns_test.c"
                 ;; The round_robin_test fails non-deterministically (depending
                 ;; on load); skip it (see:
diff --git a/gnu/packages/toolkits.scm b/gnu/packages/toolkits.scm
index 3030e3a..aee6c22 100644
--- a/gnu/packages/toolkits.scm
+++ b/gnu/packages/toolkits.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2022 John Kehayias <[email-masked]>
 ;;;
@@ -32,16 +32,16 @@
 (define-public imgui
   (package
     (name "imgui")
-    (version "1.88")
+    (version "1.89.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/ocornut/imgui")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "13cw4hx55y5z678r558hv7znfz666wh0w849c5padnj4nkpbihdi"))
+                "1j79gsg9i969slygrwm0dp5mkzagglawxxagjpi3009wyp6lj6l8"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove bundled fonts.
@@ -66,7 +66,12 @@
           (replace 'build
             (lambda* (#:key inputs #:allow-other-keys)
               ;; Build main library.
-              (apply invoke #$(cc-for-target) "-I" (getcwd)
+              (apply invoke #$(cc-for-target)
+                     ;; This option is necessary at least for OpenBoardView,
+                     ;; otherwise it would fail with the "Too many vertices in
+                     ;; ImDrawList using 16-bit indices".
+                     "-DImDrawIdx=unsigned int"
+                     "-I" (getcwd)
                      "-I" (search-input-directory inputs "include/freetype2")
                      "-g" "-O2" "-fPIC" "-shared"
                      "-lGL" "-lSDL2" "-lglfw"
@@ -77,39 +82,42 @@
                      "imgui_widgets.cpp"
                      ;; Include the supported backends.
                      "backends/imgui_impl_glfw.cpp"
-                     "backends/imgui_impl_sdl.cpp"
+                     (if (file-exists? "backends/imgui_impl_sdl2.cpp")
+                         "backends/imgui_impl_sdl2.cpp"
+                         "backends/imgui_impl_sdl.cpp")
                      "backends/imgui_impl_opengl2.cpp"
                      "backends/imgui_impl_opengl3.cpp"
                      ;; Include wrappers for C++ standard library (STL) and
                      ;; fontconfig.
                      (find-files "misc" "\\.cpp$"))))
           (replace 'install
-            (lambda* (#:key outputs #:allow-other-keys)
-              (let* ((out (assoc-ref outputs "out"))
-                     (doc (assoc-ref outputs "doc"))
-                     (header? (cut string-suffix? ".h" <>))
+            (lambda _
+              (let* ((header? (cut string-suffix? ".h" <>))
                      (imgui-headers (scandir "." header?))
                      (backend-headers (find-files
                                        "backends"
                                        "(glfw|opengl|sdl|vulkan).*\\.h$"))
                      (misc-headers (find-files "misc" "\\.h$")))
-                (install-file "libimgui.so" (string-append out "/lib"))
+                (install-file "libimgui.so" (string-append #$output "/lib"))
                 ;; Install headers.
                 (for-each (lambda (f)
-                            (install-file f (string-append out "/include/imgui")))
+                            (install-file f (string-append #$output
+                                                           "/include/imgui")))
                           imgui-headers)
                 (for-each (lambda (f)
                             (install-file f (string-append
-                                             out "/include/imgui/backends")))
+                                             #$output
+                                             "/include/imgui/backends")))
                           backend-headers)
                 (for-each (lambda (f)
-                            (install-file f (string-append
-                                             out "/include/imgui/" (dirname f))))
+                            (install-file f (string-append #$output
+                                                           "/include/imgui/"
+                                                           (dirname f))))
                           misc-headers)
                 ;; Install examples.
-                (copy-recursively
-                 "examples" (string-append
-                             doc "/share/imgui/examples"))))))))
+                (copy-recursively "examples"
+                                  (string-append #$output:doc
+                                                 "/share/imgui/examples"))))))))
     (inputs (list fontconfig glfw mesa sdl2))
     (home-page "https://github.com/ocornut/imgui")
     (synopsis "Immediate-mode C++ GUI library with minimal dependencies")
@@ -126,6 +134,22 @@ applications, full-screen applications, and embedded platforms without
 standard operating system features.")
     (license license:expat)))
 
+(define-public imgui-1.87
+  (package
+    (inherit imgui)
+    (name "imgui")
+    (version "1.87")
+    (source (origin
+              (inherit (package-source imgui))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ocornut/imgui")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10qil22s5qak3as41787iz273sibpq1bq66bakgn7yvhj5fym6hz"))))))
+
 (define-public imgui-1.86
   (package
     (inherit imgui)
diff --git a/gnu/packages/unicode.scm b/gnu/packages/unicode.scm
index afb9546..23f08a2 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -77,14 +77,14 @@ renderer.")
 (define-public ucd
   (package
     (name "ucd")
-    (version "14.0.0")
+    (version "15.0.0")
     (source
      (origin
        (method url-fetch/zipbomb)
        (uri (string-append "https://www.unicode.org/Public/zipped/" version
                            "/UCD.zip"))
        (sha256
-        (base32 "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))
+        (base32 "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))
     (build-system copy-build-system)
     (arguments
      '(#:install-plan
@@ -97,20 +97,6 @@ files listing Unicode character properties and related data.  It also includes
 test data for conformance to several important Unicode algorithms.")
     (license unicode)))
 
-(define-public ucd-next
-  (package
-    (inherit ucd)
-    (name "ucd")
-    (version "15.0.0")
-    (source
-     (origin
-       (method url-fetch/zipbomb)
-       (uri (string-append "https://www.unicode.org/Public/zipped/" version
-                           "/UCD.zip"))
-       (sha256
-        (base32
-         "133inqn33hcfvylmps63yjr6rrqrfq6x7a5hr5fd51z6yc0f9gaz"))))))
-
 (define (unicode-emoji-file name version hash)
   (origin
     (method url-fetch)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 844532c..302f7c9 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2020,6 +2020,10 @@ following features:
     (build-system gnu-build-system)
     (arguments
      (list
+      ;; Running the tests in parallel causes test failures on i686-linux.
+      ;; The issue was reported to [email-masked], as suggested
+      ;; at https://subversion.apache.org/reporting-issues.
+      #:parallel-tests? #f
       #:configure-flags #~(list "--enable-static=no")
       #:phases
       #~(modify-phases %standard-phases
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 72f3813..8013d41 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -849,24 +849,23 @@ television and DVD.  It is also known as AC-3.")
 (define-public libaom
   (package
     (name "libaom")
-    (version "3.3.0")
+    (version "3.5.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://aomedia.googlesource.com/aom/")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "024vhsx7bw9kajk65hhh5vmqrja0h33rmlcpngsj3yg4p8l29943"))))
+                "0arn8a88jz4mj69n8cs4qmrdjwhbvzsqgnx20wr9mq01b06kqich"))))
     (build-system cmake-build-system)
     (native-inputs
      (list perl pkg-config python)) ; to detect the version
     (arguments
      `(#:tests? #f                      ; downloads many video clips
        #:configure-flags
        (list "-DBUILD_SHARED_LIBS=YES"
-             "-DENABLE_PIC=TRUE"
              "-DAOM_TARGET_CPU=generic"
              (string-append "-DCMAKE_INSTALL_PREFIX="
                             (assoc-ref %outputs "out")))
@@ -916,8 +915,8 @@ shared library and encoder and decoder command-line executables.")
 (define-public libx264
   ;; There are no tags in the repository, so we take the version number from
   ;; the X264_BUILD variable defined in x264.h.
-  (let ((version "161")
-        (commit "4c2aafd864dd201832ec2be0fef4484925146650")
+  (let ((version "164")
+        (commit "b093bbe7d9bc642c8f24067cbdcc73bb43562eab")
         (revision "0"))
     (package
       (name "libx264")
@@ -930,7 +929,7 @@ shared library and encoder and decoder command-line executables.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1i6v9h3xx9pi0zmlj3anwwjxqa63sbhy9crrif8dphipwfn9hyg5"))))
+                  "095pv8y6fqjg8mdvsfk12d0jqgyhip536a6vxhzm7qz8hfp96qhq"))))
       (build-system gnu-build-system)
       (native-inputs
        (list pkg-config nasm))
@@ -980,27 +979,6 @@ H.264 (MPEG-4 AVC) video streams.")
                       "file://extras/cl.h"
                       "See extras/cl.h in the distribution."))))))
 
-;;; TODO: Merge into libx264 on staging.
-(define-public libx264-next
-  ;; There are no tags in the repository, so we take the version number from
-  ;; the X264_BUILD variable defined in x264.h.
-  (let ((version "164")
-        (commit "b093bbe7d9bc642c8f24067cbdcc73bb43562eab")
-        (revision "0"))
-    (package
-      (inherit libx264)
-      (name "libx264")
-      (version (git-version version revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://code.videolan.org/videolan/x264.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "095pv8y6fqjg8mdvsfk12d0jqgyhip536a6vxhzm7qz8hfp96qhq")))))))
-
 (define-public mkvtoolnix
   (package
     (name "mkvtoolnix")
@@ -1523,14 +1501,14 @@ quality and performance.")
 (define-public libva
   (package
     (name "libva")
-    (version "2.15.0")
+    (version "2.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/intel/libva/releases/download/"
                            version "/libva-" version ".tar.bz2"))
        (sha256
-        (base32 "1jhy8qzfp4ydbxs9qd9km7k5wq8r4s2vq20r1q07lgld8l4x93i5"))))
+        (base32 "070aj9nw681a4m7f5xb662hhyib0w9q0i0s9v8vplh9cvfhaqpqi"))))
     (build-system gnu-build-system)
     (native-inputs
      (list pkg-config))
@@ -1598,17 +1576,18 @@ These tools require a supported graphics chip, driver, and VA-API back end to
 operate properly.")
     (license license:expat)))
 
-(define-public ffmpeg-5
+(define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "5.1.2")
+    (version "6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1p7kxr0f9f9d0pyyxq9ciaj9ch2drmcw5p9jk22j111ccrnp17k1"))))
+                "10kh2f4y4isfqj4xpcqqnzk611jh89ywcjyjnq9c2jcv5p18ggjp"))))
+    (outputs '("out" "debug"))
     (build-system gnu-build-system)
     (inputs
      (append
@@ -1749,9 +1728,11 @@ operate properly.")
          ;; The static libraries are 23 MiB
          "--disable-static"
 
+         "--disable-stripping"
+
          #$@(if (target-riscv64?)
-              '("--extra-cflags=-fPIC")
-              '())
+                '("--extra-cflags=-fPIC")
+                '())
 
          ;; Runtime cpu detection is not implemented on
          ;; MIPS, so we disable some features.
@@ -1792,6 +1773,18 @@ convert and stream audio and video.  It includes the libavcodec
 audio/video codec library.")
     (license license:gpl2+)))
 
+(define-public ffmpeg-5
+  (package
+    (inherit ffmpeg)
+    (version "5.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "1p7kxr0f9f9d0pyyxq9ciaj9ch2drmcw5p9jk22j111ccrnp17k1"))))))
+
 (define-public ffmpeg-4
   (package
     (inherit ffmpeg-5)
@@ -1803,10 +1796,10 @@ audio/video codec library.")
              (sha256
               (base32
                "14xadxm1yaamp216nq09xwasxg5g133v86dbb33mdg5di1zrlhdg"))))
-    (inputs (modify-inputs (package-inputs ffmpeg-5)
+    (inputs (modify-inputs (package-inputs ffmpeg)
               (replace "sdl2" sdl2-2.0)))
     (arguments
-     (substitute-keyword-arguments (package-arguments ffmpeg-5)
+     (substitute-keyword-arguments (package-arguments ffmpeg)
        ((#:configure-flags flags ''())
         #~(cons "--enable-avresample" #$flags))))))
 
@@ -1885,8 +1878,6 @@ audio/video codec library.")
     (inputs (modify-inputs (package-inputs ffmpeg-3.4)
               (delete "libwebp")))))
 
-(define-public ffmpeg ffmpeg-5)
-
 (define-public ffmpeg-for-stepmania
   (hidden-package
    (package
@@ -2395,16 +2386,16 @@ To load this plugin, specify the following option when starting mpv:
 (define-public libvpx
   (package
     (name "libvpx")
-    (version "1.11.0")
+    (version "1.12.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://chromium.googlesource.com/webm/libvpx")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "00f1jrclai2b6ys78dpsg6r1mvcyxlna93vxcz8zjyia24c2pjsb"))
+                "1x12f2bd4jqd532rnixmwvcx8d29yxiacpcxqqh86qczc49la8gm"))
               (patches (search-patches "libvpx-CVE-2016-2818.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -2434,22 +2425,6 @@ To load this plugin, specify the following option when starting mpv:
     (license license:bsd-3)
     (home-page "https://www.webmproject.org/")))
 
-;;; TODO: Merge into libvpx on staging.
-(define-public libvpx-next
-  (package
-    (inherit libvpx)
-    (name "libvpx")
-    (version "1.12.0")
-    (source (origin
-              (inherit (package-source libvpx))
-              (uri (git-reference
-                    (url "https://chromium.googlesource.com/webm/libvpx")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1x12f2bd4jqd532rnixmwvcx8d29yxiacpcxqqh86qczc49la8gm"))))))
-
 (define-public orf-dl
   (let ((commit "2dbbe7ef4e0efe0f3c1d59c503108e22d9065999")
         (revision "1"))
@@ -5324,12 +5299,7 @@ result in several formats:
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn"))
-       (modules '((guix build utils)))
-       (snippet
-        '(substitute* "Cargo.toml"
-           (("\\[package\\]" m)
-            (string-append "cargo-features = [\"rust-version\"]\n" m))))))
+         "006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn"))))
     (build-system cargo-build-system)
     (arguments
      `(;; Strip the '--release' flag to work around the doctest failures with
@@ -5392,14 +5362,8 @@ result in several formats:
          (add-after 'unpack 'relax-versions
            (lambda _
              (substitute* "Cargo.toml"
-               ;; Allow using more recent versions of
+               ;; Allow using more recent versions of system-deps.
                (("~3.1.2") "~3"))))
-         (add-after 'configure 'force-rust-edition-2018
-           (lambda* (#:key vendor-dir #:allow-other-keys)
-             ;; Force all the dependencies to not be higher than edition 2018.
-             (with-fluids ((%default-port-encoding #f))
-               (substitute* (find-files vendor-dir "Cargo.toml")
-                 (("edition = \\\"2021\\\"") "edition = \"2018\"")))))
          (replace 'build
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 9203731..dfc073b 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -2,8 +2,10 @@
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <[email-masked]>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2018 Efraim Flashner <[email-masked]>
-;;; Copyright © 2020 Marius Bakke <[email-masked]>
+;;; Copyright © 2020, 2023 Marius Bakke <[email-masked]>
 ;;; Copyright © 2021 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2022 Kaelyn Takata <[email-masked]>
+;;; Copyright © 2022 dan <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,19 +43,22 @@
   #:use-module (gnu packages wine)
   #:use-module (gnu packages xorg))
 
+;; Note: Remember to change vulkan-loader version when bumping this.
+(define %vulkan-sdk-version "sdk-1.3.231.1")
+
 (define-public spirv-headers
   (package
     (name "spirv-headers")
-    (version "1.5.3")
+    (version %vulkan-sdk-version)
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/SPIRV-Headers")
              (commit version)))
        (sha256
         (base32
-         "069sivqajp7z4p44lmrz23lvf237xpkjxd4lzrg27836pwqcz9bj"))
+         "0z8b485hryya2g0jxv7amwg3fjj7pchbgnsa5ldf5fwgh5js0icm"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -76,19 +81,22 @@ and for the GLSL.std.450 extended instruction set.
 (define-public spirv-tools
   (package
     (name "spirv-tools")
-    (version "2020.2")
+    (version %vulkan-sdk-version)
     (source
      (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/KhronosGroup/SPIRV-Tools")
-            (commit (string-append "v" version))))
+            (commit version)))
       (sha256
-       (base32 "00b7xgyrcb2qq63pp3cnw5q1xqx2d9rfn65lai6n6r89s1vh3vg6"))
+       (base32 "03d489ind2az7w7q1slj3mdc04372r3qqbnd7m9akxbg7yix1a5j"))
       (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
+                               ;; Some packages like mpv fail to link
+                               ;; when the static libraries are built.
+                               "-DSPIRV_TOOLS_BUILD_STATIC=OFF"
                                (string-append
                                 "-DSPIRV-Headers_SOURCE_DIR="
                                 (assoc-ref %build-inputs "spirv-headers")))))
@@ -105,15 +113,15 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
 (define-public spirv-cross
   (package
     (name "spirv-cross")
-    (version "2020-05-19")
+    (version %vulkan-sdk-version)
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/SPIRV-Cross")
              (commit version)))
        (sha256
-        (base32 "0zyijp9zx9wbd4i5lwjap7n793iz6yjkf27la60dsffxl75yy9pd"))
+        (base32 "1ypbc1krkr0yywa1m976g3sjyb80l7hxwrnh6gp70w6va1dlnnn9"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -146,19 +154,18 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.")
 (define-public glslang
   (package
     (name "glslang")
-    (version "10-11.0.0")
+    (version %vulkan-sdk-version)
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/glslang")
-             ;; Tag "10-11.0.0" was moved to "11.0.0".
-             ;; FIXME: Use (commit version) on next update.
-             (commit "11.0.0")))
+             (commit version)))
+       (patches (search-patches "glslang-install-static-libs.patch"))
        (sha256
         (base32
-         "14mn2awswl022ls75mfpsnpsl0ai0jgfbqj3sxcsqawyj5f432py"))
-       (file-name (string-append name "-" version "-checkout"))))
+         "12a1zl8qxa28nbf6m67260c0lwdw3bqbj0jz1382wgm5px1fpqw6"))
+       (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ;FIXME: requires bundled SPIRV-Tools
@@ -180,17 +187,17 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-headers
   (package
     (name "vulkan-headers")
-    (version "1.2.164")
+    (version %vulkan-sdk-version)
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/Vulkan-Headers")
-             (commit (string-append "v" version))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "11wzxvwim4jna1yssbmprl211dhmz8vmrd498zww3bghzlj7bljv"))))
+         "167zdank6pn66mzjdwgrdlmhmsy4v2k0nhw0nwg649k863rgi00j"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; No tests.
@@ -204,48 +211,55 @@ interpretation of the specifications for these languages.")
 (define-public vulkan-loader
   (package
     (name "vulkan-loader")
-    (version "1.2.162")
+    ;; XXX: Take a slightly newer commit to fix a test failure on i686:
+    ;; https://github.com/KhronosGroup/Vulkan-Loader/pull/1036
+    (version "sdk-1.3.232")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/Vulkan-Loader")
-             (commit (string-append "v" version))))
+             (commit "v1.3.232")))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "15gx9ab6w1sjq9hkpbas7z2f8f47j6mlln6p3w26qmydjj8gfjjv"))))
+         "0w69sh669sx9pwlvv2rv92ds2hm2rbzsa6qqcmd8kcad0qfq7dz2"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       ,#~(list
-           (string-append "-DVULKAN_HEADERS_INSTALL_DIR="
-                          #$(this-package-input "vulkan-headers"))
-           (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
-                          #$(this-package-input "vulkan-headers")
-                          "/include"))
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'unpack-googletest
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((gtest (assoc-ref inputs "googletest:source")))
-                        (when gtest
-                          (copy-recursively gtest "external/googletest"))
-                        #t)))
-                  (add-after 'unpack 'disable-loader-tests
-                    (lambda _
-                      ;; Many tests require a Vulkan driver.  Skip those.
-                      (substitute* "tests/loader_validation_tests.cpp"
-                        ((".*= vkCreateInstance.*" all)
-                         (string-append "GTEST_SKIP();\n" all))
-                        (("TEST_F.*InstanceExtensionEnumerated.*" all)
-                         (string-append all "\nGTEST_SKIP();\n")))
-                      #t)))))
+     (list
+      #:configure-flags
+      #~(list (string-append "-DVULKAN_HEADERS_INSTALL_DIR="
+                             (dirname (dirname
+                                       (search-input-directory
+                                        %build-inputs "include/vulkan"))))
+              "-DBUILD_TESTS=ON")
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'fix-pkg-config-file
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((vulkan-headers (dirname (search-input-directory
+                                               inputs "include/vulkan"))))
+                 ;; Ensure the pkg-config file refers to vulkan-headers.
+                 (substitute* "loader/vulkan.pc.in"
+                   (("^includedir=.*")
+                    (string-append "includedir=" vulkan-headers "\n"))))))
+           (add-after 'unpack 'use-system-googletest
+             (lambda _
+               ;; Inform the build system that googletest is already built.
+               (substitute* "CMakeLists.txt"
+                 ((".*if\\(TARGET gtest\\)")
+                  (string-append "    find_package(GTest REQUIRED)\n"
+                                 "    if(true)")))
+               ;; Use the namespaced variable.
+               (substitute* "tests/framework/CMakeLists.txt"
+                 (("PUBLIC gtest ")
+                  "PUBLIC GTest::gtest ")))))))
     (native-inputs
-     `(("googletest:source" ,(package-source googletest))
-       ("libxrandr" ,libxrandr)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("wayland" ,wayland)))
+     (list googletest
+           libxrandr
+           pkg-config
+           python
+           wayland))
     (inputs
      (list vulkan-headers))
     (home-page
@@ -266,20 +280,20 @@ and the ICD.")
 (define-public vulkan-tools
   (package
     (name "vulkan-tools")
-    (version "1.2.162")
+    (version %vulkan-sdk-version)
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/KhronosGroup/Vulkan-Tools")
-             (commit (string-append "v" version))))
+             (commit version)))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "129wzk7xj3vn3c8b4p7fzkd0npl58118s2i1d88gsfnlix54nagq"))))
+         "0jzwjfx4c7y15wkwfhhc64rzljpi47bxrm5jw5blfsqjh8zsd27a"))))
     (build-system cmake-build-system)
     (inputs
-     (list glslang libxrandr vulkan-loader wayland))
+     (list glslang libxrandr vulkan-loader wayland wayland-protocols))
     (native-inputs
      (list pkg-config python vulkan-headers))
     (arguments
@@ -298,17 +312,18 @@ API.")
 (define-public shaderc
   (package
     (name "shaderc")
-    (version "2020.4")
+    ;; shaderc doesn't follow the versioning scheme of vulkan sdk
+    (version "2022.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/google/shaderc")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "07h78nd964h2bdm4drzws8i1gvyal8a3wlhbcm5qxqk6vknv8hrk"))))
+         "0sdbfi66zmqj0c5q5yv2zvcvry7557yzgxk2mwflyjgqh7kdhb8d"))))
     (build-system cmake-build-system)
     (arguments
      `(;; FIXME: Skip most of the tests, because enabling system gtest breaks
@@ -340,7 +355,16 @@ API.")
                          ,version
                          ,(package-version spirv-tools)
                          ,(package-version glslang))))
-             #t)))))
+             #t))
+         ;; see: https://github.com/google/shaderc/pull/1276
+         (add-after 'do-not-look-for-bundled-sources 'drop-additional-glslang-deps
+           (lambda _
+             (substitute* "glslc/CMakeLists.txt"
+               (("OSDependent OGLCompiler") ""))
+             (substitute* "libshaderc/CMakeLists.txt"
+               (("OSDependent OGLCompiler") ""))
+             (substitute* "libshaderc_util/CMakeLists.txt"
+               (("OSDependent OGLCompiler") "")))))))
     (inputs
      (list glslang python spirv-headers spirv-tools))
     (native-inputs
@@ -399,3 +423,127 @@ shader compilation.")
      (synopsis "Direct3D 12 to Vulkan translation library")
      (description "vkd3d is a library for translating Direct3D 12 to Vulkan.")
      (license license:lgpl2.1))))
+
+(define-public vulkan-validationlayers
+  (package
+    (name "vulkan-validationlayers")
+    (version %vulkan-sdk-version)
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url
+                     "https://github.com/KhronosGroup/Vulkan-ValidationLayers")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "07djrk6yym4vl2b52wr09r8y649v5lark5hnr5rwvlxwxdmd9g75"))))
+    (build-system cmake-build-system)
+    (inputs (list glslang
+                  libxrandr
+                  mesa
+                  shaderc
+                  spirv-tools
+                  vulkan-loader
+                  wayland))
+    (native-inputs (list pkg-config python spirv-headers vulkan-headers))
+    (arguments
+     (list #:tests? #f ;no tests
+           #:configure-flags
+           #~(list "-DUSE_ROBIN_HOOD_HASHING=OFF"
+                   (string-append "-DGLSLANG_INSTALL_DIR="
+                                  (dirname (dirname
+                                            (search-input-directory
+                                             %build-inputs
+                                             "include/glslang"))))
+                   (string-append "-DSPIRV_HEADERS_INSTALL_DIR="
+                                  (dirname (dirname
+                                            (search-input-directory
+                                             %build-inputs
+                                             "include/spirv"))))
+                   (string-append "-DSPIRV_TOOLS_INSTALL_DIR="
+                                  (dirname (dirname
+                                            (search-input-directory
+                                             %build-inputs
+                                             "include/spirv-tools"))))
+                   (string-append "-DVULKAN_HEADERS_INSTALL_DIR="
+                                  (dirname (dirname
+                                            (search-input-directory
+                                             %build-inputs
+                                             "include/vulkan"))))
+                   "-Wno-dev")
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'install 'set-layer-path-in-manifest
+                          (lambda _
+                            (let ((manifest (string-append #$output
+                                             "/share/vulkan/explicit_layer.d"
+                                             "/VkLayer_khronos_validation.json")))
+                              (substitute* manifest
+                                (("\"libVkLayer_khronos_validation.so\"")
+                                 (string-append "\"" #$output
+                                  "/lib/libVkLayer_khronos_validation.so\"")))))))))
+    (home-page "https://github.com/KhronosGroup/Vulkan-ValidationLayers")
+    (synopsis "Khronos official validation layers for Vulkan")
+    (description
+     "Vulkan-ValidationLayers provides the Khronos official validation layers that
+can assist development by enabling developers to verify their applications correctly
+use the Vulkan API.")
+    (license license:asl2.0)))
+
+(define-public volk
+  (package
+    (name "volk")
+    (version %vulkan-sdk-version)
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zeux/volk")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0xaw3kg754mknx8lfj1p74a9npjfvdvlpicvn0hla4495zpc10rq"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f                      ;no test
+       #:configure-flags '("-DVOLK_INSTALL=ON" "-DVOLK_PULL_IN_VULKAN=ON")))
+    (inputs (list vulkan-headers))
+    (synopsis "Meta loader for Vulkan API")
+    (description
+     "Volk is a meta-loader for Vulkan.  It allows you to dynamically load
+entrypoints required to use Vulkan without linking the Vulkan loader.
+Additionally, volk simplifies the use of Vulkan extensions by automatically
+loading all associated entrypoints.  Finally, volk enables loading Vulkan
+entrypoints directly from the driver which can increase performance by
+skipping loader dispatch overhead.")
+    (home-page "https://github.com/zeux/volk")
+    (license license:expat)))
+
+(define-public vulkan-memory-allocator
+  (package
+    (name "vulkan-memory-allocator")
+    (version "3.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1hpzjwl5bgqv9hmf1fdldihfllcbdg515f391a200klg0rnixdds"))))
+    (build-system cmake-build-system)
+    (arguments
+     ;; no test
+     `(#:tests? #f))
+    (inputs (list vulkan-loader vulkan-headers))
+    (synopsis "Vulkan memory allocation library")
+    (description
+     "The Vulkan Memory Allocator (VMA) library provides a simple and easy to
+integrate API to help users allocate memory for Vulkan buffer and image
+storage.")
+    (home-page
+     "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator")
+    (license license:expat)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 90337b8..d6648d4 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3535,16 +3535,18 @@ object knows about.")
 (define-public perl-http-daemon
   (package
     (name "perl-http-daemon")
-    (version "6.01")
+    (version "6.14")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-"
+                   "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
+               "079fkcq2vdrzdf0bml52kz73n9gdv1xg0qf72c9v505v7izpwxph"))))
     (build-system perl-build-system)
+    (native-inputs
+     (list perl-module-build perl-test-needs))
     (propagated-inputs
      (list perl-http-message perl-lwp-mediatypes))
     (license license:perl-license)
@@ -3607,18 +3609,18 @@ processing of request data as it arrives.")
 (define-public perl-http-message
   (package
     (name "perl-http-message")
-    (version "6.18")
+    (version "6.37")
     (source (origin
              (method url-fetch)
              (uri (string-append
                    "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-"
                    version ".tar.gz"))
              (sha256
               (base32
-               "04lih0fn89jpyk74c4aq1rzq18h8v4zd3x0lik2r9dl8sdqd2q6h"))))
+               "00nq0xnpdba4valzgvzy3fgvck1ijrksdyzb4w9q6j72hl5dln8f"))))
     (build-system perl-build-system)
     (native-inputs
-     (list perl-try-tiny))
+     (list perl-test-needs perl-try-tiny))
     (propagated-inputs
      (list perl-encode-locale perl-http-date perl-io-html
            perl-lwp-mediatypes perl-uri))
@@ -3846,14 +3848,14 @@ and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
 (define-public perl-io-socket-ssl
   (package
     (name "perl-io-socket-ssl")
-    (version "2.068")
+    (version "2.081")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
                                   "IO-Socket-SSL-" version ".tar.gz"))
               (sha256
                (base32
-                "1ycgzg1l7p07y5wc0vzgnj122vm51p5aqpi4s56pp0piaq0gq824"))))
+                "0hw4c62abq0cs3ixi0ws96i2y0fij3452514dlqn7d6nm0kgig87"))))
     (build-system perl-build-system)
     (propagated-inputs
      (list perl-net-ssleay
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 8ef95ce..5dba798 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2018 Pierre Neidhardt <[email-masked]>
 ;;; Copyright © 2019 Marius Bakke <[email-masked]>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2022, 2023 Efraim Flashner <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -36,6 +36,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages c)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages enchant)
@@ -123,20 +124,19 @@ the WPE-flavored port of WebKit.")
 engine that uses Wayland for graphics output.")
     (license license:bsd-2)))
 
-(define %webkit-version "2.38.5")
-
 (define-public webkitgtk
   (package
     (name "webkitgtk")                  ; webkit2gtk4
-    (version %webkit-version)
+    (version "2.40.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
-               (base32 "19y1n05mp370mq4bp2bk0pm3wk49z9a10azjjdcdyx12091hrhj0"))
+               (base32 "14xkgamqlshxqw6fcslvw0yzj4y5mvx66b6bn64rwrl9pyhpwq54"))
               (patches (search-patches
-                        "webkitgtk-adjust-bubblewrap-paths.patch"))))
+                        "webkitgtk-adjust-bubblewrap-paths.patch"
+                        "webkitgtk-libelogind.patch"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc" "debug"))
     (arguments
@@ -148,18 +148,26 @@ engine that uses Wayland for graphics output.")
       ;; binaries require 20 GiB of memory to link (even with ld.gold or lld)
       ;; and produce 4.6 GiB of debug symbols.
       #:build-type "Release"
-      #:configure-flags #~(list
-                           "-DPORT=GTK"
-                           ;; GTKDOC will be removed upstream soon in favor of
-                           ;; gi-docgen; it is normally disabled because the
-                           ;; doc is rather expensive to build.
-                           "-DENABLE_GTKDOC=ON"
-                           ;; The minibrowser, not built by default, is a good
-                           ;; tool to validate the good operation of
-                           ;; webkitgtk.
-                           "-DENABLE_MINIBROWSER=ON"
-                           ;; The default lib installation prefix is lib64.
-                           (string-append "-DLIB_INSTALL_DIR=" #$output "/lib"))
+      #:configure-flags
+      #~(list "-DPORT=GTK"
+              ;; GTKDOC will be removed upstream soon in favor of
+              ;; gi-docgen; it is normally disabled because the
+              ;; doc is rather expensive to build.
+              "-DENABLE_GTKDOC=ON"
+              ;; The minibrowser, not built by default, is a good
+              ;; tool to validate the good operation of
+              ;; webkitgtk.
+              "-DENABLE_MINIBROWSER=ON"
+              ;; The default lib installation prefix is lib64.
+              (string-append "-DLIB_INSTALL_DIR=" #$output "/lib")
+              ;; XXX: WebKitGTK makes use of elogind's systemd-compatible
+              ;; headers, which are under the include/elogind prefix.  The WTF
+              ;; component doesn't propagate the Journald header correctly
+              ;; detected (stubs from elogind), hence the following hack (see:
+              ;; https://bugs.webkit.org/show_bug.cgi?id=254495).
+              (string-append "-DCMAKE_CXX_FLAGS=-I"
+                             (search-input-directory
+                              %build-inputs "include/elogind")))
       ;; The build may fail with -j1 (see:
       ;; https://bugs.webkit.org/show_bug.cgi?id=195251).
       #:make-flags #~(list "-j" (number->string (max 2 (parallel-job-count))))
@@ -186,13 +194,6 @@ engine that uses Wayland for graphics output.")
               (substitute* "Source/cmake/OptionsCommon.cmake"
                 (("if \\(LD_SUPPORTS_DISABLE_NEW_DTAGS\\)")
                  "if (FALSE)"))))
-          (add-after 'unpack 'help-cmake-find-elogind
-            (lambda _
-              (substitute* "Source/cmake/FindJournald.cmake"
-                ;; Otherwise, CMake would throw an error because it relies on
-                ;; the pkg-config search to locate headers.
-                (("pkg_check_modules\\(PC_SYSTEMD QUIET libsystemd")
-                 "pkg_check_modules(PC_SYSTEMD QUIET libelogind"))))
           (add-after 'unpack 'embed-absolute-wpebackend-reference
             (lambda* (#:key inputs #:allow-other-keys)
               (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
@@ -222,7 +223,8 @@ engine that uses Wayland for graphics output.")
            pkg-config
            python-wrapper
            gi-docgen
-           ruby))
+           ruby
+           unifdef))
     (propagated-inputs
      (list gtk+ libsoup))
     (inputs
@@ -233,11 +235,11 @@ engine that uses Wayland for graphics output.")
            geoclue
            gst-plugins-base
            gst-plugins-bad-minimal
-           gtk+-2
            harfbuzz
            hyphen
            icu4c
            lcms
+           libavif
            libgcrypt
            libgudev
            libjpeg-turbo
@@ -309,13 +311,13 @@ propagated by default) such as @code{gst-plugins-good} and
   (package
     (inherit webkitgtk)
     (name "wpewebkit")
-    (version %webkit-version)
+    (version "2.40.0")
     (source (origin
               (inherit (package-source webkitgtk))
               (uri (string-append "https://wpewebkit.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
-               (base32 "0q8nmk9l6bqv2bhljm9wv7mvgdl393z7v2m7a0c5avac18yzs07z"))))
+               (base32 "1dl663nbm011sx099x9gdhk3aj119yn5rxp77jmnhdv1l77jpv58"))))
     (arguments
      (substitute-keyword-arguments (package-arguments webkitgtk)
        ((#:configure-flags flags)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 330ec46..31770ac 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -42,7 +42,7 @@
 ;;; Copyright © 2020 James Smith <[email-masked]>
 ;;; Copyright © 2020 B. Wilson <[email-masked]>
 ;;; Copyright © 2020, 2021 Zheng Junjie <[email-masked]>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021, 2022 Nicolas Goaziou <[email-masked]>
 ;;; Copyright © 2021 Xinglu Chen <[email-masked]>
 ;;; Copyright © 2021 Renzo Poddighe <[email-masked]>
@@ -363,16 +363,16 @@ with X11 or Wayland, or in a text terminal with ncurses.")
 (define-public copyq
 (package
   (name "copyq")
-  (version "6.3.2")
+  (version "7.0.0")
   (source (origin
             (method git-fetch)
             (uri (git-reference
                    (url "https://github.com/hluk/CopyQ")
                    (commit (string-append "v" version))))
             (file-name (git-file-name name version))
             (sha256
              (base32
-              "0qdf7lr6bdmsnz1k5nnzmbv4h0xj8jqg92x6089qdaz5s87x7vqr"))))
+              "0h8jz7v5xvpq23dh1sr600q5jlrfzm6wsnp7sln8hbgsn96n8kas"))))
   (build-system cmake-build-system)
   (arguments
    (list
@@ -2814,52 +2814,19 @@ Xwrits hides itself until you should take another break.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "14gnkz18dipsa2v24f4nm9syxaa7g21iqjm7y65jn849ka2jr1h8"))))
-    (build-system scons-build-system)
-    (inputs
-     (list libx11))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("googletest" ,googletest)
-       ("googletest-source" ,(package-source googletest))))
+    (build-system cmake-build-system)
     (arguments
-     `(#:scons ,scons-python2
-       #:scons-flags
-       (list ,(string-append "CC=" (cc-for-target)))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-sconstruct
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "SConstruct"
-               ;; scons doesn't pick up environment variables automatically
-               ;; so it needs help to find path variables
-               (("env = Environment\\(")
-                "env = Environment(
-                         ENV = {
-                           'PATH': os.environ['PATH'],
-                           'CPATH': os.environ['C_INCLUDE_PATH'],
-                           'LIBRARY_PATH': os.environ['LIBRARY_PATH'],
-                           'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH']
-                         },")
-               ;; Update path to gtest source files used in tests
-               (("/usr/src/gtest") (string-append
-                                    (assoc-ref inputs "googletest-source")
-                                    "/googletest"))
-               ;; Exclude one warning that causes a build error
-               (("-Werror") "-Werror -Wno-error=sign-compare"))
-             #t))
-         ;; The SConstruct script doesn't configure installation so
-         ;; binaries must be copied to the output path directly
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (man (string-append out "/share/man/man1")))
-               (mkdir-p bin)
-               (install-file "xsettingsd" bin)
-               (install-file "dump_xsettings" bin)
-               (install-file "xsettingsd.1" man)
-               (install-file "dump_xsettings.1" man)
-               #t))))))
+     (list #:configure-flags #~(list "-DBUILD_TESTING=ON")
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'disable-problematic-tests
+                          (lambda _
+                            (substitute* "config_parser_test.cc"
+                              ;; This test fails for unknown reasons (see:
+                              ;; https://github.com/derat/xsettingsd/issues/30).
+                              (("TEST\\(CharStreamTest, Basic")
+                               "TEST(CharStreamTest, DISABLED_Basic")))))))
+    (inputs (list libx11))
+    (native-inputs (list pkg-config googletest))
     (home-page "https://github.com/derat/xsettingsd")
     (synopsis "Xorg settings daemon")
     (description "@command{xsettingsd} is a lightweight daemon that provides settings to
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index dffad29..42bf5d5 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -130,15 +130,15 @@ compressed video format.")
 (define-public speex
   (package
     (name "speex")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://downloads.xiph.org/releases/speex/speex-"
                           version ".tar.gz"))
       (sha256
        (base32
-        "150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa"))))
+        "1spy51kaxfhpj8171gn1s69wz82nzkz2k0x7k0nhldwangrd8i2b"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
@@ -160,14 +160,14 @@ stereo encoding, and voice activity detection.")
 (define-public speexdsp
   (package
     (name "speexdsp")
-    (version "1.2.0")
+    (version "1.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://downloads.xiph.org/releases/speex/"
                                   "speexdsp-" version ".tar.gz"))
               (sha256
                (base32
-                "0wa7sqpk3x61zz99m7lwkgr6yv62ml6lfgs5xja65vlvdzy44838"))))
+                "0gadnnpg9994cindpnw35j45dnr4bflkig1aqxlrafd6wi1p6xwc"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static"
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 1a8ae72..203d6d8 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -24,7 +24,7 @@
 ;;; Copyright © 2020 Liliana Marie Prikler <[email-masked]>
 ;;; Copyright © 2020 Florian Pelz <[email-masked]>
 ;;; Copyright © 2020, 2021 Michael Rohleder <[email-masked]>
-;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2020 Jean-Baptiste Note <[email-masked]>
 ;;; Copyright © 2021 Matthew James Kraai <[email-masked]>
 ;;; Copyright © 2021 Nicolò Balzarotti <[email-masked]>
@@ -6041,114 +6041,114 @@ basic eye-candy effects.")
        (patches (search-patches "xpra-4.2-systemd-run.patch"
                                 "xpra-4.2-install_libs.patch"))))
     (build-system python-build-system)
-    ;; see also http://xpra.org/trac/wiki/Dependencies
-    (inputs `(("bash-minimal" ,bash-minimal)    ; for wrap-program
-              ;; Essential dependencies.
-              ("libjpeg" ,libjpeg-turbo)
-              ("libwebp" ,libwebp)
-              ("ffmpeg" ,ffmpeg)
-              ("libx11" ,libx11)
-              ("libxrandr" ,libxrandr)
-              ("libxtst" ,libxtst)
-              ("libxfixes" ,libxfixes)
-              ("libxkbfile" ,libxkbfile)
-              ("libxcomposite" ,libxcomposite)
-              ("libxdamage" ,libxdamage)
-              ("libxext" ,libxext)
-              ("libxres" ,libxres)
-              ("lz4" ,lz4)
-              ("gtk+" ,gtk+)
-              ("python-pycairo" ,python-pycairo)
-              ("python-pygobject" ,python-pygobject)
-              ("xauth" ,xauth)
-              ("xorg-server" ,xorg-server)
-              ("xf86-video-dummy" ,xf86-video-dummy)
-              ("xf86-input-mouse" ,xf86-input-mouse)
-              ("xf86-input-keyboard" ,xf86-input-keyboard)
-              ("python-pillow" ,python-pillow)
-              ;; Optional dependencies.
-              ("libx264" ,libx264)
-              ("x265" ,x265)
-              ("libvpx" ,libvpx)
-              ("python-rencode" ,python-rencode) ; For speed.
-              ("python-numpy" ,python-numpy)
-              ("python-pyopengl" ,python-pyopengl) ; Drawing acceleration.
-              ("python-pyopengl-accelerate" ,python-pyopengl-accelerate) ; Same.
-              ("python-paramiko" ,python-paramiko) ; Tunneling over SSH.
-              ("python-dbus" ,python-dbus) ; For desktop notifications.
-              ("dbus" ,dbus)               ; For dbus-launch command.
-              ("python-lz4" ,python-lz4) ; Faster compression than zlib.
-              ("python-netifaces" ,python-netifaces)))
+    (inputs
+     (list bash-minimal                 ; for wrap-program
+           ;; Essential dependencies.
+           libjpeg-turbo
+           libwebp
+           ffmpeg
+           libx11
+           libxrandr
+           libxtst
+           libxfixes
+           libxkbfile
+           libxcomposite
+           libxdamage
+           libxext
+           libxres
+           lz4
+           gtk+
+           python-pycairo
+           python-pygobject
+           xauth
+           xorg-server
+           xf86-video-dummy
+           xf86-input-mouse
+           xf86-input-keyboard
+           python-pillow
+           ;; Optional dependencies.
+           libx264
+           x265
+           libvpx
+           python-rencode               ; For speed.
+           python-numpy
+           python-pyopengl              ; Drawing acceleration.
+           python-pyopengl-accelerate   ; Same.
+           python-paramiko              ; Tunneling over SSH.
+           python-dbus                  ; For desktop notifications.
+           dbus                         ; For dbus-launch command.
+           python-lz4                   ; Faster compression than zlib.
+           python-netifaces))
     (native-inputs (list pkg-config pandoc python-cython))
     (arguments
-     `(#:configure-flags '("--without-Xdummy"
-						   "--without-Xdummy_wrapper"
-                           "--with-opengl"
-                           "--without-debug"
-                           "--without-strict") ; Ignore compiler warnings.
-       #:modules ((guix build python-build-system)
+     (list
+      #:configure-flags #~(list "--without-Xdummy"
+                                "--without-Xdummy_wrapper"
+                                "--with-opengl"
+                                "--without-debug"
+                                "--without-strict") ; Ignore compiler warnings.
+      #:modules '((guix build python-build-system)
                   (guix build utils))
-       #:tests? #f ; Do not run test-cases. This would rebuild all modules and
-                                        ; they seem to require python2.
-       #:phases
-       (modify-phases %standard-phases
-         ;; Must pass the same flags as 'install, otherwise enabled modules may
-         ;; not be built.
-         (replace 'build
-           (lambda* (#:key configure-flags #:allow-other-keys)
-             (apply invoke (append (list "python" "setup.py" "build")
-                                   configure-flags))))
-         (add-before 'install 'fix-paths
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Fix binary paths.
-             (substitute* '("xpra/scripts/config.py" "xpra/x11/vfb_util.py")
-               (("\"Xvfb\"")
-                (string-append "\"" (assoc-ref inputs "xorg-server") "/bin/Xvfb\""))
-               (("\"Xorg\"")
-                (string-append "\"" (assoc-ref inputs "xorg-server") "/bin/Xorg\""))
-               (("\"xauth\"")
-                (string-append "\"" (assoc-ref inputs "xauth") "/bin/xauth\"")))
-             ;; Fix directory of config files.
-             (substitute* '("xpra/scripts/config.py" "xpra/platform/xposix/paths.py")
-               (("\"/etc/xpra/?\"")
-                (string-append "\"" (assoc-ref outputs "out") "/etc/xpra/\"")))
-             ;; XXX: Stolen from (gnu packages linux)
-             (define (append-to-file name body)
-               (let ((file (open-file name "a")))
-                 (display body file)
-                 (close-port file)))
-             ;; Add Xorg module paths.
-             (append-to-file
-              "fs/etc/xpra/xorg.conf"
-              (string-append "\nSection \"Files\"\nModulePath \""
-                             (assoc-ref inputs "xf86-video-dummy") "/lib/xorg/modules,"
-                             (assoc-ref inputs "xf86-input-mouse") "/lib/xorg/modules,"
-                             (assoc-ref inputs "xf86-input-keyboard") "/lib/xorg/modules,"
-                             (assoc-ref inputs "xorg-server") "/lib/xorg/modules\"\n"
-                             "EndSection\n\n"))
-             (substitute* '("xpra/scripts/config.py"
-                            "fs/etc/xpra/conf.d/60_server.conf.in"
-                            "tests/unittests/unit/server/mixins/notification_test.py")
-               ;; The trailing -- is intentional, so we only replace it inside
-               ;; a command line.
-               (("dbus-launch --")
-                (string-append (search-input-file inputs "/bin/dbus-launch")
-                               " --")))
-             ;; /run/user does not exist on guix system
-             (substitute* "./xpra/scripts/config.py"
-               (("socket-dir.*: \"\",")
-                "socket-dir\"        : \"~/.xpra\","))
-             #t))
-         ;; GTK3 will not be found, if GI can’t find its typelibs.
-         (add-after
-             'install 'wrap-program
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((prog (string-append (assoc-ref outputs "out")
-                                        "/bin/xpra")))
-               ;; XXX: only export typelibs in inputs
-               (wrap-program prog
-                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
-               #t))))))
+      ;; Do not run test-cases.  This would rebuild all modules and they seem
+      ;; to require python2.
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Must pass the same flags as 'install, otherwise enabled modules may
+          ;; not be built.
+          (replace 'build
+            (lambda* (#:key configure-flags #:allow-other-keys)
+              (apply invoke (append (list "python" "setup.py" "build")
+                                    configure-flags))))
+          (add-before 'install 'fix-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; Fix binary paths.
+              (substitute* '("xpra/scripts/config.py"
+                             "xpra/x11/vfb_util.py")
+                (("\"Xvfb\"")
+                 (format #f "~s" (search-input-file inputs "bin/Xvfb")))
+                (("\"Xorg\"")
+                 (format #f "~s" (search-input-file inputs "bin/Xorg")))
+                (("\"xauth\"")
+                 (format #f "~s" (search-input-file inputs "bin/xauth"))))
+              ;; Fix directory of config files.
+              (substitute* '("xpra/scripts/config.py"
+                             "xpra/platform/xposix/paths.py")
+                (("\"/etc/xpra/?\"")
+                 (string-append "\"" #$output "/etc/xpra/\"")))
+              ;; XXX: Stolen from (gnu packages linux)
+              (define (append-to-file name body)
+                (let ((file (open-file name "a")))
+                  (display body file)
+                  (close-port file)))
+              ;; Add Xorg module paths.
+              (append-to-file
+               "fs/etc/xpra/xorg.conf"
+               (string-append
+                "\nSection \"Files\"\nModulePath \""
+                #$(this-package-input "xf86-video-dummy") "/lib/xorg/modules,"
+                #$(this-package-input "xf86-input-mouse") "/lib/xorg/modules,"
+                #$(this-package-input "xf86-input-keyboard") "/lib/xorg/modules,"
+                #$(this-package-input "xorg-server") "/lib/xorg/modules\"\n"
+                "EndSection\n\n"))
+              (substitute* '("xpra/scripts/config.py"
+                             "fs/etc/xpra/conf.d/60_server.conf.in"
+                             "tests/unittests/unit/server/mixins/notification_test.py")
+                ;; The trailing -- is intentional, so we only replace it inside
+                ;; a command line.
+                (("dbus-launch --")
+                 (string-append (search-input-file inputs "/bin/dbus-launch")
+                                " --")))
+              ;; /run/user does not exist on guix system.
+              (substitute* "./xpra/scripts/config.py"
+                (("socket-dir.*: \"\",")
+                 "socket-dir\"        : \"~/.xpra\","))))
+          ;; GTK3 will not be found, if GI can’t find its typelibs.
+          (add-after 'install 'wrap-program
+            (lambda* (#:key outputs #:allow-other-keys)
+              ;; XXX: only export typelibs in inputs
+              (wrap-program (search-input-file outputs "bin/xpra")
+                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
     (home-page "https://www.xpra.org/")
     (synopsis "Remote access to individual applications or full desktops")
     (description "Xpra is a persistent remote display server and client for
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm
index 2ca1357..92be1a8 100644
--- a/gnu/tests/databases.scm
+++ b/gnu/tests/databases.scm
@@ -389,7 +389,11 @@ data double PRECISION NULL
 
 (define %mysql-os
   (simple-operating-system
-   (service mysql-service-type)))
+   (service mysql-service-type
+            (mysql-configuration
+             ;; Disable O_DIRECT since it's not supported on overlayfs.
+             ;; See <https://jira.mariadb.org/browse/MDEV-28751>.
+             (extra-content "innodb-flush-method = fsync")))))
 
 (define* (run-mysql-test)
   "Run tests in %MYSQL-OS."
diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm
index 2e47f1b..7f50332 100644
--- a/guix/build/qt-utils.scm
+++ b/guix/build/qt-utils.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
 ;;; Copyright © 2021 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2021, 2022 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <[email-masked]>
 ;;; Copyright © 2021 Brendan Tildesley <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -87,9 +88,7 @@
       "/applications" "/cursors" "/fonts" "/icons" "/glib-2.0/schemas"
       "/mime" "/sounds" "/themes" "/wallpapers")
     '("XDG_CONFIG_DIRS" suffix directory "/etc/xdg")
-    ;; We wrap exactly to avoid potentially mixing Qt5/Qt6 components, which
-    ;; would cause warnings, perhaps problems.
-    `("QT_PLUGIN_PATH" = directory
+    `("QT_PLUGIN_PATH" prefix directory
       ,(format #f "/lib/qt~a/plugins" qt-major-version))
     `("QML2_IMPORT_PATH" = directory
       ,(format #f "/lib/qt~a/qml" qt-major-version))
--
libgit2 1.5.1