summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/audio.scm4
-rw-r--r--gnu/packages/calendar.scm4
-rw-r--r--gnu/packages/cdrom.scm1
-rw-r--r--gnu/packages/certs.scm4
-rw-r--r--gnu/packages/check.scm8
-rw-r--r--gnu/packages/crates-graphics.scm7
-rw-r--r--gnu/packages/crates-io.scm1201
-rw-r--r--gnu/packages/databases.scm108
-rw-r--r--gnu/packages/electronics.scm7
-rw-r--r--gnu/packages/freedesktop.scm166
-rw-r--r--gnu/packages/gl.scm23
-rw-r--r--gnu/packages/image.scm16
-rw-r--r--gnu/packages/jami.scm5
-rw-r--r--gnu/packages/less.scm5
-rw-r--r--gnu/packages/linux.scm8
-rw-r--r--gnu/packages/lisp.scm15
-rw-r--r--gnu/packages/man.scm4
-rw-r--r--gnu/packages/nss.scm10
-rw-r--r--gnu/packages/patches/glslang-install-static-libs.patch61
-rw-r--r--gnu/packages/patches/libcdio-glibc-compat.patch43
-rw-r--r--gnu/packages/patches/mariadb-link-libatomic.patch83
-rw-r--r--gnu/packages/patches/openboardview-use-system-utf8.patch48
-rw-r--r--gnu/packages/perl-check.scm4
-rw-r--r--gnu/packages/perl.scm4
-rw-r--r--gnu/packages/python-xyz.scm18
-rw-r--r--gnu/packages/sdl.scm82
-rw-r--r--gnu/packages/version-control.scm6
-rw-r--r--gnu/packages/video.scm60
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/vulkan.scm258
-rw-r--r--gnu/packages/web.scm18
31 files changed, 1489 insertions, 796 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index d72cf0ca87..46e99cd844 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -3118,7 +3118,7 @@ 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
@@ -3126,7 +3126,7 @@ lv2-c++-tools.")
                     version ".tar.bz2"))
               (sha256
                (base32
-                "0vax0b1lgd4212bpxa1rciz52d4mv3dkfvcbbhzw4cjp698v1kmn"))))
+                "081xgkma2a19dscwx21xdpklh8gq399w4f1fx737qsx7rnawr55f"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f  ; no check target
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 32a8f23f19..cf4286100d 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -121,7 +121,7 @@ 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
@@ -129,7 +129,7 @@ the <tz.h> library for handling time zones and leap seconds.")
                     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 b544f0e59d..80267b939b 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 b8dfe96e6d..122882980b 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 aaa41777dc..eddf7227b3 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -1524,13 +1524,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
@@ -1636,14 +1636,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
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index a1b29a4022..2f072354a0 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,7 +3104,7 @@ 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)
@@ -3111,12 +3112,14 @@ the platform-specific getters provided by winit, or another library.")
        (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 1203d10b67..300803ce69 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -68,6 +68,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 +2679,31 @@ it outputs messages to Android's logcat.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4))))))
 
+(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 +2919,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
@@ -8365,8 +8391,33 @@ 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
@@ -8376,22 +8427,40 @@ of built-in fundamental numeric types.")
        (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
@@ -8401,17 +8470,11 @@ Rust.")
        (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
@@ -8485,33 +8548,10 @@ 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)
@@ -8520,7 +8560,7 @@ in a byte slice, fast.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "071043n73hwi55z9c55ga4v52v8a7ri56gqja8r98clkdyxns14j"))))
+          "0zwlaqkrp7r7bnl2n40x9ncpspb93d8xcckar61f54nal7csi8xa"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8534,7 +8574,7 @@ 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)
@@ -8542,7 +8582,7 @@ in a byte slice, fast.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1k59b6g2d87nf32qwhp73vng3al0zklxg64iiwf0pkxy74xf5ni8"))))
+          "1d1j74dgq9b0wx73hvirsyzr3hmi7ip16bfvwc3q0bzic2wk7qjz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -10228,6 +10268,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")
@@ -10676,28 +10785,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")
@@ -11369,17 +11495,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)
@@ -11391,7 +11518,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
@@ -12212,8 +12339,32 @@ 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
@@ -12223,15 +12374,7 @@ const functions with conditional compilations.")
        (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
@@ -12394,8 +12537,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
@@ -12407,20 +12584,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
@@ -12540,36 +12709,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")
@@ -13256,8 +13395,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
@@ -13268,7 +13458,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)
@@ -13298,12 +13487,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
@@ -13368,8 +13552,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
@@ -13380,7 +13591,6 @@ criterion.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0mys2zkizh5az6ax77m5aqifk0vz35rn0a6wykvmjx9gkzg9c2fh"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cast" ,rust-cast-0.2)
@@ -13388,11 +13598,7 @@ criterion.")
        #: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
@@ -13583,18 +13789,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))))
@@ -14094,24 +14299,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
@@ -16300,14 +16507,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
@@ -23876,7 +24083,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)
@@ -23904,7 +24111,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)
@@ -23931,7 +24138,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)
@@ -23958,7 +24165,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)
@@ -23989,7 +24196,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)
@@ -25458,8 +25665,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
@@ -25471,19 +25705,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
@@ -27256,28 +27483,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")
@@ -27936,8 +28163,38 @@ 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
@@ -27947,7 +28204,6 @@ versions < 0.2.")
               (sha256
                (base32
                 "0x10ak2iy4p24g7bnp1rfrq6aqddjlzkykgwjdayi7nl97wmxkjr"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-async-std" ,rust-async-std-1)
@@ -27957,14 +28213,7 @@ versions < 0.2.")
              ("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
@@ -28230,6 +28479,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")
@@ -28254,14 +28528,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
@@ -30876,8 +31150,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
@@ -30894,14 +31197,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
@@ -34162,7 +34458,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)
@@ -37943,8 +38239,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
@@ -37956,7 +38281,6 @@ PartialOrd types, like floats.")
        (sha256
         (base32
          "0632g8bacvras6nig1bb1ihgc560476jkrb3is6n542ll86q8vvn"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build?
        #t
@@ -37964,12 +38288,7 @@ PartialOrd types, like floats.")
        (("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
@@ -38046,19 +38365,19 @@ under its new name.")
 (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")
@@ -40935,7 +41254,7 @@ 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)
@@ -40943,7 +41262,7 @@ with additional support for PKCS#8v2 asymmetric key packages (RFC 5958).")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0k4860955riciibxr8bhnklp79jydp4xfylwdn5v9kj96hxlac9q"))))
+         "0q2i61dhqvawc51zfzl3jich57w0cjgfa894hn6ings7ffgsbjba"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -42660,7 +42979,7 @@ 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)
@@ -42668,7 +42987,7 @@ in your code.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1avvpf4qki8mg2na60yr3afbsfl5p6vllac6516xgwy93g3a4b0a"))))
+          "09g7alc7mlbycsadfh7lwskr1qfxbiic9qp9z751cqz3n04dk8sy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags '("--lib")
@@ -46329,6 +46648,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")
@@ -47229,6 +47568,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)
@@ -48178,8 +48538,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
@@ -48191,7 +48584,6 @@ hex conversion traits.")
        (sha256
         (base32
          "0fjvy8bf0hd1zq9d3fdxbdp4z4p1k8jfyx51k5qip3wk1pwnf9zk"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
        #:cargo-inputs
@@ -48205,20 +48597,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
@@ -48230,7 +48641,6 @@ should be using the real rayon crate, not rustc-rayon.")
         (sha256
          (base32
           "1cwc50mcclzfmhmi87953fjk6cc9ppmchn9mlwzfllq03y1jf97a"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
        #:cargo-inputs
@@ -48243,15 +48653,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
@@ -48541,8 +48943,51 @@ 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
@@ -48552,7 +48997,6 @@ rustc compiler.")
               (sha256
                (base32
                 "1yfmkj5nwghxd3nha5ywf1cj6zqh44qwm0cavwifr1ppcmnilykj"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-bitflags" ,rust-bitflags-1)
@@ -48577,14 +49021,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
@@ -49298,8 +49735,37 @@ 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
@@ -49309,7 +49775,6 @@ sub-processes using a fork-like interface.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "01wsn0i8gsw958j892w8i4fyzjdsyhrh7c5zajig049kbqz5n4yb"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -49317,14 +49782,35 @@ sub-processes using a fork-like interface.")
         ("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
@@ -49334,18 +49820,12 @@ sub-processes using a fork-like interface.")
        (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
@@ -51088,14 +51568,14 @@ fragment of code.")
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-    (version "1.0.133")
+    (version "1.0.148")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "16lq33l09nkm0hxdhfjjmh3yjv83rrcqw9lbxb8y4q3va5km0mlp"))))
+        (base32 "1p62a9n1527bv3k0fmjgny1ps12mr90v3qbn0rnis6d09fxn8gz5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -51443,22 +51923,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.148")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0dym0l8a0pch0mkqnhrf89n4wngzwf0d1z88hb8dhs456acic87d"))))
+        (base32 "031cp7vd2zq479zjrzpwpfzhphilgng30dv1pyx22dd5b9194m55"))))
     (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)]")
@@ -53439,7 +53918,7 @@ designed for @code{immutable.rs}.")
 (define-public rust-slab-0.4
   (package
     (name "rust-slab")
-    (version "0.4.2")
+    (version "0.4.7")
     (source
       (origin
         (method url-fetch)
@@ -53447,8 +53926,15 @@ designed for @code{immutable.rs}.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1y59xsa27jk84sxzswjk60xcjf8b4fm5960jwpznrrcmasyva4f1"))))
+          "1vyw3rkdfdfkzfa1mh83s237sll8v5kazfwxma60bq4b59msf526"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde-test" ,rust-serde-test-1))
+       #:cargo-inputs (("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
@@ -54552,6 +55038,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")
@@ -56681,7 +57218,7 @@ interface")
 (define-public rust-syn-1
   (package
     (name "rust-syn")
-    (version "1.0.99")
+    (version "1.0.105")
     (source
      (origin
        (method url-fetch)
@@ -56689,7 +57226,7 @@ interface")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04xba78p559nl737llv7nqcwm723dp6ah5bbp0h5w1amqrpfznsq"))))
+         "0279ivl07g0y5fs5bwmglhkdvi99ypcm36yb774f8bbh8lyv9fb0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -59885,19 +60422,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")
@@ -61537,17 +62075,17 @@ 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
@@ -61557,16 +62095,42 @@ stream-based WebSocket implementation.")
         ("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)
@@ -61725,6 +62289,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")
@@ -63711,7 +64296,7 @@ deserialization.")
 (define-public rust-typenum-1
   (package
     (name "rust-typenum")
-    (version "1.12.0")
+    (version "1.15.0")
     (source
       (origin
         (method url-fetch)
@@ -63719,8 +64304,10 @@ deserialization.")
         (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
@@ -65028,8 +65615,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
@@ -65041,7 +65667,6 @@ first byte.")
         (sha256
          (base32
           "1dy4ldcp7rnzjy56dxh7d2sgrcvn4q77y0a8r0a48946h66zjp5w"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -65050,12 +65675,7 @@ first byte.")
         ("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
@@ -65114,6 +65734,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")
@@ -67611,8 +68256,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
@@ -67635,12 +68315,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
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 2a66efb2a0..42522a72bd 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -132,6 +132,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)
@@ -901,7 +902,7 @@ 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"
@@ -909,21 +910,11 @@ Language.")
                                   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)))
@@ -935,21 +926,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"
@@ -989,14 +969,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
@@ -1032,6 +1004,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>.
@@ -1058,36 +1033,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"
@@ -1101,13 +1059,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=\"\"")
@@ -1134,7 +1091,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"))
@@ -1145,25 +1102,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
@@ -1289,14 +1241,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
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 15e7318926..47885083c0 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -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.0.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -270,11 +270,10 @@ supported devices, as well as input/output file format support.")
                                 (delete-file-recursively f)))
                             (scandir "." (negate (cut member <> keep))))))
               (patches
-               (search-patches "openboardview-use-system-imgui.patch"
-                               "openboardview-use-system-utf8.patch"))
+               (search-patches "openboardview-use-system-imgui.patch"))
               (sha256
                (base32
-                "1n2yfi8wpky0y231kq2zdgwn7f7kff8m53m904hxi5ppmwhx1d6q"))))
+                "0wmplzgi3rpkcajdrnkxvqhgxrn6qdxa6vwgd24bm10ryyhiqw54"))))
     (build-system cmake-build-system)
     (arguments
      (list
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 130a7adec4..cc3e263df0 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -472,112 +472,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 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
@@ -1799,7 +1769,7 @@ 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
@@ -1807,7 +1777,7 @@ which speak the Qualcomm MSM Interface (QMI) protocol.")
                     "ModemManager-" version ".tar.xz"))
               (sha256
                (base32
-                "1sv53lvz9nfbq6jzprl5xhai0vylc01kglcdrgz2vszf5615y98n"))))
+                "0c74n5jl1qvq2qlbwzfkgxny8smjcgkid1nhdnl6qnlmbn9f8r5l"))))
     (build-system gnu-build-system)
     (arguments
      (list
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 01ab6135a4..672a820686 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -111,7 +111,7 @@ 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
@@ -119,7 +119,7 @@ as ASCII text.")
                     "/download/v" version "/freeglut-" version ".tar.gz"))
               (sha256
                (base32
-                "0l3s57zw51fy3mn5qfdm4z775kfhflgxppanaxmskfzh5l44m565"))))
+                "1v7ayg3a03mv8b6lsr1qm21lbr8xg8dh3gdfxnbhl64vbn8wn2rw"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f                      ;no test target
@@ -616,14 +616,14 @@ 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
@@ -633,12 +633,15 @@ glxdemo, glxgears, glxheads, and glxinfo.")
                   #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/image.scm b/gnu/packages/image.scm
index 195d127b31..f48776469d 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1275,7 +1275,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.
@@ -1286,7 +1286,7 @@ language bindings to VIGRA.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1khqkm5j9aiii9jfsbxzzyz3x33sifzcx537cyjyb3a2g2rl969k"))))
+         "1jndbc99dd19a6d7h4ds51xyak7gfddkbi41nxdm8n23w7ks35r8"))))
     (build-system gnu-build-system)
     (inputs
      (list freeglut
@@ -2157,7 +2157,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
 (define-public libavif
   (package
     (name "libavif")
-    (version "0.9.2")
+    (version "0.11.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2166,7 +2166,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1yxmgjlxm1srm98zyj79bj8r8vmg67daqnq0ggcvxknq54plkznk"))))
+                "02zmb62g0yx6rfz4w1isyzfrckv5i7dzyz26rp2mspbx9w6v8j4r"))))
     (build-system cmake-build-system)
     (arguments
      (list
@@ -2178,13 +2178,10 @@ This package can be used to create @code{favicon.ico} files for web sites.")
               "-DAVIF_BUILD_TESTS=ON" "-DAVIF_BUILD_APPS=ON")
       #:phases
       #~(modify-phases %standard-phases
-          (replace 'check
-            (lambda* (#:key tests? #:allow-other-keys)
-              (when tests?
-                (invoke "./aviftest" "../source/tests/data"))))
           (add-after 'install 'install-readme
             (lambda _
-              (let ((doc (string-append #$output "/share/doc/libavif-" #$version)))
+              (let ((doc (string-append #$output "/share/doc/libavif-"
+                                        #$(package-version this-package))))
                 (install-file "../source/README.md" doc))))
           (add-after 'install 'split
             (lambda _
@@ -2200,6 +2197,7 @@ This package can be used to create @code{favicon.ico} files for web sites.")
                             (chmod new #o555))
                           (list avifenc avifdec)
                           (list avifenc* avifdec*))))))))
+    (native-inputs (list googletest))
     (inputs
      (append
       (if (member (%current-system) (package-transitive-supported-systems rav1e))
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index b74cdff0c7..80a6239754 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -417,10 +417,7 @@
                 (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)))))
+                  (("fate-lavf-mov_rtphint:.*") ""))))))))))
 
 (define-public libjami
   (package
diff --git a/gnu/packages/less.scm b/gnu/packages/less.scm
index a48fe09ee5..fac4831ebf 100644
--- a/gnu/packages/less.scm
+++ b/gnu/packages/less.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,7 +37,7 @@
 (define-public less
   (package
     (name "less")
-    (version "590")
+    (version "608")
     (source
      (origin
        (method url-fetch)
@@ -46,7 +47,7 @@
                                  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/linux.scm b/gnu/packages/linux.scm
index 9ee7874996..561c1e1638 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -5646,7 +5646,7 @@ 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
@@ -5654,7 +5654,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "0d6yl7l5zrlx5w3y503k72m9xsydx6gi1c65icchq1xknrjpwhxf"))))
+                "0x5mn9x6g626izxnw236933wvq83qagsh9qc9ac9550cb55sdzir"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -7064,7 +7064,7 @@ 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/"
@@ -7072,7 +7072,7 @@ of flash storage.")
                                   "/libseccomp-" version ".tar.gz"))
               (sha256
                (base32
-                "0xhan73zn4p0n7s8vx6s47wjmidvk4x8r90vfbljairn6f3mq1jr"))))
+                "1nyb3lspc5bsirpsx89vah3n54pmwlgxrwsfaxl01kq50i004afq"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 753952152e..9be298f282 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -430,7 +430,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 "1pwnhjp0fmkcgq11a6hj36gw8k05qramspgdbj28063k2s0dc1rn"))))
+        (base32 "1pwnhjp0fmkcgq11a6hj36gw8k05qramspgdbj28063k2s0dc1rn"))
+       (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
@@ -476,13 +482,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 4fdd06e214..aed5b1961b 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -107,7 +107,7 @@ 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
@@ -115,7 +115,7 @@ textfiles to roff for terminal display, and also to HTML for the web.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1c5dl017xil2ssb6a5vg927bnsbc9vymfgi9ahvqbb8gypx0igsx"))))
+                "15xpx7kbzkn63ab8mkghv7jkzji8pdbsyxm7ygjji19rvkkvkyv0"))))
     (build-system gnu-build-system)
     (home-page "http://libpipeline.nongnu.org/")
     (synopsis "C library for manipulating pipelines of subprocesses")
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index 0d18592be4..7db9073131 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -40,7 +40,7 @@
 (define-public nspr
   (package
     (name "nspr")
-    (version "4.34")
+    (version "4.35")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -48,7 +48,7 @@
                     version "/src/nspr-" version ".tar.gz"))
               (sha256
                (base32
-                "177rxcf3lglabs7sgwcvf72ww4v56qa71lc495wl13sxs4f03vxy"))))
+                "13xwda56yhp1w7v02qvlxvlqiniw8kr4g3fxlljmv6wnlmz2k8vy"))))
     (build-system gnu-build-system)
     (inputs
      (list perl                         ;for 'compile-et.pl'
@@ -112,7 +112,7 @@ in the Mozilla clients.")
     (name "nss")
     ;; 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
@@ -123,7 +123,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"
@@ -186,7 +186,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/patches/glslang-install-static-libs.patch b/gnu/packages/patches/glslang-install-static-libs.patch
new file mode 100644
index 0000000000..a155dde30e
--- /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/libcdio-glibc-compat.patch b/gnu/packages/patches/libcdio-glibc-compat.patch
new file mode 100644
index 0000000000..1d325bce96
--- /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 <rocky@gnu.org>
++
++  Copyright (C) 2010-2012, 2015, 2017, 2022 Rocky Bernstein
++  <rocky@gnu.org>
+ 
+   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 f331067b6e..0000000000
--- 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?= <cvicentiu@gmail.com>
-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 <jcowgill@debian.org>
-Jessica Clarke <jrtc27@debian.org>
-Vicențiu Ciorbaru <vicentiu@mariadb.org>
----
- 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-utf8.patch b/gnu/packages/patches/openboardview-use-system-utf8.patch
deleted file mode 100644
index 25b5952bda..0000000000
--- 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 <maxim.cournoyer@gmail.com>
-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/perl-check.scm b/gnu/packages/perl-check.scm
index 6562390d20..7bf58832bc 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -546,7 +546,7 @@ 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)
@@ -554,7 +554,7 @@ Test::More and friends.")
                            "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 7cdc052cee..ce96a1358f 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -11204,7 +11204,7 @@ 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)
@@ -11212,7 +11212,7 @@ Tree::Simple::Visitor::* objects.")
                            "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/python-xyz.scm b/gnu/packages/python-xyz.scm
index 32d826d3c5..df96458b13 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14278,26 +14278,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.
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 0c419dfaca..f4ef7b474a 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
-;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
@@ -115,7 +115,7 @@ joystick, and graphics hardware.")
   (package
     (inherit sdl)
     (name "sdl2")
-    (version "2.24.0")
+    (version "2.26.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -123,7 +123,7 @@ joystick, and graphics hardware.")
                               version ".tar.gz"))
               (sha256
                (base32
-                "15vd9najhjh6s9z9hhx7zp51iby690a1g3h7kcwjvyb82x5w7r4i"))))
+                "011y6x13z8sd8dlya6d01f1z9czv9gn3gciq21ip2h6pxg3pqlq2"))))
     (arguments
      (substitute-keyword-arguments (package-arguments sdl)
        ((#:configure-flags flags)
@@ -468,7 +468,7 @@ 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)
@@ -476,14 +476,15 @@ directory.")
         (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,32 +497,37 @@ 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)
@@ -530,29 +536,35 @@ directory.")
                        "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/version-control.scm b/gnu/packages/version-control.scm
index 2c1494a4dd..7cfc709466 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -224,14 +224,14 @@ Python 3.3 and later, rather than on Python 2.")
 (define-public git
   (package
    (name "git")
-   (version "2.38.1")
+   (version "2.39.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://kernel.org/software/scm/git/git-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "1n8afjjim30lddhm25cdscdr2xfa518293jhqbxy1fd2b3mgipcp"))))
+              "0nr6d46z3zfxbr1psww7vylva3mw6vbhnywixhywm6aszc9rn6ds"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("native-perl" ,perl)
@@ -251,7 +251,7 @@ Python 3.3 and later, rather than on Python 2.")
                 version ".tar.xz"))
           (sha256
            (base32
-            "17bms6d0v5dw34bpsm78gpq1pn0jp6ap8nbcrby4hzfwa810kya7"))))
+            "0rwl3rkj50r1dkrlgf3d2paxbz5fz7bq4azhzb6a4d6c8bazcw3p"))))
       ;; For subtree documentation.
       ("asciidoc" ,asciidoc)
       ("docbook-xsl" ,docbook-xsl)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index fc430b9196..4e7dad28e7 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -848,7 +848,7 @@ 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
@@ -857,7 +857,7 @@ television and DVD.  It is also known as AC-3.")
               (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
@@ -865,7 +865,6 @@ television and DVD.  It is also known as AC-3.")
      `(#: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")))
@@ -915,8 +914,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")
@@ -929,7 +928,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))
@@ -979,27 +978,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")
@@ -1522,14 +1500,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))
@@ -2391,7 +2369,7 @@ 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
@@ -2400,7 +2378,7 @@ To load this plugin, specify the following option when starting mpv:
               (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
@@ -2430,22 +2408,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"))
@@ -4964,7 +4926,7 @@ and audio capture, network stream playback, and many more.")
 (define-public dav1d
   (package
     (name "dav1d")
-    (version "0.9.2")
+    (version "1.0.0")
     (source
       (origin
         (method git-fetch)
@@ -4973,7 +4935,7 @@ and audio capture, network stream playback, and many more.")
                (commit version)))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0bkps488h9s15ylvkm4fmfywgrpbw570glawpnv6khpq9n223dzl"))))
+         (base32 "0jkvb5as7danpalzlwd0w1dc9i2vijvmf39z0j6fwqvialsgnnj5"))))
     (build-system meson-build-system)
     (native-inputs (list nasm))
     (home-page "https://code.videolan.org/videolan/dav1d")
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 64a26edb02..612ccc4e8a 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2119,7 +2119,7 @@ virtual machines.")
 (define-public bubblewrap
   (package
     (name "bubblewrap")
-    (version "0.6.1")
+    (version "0.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/containers/bubblewrap/"
@@ -2127,7 +2127,7 @@ virtual machines.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "10ij62jg7p2scwdx0pm141ss7p2gjdkbbymb56y8miib2vfcf2cn"))
+                "1p59hawgpf16mc01ybf6dfb2b96pk7h65ls0si9yldyh1c8bfjkn"))
                (patches (search-patches "bubblewrap-fix-locale-in-tests.patch"))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index f5c619a2b2..e7f507fe85 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -2,8 +2,10 @@
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2022 Kaelyn Takata <kaelyn.alexi@protonmail.com>
+;;; Copyright © 2022 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,10 +44,13 @@
   #: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)
@@ -54,7 +59,7 @@
              (commit version)))
        (sha256
         (base32
-         "069sivqajp7z4p44lmrz23lvf237xpkjxd4lzrg27836pwqcz9bj"))
+         "0z8b485hryya2g0jxv7amwg3fjj7pchbgnsa5ldf5fwgh5js0icm"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
@@ -77,19 +82,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")))))
@@ -106,7 +114,7 @@ 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)
@@ -114,7 +122,7 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
              (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
@@ -149,19 +157,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
@@ -183,17 +190,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.
@@ -207,48 +214,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
@@ -269,20 +283,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
@@ -301,7 +315,8 @@ 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)
@@ -311,7 +326,7 @@ API.")
        (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
@@ -343,7 +358,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
@@ -402,3 +426,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 f31a573e22..b8ff15892b 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3465,16 +3465,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)
@@ -3537,7 +3539,7 @@ 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
@@ -3545,10 +3547,10 @@ processing of request data as it arrives.")
                    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))
@@ -3776,14 +3778,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.075")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
                                   "IO-Socket-SSL-" version ".tar.gz"))
               (sha256
                (base32
-                "1ycgzg1l7p07y5wc0vzgnj122vm51p5aqpi4s56pp0piaq0gq824"))))
+                "135fvlvqcnmf0m0s8xqk015k7pyas1hiij5visb1l60y1cif43n3"))))
     (build-system perl-build-system)
     (propagated-inputs
      (list perl-net-ssleay