summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/admin.scm53
-rw-r--r--gnu/packages/bioinformatics.scm14
-rw-r--r--gnu/packages/crates-graphics.scm65
-rw-r--r--gnu/packages/crates-gtk.scm356
-rw-r--r--gnu/packages/crates-io.scm4015
-rw-r--r--gnu/packages/crypto.scm63
-rw-r--r--gnu/packages/gnome.scm68
-rw-r--r--gnu/packages/patches/rust-1.70-fix-rustix-build.patch21
-rw-r--r--gnu/packages/patches/rust-openssl-sys-no-vendor.patch32
-rw-r--r--gnu/packages/python-crypto.scm41
-rw-r--r--gnu/packages/python-xyz.scm57
-rw-r--r--gnu/packages/rust-apps.scm138
-rw-r--r--gnu/packages/rust.scm222
-rw-r--r--gnu/packages/syndication.scm7
-rw-r--r--gnu/packages/video.scm23
16 files changed, 4043 insertions, 1134 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 9e74919ef8..388043d4d6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1945,6 +1945,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ruby-nokogiri.patch			\
   %D%/packages/patches/rustc-1.54.0-src.patch			\
   %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch	\
+  %D%/packages/patches/rust-1.70-fix-rustix-build.patch	\
   %D%/packages/patches/rust-ring-0.16-missing-files.patch	\
   %D%/packages/patches/rust-ring-0.16-test-files.patch		\
   %D%/packages/patches/i3status-rust-enable-unstable-features.patch	\
@@ -1952,7 +1953,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch	\
   %D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch	\
   %D%/packages/patches/rust-nettle-disable-vendor.patch		 \
-  %D%/packages/patches/rust-openssl-sys-no-vendor.patch	\
   %D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch	\
   %D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch      \
   %D%/packages/patches/rw-igraph-0.10.patch			\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index ef44be4500..8f72b0eeae 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -5491,7 +5491,7 @@ interfering with any pam-mount configuration.")))
 (define-public wlgreet
   (package
     (name "wlgreet")
-    (version "0.4")
+    (version "0.4.1")
     (source (origin
              (method git-fetch)
              (uri (git-reference
@@ -5500,25 +5500,24 @@ interfering with any pam-mount configuration.")))
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "00grp63n9nrgqls3knxfv9wjbc7p0jwr7i2vzxy750dz85gi2kzn"))))
+               "1k0jmgh0rjbnb49gkvs0a4d7z9xb6pad8v5w5f7my4s0rfpk7wd9"))))
     (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-chrono" ,rust-chrono-0.4)
              ("rust-getopts" ,rust-getopts-0.2)
-             ("rust-greetd-ipc" ,rust-greetd-ipc-0.8)
+             ("rust-greetd-ipc" ,rust-greetd-ipc-0.9)
              ("rust-lazy-static" ,rust-lazy-static-1)
              ("rust-memmap2" ,rust-memmap2-0.3)
-             ("rust-nix" ,rust-nix-0.15)
-             ("rust-os-pipe" ,rust-os-pipe-0.8)
-             ("rust-rusttype" ,rust-rusttype-0.7)
+             ("rust-nix" ,rust-nix-0.25)
+             ("rust-os-pipe" ,rust-os-pipe-1)
+             ("rust-rusttype" ,rust-rusttype-0.9)
              ("rust-serde" ,rust-serde-1)
              ("rust-smithay-client-toolkit"
               ,rust-smithay-client-toolkit-0.15)
              ("rust-toml" ,rust-toml-0.5)
              ("rust-wayland-client" ,rust-wayland-client-0.29)
-             ("rust-wayland-protocols" ,rust-wayland-protocols-0.29)
-             ("rust-xml-rs" ,rust-xml-rs-0.8))
+             ("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
            #:phases
            #~(modify-phases %standard-phases
                (add-after 'unpack 'remove-bundled-fonts
@@ -5910,34 +5909,54 @@ file or files to several hosts.")
 (define-public du-dust
   (package
     (name "du-dust")
-    (version "0.8.3")
+    (version "0.8.6")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "du-dust" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1daif13rdd7wb8m5fbp6zif5b8znqcvmkxrjpp2w2famsp36sahx"))))
+                "1w52xdz1vi6awsvf4lph791zv13phjvz4ypmxr7f6pgxd3crr77c"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs (("rust-ansi-term" ,rust-ansi-term-0.12)
-                       ("rust-clap" ,rust-clap-3)
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             "--skip=test_apparent_size")
+       #:install-source? #f
+       #:cargo-inputs (("rust-ansi-term" ,rust-ansi-term-0.12)
+                       ("rust-atty" ,rust-atty-0.2)
                        ("rust-clap" ,rust-clap-3)
                        ("rust-clap-complete" ,rust-clap-complete-3)
+                       ("rust-clap-mangen" ,rust-clap-mangen-0.1)
                        ("rust-config-file" ,rust-config-file-0.2)
                        ("rust-directories" ,rust-directories-4)
-                       ("rust-lscolors" ,rust-lscolors-0.7)
+                       ("rust-lscolors" ,rust-lscolors-0.13)
                        ("rust-rayon" ,rust-rayon-1)
                        ("rust-regex" ,rust-regex-1)
                        ("rust-serde" ,rust-serde-1)
                        ("rust-stfu8" ,rust-stfu8-0.2)
-                       ("rust-sysinfo" ,rust-sysinfo-0.15)
-                       ("rust-terminal-size" ,rust-terminal-size-0.1)
+                       ("rust-sysinfo" ,rust-sysinfo-0.27)
+                       ("rust-terminal-size" ,rust-terminal-size-0.2)
                        ("rust-thousands" ,rust-thousands-0.2)
                        ("rust-unicode-width" ,rust-unicode-width-0.1)
                        ("rust-winapi-util" ,rust-winapi-util-0.1))
-       #:cargo-development-inputs (("rust-assert-cmd" ,rust-assert-cmd-1)
-                                   ("rust-tempfile" ,rust-tempfile-3))))
+       #:cargo-development-inputs (("rust-assert-cmd" ,rust-assert-cmd-2)
+                                   ("rust-tempfile" ,rust-tempfile-3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-extras
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (share (string-append out "/share")))
+               (install-file "man-page/dust.1"
+                             (string-append share "/man/man1"))
+               (mkdir-p (string-append out "/etc/bash_completion.d"))
+               (copy-file "completions/dust.bash"
+                          (string-append out "/etc/bash_completion.d/dust"))
+               (install-file "completions/dust.fish"
+                             (string-append share "/fish/vendor_completions.d"))
+               (install-file "completions/_dust"
+                             (string-append share "/zsh/site-fuctions"))))))))
     (home-page "https://github.com/bootandy/dust")
     (synopsis "Graphical disk usage analyzer")
     (description "This package provides a graphical disk usage analyzer in
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 45afde699d..ea0fe17b21 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4695,26 +4695,17 @@ accurately delineate genomic rearrangements throughout the genome.")
     (arguments
      (list
       #:install-source? #false          ;fails
-      #:tests? #false                   ;"cargo test" ignores build.rs
+      #:tests? #true
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'prepare-test-files
             (lambda _
               (delete-file "Cargo.lock")
-              (substitute* "liftover-rs/Cargo.toml"
-                (("anyhow = \"1\"") "anyhow = \"1.0.65\""))
               (substitute* "liftover-rs/prepare-test.sh"
                 (("/bin/bash")
                  (string-append #$(this-package-native-input "bash")
                                 "/bin/bash")))
               (invoke "bash" "prepare-test-files.sh")))
-          (add-before 'patch-cargo-checksums 'do-not-build-xz
-            (lambda _
-              ;; Detection of liblzma (in rust-lzma-sys, pulled in by
-              ;; rust-hts-sys) doesn't seem to work, or perhaps it really does
-              ;; request a static build somewhere.
-              (substitute* "guix-vendor/rust-lzma-sys-0.1.17.tar.xz/build.rs"
-                (("if .want_static && .msvc && pkg_config::probe_library\\(\"liblzma\"\\).is_ok\\(\\)") ""))))
           (add-before 'install 'chdir
             (lambda _ (chdir "transanno"))))
       #:cargo-inputs
@@ -4736,7 +4727,8 @@ accurately delineate genomic rearrangements throughout the genome.")
       #:cargo-development-inputs
       `(("rust-clap" ,rust-clap-2)
         ("rust-lazy-static" ,rust-lazy-static-1))))
-    (native-inputs (list bash))
+    (native-inputs (list bash pkg-config))
+    (inputs (list xz))
     (home-page "https://github.com/informationsea/transanno")
     (synopsis "LiftOver tool for new genome assemblies")
     (description "This package provides an accurate VCF/GFF3/GTF LiftOver tool
diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm
index ba502982ad..87fb4bfe08 100644
--- a/gnu/packages/crates-graphics.scm
+++ b/gnu/packages/crates-graphics.scm
@@ -1217,20 +1217,18 @@ EUI-64, also known as MAC-48 media access control addresses.")
   (package
     (inherit rust-glutin-egl-sys-0.4)
     (name "rust-glutin-egl-sys")
-    (version "0.1.5")
+    (version "0.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glutin-egl-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "04f2ci9kb8q4dv4kviigvgfy54lr4jmbnmjsvi50qj13anjnmfra"))))
+        (base32 "0g81bz7ppvaksvwcw1jg553g8b2shvmnfm9ms6hixwvinj20z438"))))
     (arguments
      `(#:cargo-inputs
        (("rust-winapi" ,rust-winapi-0.3)
-        ("rust-gl-generator" ,rust-gl-generator-0.13))))))
+        ("rust-gl-generator" ,rust-gl-generator-0.14))))))
 
 (define-public rust-glutin-emscripten-sys-0.1
   (package
@@ -1742,13 +1740,13 @@ graphics and video games.")
 (define-public rust-mp4parse-0.12
   (package
     (name "rust-mp4parse")
-    (version "0.12.0")
+    (version "0.12.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "mp4parse" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32 "1ppqv60qiyrnbb996gb1sik08c0j2i317llv3rrcwb1cjg3bdlk7"))))
+               (base32 "1scynvlmiy6xv2rrzzpijd812amh6a863na8i0xrcw5d9d08kl8h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f              ; Not all files included.
@@ -2186,21 +2184,22 @@ AVIF format (powers the `cavif` tool).")
   (package
     (inherit rust-ravif-0.8)
     (name "rust-ravif")
-    (version "0.6.4")
+    (version "0.6.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ravif" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gyc7w1fz3qdk95cdpkj185dm6lskxfp329xm69waxc565fcz9rx"))))
+        (base32 "0rfm63bv0q2rjyivmzlk4wma8xff6jralh7dr1bjz2aw4knm7cw1"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; Not packaging older versions of rav1e.
+       #:cargo-inputs
        (("rust-avif-serialize" ,rust-avif-serialize-0.6)
         ("rust-imgref" ,rust-imgref-1)
         ("rust-loop9" ,rust-loop9-0.1)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rav1e" ,rav1e)
+        ("rav1e" ,rav1e)    ; 0.5
         ("rust-rayon" ,rust-rayon-1)
         ("rust-rgb" ,rust-rgb-0.8))
        #:cargo-development-inputs
@@ -2262,6 +2261,25 @@ AVIF format (powers the `cavif` tool).")
     (arguments
      `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-resize-0.4
+  (package
+    (name "rust-resize")
+    (version "0.4.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "resize" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0bamrw2m37l8q46mcy6snp6106d93dq7x67hbbj32w88pjdhxn84"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-png" ,rust-png-0.16))))
+    (home-page "https://github.com/PistonDevelopers/resize")
+    (synopsis "Image resampling library in pure Rust")
+    (description "This package provides an image resampling library in pure Rust.")
+    (license license:expat)))
+
 (define-public rust-rgb-0.8
   (package
     (name "rust-rgb")
@@ -3823,25 +3841,40 @@ the platform-specific getters provided by winit, or another library.")
     (description "This package provides X11 library bindings for Rust.")
     (license license:expat)))
 
-(define-public rust-y4m-0.7
+(define-public rust-y4m-0.8
   (package
     (name "rust-y4m")
-    (version "0.7.0")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "y4m" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1bhdgb7hgx7j92nm6ij5n8wisp50j8ff66ks14jzwdw2mwhrjam7"))))
+        (base32 "0j24y2zf60lpxwd7kyg737hqfyqx16y32s0fjyi6fax6w4hlnnks"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:cargo-development-inputs (("rust-resize" ,rust-resize-0.4))))
     (home-page "https://github.com/image-rs/y4m")
     (synopsis "YUV4MPEG2 (@file{.y4m}) encoder and decoder")
     (description
      "This package provides a YUV4MPEG2 (@file{.y4m}) encoder and decoder.")
     (license license:expat)))
 
+(define-public rust-y4m-0.7
+  (package
+    (inherit rust-y4m-0.8)
+    (name "rust-y4m")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "y4m" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bhdgb7hgx7j92nm6ij5n8wisp50j8ff66ks14jzwdw2mwhrjam7"))))
+    (arguments `(#:skip-build? #t))))
+
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
 ;;; of a merge conflict, place them above by existing packages with similar
diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 1bd61d7f19..3c6f833145 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -168,28 +168,30 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
-(define-public rust-cairo-rs-0.15
+(define-public rust-cairo-rs-0.17
   (package
     (name "rust-cairo-rs")
-    (version "0.15.12")
+    (version "0.17.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cairo-rs" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1g396fdz8crf74dmmjarcsdbsm8qgxy3a5x9kw6m2d9xn28y6vn7"))))
+        (base32 "02lz7kvml4m6fx02hy1pgk6ysils9di8n75m166kcpla0b206dmb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.15)
-        ("rust-freetype" ,rust-freetype-0.7)
-        ("rust-glib" ,rust-glib-0.15)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.17)
+        ("rust-freetype-rs" ,rust-freetype-rs-0.32)
+        ("rust-glib" ,rust-glib-0.17)
         ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-thiserror" ,rust-thiserror-1))
        #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3))))
+       (("rust-float-eq" ,rust-float-eq-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -199,6 +201,29 @@
     (description "Rust bindings for the Cairo library")
     (license license:expat)))
 
+(define-public rust-cairo-rs-0.15
+  (package
+    (inherit rust-cairo-rs-0.17)
+    (name "rust-cairo-rs")
+    (version "0.15.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cairo-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1g396fdz8crf74dmmjarcsdbsm8qgxy3a5x9kw6m2d9xn28y6vn7"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.15)
+        ("rust-freetype" ,rust-freetype-0.7)
+        ("rust-glib" ,rust-glib-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-cairo-rs-0.14
   (package
     (inherit rust-cairo-rs-0.15)
@@ -277,21 +302,21 @@
        (("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
-(define-public rust-cairo-sys-rs-0.15
+(define-public rust-cairo-sys-rs-0.17
   (package
     (name "rust-cairo-sys-rs")
-    (version "0.15.1")
+    (version "0.17.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cairo-sys-rs" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1j6k4pps3dv6g0vlpmxc2xyk0s40vj2wpzi55lbwjspmpqlx8m9w"))))
+        (base32 "1ccw4z59dx60khngx79g64c75abfwy7wnq57h2z82j7vn5k0q7b9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.15)
+       (("rust-glib-sys" ,rust-glib-sys-0.17)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-system-deps" ,rust-system-deps-6)
         ("rust-winapi" ,rust-winapi-0.3)
@@ -305,6 +330,26 @@
     (description "This package provides FFI bindings to libcairo.")
     (license license:expat)))
 
+(define-public rust-cairo-sys-rs-0.15
+  (package
+    (inherit rust-cairo-sys-rs-0.17)
+    (name "rust-cairo-sys-rs")
+    (version "0.15.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cairo-sys-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1j6k4pps3dv6g0vlpmxc2xyk0s40vj2wpzi55lbwjspmpqlx8m9w"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-6)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-x11" ,rust-x11-2))))))
+
 (define-public rust-cairo-sys-rs-0.14
   (package
     (inherit rust-cairo-sys-rs-0.15)
@@ -463,27 +508,27 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
-(define-public rust-gdk-pixbuf-0.15
+(define-public rust-gdk-pixbuf-0.17
   (package
     (name "rust-gdk-pixbuf")
-    (version "0.15.11")
+    (version "0.17.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "gdk-pixbuf" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "16k1z21r76m620z61kfmgid1n6s8dnxpa4zlrppcr6dhr2fdsf5d"))))
+        (base32 "05q7ajsp2z8xi355h26k7lvq7n3lj9xm61vhn045g3238v46npb9"))))
     (build-system cargo-build-system)
     (arguments
-     `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
-       #:tests? #f
+     `(#:tests? #f      ; `Errors` doesn't implement `std::fmt::Display`
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.15)
-        ("rust-gio" ,rust-gio-0.15)
-        ("rust-glib" ,rust-glib-0.15)
-        ("rust-libc" ,rust-libc-0.2))
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.17)
+        ("rust-gio" ,rust-gio-0.17)
+        ("rust-glib" ,rust-glib-0.17)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1))
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (native-inputs
@@ -492,9 +537,33 @@
      (list gdk-pixbuf))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the GdkPixbuf library")
-    (description "Rust bindings for the GdkPixbuf library")
+    (description "Rust bindings for the @code{GdkPixbuf} library")
     (license license:expat)))
 
+(define-public rust-gdk-pixbuf-0.15
+  (package
+    (inherit rust-gdk-pixbuf-0.17)
+    (name "rust-gdk-pixbuf")
+    (version "0.15.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-pixbuf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16k1z21r76m620z61kfmgid1n6s8dnxpa4zlrppcr6dhr2fdsf5d"))))
+    (arguments
+     `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
+       #:tests? #f
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.15)
+        ("rust-gio" ,rust-gio-0.15)
+        ("rust-glib" ,rust-glib-0.15)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
 (define-public rust-gdk-pixbuf-0.14
   (package
     (inherit rust-gdk-pixbuf-0.15)
@@ -570,25 +639,23 @@
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
-(define-public rust-gdk-pixbuf-sys-0.15
+(define-public rust-gdk-pixbuf-sys-0.17
   (package
     (name "rust-gdk-pixbuf-sys")
-    (version "0.15.10")
+    (version "0.17.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "gdk-pixbuf-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19q2qjrzmmgc7bbs59sk6k0sv3xhpmnk9a2h0cajfr95g19jy2ql"))))
+        (base32 "1jvh91lzanr1a8c5h6ya8i4jzx7ifs8mjxjnmg8dfriw24yfr1cj"))))
     (build-system cargo-build-system)
     (arguments
-     `(;#:skip-build?
-       ;#t
-       #:cargo-inputs
-       (("rust-gio-sys" ,rust-gio-sys-0.15)
-        ("rust-glib-sys" ,rust-glib-sys-0.15)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.15)
+     `(#:cargo-inputs
+       (("rust-gio-sys" ,rust-gio-sys-0.17)
+        ("rust-glib-sys" ,rust-glib-sys-0.17)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.17)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-system-deps" ,rust-system-deps-6))
        #:cargo-development-inputs
@@ -603,6 +670,29 @@
     (description "This package provides FFI bindings to @code{libgdk_pixbuf-2.0}.")
     (license license:expat)))
 
+(define-public rust-gdk-pixbuf-sys-0.15
+  (package
+    (inherit rust-gdk-pixbuf-sys-0.17)
+    (name "rust-gdk-pixbuf-sys")
+    (version "0.15.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gdk-pixbuf-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19q2qjrzmmgc7bbs59sk6k0sv3xhpmnk9a2h0cajfr95g19jy2ql"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gio-sys" ,rust-gio-sys-0.15)
+        ("rust-glib-sys" ,rust-glib-sys-0.15)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-6))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-gdk-pixbuf-sys-0.14
   (package
     (inherit rust-gdk-pixbuf-sys-0.15)
@@ -768,36 +858,38 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
-(define-public rust-gio-0.15
+(define-public rust-gio-0.17
   (package
     (name "rust-gio")
-    (version "0.15.12")
+    (version "0.17.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "gio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0fr8qiqjf9yzl8867kgqdsxpkcx2jrns3xwmlf0jfiid668brzb8"))))
+        (base32 "02nkqpq1a6ikzhv5x4nyfvzx8zk5dkjsjm50ns4qdybwjf93x5x6"))))
     (build-system cargo-build-system)
     (arguments
-     `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
-       #:tests? #f
+     `(#:tests? #f      ; `Errors` doesn't implement `std::fmt::Display`
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-futures-channel" ,rust-futures-channel-0.3)
         ("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-io" ,rust-futures-io-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-gio-sys" ,rust-gio-sys-0.15)
-        ("rust-glib" ,rust-glib-0.15)
+        ("rust-gio-sys" ,rust-gio-sys-0.17)
+        ("rust-glib" ,rust-glib-0.17)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-smallvec" ,rust-smallvec-1)
         ("rust-thiserror" ,rust-thiserror-1))
        #:cargo-development-inputs
-       (("rust-futures-util" ,rust-futures-util-0.3)
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
         ("rust-gir-format-check" ,rust-gir-format-check-0.1)
-        ("rust-serial-test" ,rust-serial-test-0.6))))
+        ("rust-serial-test" ,rust-serial-test-1))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -807,6 +899,37 @@
     (description "Rust bindings for the Gio library")
     (license license:expat)))
 
+(define-public rust-gio-0.15
+  (package
+    (inherit rust-gio-0.17)
+    (name "rust-gio")
+    (version "0.15.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fr8qiqjf9yzl8867kgqdsxpkcx2jrns3xwmlf0jfiid668brzb8"))))
+    (arguments
+     `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
+       #:tests? #f
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-io" ,rust-futures-io-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-gio-sys" ,rust-gio-sys-0.15)
+        ("rust-glib" ,rust-glib-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-gir-format-check" ,rust-gir-format-check-0.1)
+        ("rust-serial-test" ,rust-serial-test-0.6))))))
+
 (define-public rust-gio-0.14
   (package
     (inherit rust-gio-0.15)
@@ -1272,14 +1395,14 @@
   (package
     (inherit rust-glib-macros-0.17)
     (name "rust-glib-macros")
-    (version "0.15.11")
+    (version "0.15.13")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glib-macros" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0r3cr0c79rs91z0sps089nsf8ppnm8agp48qwwqlkc32lqqq39i5"))))
+        (base32 "0jiwvywmkqhih6glipj1c7aylwfr738jid8nmjr4yvx2dygsxihh"))))
     (arguments
      `(;; XXX: Circular dependency on rust-glib??
        #:tests? #f
@@ -1813,27 +1936,28 @@
 library.")
     (license license:expat)))
 
-(define-public rust-pango-0.15
+(define-public rust-pango-0.17
   (package
     (name "rust-pango")
-    (version "0.15.10")
+    (version "0.17.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pango" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0ksf85fqkw4y5pf21p84g5xn4fnqn21cbrmx2d9yx6k591ah9r12"))))
+        (base32 "0j0xj9yw81qivqb0y34j9c5azjsdspxp1zzpvxi1zri0qrplbgim"))))
     (build-system cargo-build-system)
     (arguments
      `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
        #:tests? #f
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-glib" ,rust-glib-0.15)
+        ("rust-gio" ,rust-gio-0.17)
+        ("rust-glib" ,rust-glib-0.17)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-pango-sys" ,rust-pango-sys-0.15))
+        ("rust-pango-sys" ,rust-pango-sys-0.17))
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
     (native-inputs
@@ -1842,9 +1966,33 @@ library.")
      (list pango))
     (home-page "https://gtk-rs.org/")
     (synopsis "Rust bindings for the Pango library")
-    (description "Rust bindings for the Pango library")
+    (description "This package provides Rust bindings for the Pango library.")
     (license license:expat)))
 
+(define-public rust-pango-0.15
+  (package
+    (inherit rust-pango-0.17)
+    (name "rust-pango")
+    (version "0.15.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pango" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ksf85fqkw4y5pf21p84g5xn4fnqn21cbrmx2d9yx6k591ah9r12"))))
+    (arguments
+     `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
+       #:tests? #f
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-glib" ,rust-glib-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pango-sys" ,rust-pango-sys-0.15))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
 (define-public rust-pango-0.14
   (package
     (inherit rust-pango-0.15)
@@ -1923,22 +2071,22 @@ library.")
        #:cargo-development-inputs
        (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
 
-(define-public rust-pango-sys-0.15
+(define-public rust-pango-sys-0.17
   (package
     (name "rust-pango-sys")
-    (version "0.15.10")
+    (version "0.17.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pango-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1an3c931kbkr08n9d9d1dapsq3n26zs0xn4ixn11jrp4rn0h186j"))))
+        (base32 "15aindwdxsydzvqcvhc9ysamx5v1jmq8qbs61ncxic2h72grz9ix"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-glib-sys" ,rust-glib-sys-0.15)
-        ("rust-gobject-sys" ,rust-gobject-sys-0.15)
+       (("rust-glib-sys" ,rust-glib-sys-0.17)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.17)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-system-deps" ,rust-system-deps-6))
        #:cargo-development-inputs
@@ -1953,6 +2101,28 @@ library.")
     (description "This package provides FFI bindings to @code{libpango-1.0}.")
     (license license:expat)))
 
+(define-public rust-pango-sys-0.15
+  (package
+    (inherit rust-pango-sys-0.17)
+    (name "rust-pango-sys")
+    (version "0.15.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pango-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1an3c931kbkr08n9d9d1dapsq3n26zs0xn4ixn11jrp4rn0h186j"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.15)
+        ("rust-gobject-sys" ,rust-gobject-sys-0.15)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-system-deps" ,rust-system-deps-6))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-pango-sys-0.14
   (package
     (inherit rust-pango-sys-0.15)
@@ -2017,8 +2187,43 @@ library.")
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-pangocairo-0.17
+  (package
+    (name "rust-pangocairo")
+    (version "0.17.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pangocairo" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1kr2b31034b8zif4r3lf4rniqphk2bxi2q7n8iwq2wrf3k5jkgw6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
+       #:tests? #f
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.17)
+        ("rust-glib" ,rust-glib-0.17)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango" ,rust-pango-0.17)
+        ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.17))
+       #:cargo-development-inputs
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list pango))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the PangoCairo library")
+    (description
+     "This package provides Rust bindings for the @code{PangoCairo} library.")
+    (license license:expat)))
+
 (define-public rust-pangocairo-0.15
   (package
+    (inherit rust-pangocairo-0.17)
     (name "rust-pangocairo")
     (version "0.15.1")
     (source
@@ -2029,7 +2234,6 @@ library.")
         (sha256
          (base32
           "0rjk0clrjxah4kc0kybn7l7bxa5m5kpxkihxc2i7a6hx3xfa8xkq"))))
-    (build-system cargo-build-system)
     (arguments
      `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
        #:tests? #f
@@ -2041,19 +2245,43 @@ library.")
         ("rust-pango" ,rust-pango-0.15)
         ("rust-pangocairo-sys" ,rust-pangocairo-sys-0.15))
        #:cargo-development-inputs
-       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))
+       (("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
+
+(define-public rust-pangocairo-sys-0.17
+  (package
+    (name "rust-pangocairo-sys")
+    (version "0.17.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pangocairo-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ymr4aqrdpysz0rh383s4h6hj8nbkyj7n4723f45zzzqkf6x7pwl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.17)
+        ("rust-glib-sys" ,rust-glib-sys-0.17)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pango-sys" ,rust-pango-sys-0.17)
+        ("rust-system-deps" ,rust-system-deps-6))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (native-inputs
      (list pkg-config))
     (inputs
-     (list pango))
+     ;; XXX: Should these be propagated from their respective crates?
+     (list cairo glib pango))
     (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the PangoCairo library")
-    (description
-     "Rust bindings for the PangoCairo library.")
+    (synopsis "FFI bindings to libgtk-3")
+    (description "This package provides FFI bindings to @code{PangoCairo}.")
     (license license:expat)))
 
 (define-public rust-pangocairo-sys-0.15
   (package
+    (inherit rust-pangocairo-sys-0.17)
     (name "rust-pangocairo-sys")
     (version "0.15.1")
     (source
@@ -2065,7 +2293,6 @@ library.")
         (sha256
          (base32
           "154llaawy60zh8fkw2yq0r31ynpmqlsr7brryzaq2v4ijijp9kvq"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.15)
@@ -2075,16 +2302,7 @@ library.")
         ("rust-system-deps" ,rust-system-deps-6))
        #:cargo-development-inputs
        (("rust-shell-words" ,rust-shell-words-1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     ;; XXX: Should these be propagated from their respective crates?
-     (list cairo glib pango))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libgtk-3")
-    (description "This package provides FFI bindings to libgtk-3.")
-    (license license:expat)))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-soup-sys-0.10
   (package
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 9e8f66602c..4a8ffae766 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -62,6 +62,7 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages c)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
@@ -153,6 +154,109 @@ rasterizing OpenType font glyphs.")
 cubic beziers.")
     (license license:asl2.0)))
 
+(define-public rust-abi-stable-0.10
+  (package
+    (name "rust-abi-stable")
+    (version "0.10.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "abi-stable" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03vg0cl0727whv7nxyvm8g9xfwxnfcdn8p872jqw1z6n84yjix7s"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (((string-append ">=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+),"
+                                   " <([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)")
+                    _ version _)
+                   (string-append ">=" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; tests must be run with the "testing" feature
+       #:cargo-inputs
+       (("rust-abi-stable-derive" ,rust-abi-stable-derive-0.10)
+        ("rust-abi-stable-shared" ,rust-abi-stable-shared-0.10)
+        ("rust-core-extensions" ,rust-core-extensions-1)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-generational-arena" ,rust-generational-arena-0.2)
+        ("rust-libloading" ,rust-libloading-0.7)
+        ("rust-lock-api" ,rust-lock-api-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-paste" ,rust-paste-1)
+        ("rust-repr-offset" ,rust-repr-offset-0.2)
+        ("rust-rustc-version" ,rust-rustc-version-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.11)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/rodrimati1992/abi_stable_crates/")
+    (synopsis "Rust-to-Rust ffi,writing libraries loaded at program startup")
+    (description
+     "This package contains code for doing Rust-to-Rust ffi,writing libraries
+loaded at program startup.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-abi-stable-derive-0.10
+  (package
+    (name "rust-abi-stable-derive")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "abi-stable-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1w503n9rxja3h8ls6p5xsly8aclbp30dm4hd0525bvpbippi161v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--"
+         "--skip=sabi_trait::tests::sabi_trait_test_cases"
+         "--skip=stable_abi::tests::test_cases")
+       #:cargo-inputs
+       (("rust-abi-stable-shared" ,rust-abi-stable-shared-0.10)
+        ("rust-as-derive-utils" ,rust-as-derive-utils-0.10)
+        ("rust-core-extensions" ,rust-core-extensions-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-rustc-version" ,rust-rustc-version-0.2)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-typed-arena" ,rust-typed-arena-2))
+       #:cargo-development-inputs
+       (("rust-as-derive-utils" ,rust-as-derive-utils-0.10))))
+    (home-page "https://github.com/rodrimati1992/abi_stable_crates/")
+    (synopsis "Implementation detail of abi_stable.")
+    (description "This package contains an implementation detail of abi_stable.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-abi-stable-shared-0.10
+  (package
+    (name "rust-abi-stable-shared")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "abi-stable-shared" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0psaz0vghdz84vrb311g4b74d2nhrlbmwxa8if88s0bf0s4xmsgc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-core-extensions" ,rust-core-extensions-1))))
+    (home-page "https://github.com/rodrimati1992/abi_stable_crates/")
+    (synopsis "Implementation detail of abi_stable")
+    (description "This package contains an implementation detail of abi_stable.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-abomonation-0.7
   (package
     (name "rust-abomonation")
@@ -1552,7 +1656,7 @@ Rust.")
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
        (("rust-actix-rt" ,rust-actix-rt-1)
-        ("rust-actix-web" ,rust-actix-web-2))))))
+        ("rust-actix-web" ,rust-actix-web-3))))))
 
 (define-public rust-actix-web-codegen-0.1
   (package
@@ -1765,9 +1869,17 @@ Rust, using gimli.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0sw16zqy6w0ar633z69m7lw6gb0k1y7xj3387a8wly43ij5div5r"))))
+                "0sw16zqy6w0ar633z69m7lw6gb0k1y7xj3387a8wly43ij5div5r"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "Cargo.toml.orig"
+                    (("(cpp_demangle =.*)default-features = false,(.*)" _ first last)
+                     (string-append first last))
+                    ((".*auxiliary.*") ""))
+                  (copy-file "Cargo.toml.orig" "Cargo.toml")))))
     (arguments
-     `(#:tests? #false ;use of undeclared crate or module `auxiliary`
+     `(#:tests? #false  ; Not all files included.
        #:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-cpp-demangle" ,rust-cpp-demangle-0.3)
@@ -2319,7 +2431,8 @@ This package is deprecated and was replaced by the @code{aes} crate.")
         (base32
          "0r6j0mjkyqnwvgib01cvrwfw8rlx1biw75234niv723n1fdx6l6h"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-block-cipher" ,rust-block-cipher-0.7)
         ("rust-opaque-debug" ,rust-opaque-debug-0.2)
         ("rust-stream-cipher" ,rust-stream-cipher-0.4))
@@ -2372,7 +2485,10 @@ This package is deprecated and was replaced by the @code{aes} crate.")
        #:cargo-development-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-assert-cmd" ,rust-assert-cmd-2)
-        ("rust-tempfile" ,rust-tempfile-3))))
+        ("rust-tempfile" ,rust-tempfile-3))
+       #:phases (modify-phases %standard-phases
+                  ;; Custom archive file for test suite.
+                  (delete 'check-for-pregenerated-files))))
     (home-page "https://github.com/rust-fuzz/afl.rs")
     (synopsis
      "Fuzzing Rust code with american-fuzzy-lop")
@@ -2395,7 +2511,7 @@ This package is deprecated and was replaced by the @code{aes} crate.")
         (base32
          "1rw11hycfjhqbc7z1smn75m0sczq519msjwimxh7b8s6n4pzk5r7"))))
     (arguments
-     `(#:skip-build? #t
+     `(#:skip-build? #t     ; Build wants AFL
        #:cargo-inputs
        (("rust-cc" ,rust-cc-1)
         ("rust-clap" ,rust-clap-2)
@@ -2405,7 +2521,10 @@ This package is deprecated and was replaced by the @code{aes} crate.")
         ("rust-xdg" ,rust-xdg-2))
        #:cargo-development-inputs
        (("rust-rustc-version" ,rust-rustc-version-0.2)
-        ("rust-xdg" ,rust-xdg-2))))))
+        ("rust-xdg" ,rust-xdg-2))
+       #:phases (modify-phases %standard-phases
+                  ;; Custom archive file for test suite.
+                  (delete 'check-for-pregenerated-files))))))
 
 (define-public rust-ahash-0.8
   (package
@@ -2449,24 +2568,31 @@ high performance.")
 (define-public rust-ahash-0.7
   (package
     (name "rust-ahash")
-    (version "0.7.4")
+    (version "0.7.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ahash" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "163vy6jcd7r3jczsv4zyhlc5x9dqsfgg1yrqbm3xhygr1czq7fs3"))))
+        (base32 "0isw672fiwx8cjl040jrck6pi85xcszkz6q0xsqkiy6qjl31mdgw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-const-random" ,rust-const-random-0.1)
         ("rust-getrandom" ,rust-getrandom-0.2)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-version-check" ,rust-version-check-0.9))))
+        ("rust-version-check" ,rust-version-check-0.9))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-no-panic" ,rust-no-panic-0.1)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-seahash" ,rust-seahash-4)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/tkaitchuck/ahash")
     (synopsis "Non-cryptographic hash function using AES-NI")
     (description "This package provides a non-cryptographic hash function
@@ -3864,21 +3990,19 @@ structures.")
 (define-public rust-arrayvec-0.7
   (package
     (name "rust-arrayvec")
-    (version "0.7.2")
+    (version "0.7.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "arrayvec" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1mjl8jjqxpl0x7sm9cij61cppi7yi38cdrd1l8zjw7h7qxk2v9cd"))))
+        (base32 "04b7n722jij0v3fnm3qk072d5ysc2q30rl9fz33zpfhzah30mlwn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-serde" ,rust-serde-1))
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-zeroize" ,rust-zeroize-1))
        #:cargo-development-inputs
        (("rust-bencher" ,rust-bencher-0.1)
         ("rust-matches" ,rust-matches-0.1)
@@ -4098,6 +4222,74 @@ the web.")
     ;; No copyright headers in the source code.  LICENSE indicates gpl3.
     (license license:gpl3)))
 
+(define-public rust-as-derive-utils-0.10
+  (package
+    (name "rust-as-derive-utils")
+    (version "0.10.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "as-derive-utils" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "16qxh5q7gn6vnzk20g7vaj76f4dd74zkn66fv638ryyfjnj6z8p0"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (((string-append ">=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+),"
+                                   " <([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)")
+                    _ version _)
+                   (string-append ">=" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f              ; Only doc tests, which fail.
+       #:cargo-inputs
+       (("rust-aho-corasick" ,rust-aho-corasick-0.7)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-core-extensions" ,rust-core-extensions-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-ron" ,rust-ron-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/rodrimati1992/abi_stable_crates/")
+    (synopsis "Private derive utilities used by abi_stable and structural")
+    (description "This package contains private derive utilities used by
+the abi_stable and structural crates.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-as-derive-utils-0.8
+  (package
+    (inherit rust-as-derive-utils-0.10)
+    (name "rust-as-derive-utils")
+    (version "0.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "as-derive-utils" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rjmbasb2spxdmm47kzw2zmr8icbdrcr0wa9kyn7lim5c0idh69b"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("\"~([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aho-corasick" ,rust-aho-corasick-0.7)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-core-extensions" ,rust-core-extensions-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-ron" ,rust-ron-0.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-askama-escape-0.10
   (package
     (name "rust-askama-escape")
@@ -4204,8 +4396,32 @@ Askama.")
 library for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-asn1-derive-0.15
+  (package
+    (name "rust-asn1-derive")
+    (version "0.15.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "asn1-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1771kfjycjs4g2acqvxpjy3igfcgg8hychczl1lsqq64za4gj6l6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-2))))
+    (home-page "https://github.com/alex/rust-asn1")
+    (synopsis "#[derive] support for asn1")
+    (description
+     "This package provides #[derive] support for @code{asn1}.")
+    (license license:bsd-3)))
+
 (define-public rust-asn1-derive-0.13
   (package
+    (inherit rust-asn1-derive-0.15)
     (name "rust-asn1-derive")
     (version "0.13.0")
     (source (origin
@@ -4215,21 +4431,39 @@ library for Rust.")
               (sha256
                (base32
                 "1bvqriazb23gysygpzng1dhzjgnlv274q2yj5gpmlpl7jp0pkaxz"))))
-    (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))))
+        ("rust-syn" ,rust-syn-1))))))
+
+(define-public rust-asn1-0.15
+  (package
+    (name "rust-asn1")
+    (version "0.15.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "asn1" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nzg1gjiyfvpvrf3i7i8j21165snf5livqg6x2sjf9m2i77cngmf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-asn1-derive" ,rust-asn1-derive-0.15))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2))))
     (home-page "https://github.com/alex/rust-asn1")
-    (synopsis "#[derive] support for asn1")
+    (synopsis "ASN.1 (DER) parser and writer")
     (description
-     "This package provides #[derive] support for @code{asn1}.")
+     "This is a Rust library for parsing and generating ASN.1 data (DER only).")
     (license license:bsd-3)))
 
 (define-public rust-asn1-0.13
   (package
+    (inherit rust-asn1-0.15)
     (name "rust-asn1")
     (version "0.13.0")
     (source (origin
@@ -4239,18 +4473,12 @@ library for Rust.")
               (sha256
                (base32
                 "1idxxw14h3dvrj72k4g0hx1aqigd986a00cg0yxfw2gfc9gbmzra"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-asn1-derive" ,rust-asn1-derive-0.13)
         ("rust-chrono" ,rust-chrono-0.4))
        #:cargo-development-inputs
-       (("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/alex/rust-asn1")
-    (synopsis "ASN.1 (DER) parser and writer")
-    (description
-     "This is a Rust library for parsing and generating ASN.1 data (DER only).")
-    (license license:bsd-3)))
+       (("rust-libc" ,rust-libc-0.2))))))
 
 (define-public rust-asn1-rs-0.5
   (package
@@ -4529,26 +4757,27 @@ approximately equal.")
 (define-public rust-assert-cmd-2
   (package
     (name "rust-assert-cmd")
-    (version "2.0.4")
+    (version "2.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "assert_cmd" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0gpqwasl690zimy13rn614mpzgykpa09v5xivs4pdmpg77fivblk"))))
+        (base32 "1rnzd84nqijp147nld05j5j92xpj2j57zfrm6c0d9r138yqkr448"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bstr" ,rust-bstr-0.2)
-        ("rust-concolor" ,rust-concolor-0.0.8)
+     `(#:cargo-inputs
+       (("rust-anstream" ,rust-anstream-0.3)
+        ("rust-anstyle" ,rust-anstyle-1)
+        ("rust-bstr" ,rust-bstr-1)
         ("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-predicates" ,rust-predicates-2)
+        ("rust-predicates" ,rust-predicates-3)
         ("rust-predicates-core" ,rust-predicates-core-1)
         ("rust-predicates-tree" ,rust-predicates-tree-1)
-        ("rust-wait-timeout" ,rust-wait-timeout-0.2)
-        ("rust-yansi" ,rust-yansi-0.5))))
+        ("rust-wait-timeout" ,rust-wait-timeout-0.2))
+       #:cargo-development-inputs
+       (("rust-escargot" ,rust-escargot-0.5))))
     (home-page "https://github.com/assert-rs/assert_cmd")
     (synopsis "Test CLI Applications")
     (description "@code{assert_cmd} aims to simplify the process for doing
@@ -5782,6 +6011,60 @@ they're not available.")
          ("rust-termion" ,rust-termion-1)
          ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-auto-impl-0.5
+  (package
+    (name "rust-auto-impl")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "auto-impl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "195d6s9bfcchwizf3km1g69l74f6xvm5gl9505js2r9xi4ff4qkq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             "--skip=ui_compile_fail")
+       #:cargo-inputs
+       (("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/auto-impl-rs/auto_impl/")
+    (synopsis
+     "Automatically implement traits for common smart pointers and closures")
+    (description
+     "Automatically implement traits for common smart pointers and closures.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-auto-impl-0.4
+  (package
+    (inherit rust-auto-impl-0.5)
+    (name "rust-auto-impl")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "auto-impl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0f0aildq7rl7imgl6x6xw8jg4m08xz9q1bpcrmf5xnhar23gbjs2"))))
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--" "--skip=ui")
+       #:cargo-inputs
+       (("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))))
+
 (define-public rust-autocompress-0.2
   (package
     (name "rust-autocompress")
@@ -5797,15 +6080,7 @@ they're not available.")
     (arguments
      (list
       #:tests? #false ;The crate does not include test files
-      #:phases
-      '(modify-phases %standard-phases
-         (add-before 'patch-cargo-checksums 'do-not-build-xz
-           (lambda _
-             ;; Detection of liblzma (in rust-lzma-sys, pulled in by
-             ;; rust-hts-sys) doesn't seem to work, or perhaps it really does
-             ;; request a static build somewhere.
-             (substitute* "guix-vendor/rust-lzma-sys-0.1.17.tar.xz/build.rs"
-               (("if .want_static && .msvc && pkg_config::probe_library\\(\"liblzma\"\\).is_ok\\(\\)") "")))))
+      #:skip-build? #t  ; could not find `block` in `zstd`
       #:cargo-inputs
       `(("rust-brotli" ,rust-brotli-3)
         ("rust-bzip2" ,rust-bzip2-0.4)
@@ -5822,6 +6097,7 @@ they're not available.")
         ("rust-rand" ,rust-rand-0.8)
         ("rust-temp-testdir" ,rust-temp-testdir-0.2))))
     (inputs (list xz))
+    (native-inputs (list pkg-config))
     (home-page "https://github.com/informationsea/autocompress-rs")
     (synopsis "Select decoder from magic bytes or encoder from file extension")
     (description
@@ -6357,6 +6633,10 @@ embedded-friendly no_std support.")
         (base32
          "1ykwx8jhksqxghfgyw2pzikzjf4n9wqm1x2ww5wqyn68ssf6dki3"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.7)
+        ("rust-rand" ,rust-rand-0.5))))
     (home-page "https://github.com/andreasots/base32")
     (synopsis "Base32 encoder/decoder for Rust")
     (description "This library lets you encode and decode in either
@@ -7737,14 +8017,14 @@ types.")
 (define-public rust-bitflags-2
   (package
     (name "rust-bitflags")
-    (version "2.3.3")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bitflags" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0hifjw3191g3w5cwqqvbx8knrr3zchdwfc3rs6mn11p5si9yf2v3"))))
+        (base32 "0dc6xa7flfl59makmhixjcrslwlvdxxwrgxbr8p7bkvz53k2ls5l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Not all files included.
@@ -9000,6 +9280,50 @@ and kernels.")
 decompression and compression to Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-browserslist-rs-0.6
+  (package
+    (name "rust-browserslist-rs")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "browserslist-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19l0prgnbx0cyqvjsf30ni7d87nkn8j0fj56fg259yvfh50if1ri"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-either" ,rust-either-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-napi" ,rust-napi-2)
+        ("rust-napi-build" ,rust-napi-build-1)
+        ("rust-napi-derive" ,rust-napi-derive-2)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-wasm-bindgen" ,rust-serde-wasm-bindgen-0.3)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-test-case" ,rust-test-case-1))))
+    (home-page "https://github.com/browserslist/browserslist-rs")
+    (synopsis "Rust-ported Browserslist")
+    (description "Rust-ported Browserslist.")
+    (license license:expat)))
+
 (define-public rust-bs58-0.2
   (package
     (name "rust-bs58")
@@ -10978,9 +11302,22 @@ supported by Cargo.")
        (sha256
         (base32
          "1sz0gzcyp9ycb4zwj69qs9gd8kn9hv9nh2dq42c59x5xccqph755"))))
-    (arguments '())
-    (inputs '())
-    (native-inputs '())))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-core-foundation" ,rust-core-foundation-0.9)
+        ("rust-crypto-hash" ,rust-crypto-hash-0.3)
+        ("rust-filetime" ,rust-filetime-0.2)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-jobserver" ,rust-jobserver-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-miow" ,rust-miow-0.3)
+        ("rust-same-file" ,rust-same-file-1)
+        ("rust-shell-escape" ,rust-shell-escape-0.1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-cassowary-0.3
   (package
@@ -11965,24 +12302,24 @@ usage.")
 (define-public rust-clang-ast-0.1
   (package
     (name "rust-clang-ast")
-    (version "0.1.6")
+    (version "0.1.20")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "clang-ast" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "1sfqyxszas78s78nga88fl0i5qlr87qsj22vlxarhvx96q86impf"))))
+         (base32 "04qf9kpc2r3ca7c5x8bjp1daj42k69q12q8mz7bhajbm9rpafb8m"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t     ; Uses unstable features.
+     `(#:tests? #f      ; Fails to build clang-ast-test-suite.
        #:cargo-inputs
-       (("rust-serde" ,rust-serde-1))
+       (("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-clang-ast-test-suite" ,rust-clang-ast-test-suite-0.0.0)
-        ("rust-serde" ,rust-serde-1)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/dtolnay/clang-ast")
     (synopsis "Data structures for processing Clang's ast format")
@@ -12659,6 +12996,26 @@ stream of tokens.")
     (description "This package provides a manpage generator for clap.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-clap-mangen-0.1
+  (package
+    (inherit rust-clap-mangen-0.2)
+    (name "rust-clap-mangen")
+    (version "0.1.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "clap-mangen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zrpsp2lfrm1cgwsi7vlv9xlk4nbxrwnqksfbrgqsf3jbb080l8h"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-roff" ,rust-roff-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-snapbox" ,rust-snapbox-0.2))))))
+
 (define-public rust-clearscreen-1
   (package
     (name "rust-clearscreen")
@@ -13630,14 +13987,18 @@ idiomatic wrappers for Mac OS X's CommonCrypto library.")
 (define-public rust-compact-str-0.7
   (package
     (name "rust-compact-str")
-    (version "0.7.0")
+    (version "0.7.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "compact_str" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1lbk5vkn6vriwx98pybfsgy093ga6ilpm5gkcd8v7cgcg5gq1w5z"))))
+                "0gvvfc2c6pg1rwr2w36ra4674w3lzwg97vq2v6k791w30169qszq"))
+              (snippet
+               #~(begin (use-modules (guix build utils))
+                        (substitute* "Cargo.toml"
+                          (("1\\.0\\.\\*") "1.0.0"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -13660,6 +14021,7 @@ idiomatic wrappers for Mac OS X's CommonCrypto library.")
         ("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
         ("rust-rayon" ,rust-rayon-1)
+        ("rust-rkyv" ,rust-rkyv-0.7)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-test-case" ,rust-test-case-2)
@@ -14505,8 +14867,33 @@ generation.")
      "This package provides a sha1 implementation for use in const contexts.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-constant-time-eq-0.3
+  (package
+    (name "rust-constant-time-eq")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "constant-time-eq" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1hl0y8frzlhpr58rh8rlg4bm53ax09ikj2i5fk7gpyphvhq4s57p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-count-instructions" ,rust-count-instructions-0.1)
+        ("rust-criterion" ,rust-criterion-0.5))))
+    (home-page "https://github.com/cesarb/constant_time_eq")
+    (synopsis
+     "Compares two equal-sized byte strings in constant time")
+    (description
+     "This package compares two equal-sized byte strings in constant time.
+It is inspired by the Linux kernel's @code{crypto_memneq}.")
+    (license (list license:cc0 license:expat-0 license:asl2.0))))
+
 (define-public rust-constant-time-eq-0.2
   (package
+    (inherit rust-constant-time-eq-0.3)
     (name "rust-constant-time-eq")
     (version "0.2.5")
     (source (origin
@@ -14516,16 +14903,8 @@ generation.")
               (sha256
                (base32
                 "0sy7bs12dfa2d5hw7759b0mvjqcs85giajg4qyg39xq8a1s8wh8k"))))
-    (build-system cargo-build-system)
     (arguments
-     `(#:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.4))))
-    (home-page "https://github.com/cesarb/constant_time_eq")
-    (synopsis
-     "Compares two equal-sized byte strings in constant time")
-    (description
-     "This package compares two equal-sized byte strings in constant time.
-It is inspired by the Linux kernel's @code{crypto_memneq}.")
-    (license (list license:cc0 license:expat-0 license:asl2.0))))
+     `(#:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.4))))))
 
 (define-public rust-constant-time-eq-0.1
   (package
@@ -14597,27 +14976,57 @@ to guess the type of content.")
 semantics than those provided by @code{as} or @code{From}/@code{Into}.")
     (license license:expat)))
 
-(define-public rust-convert-case-0.4
+(define-public rust-convert-case-0.6
   (package
     (name "rust-convert-case")
-    (version "0.4.0")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "convert-case" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "03jaf1wrsyqzcaah9jf8l1iznvdw5mlsca2qghhzr9w27sddaib2"))))
+        (base32 "1jn1pq6fp3rri88zyw6jlhwwgf6qiyc08d6gjv0qypgkl862n67c"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("\"~([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             "--skip=case::Case::PseudoRandom"
+             "--skip=case::Case::Random"
+             "--skip=pattern::Pattern::PseudoRandom")
        #:cargo-inputs
-       (("rust-rand" ,rust-rand-0.7))))
+       (("rust-rand" ,rust-rand-0.7)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))
+       #:cargo-development-inputs
+       (("rust-strum" ,rust-strum-0.18)
+        ("rust-strum-macros" ,rust-strum-macros-0.18))))
     (home-page "https://github.com/rutrum/convert-case")
     (synopsis "Convert strings into any case")
     (description "Convert strings into any case.")
     (license license:expat)))
 
+(define-public rust-convert-case-0.4
+  (package
+    (inherit rust-convert-case-0.6)
+    (name "rust-convert-case")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "convert-case" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "03jaf1wrsyqzcaah9jf8l1iznvdw5mlsca2qghhzr9w27sddaib2"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-rand" ,rust-rand-0.7))))))
+
 (define-public rust-cookie-0.17
   (package
     (name "rust-cookie")
@@ -14701,6 +15110,31 @@ It supports signed and private (encrypted + signed) jars.")
         ("rust-time" ,rust-time-0.2)
         ("rust-version-check" ,rust-version-check-0.9))))))
 
+(define-public rust-cookie-0.14
+  (package
+    (inherit rust-cookie-0.15)
+    (name "rust-cookie")
+    (version "0.14.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ldryjb41r8n0ar2pya0bajlxr8s4j59fjkmyi5ppg1932rdg983"))))
+    (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-time" ,rust-time-0.2)
+        ("rust-version-check" ,rust-version-check-0.9))))))
+
 (define-public rust-cookie-0.12
   (package
     (inherit rust-cookie-0.15)
@@ -14884,51 +15318,112 @@ contents of the OS-level clipboard.")
 numbers using the CORDIC method.")
     (license license:bsd-3)))
 
-(define-public rust-core2-0.3
+(define-public rust-core-extensions-1
   (package
-    (name "rust-core2")
-    (version "0.3.3")
+    (name "rust-core-extensions")
+    (version "1.5.3")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "core2" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "1wzzy5iazdk5caadxvjfwrd312rbg7a55a1zpmsdrhk3kfpa77r3"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-extensions" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1vn0jsn8nbi76i2jjadim31piscf0hv8640ng9z608cpgk01viwj"))))
     (build-system cargo-build-system)
-    (arguments `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2))))
-    (home-page "https://github.com/bbqsrc/core2")
-    (synopsis "Bare essentials of @code{std::io} for use in @code{no_std}")
+    (arguments
+     `(#:tests? #f  ; tests must be run with the "__test" feature
+       #:cargo-inputs
+       (("rust-core-extensions-proc-macros" ,rust-core-extensions-proc-macros-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.4)
+        ("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/rodrimati1992/core_extensions")
+    (synopsis
+     "Extensions for core/std library types, and other miscelaneous features")
     (description
-      "This package provides the bare essentials of @code{std::io} for use
-in @code{no_std}.  Alloc support is optional.")
-    (license (list license:asl2.0 license:expat))))
+     "Extensions for core/std library types, and other miscelaneous features.")
+    (license (list license:expat license:asl2.0))))
 
-(define-public rust-cookie-0.14
+(define-public rust-core-extensions-0.1
   (package
-    (inherit rust-cookie-0.15)
-    (name "rust-cookie")
-    (version "0.14.2")
+    (inherit rust-core-extensions-1)
+    (name "rust-core-extensions")
+    (version "0.1.20")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "cookie" version))
+       (uri (crate-uri "core-extensions" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1q56fl2cqrci9ksa80d7g220phq02nf1yfbvxkpk9g1p95ma2wqk"))))
+        (base32 "1nhgd5rlgp679qm4g3x806ywwhm6qr1y2j3y90wzjgyqllf7w49s"))))
+    (arguments
+     `(#:skip-build? #t ; failed to resolve: could not find `export` in `_serde`
+       #:cargo-inputs
+       (("rust-rustc-version" ,rust-rustc-version-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-typenum" ,rust-typenum-1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.4))))))
+
+(define-public rust-core-extensions-proc-macros-1
+  (package
+    (name "rust-core-extensions-proc-macros")
+    (version "1.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core-extensions-proc-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19k11haw8s00zxxignjmw0ian0q85r9grhbvr153nvlbs8cv5wv9"))))
+    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-aes-gcm" ,rust-aes-gcm-0.6)
-        ("rust-base64" ,rust-base64-0.12)
-        ("rust-hkdf" ,rust-hkdf-0.9)
-        ("rust-hmac" ,rust-hmac-0.8)
-        ("rust-percent-encoding" ,rust-percent-encoding-2)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-sha2" ,rust-sha2-0.9)
-        ("rust-time" ,rust-time-0.2))
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
-       (("rust-version-check" ,rust-version-check-0.9))))))
+       (("rust-proc-macro2" ,rust-proc-macro2-1))))
+    (home-page "https://github.com/rodrimati1992/core_extensions")
+    (synopsis "Implementation detail of the @code{core_extensions} crate")
+    (description "Implementation detail of the @code{core_extensions} crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-core2-0.4
+  (package
+    (name "rust-core2")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "core2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01f5xv0kf3ds3xm7byg78hycbanb8zlpvsfv4j47y46n3bpsg6xl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2))))
+    (home-page "https://github.com/bbqsrc/core2")
+    (synopsis "Bare essentials of @code{std::io} for use in @code{no_std}")
+    (description
+      "This package provides the bare essentials of @code{std::io} for use
+in @code{no_std}.  Alloc support is optional.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-core2-0.3
+  (package
+    (inherit rust-core2-0.4)
+    (name "rust-core2")
+    (version "0.3.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "core2" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "1wzzy5iazdk5caadxvjfwrd312rbg7a55a1zpmsdrhk3kfpa77r3"))))
+    (arguments `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2))))))
 
 (define-public rust-cookie-store-0.19
   (package
@@ -15193,14 +15688,14 @@ intrinsics.")
   (package
     (inherit rust-core-foundation-sys-0.8)
     (name "rust-core-foundation-sys")
-    (version "0.7.2")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "core-foundation-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ghrg46h4ci306agr2vwm28w6gb5l455nzp61y2zkhwfs49p4nis"))))))
+        (base32 "1b5qfnnmg49sawwfsb0c0wbj81bqi7h7lh68pmhbidf0jjs1m9xk"))))))
 
 (define-public rust-core-foundation-sys-0.6
   (package
@@ -15278,6 +15773,27 @@ intrinsics.")
     (description "This package provides a Manual coverage marks.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-count-instructions-0.1
+  (package
+    (name "rust-count-instructions")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "count-instructions" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ps0254pvx3nmnxs2v60kv7fqayh82r3jqypb4l3ql3i7s3rzr1n"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-rustix" ,rust-rustix-0.38))))
+    (home-page "https://github.com/cesarb/count_instructions")
+    (synopsis "Counts the instructions executed within a single function")
+    (description "Counts the instructions executed within a single function.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-countme-3
   (package
     (name "rust-countme")
@@ -15745,8 +16261,64 @@ Rust.")
 http://reveng.sourceforge.net/crc-catalogue) expressed as simple Rust structs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-criterion-0.5
+  (package
+    (name "rust-criterion")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "criterion" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0bv9ipygam3z8kk6k771gh9zi0j0lb9ir0xi1pc075ljg80jvcgj"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("\"~([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anes" ,rust-anes-0.1)
+        ("rust-async-std" ,rust-async-std-1)
+        ("rust-cast" ,rust-cast-0.3)
+        ("rust-ciborium" ,rust-ciborium-0.2)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-criterion-plot" ,rust-criterion-plot-0.5)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-is-terminal" ,rust-is-terminal-0.4)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-oorandom" ,rust-oorandom-11)
+        ("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.4
   (package
+    (inherit rust-criterion-0.5)
     (name "rust-criterion")
     (version "0.4.0")
     (source (origin
@@ -15756,7 +16328,6 @@ http://reveng.sourceforge.net/crc-catalogue) expressed as simple Rust structs.")
               (sha256
                (base32
                 "1jsl4r0yc3fpkyjbi8aa1jrm69apqq9rxwnjnd9brqmaq44nxiz7"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-anes" ,rust-anes-0.1)
@@ -15771,7 +16342,7 @@ http://reveng.sourceforge.net/crc-catalogue) expressed as simple Rust structs.")
         ("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-oorandom" ,rust-oorandom-11)
         ("rust-plotters" ,rust-plotters-0.3)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-regex" ,rust-regex-1)
@@ -15787,13 +16358,7 @@ http://reveng.sourceforge.net/crc-catalogue) expressed as simple Rust structs.")
         ("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))))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-criterion-0.3
   (package
@@ -15820,7 +16385,7 @@ http://reveng.sourceforge.net/crc-catalogue) expressed as simple Rust structs.")
         ("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-oorandom" ,rust-oorandom-11)
         ("rust-plotters" ,rust-plotters-0.3)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-regex" ,rust-regex-1)
@@ -17016,37 +17581,67 @@ algorithms.")
 hash functions.")
     (license license:expat)))
 
-(define-public rust-cssparser-0.28
+(define-public rust-cssparser-0.29
   (package
     (name "rust-cssparser")
-    (version "0.28.1")
+    (version "0.29.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cssparser" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1h924c5g2rwlmgk8hllciyky3ih3z9vf04xz3xsp3cv1jyd5kf0x"))))
+        (base32 "1yp0zl5cmw9x95np9a51153fdb1ng8fgzwyssg7hr5dmki0h6ggr"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f  ; Not all files included in the tarball.
        #:cargo-inputs
        (("rust-cssparser-macros" ,rust-cssparser-macros-0.6)
         ("rust-dtoa-short" ,rust-dtoa-short-0.3)
-        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-itoa" ,rust-itoa-1)
         ("rust-matches" ,rust-matches-0.1)
-        ("rust-phf" ,rust-phf-0.8)
+        ("rust-phf" ,rust-phf-0.10)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-smallvec" ,rust-smallvec-1)
-        ("rust-syn" ,rust-syn-1))))
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-difference" ,rust-difference-2)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/servo/rust-cssparser")
     (synopsis "Rust implementation of CSS Syntax Level 3")
     (description
      "This package contains a Rust implementation of CSS Syntax Level 3.")
     (license license:mpl2.0)))
 
+(define-public rust-cssparser-0.28
+  (package
+    (inherit rust-cssparser-0.29)
+    (name "rust-cssparser")
+    (version "0.28.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cssparser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1h924c5g2rwlmgk8hllciyky3ih3z9vf04xz3xsp3cv1jyd5kf0x"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cssparser-macros" ,rust-cssparser-macros-0.6)
+        ("rust-dtoa-short" ,rust-dtoa-short-0.3)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-cssparser-0.27
   (package
     (inherit rust-cssparser-0.28)
@@ -17234,21 +17829,25 @@ hash functions.")
 (define-public rust-cortex-m-0.7
   (package
     (name "rust-cortex-m")
-    (version "0.7.3")
+    (version "0.7.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cortex-m" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1cw3nyip3s81r6qaa3azrb0654jxw465j5fm126fqja48bpikj9a"))))
+        (base32 "1fbca698v4gv57mv5fc48jrz8wcy6sv675n6fsrsah4qykc11ilf"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (delete-file-recursively "bin")))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bare-metal" ,rust-bare-metal-0.2)
         ("rust-bitfield" ,rust-bitfield-0.13)
+        ("rust-critical-section" ,rust-critical-section-1)
         ("rust-embedded-hal" ,rust-embedded-hal-0.2)
+        ("rust-serde" ,rust-serde-1)
         ("rust-volatile-register" ,rust-volatile-register-0.2))))
     (home-page "https://github.com/rust-embedded/cortex-m")
     (synopsis "Low level access to Cortex-M processors")
@@ -17515,6 +18114,53 @@ re-exported cipher crate.")
 use with bindgen.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cuda-std-0.2
+  (package
+    (name "rust-cuda-std")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cuda-std" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "174237dj152dvndvykcn17nz2d0kdzsyyxnb6fsdz3i7xa8lfcgn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Test suite can't find attribute 'kernel'.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cuda-std-macros" ,rust-cuda-std-macros-0.2)
+        ("rust-half" ,rust-half-1)
+        ("rust-paste" ,rust-paste-1)
+        ("rust-vek" ,rust-vek-0.15))))
+    (home-page "https://github.com/Rust-GPU/Rust-CUDA")
+    (synopsis "Standard library for CUDA with rustc_codegen_nvvm")
+    (description "Standard library for CUDA with rustc_codegen_nvvm.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cuda-std-macros-0.2
+  (package
+    (name "rust-cuda-std-macros")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cuda-std-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0hlakxn9pz8233pwsh44j8gzqzf078a3lnnq3v2cadmb4c4l1mlz"))))
+    (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/Rust-GPU/Rust-CUDA")
+    (synopsis "Macros for cuda_std")
+    (description "This package provides macros for cuda_std.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-curl-0.4
   (package
     (name "rust-curl")
@@ -17555,7 +18201,7 @@ requests.")
 (define-public rust-curl-sys-0.4
   (package
     (name "rust-curl-sys")
-    (version "0.4.63+curl-8.1.2")
+    (version "0.4.66+curl-8.3.0")
     (source
       (origin
         (method url-fetch)
@@ -17563,7 +18209,7 @@ requests.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1p3inybj3yb8wwnccg8jwfwsqg0fiybh9837mpia28k00kvzxc5f"))
+          "1fdmdny7zqz5l9c9lnbnjz9i8qzdnrm8mnhdv45f9w1hx1r4mi3h"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "curl")))))
@@ -17578,7 +18224,7 @@ requests.")
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-rustls-ffi" ,rust-rustls-ffi-0.8)
         ("rust-vcpkg" ,rust-vcpkg-0.2)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -17657,6 +18303,55 @@ ristretto255 and Curve25519.")
 ristretto255 and Curve25519.")
     (license license:bsd-3)))
 
+(define-public rust-cust-core-0.1
+  (package
+    (name "rust-cust-core")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cust-core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01jzjwywsngqm8d1vxk3zr9klvidab6iis1myg5r1y5q5ik7k7q3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; use of undeclared crate or module `cust`
+       #:cargo-inputs
+       (("rust-cust-derive" ,rust-cust-derive-0.2)
+        ("rust-glam" ,rust-glam-0.20)
+        ("rust-half" ,rust-half-1)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-vek" ,rust-vek-0.15))))
+    (home-page "https://github.com/Rust-GPU/Rust-CUDA")
+    (synopsis "Core library for cust that can be shared across CPU and GPU")
+    (description "This package provices the core library for cust that can be
+shared across CPU and GPU.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-cust-derive-0.2
+  (package
+    (name "rust-cust-derive")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cust-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rigqx5d1941cbpbd76i455ifh4yzz6fcga2na9fv6k2zsavr8z8"))))
+    (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/Rust-GPU/Rust-CUDA")
+    (synopsis "Macros for cust")
+    (description "This package provices macros for cust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-custom-derive-0.1
   (package
     (name "rust-custom-derive")
@@ -17704,7 +18399,7 @@ attributes.")
 (define-public rust-cxx-1
   (package
     (name "rust-cxx")
-    (version "1.0.86")
+    (version "1.0.107")
     (source
       (origin
         (method url-fetch)
@@ -17713,7 +18408,7 @@ attributes.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0yc5gz723hiwqk7waygj63655fh5vzq3551p1j2wyzc06xf0glai"))))
+          "1gpz9si4nn236rqbmrsxd0dl4ksdfwrf1rdyncyznmlxg2hqpsdv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Cannot compile cxx-test-suite.
@@ -17764,7 +18459,7 @@ attributes.")
 (define-public rust-cxx-build-1
   (package
     (name "rust-cxx-build")
-    (version "1.0.86")
+    (version "1.0.107")
     (source
       (origin
         (method url-fetch)
@@ -17773,17 +18468,17 @@ attributes.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0w5a2wdkdh44gmi0psynaazx4j7d1947sr7nyaccayxjc4gjhi2h"))))
+          "18sy8llakggzyahmr7c25l16i63hd2agpb8x3f2a8ga3p3v21kn4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cc" ,rust-cc-1)
         ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
-        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-scratch" ,rust-scratch-1)
-        ("rust-syn" ,rust-syn-1))
+        ("rust-syn" ,rust-syn-2))
        #:cargo-development-inputs
        (("rust-cxx" ,rust-cxx-1)
         ("rust-cxx-gen" ,rust-cxx-gen-0.7)
@@ -17825,7 +18520,7 @@ crate into a Cargo build.")
 (define-public rust-cxx-gen-0.7
   (package
     (name "rust-cxx-gen")
-    (version "0.7.86")
+    (version "0.7.107")
     (source
       (origin
         (method url-fetch)
@@ -17834,14 +18529,14 @@ crate into a Cargo build.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1z08a3c4xpnz91a4nc2b4f2kbmadjrrimr8awx1k4g0rmjdmq5mr"))))
+          "1lv2fs3s51lqipbpzrv2dmhm0mwcw5205sq7x3cmcb3skia64l6b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
+        ("rust-syn" ,rust-syn-2))))
     (home-page "https://cxx.rs")
     (synopsis "C++ code generator")
     (description
@@ -17894,7 +18589,7 @@ crate into higher level tools.")
 (define-public rust-cxxbridge-flags-1
   (package
     (name "rust-cxxbridge-flags")
-    (version "1.0.86")
+    (version "1.0.107")
     (source
       (origin
         (method url-fetch)
@@ -17903,7 +18598,7 @@ crate into higher level tools.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "073qx3gnf8df9xzfy9xfcz9b79m0638x4a0isfq2fb527g4hpdb1"))))
+          "18hxm7dp8k58zsxniaspg11nw0ymwzpk1viw8zzy56123ng8v210"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dtolnay/cxx")
     (synopsis "Compiler configuration of the `cxx` crate")
@@ -17929,7 +18624,7 @@ crate (implementation detail).")
 (define-public rust-cxxbridge-macro-1
   (package
     (name "rust-cxxbridge-macro")
-    (version "1.0.86")
+    (version "1.0.107")
     (source
       (origin
         (method url-fetch)
@@ -17938,7 +18633,7 @@ crate (implementation detail).")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "19c7pjvjll72yb9wyrmpdylwqglizn8kayww8qcm24b2gvd1zrir"))))
+          "116d3i750nknl6jw9vmvyxrndrmwn5gm7zzxzx6rw4jqvmq6m89g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -17948,8 +18643,9 @@ crate (implementation detail).")
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-syn" ,rust-syn-1))
+        ("rust-syn" ,rust-syn-2))
        #:cargo-development-inputs
        (("rust-cxx" ,rust-cxx-1))))
     (home-page "https://cxx.rs")
@@ -18342,8 +19038,37 @@ custom derives.")
         ("rust-quote" ,rust-quote-0.6)
         ("rust-syn" ,rust-syn-0.15))))))
 
+(define-public rust-dashmap-5
+  (package
+    (name "rust-dashmap")
+    (version "5.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dashmap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0miqnlxi501vfbv6mw5jbmzgnj0wjrch3p4abvpd59s9v30lg1wp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.14)
+        ("rust-lock-api" ,rust-lock-api-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-parking-lot-core" ,rust-parking-lot-core-0.9)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/xacrimon/dashmap")
+    (synopsis "Blazing fast concurrent HashMap for Rust")
+    (description "This package implements a blazing fast concurrent HashMap
+for Rust.")
+    (license license:expat)))
+
 (define-public rust-dashmap-4
   (package
+    (inherit rust-dashmap-5)
     (name "rust-dashmap")
     (version "4.0.2")
     (source
@@ -18354,19 +19079,13 @@ custom derives.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1773x18k5m2zw1iyibs8l3wl1p1aijdbrc0w844xys06inr46yp7"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-rayon" ,rust-rayon-1)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://github.com/xacrimon/dashmap")
-    (synopsis "Blazing fast concurrent HashMap for Rust")
-    (description "This package implements a blazing fast concurrent HashMap
-for Rust.")
-    (license license:expat)))
+        ("rust-serde" ,rust-serde-1))))))
 
 (define-public rust-dashmap-3
   (package
@@ -18423,8 +19142,32 @@ for Rust.")
 hexadecimal, base32, and base64.")
     (license license:expat)))
 
+(define-public rust-data-url-0.2
+  (package
+    (name "rust-data-url")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "data-url" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19828d6jby17ghi7vr0zia9sy3hlvvjbngrcsllmfh2zfg1kjx4d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tester" ,rust-tester-0.9))))
+    (home-page "https://github.com/servo/rust-url")
+    (synopsis "Processing of data: URL according to WHATWG's Fetch Standard")
+    (description
+     "Processing of data: URL according to WHATWG's Fetch Standard.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-data-url-0.1
   (package
+    (inherit rust-data-url-0.2)
     (name "rust-data-url")
     (version "0.1.1")
     (source
@@ -18436,19 +19179,13 @@ hexadecimal, base32, and base64.")
         (sha256
          (base32
           "14z15yiyklp5dv0k0q6pd83irrn0y8hj9y3fj17akkrbf37byc1s"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-matches" ,rust-matches-0.1))
        #:cargo-development-inputs
        (("rust-rustc-test" ,rust-rustc-test-0.3)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/servo/rust-url")
-    (synopsis "Processing of data: URL according to WHATWG's Fetch Standard")
-    (description
-     "Processing of data: URL according to WHATWG's Fetch Standard.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde-json" ,rust-serde-json-1))))))
 
 (define-public rust-datetime-0.5
   (package
@@ -18610,6 +19347,27 @@ type.")
 the Debug trait manually.")
     (license license:expat)))
 
+(define-public rust-debug-unreachable-0.1
+  (package
+    (name "rust-debug-unreachable")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "debug-unreachable" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1cx4vh1d0bxdpb8l9lyiv03az4527lykxy39s4a958swf2n2w0ws"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-unreachable" ,rust-unreachable-0.1))))
+    (home-page "https://github.com/reem/rust-debug-unreachable.git")
+    (synopsis
+     "unreachable!() in debug, std::intrinsics::unreachable() in release")
+    (description
+     "unreachable!() in debug, std::intrinsics::unreachable() in release.")
+    (license license:expat)))
+
 (define-public rust-debugger-test-0.1
   (package
     (name "rust-debugger-test")
@@ -18663,6 +19421,30 @@ debugger and run commands while verifying the output.")
 verifying the contents.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-debugid-0.8
+  (package
+    (name "rust-debugid")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "debugid" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13f15dfvn07fa7087pmacixqqv0lmj4hv93biw4ldr48ypk55xdy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-uuid" ,rust-uuid-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://sentry.io/")
+    (synopsis "Common reusable types for implementing the sentry.io protocol")
+    (description
+     "Common reusable types for implementing the sentry.io protocol.")
+    (license license:asl2.0)))
+
 (define-public rust-decimal-2
   (package
     (name "rust-decimal")
@@ -19554,7 +20336,7 @@ pattern for arbitrary structs.")
     (arguments
      `(#:cargo-inputs
        (("rust-quote" ,rust-quote-0.3)
-        ("rust-syn" ,rust-syn-0.14))))
+        ("rust-syn" ,rust-syn-0.11))))
     (home-page "https://github.com/Arnavion/derive-error-chain")
     (synopsis "Macros 1.1 implementation of error-chain")
     (description "This package provides a Macros 1.1 implementation of
@@ -22269,7 +23051,7 @@ encodings.")
 (define-public rust-encoding-rs-0.8
   (package
     (name "rust-encoding-rs")
-    (version "0.8.31")
+    (version "0.8.33")
     (source
      (origin
        (method url-fetch)
@@ -22278,12 +23060,12 @@ encodings.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0azc6rblf75vd862ymjahdfch27j1sshb7zynshrx7ywi5an6llq"))))
+         "1qa5k4a0ipdrxq4xg9amms9r9pnnfn7nfh2i9m3mw0ka563b6s3j"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-packed-simd" ,rust-packed-simd-2-0.3)
+        ("rust-packed-simd" ,rust-packed-simd-0.3)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1)
@@ -22351,6 +23133,8 @@ order.")
                (base32
                 "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-thiserror" ,rust-thiserror-1))))
     (home-page "https://github.com/reujab/enquote")
     (synopsis "Rust library that quotes, unquotes, and unescapes strings")
     (description "This package provides a Rust library quotes, unquotes, and
@@ -23869,33 +24653,54 @@ floats.")
     (description "This package provides a parser for fastq files.")
     (license license:expat)))
 
-(define-public rust-fastrand-1
+(define-public rust-fastrand-2
   (package
     (name "rust-fastrand")
-    (version "1.9.0")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "fastrand" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gh12m56265ihdbzh46bhh0jf74i197wm51jg1cw75q7ggi96475"))))
+        (base32 "19flpv5zbzpf0rk4x77z4zf25in0brg8l7m304d3yrf47qvwxjr5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-instant" ,rust-instant-0.1))
+       (("rust-getrandom" ,rust-getrandom-0.2))
        #:cargo-development-inputs
        (("rust-getrandom" ,rust-getrandom-0.2)
-        ("rust-instant" ,rust-instant-0.1)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
         ("rust-wyhash" ,rust-wyhash-0.5))))
-    (home-page "https://github.com/stjepang/fastrand")
+    (home-page "https://github.com/smol-rs/fastrand")
     (synopsis "Simple and fast random number generator")
     (description
      "This package provides a simple and fast random number generator.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-fastrand-1
+  (package
+    (inherit rust-fastrand-2)
+    (name "rust-fastrand")
+    (version "1.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fastrand" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gh12m56265ihdbzh46bhh0jf74i197wm51jg1cw75q7ggi96475"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-instant" ,rust-instant-0.1))
+       #:cargo-development-inputs
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-instant" ,rust-instant-0.1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
+        ("rust-wyhash" ,rust-wyhash-0.5))))))
+
 (define-public rust-fat-macho-0.4
   (package
     (name "rust-fat-macho")
@@ -23906,7 +24711,10 @@ floats.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0ywr3xqi884i12d5mfidbma1hrd4rxj9f8jw7p4bignagmy13yk3"))))
+                "0ywr3xqi884i12d5mfidbma1hrd4rxj9f8jw7p4bignagmy13yk3"))
+              (snippet
+               #~(begin (use-modules (guix build utils))
+                        (delete-file-recursively "tests/fixtures")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -23920,21 +24728,22 @@ floats.")
 (define-public rust-fd-lock-3
   (package
     (name "rust-fd-lock")
-    (version "3.0.0")
+    (version "3.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "fd-lock" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0dif8wk9xrqkjyfgqqy3zfg4ckmkpyzzk5p5m01s99q63bcnv05q"))))
+        (base32 "0hlnn1302p37qlc9xl2k5y0vw8q8id5kg59an6riy89hjlynpbir"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-rustix" ,rust-rustix-0.37)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/yoshuawuyts/fd-lock")
     (synopsis "Advisory lock on a file")
     (description
@@ -24775,16 +25584,14 @@ test multiple times.")
 (define-public rust-flate2-1
   (package
     (name "rust-flate2")
-    (version "1.0.25")
+    (version "1.0.27")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "flate2" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0hg8ih51lx5xkz2zlzpsy1j1xka8gs8vhk2964ppgj5ighwxp8m8"))))
+        (base32 "045hvzdv3159qqjlgr5i3p4d346briddkipwyb5iv7ay17l8xjf6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -24792,7 +25599,7 @@ test multiple times.")
         ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-libz-ng-sys" ,rust-libz-ng-sys-1)
         ("rust-libz-sys" ,rust-libz-sys-1)
-        ("rust-miniz-oxide" ,rust-miniz-oxide-0.6))
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.7))
        #:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-rand" ,rust-rand-0.8))))
@@ -24889,6 +25696,52 @@ traits.")
         (base32
          "0036jb8ry4h83n319jb20b5yvyfyq8mx8dkxnyjm22nq8fl8yjhk"))))))
 
+(define-public rust-float-eq-1
+  (package
+    (name "rust-float-eq")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "float-eq" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lxqxkvdy5zh3qsksavpcazg57cbyjy9p54m16x13bfq8lqhxa18"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-float-eq-derive" ,rust-float-eq-derive-1)
+        ("rust-num-complex" ,rust-num-complex-0.4))
+       #:cargo-development-inputs
+       (("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://jtempest.github.io/float_eq-rs/")
+    (synopsis "Compare IEEE floating point primitives, structs and collections")
+    (description "Compare IEEE floating point primitives, structs and
+collections for equality.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-float-eq-derive-1
+  (package
+    (name "rust-float-eq-derive")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "float-eq-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0mkg635lmr0nwjlxz6f5k8g60hrd800i061hrlmpvhdkl96d74j2"))))
+    (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://jtempest.github.io/float_eq-rs/")
+    (synopsis "Derive macro support for float_eq")
+    (description "This package provides the derive macro support for float_eq.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-float-ord-0.3
   (package
     (name "rust-float-ord")
@@ -25287,8 +26140,35 @@ values to other threads.")
     (description "This package provides bindings for Freetype used by Servo.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-freetype-rs-0.32
+  (package
+    (name "rust-freetype-rs")
+    (version "0.32.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "freetype-rs" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1q54jimjgzwdb3xsp7rsvdmp6w54cak7bvc379mdabc2ciz3776m"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-freetype-sys" ,rust-freetype-sys-0.17)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-unicode-normalization" ,rust-unicode-normalization-0.1))))
+    (inputs
+     (list freetype))
+    (home-page "https://github.com/PistonDevelopers/freetype-rs")
+    (synopsis "Bindings for FreeType font library")
+    (description "This package provides bindings for FreeType font library.")
+    (license license:expat)))
+
 (define-public rust-freetype-rs-0.26
   (package
+    (inherit rust-freetype-rs-0.32)
     (name "rust-freetype-rs")
     (version "0.26.0")
     (source
@@ -25298,49 +26178,75 @@ values to other threads.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1yzmbd73hlblbns0dqkcwfj54l97hx3yb0lqpda8rhm5s34xxskl"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-freetype-sys" ,rust-freetype-sys-0.13)
-        ("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/PistonDevelopers/freetype-rs")
-    (synopsis "Bindings for FreeType font library")
-    (description "This package provides bindings for FreeType font library.")
-    (license license:expat)))
+        ("rust-libc" ,rust-libc-0.2))))))
 
-(define-public rust-freetype-sys-0.13
+(define-public rust-freetype-sys-0.17
   (package
     (name "rust-freetype-sys")
-    (version "0.13.1")
+    (version "0.17.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "freetype-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "06kkds31s6b1i39dyanwmzbnic7laia1kk3gfvx8sqncq08l0zd3"))
+        (base32 "127z6hbsfhsw0fg110zy9s65fzald0cvwbxmhk1vxmmsdk54hcb4"))
        (snippet
         #~(begin
             (use-modules (guix build utils))
-            (delete-file-recursively "freetype2")))))
+            (delete-file-recursively "freetype2")
+            ;; Inspired by Debian's patch for bzip2-sys.
+            (substitute* "Cargo.toml.orig"
+              (("cc = .*") "pkg-config = \"0.3\"\n"))
+            (copy-file "Cargo.toml.orig" "Cargo.toml")
+            (delete-file "build.rs")
+            (with-output-to-file "build.rs"
+              (lambda _
+                (format #t "fn main() {~@
+                        println!(\"cargo:rustc-link-lib=freetype\");~@
+                        }~%")))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cmake" ,rust-cmake-0.1)
-        ("rust-libc" ,rust-libc-0.2)
+       (("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (inputs
      (list freetype))
-    (native-inputs
-     (list pkg-config))
     (home-page "https://github.com/PistonDevelopers/freetype-sys")
     (synopsis "Low level binding for FreeType font library")
     (description
      "This package provides low level binding for FreeType font library.")
     (license license:expat)))
 
+(define-public rust-freetype-sys-0.13
+  (package
+    (inherit rust-freetype-sys-0.17)
+    (name "rust-freetype-sys")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "freetype-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "06kkds31s6b1i39dyanwmzbnic7laia1kk3gfvx8sqncq08l0zd3"))
+       (snippet
+        #~(begin
+            (use-modules (guix build utils))
+            (delete-file-recursively "freetype2")))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cmake" ,rust-cmake-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (native-inputs
+     (list pkg-config))))
+
 (define-public rust-fs2-0.4
   (package
     (name "rust-fs2")
@@ -26749,6 +27655,39 @@ archive to be linked into Rustcode.")
 API library @code{gdi32}.")
     (license license:expat)))
 
+(define-public rust-generational-arena-0.2
+  (package
+    (name "rust-generational-arena")
+    (version "0.2.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "generational-arena" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rwnfyprjwqafkwdz2irkds5a41jcjb3bsma3djknx4fy2pr8zl7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--"
+         "--skip=cargo_readme_up_to_date")
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-test" ,rust-serde-test-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))
+    (home-page "https://github.com/fitzgen/generational-arena")
+    (synopsis "Arena allocator that supports deletion")
+    (description
+     "This package provides a safe arena allocator that supports deletion without
+suffering from the ABA problem by using generational indices.")
+    (license license:mpl2.0)))
+
 (define-public rust-generator-0.7
   (package
     (name "rust-generator")
@@ -27117,14 +28056,14 @@ platforms.")
 (define-public rust-getrandom-0.2
   (package
     (name "rust-getrandom")
-    (version "0.2.8")
+    (version "0.2.10")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "getrandom" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0cbb766pcyi7sws0fnp1pxkz0nhiya0ckallq502bxmq49mfnnn0"))))
+        (base32 "09zlimhhskzf7cmgcszix05wyz2i6fcpvh711cv1klsxl6r3chdy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -27133,7 +28072,6 @@ platforms.")
         ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
-        ("rust-stdweb" ,rust-stdweb-0.4)
         ("rust-wasi" ,rust-wasi-0.11)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
        #:cargo-development-inputs
@@ -27311,6 +28249,24 @@ getters and setters on fields.")
 @acronym{GFA, Graphical Fragment Assembly} format.")
     (license license:expat)))
 
+(define-public rust-gg-alloc-1
+  (package
+    (name "rust-gg-alloc")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "gg-alloc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fi2z9p5klgqbhgqxqxwz03j4axz4vf0s58mlndrxddy397i7r8y"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/Badel2/gg-alloc")
+    (synopsis "Custom allocator that only returns pointers above 2G")
+    (description "This package provides a custom allocator that only returns
+pointers above 2G.")
+    (license license:gpl3)))
+
 (define-public rust-ghash-0.5
   (package
     (name "rust-ghash")
@@ -27843,27 +28799,34 @@ libcurl, which is intended to be used with the @code{git2} crate.")
     (description "Gjson is a JSON parser for Rust.")
     (license license:expat)))
 
-(define-public rust-glam-0.17
+(define-public rust-glam-0.24
   (package
     (name "rust-glam")
-    (version "0.17.3")
+    (version "0.24.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "glam" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0xm7jdygbxchdvk6k1l1pdag843nkwdm8fikwgp0i1gxgawk45z0"))))
+        (base32 "0ibrq68ldg1gyynb5ss5hx0gr6p3397cfclh1xrl5prba4bqqhdm"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-approx" ,rust-approx-0.5)
+        ("rust-bytecheck" ,rust-bytecheck-0.6)
         ("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-libm" ,rust-libm-0.2)
         ("rust-mint" ,rust-mint-0.5)
-        ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.8)
-        ("rust-serde" ,rust-serde-1))))
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.6)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
     (home-page "https://github.com/bitshifter/glam-rs")
     (synopsis "3D math library for games and graphics")
     (description
@@ -27871,6 +28834,136 @@ libcurl, which is intended to be used with the @code{git2} crate.")
 graphics.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-glam-0.23
+  (package
+    (inherit rust-glam-0.24)
+    (name "rust-glam")
+    (version "0.23.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "076mdgmy38lhlvgng74iy2sr3iih58gx5qcz20g0hmamv6dgsjlf"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-approx" ,rust-approx-0.5)
+        ("rust-bytecheck" ,rust-bytecheck-0.6)
+        ("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)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.6)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))))
+
+(define-public rust-glam-0.22
+  (package
+    (inherit rust-glam-0.24)
+    (name "rust-glam")
+    (version "0.22.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0x57gyrxyfs409b3f5i64yy2pbcgkr2qkq8v3a0mmm8vdkargx8j"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-approx" ,rust-approx-0.5)
+        ("rust-bytecheck" ,rust-bytecheck-0.6)
+        ("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)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.6)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))))
+
+(define-public rust-glam-0.21
+  (package
+    (inherit rust-glam-0.22)
+    (name "rust-glam")
+    (version "0.21.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05c8r639hz3ydlhbhv6d9z6193iivi8276zz2fq3hqw6ci8am3si"))))))
+
+(define-public rust-glam-0.20
+  (package
+    (inherit rust-glam-0.22)
+    (name "rust-glam")
+    (version "0.20.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pv7n634vw2hn9fmi915pzgangyljgsp4m5505c3zq2bfiz9agpl"))))))
+
+(define-public rust-glam-0.19
+  (package
+    (inherit rust-glam-0.22)
+    (name "rust-glam")
+    (version "0.19.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jjia0nva5p7ca3dma8jhzxd4dmczgbhn3b338ffh5hmg7k0k19b"))))))
+
+(define-public rust-glam-0.18
+  (package
+    (inherit rust-glam-0.22)
+    (name "rust-glam")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0d7f7f7cdbahxk677k6l8h7r4bxxni24nzdndwr8wyx71d4kwnjj"))))))
+
+(define-public rust-glam-0.17
+  (package
+    (inherit rust-glam-0.24)
+    (name "rust-glam")
+    (version "0.17.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glam" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xm7jdygbxchdvk6k1l1pdag843nkwdm8fikwgp0i1gxgawk45z0"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.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)
+        ("rust-serde" ,rust-serde-1))))))
+
 (define-public rust-glam-0.16
   (package
     (name "rust-glam")
@@ -28044,6 +29137,7 @@ OpenGL's old and error-prone API.")
      `(#:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
         ("rust-fnv" ,rust-fnv-1)
+        ("rust-gl-generator" ,rust-gl-generator-0.11)
         ("rust-glutin" ,rust-glutin-0.21)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-smallvec" ,rust-smallvec-0.6)
@@ -28051,7 +29145,6 @@ OpenGL's old and error-prone API.")
        #:cargo-development-inputs
        (("rust-cgmath" ,rust-cgmath-0.17)
         ("rust-genmesh" ,rust-genmesh-0.6)
-        ("rust-gl-generator" ,rust-gl-generator-0.11)
         ("rust-image" ,rust-image-0.21)
         ("rust-obj" ,rust-obj-0.9)
         ("rust-rand" ,rust-rand-0.6))))))
@@ -28290,8 +29383,35 @@ and loading crate.")
         ("rust-plain" ,rust-plain-0.2)
         ("rust-log" ,rust-log-0.4))))))
 
+(define-public rust-greetd-ipc-0.9
+  (package
+    (name "rust-greetd-ipc")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "greetd-ipc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xl2cix3jv4sgigl5ijayab7rchr6v02za2qd87fv1z8dl1r14w3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://kl.wtf/projects/greetd")
+    (synopsis "@command{greetd} IPC protocol library for Rust")
+    (description
+     "This package provides library that helps you use the
+@command{greetd} JSON-based IPC protocol from Rust.")
+    (license license:gpl3)))
+
 (define-public rust-greetd-ipc-0.8
   (package
+    (inherit rust-greetd-ipc-0.9)
     (name "rust-greetd-ipc")
     (version "0.8.0")
     (source (origin
@@ -28301,20 +29421,13 @@ and loading crate.")
               (sha256
                (base32
                 "1dscriv3adjyaxfaax3cmqrzx6q2vwwchbh86dhll783wjc4ivw0"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-async-trait" ,rust-async-trait-0.1)
              ("rust-serde" ,rust-serde-1)
              ("rust-serde-json" ,rust-serde-json-1)
              ("rust-thiserror" ,rust-thiserror-1)
-             ("rust-tokio" ,rust-tokio-1))))
-    (home-page "https://kl.wtf/projects/greetd")
-    (synopsis "@command{greetd} IPC protocol library for Rust")
-    (description
-     "This package provides library that helps you use the
-@command{greetd} JSON-based IPC protocol from Rust.")
-    (license license:gpl3)))
+             ("rust-tokio" ,rust-tokio-1))))))
 
 (define-public rust-grep-0.2
   (package
@@ -28804,23 +29917,25 @@ IEEE 754-2008 binary16 type.")
   (package
     (inherit rust-half-2)
     (name "rust-half")
-    (version "1.7.1")
+    (version "1.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "half" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1wzavaaaa2jwkm4i1dbglmwjfsdhn4n73wrkbdzllaynlams5b32"))))
+        (base32 "1mqbmx2m9qd4lslkb42fzgldsklhv9c4bxsc8j82r80d8m24mfza"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-serde" ,rust-serde-1))
+       (("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-zerocopy" ,rust-zerocopy-0.6))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-0.9)
-        ("rust-quickcheck-macros" ,rust-quickcheck-macros-0.9)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-version-sync" ,rust-version-sync-0.8))))))
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
+        ("rust-rand" ,rust-rand-0.8))))))
 
 (define-public rust-home-0.5
   (package
@@ -29309,8 +30424,39 @@ their key-value pairs in a user controllable order.")
        #:cargo-development-inputs
        (("rust-serde-test" ,rust-serde-test-1))))))
 
+(define-public rust-hdrhistogram-7
+  (package
+    (name "rust-hdrhistogram")
+    (version "7.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hdrhistogram" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1a1al1rfxcqmx0n9h100ggvg036f4rv69fq12kimazvw9zsvj6bz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-num-traits" ,rust-num-traits-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-ieee754" ,rust-ieee754-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rug" ,rust-rug-1))))
+    (home-page "https://github.com/HdrHistogram/HdrHistogram_rust")
+    (synopsis "Port of HdrHistogram to Rust")
+    (description "This package provides a port of @code{HdrHistogram} to Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hdrhistogram-6
   (package
+    (inherit rust-hdrhistogram-7)
     (name "rust-hdrhistogram")
     (version "6.3.4")
     (source
@@ -29320,7 +30466,6 @@ their key-value pairs in a user controllable order.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "17dqk0rp8kimcd8wr542i8cny91fkclw7a2xzszar95wrpmk3lq8"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -29329,11 +30474,7 @@ their key-value pairs in a user controllable order.")
         ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.3)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-nom" ,rust-nom-4)
-        ("rust-num-traits" ,rust-num-traits-0.2))))
-    (home-page "https://github.com/HdrHistogram/HdrHistogram_rust")
-    (synopsis "Port of HdrHistogram to Rust")
-    (description "This package provides a port of HdrHistogram to Rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-num-traits" ,rust-num-traits-0.2))))))
 
 (define-public rust-headers-0.3
   (package
@@ -30990,6 +32131,7 @@ SystemTime}}.")
         ("rust-rustls" ,rust-rustls-0.20)
         ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
         ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs (list perl))
     (home-page "https://github.com/ctz/hyper-rustls")
     (synopsis "Rustls+Hyper integration for pure Rust HTTPS")
     (description
@@ -32786,15 +33928,14 @@ or not without much fuss.")
 (define-public rust-is-macro-0.1
   (package
     (name "rust-is-macro")
-    (version "0.1.8")
+    (version "0.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "is-macro" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1vjh4sdpvx1kdf1znyk3b54gkyk7f8lsasc47ypkksp3r4ypz004"))))
+        (base32 "0pq1x1r8pk6fv0qf9vpxw60jw2jg3961nm1gv71j5qv0v4bds8m3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -33050,23 +34191,23 @@ stream runs in a TTY.")
     (description "Parsing ISO8601 dates using nom.")
     (license license:expat)))
 
-(define-public rust-itertools-0.10
+(define-public rust-itertools-0.11
   (package
     (name "rust-itertools")
-    (version "0.10.5")
+    (version "0.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "itertools" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0ww45h7nxx5kj6z2y6chlskxd1igvs4j507anr6dzg99x1h25zdh"))))
+        (base32 "0mzyqcc59azx9g5cg6fs8k529gvh4463smmka6jvzs3cd2jp7hdi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-either" ,rust-either-1))
        #:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
+       (("rust-criterion" ,rust-criterion-0.4)
         ("rust-paste" ,rust-paste-1)
         ("rust-permutohedron" ,rust-permutohedron-0.2)
         ("rust-quickcheck" ,rust-quickcheck-0.9)
@@ -33078,6 +34219,28 @@ stream runs in a TTY.")
 functions, and macros.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-itertools-0.10
+  (package
+    (inherit rust-itertools-0.11)
+    (name "rust-itertools")
+    (version "0.10.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "itertools" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ww45h7nxx5kj6z2y6chlskxd1igvs4j507anr6dzg99x1h25zdh"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-either" ,rust-either-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-paste" ,rust-paste-1)
+        ("rust-permutohedron" ,rust-permutohedron-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7))))))
+
 (define-public rust-itertools-0.9
   (package
     (inherit rust-itertools-0.10)
@@ -33781,7 +34944,7 @@ JSON-RPC 2.0 specification.")
 (define-public rust-js-sys-0.3
   (package
     (name "rust-js-sys")
-    (version "0.3.61")
+    (version "0.3.64")
     (source
      (origin
        (method url-fetch)
@@ -33789,12 +34952,12 @@ JSON-RPC 2.0 specification.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0c075apyc5fxp2sbgr87qcvq53pcjxmp05l47lzlhpn5a0hxwpa4"))
+        (base32 "0nlkiwpm8dyqcf1xyc6qmrankcgdd3fpzc0qyfq2sw3z97z9bwf5"))
        (modules '((guix build utils)))
        (snippet
-        '(begin
-           (substitute* "Cargo.toml"
-             (("=0\\.3\\.34") "^0.3.34"))))))
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -34594,12 +35757,12 @@ sending emails from Rust applications.")
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-dtoa" ,rust-dtoa-0.4)
         ("rust-libm" ,rust-libm-0.2)
+        ("rust-proptest" ,rust-proptest-0.10)
+        ("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-ryu" ,rust-ryu-1)
         ("rust-static-assertions" ,rust-static-assertions-1))
        #:cargo-development-inputs
-       (("rust-approx" ,rust-approx-0.4)
-        ("rust-proptest" ,rust-proptest-0.10)
-        ("rust-quickcheck" ,rust-quickcheck-1))))))
+       (("rust-approx" ,rust-approx-0.4))))))
 
 (define-public rust-lexical-parse-float-0.8
   (package
@@ -34740,6 +35903,34 @@ a no_std environment.  This does not depend on any standard library features,
 nor a system allocator.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-lexical-5
+  (package
+    (inherit rust-lexical-6)
+    (name "rust-lexical")
+    (version "5.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r8lsi523h53kbb99xgv31jabwhcp4rzqd4hfazfhcjffh5aj17l"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-lexical-core" ,rust-lexical-core-0.7)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-toml" ,rust-toml-0.5))
+       #:cargo-development-inputs
+       (("rust-approx" ,rust-approx-0.4)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-dtoa" ,rust-dtoa-0.4)
+        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-ryu" ,rust-ryu-1))))))
+
 (define-public rust-lexiclean-0.0.1
   (package
     (name "rust-lexiclean")
@@ -34778,14 +35969,14 @@ parser in Rust.")
 (define-public rust-libc-0.2
   (package
     (name "rust-libc")
-    (version "0.2.144")
+    (version "0.2.148")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qfzrwhncsradwvdzd8vsj4mc31fh0rb5rvny3884rwa48fcq01b"))))
+        (base32 "16rn9l8s5sj9n2jb2pw13ghqwa5nvjggkh9q3lp6vs1jfghp3p4w"))))
     (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
@@ -34961,20 +36152,22 @@ algorithm and related formats (ZLIB, GZIP).")
 (define-public rust-libflate-lz77-1
   (package
     (name "rust-libflate-lz77")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libflate_lz77" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nig3z2wjwk27ia066knp633akm00v017vny976sy29l970399rr"))))
+        (base32 "1gxc75fb2sk0xgrh3qxvxcx1l93yhmyxn9241r251wl5zj5klbd5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-rle-decode-fast" ,rust-rle-decode-fast-1))
+       (("rust-core2" ,rust-core2-0.4)
+        ("rust-hashbrown" ,rust-hashbrown-0.13)
+        ("rust-rle-decode-fast" ,rust-rle-decode-fast-1))
        #:cargo-development-inputs
-       (("rust-libflate" ,rust-libflate-0.1))))
+       (("rust-libflate" ,rust-libflate-1))))
     (home-page "https://github.com/sile/libflate")
     (synopsis "LZ77 encoder for libflate crate")
     (description "This package provides a LZ77 encoder for libflate crate.")
@@ -35320,7 +36513,7 @@ functions and static variables these libraries contain.")
 (define-public rust-libmimalloc-sys-0.1
   (package
     (name "rust-libmimalloc-sys")
-    (version "0.1.18")
+    (version "0.1.35")
     (source
      (origin
        (method url-fetch)
@@ -35328,17 +36521,28 @@ functions and static variables these libraries contain.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0bbm03687j9fspvk6nqspmjlvchlvbxydl0mrc1x9i1k6kqiy5c2"))
+         "0r4nrd9xbmhmipw4bvh4xlbzbc7xf74frrsibqglysffgv1vay9r"))
        (modules '((guix build utils)))
        (snippet
-        '(begin (delete-file-recursively "c_src/mimalloc/bin")))))
+        '(begin (substitute* "Cargo.toml"
+                  (("\\[build-dependencies\\.cc\\]" all)
+                   (string-append "[build-dependencies.pkg-config]\n"
+                                  "version = \"0.3\"\n\n"
+                                  all)))
+                (delete-file "build.rs")
+                (with-output-to-file "build.rs"
+                  (lambda _
+                    (format #t "fn main() {~@
+                            println!(\"cargo:rustc-link-lib=mimalloc\");~@
+                            }~%")))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cty" ,rust-cty-0.2)
-        ("rust-cmake" ,rust-cmake-0.1))))
-    (native-inputs
-     `(("cmake" ,cmake-minimal)))
+       (("rust-cc" ,rust-cc-1)
+        ("rust-cty" ,rust-cty-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (inputs (list mimalloc))
     (home-page "https://github.com/purpleprotocol/mimalloc_rust")
     (synopsis "Sys crate wrapping the mimalloc allocator")
     (description "This package provides a sys crate wrapping the mimalloc
@@ -35435,7 +36639,8 @@ advertised and discovered using this mechanism.")
          "18d9n8xaq5ncq3375f0xrr96l8si1frczgzdlrz3fl1jby8vbl6f"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f  ; backend::file_header::test_fileheader_alignment fails
+     `(#:skip-build? #t     ; TODO: Fix build
+       #:tests? #f  ; backend::file_header::test_fileheader_alignment fails
        #:cargo-inputs
        (("rust-base64" ,rust-base64-0.10)
         ("rust-bincode" ,rust-bincode-1)
@@ -35913,16 +37118,14 @@ to count the number of lines in a file.")
 (define-public rust-link-cplusplus-1
   (package
     (name "rust-link-cplusplus")
-    (version "1.0.8")
+    (version "1.0.9")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "link-cplusplus" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1x84vvg7gn94x9zrvd67602h3ricmhlv19cpl2alzhqkqz4hglpc"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "link-cplusplus" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1jc56xf51f3fn5hvppsj9c2pa0fxm7k79xs90a5s58qvgrphq94x"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-cc" ,rust-cc-1))))
@@ -36052,17 +37255,17 @@ facility.  Provides a safe interface around the raw system calls allowing
 user-space programs to perform key manipulation.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-linux-raw-sys-0.3
+(define-public rust-linux-raw-sys-0.4
   (package
     (name "rust-linux-raw-sys")
-    (version "0.3.7")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "linux-raw-sys" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "17s7qr5h82blrxy29014zzhr30jcxcjc8r16v2p31rzcfal7xsgc"))))
+    (version "0.4.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "linux-raw-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1nw8dqdhai0c7r701bicj3y6vrwc7dgbx9lbcw29ijnr7d562liq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -36080,6 +37283,26 @@ Linux userspace APIs.")
     ;; LLVM exception.  See COPYRIGHT in the repository.
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-linux-raw-sys-0.3
+  (package
+    (inherit rust-linux-raw-sys-0.4)
+    (name "rust-linux-raw-sys")
+    (version "0.3.7")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "linux-raw-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "17s7qr5h82blrxy29014zzhr30jcxcjc8r16v2p31rzcfal7xsgc"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("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))))))
+
 (define-public rust-linux-raw-sys-0.1
   (package
     (inherit rust-linux-raw-sys-0.3)
@@ -36317,7 +37540,7 @@ by inspecting the system for user preference.")
 (define-public rust-lock-api-0.4
   (package
     (name "rust-lock-api")
-    (version "0.4.9")
+    (version "0.4.10")
     (source
      (origin
        (method url-fetch)
@@ -36325,7 +37548,7 @@ by inspecting the system for user preference.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1py41vk243hwk345nhkn5nw0bd4m03gzjmprdjqq6rg5dwv12l23"))))
+         "05nd9nzxqidg24d1k8y5vlc8lz9gscpskrikycib46qbl8brgk61"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -36437,17 +37660,17 @@ by inspecting the system for user preference.")
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4))))))
 
-(define-public rust-loom-0.5
+(define-public rust-loom-0.7
   (package
     (name "rust-loom")
-    (version "0.5.6")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "loom" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1x9hmiv00ir79kypcg0jdw0j0fkd3ymq6rpv6pli6q5qifrfql7z"))))
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "loom" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gqrw1d0kqdkjvb11ziniwhngd66awk40dr67s6wyfh7wmipk8c6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -36458,7 +37681,9 @@ by inspecting the system for user preference.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-tracing" ,rust-tracing-0.1)
-        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3))))
     (home-page "https://github.com/tokio-rs/loom")
     (synopsis "Permutation testing for concurrent code")
     (description
@@ -36468,6 +37693,29 @@ memory model.  It uses state reduction techniques to avoid combinatorial
 explosion.")
     (license license:expat)))
 
+(define-public rust-loom-0.5
+  (package
+    (inherit rust-loom-0.7)
+    (name "rust-loom")
+    (version "0.5.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "loom" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1x9hmiv00ir79kypcg0jdw0j0fkd3ymq6rpv6pli6q5qifrfql7z"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-generator" ,rust-generator-0.7)
+        ("rust-pin-utils" ,rust-pin-utils-0.1)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))))
+
 (define-public rust-loom-0.4
   (package
     (name "rust-loom")
@@ -36591,8 +37839,44 @@ explosion.")
 image together with its neighboring pixels.")
     (license license:expat)))
 
+(define-public rust-lopdf-0.29
+  (package
+    (name "rust-lopdf")
+    (version "0.29.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lopdf" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1p59fkn9rkas0jywm7z24970k3lpv71sxxabmkmnig3d1p26j3yy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-encoding" ,rust-encoding-0.2)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-image" ,rust-image-0.24)
+        ("rust-itoa" ,rust-itoa-1)
+        ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nom" ,rust-nom-6)
+        ("rust-pom" ,rust-pom-3)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-weezl" ,rust-weezl-0.1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/J-F-Liu/lopdf")
+    (synopsis "Rust library for PDF document manipulation")
+    (description
+     "This package provides a Rust library for PDF document manipulation.")
+    (license license:expat)))
+
 (define-public rust-lopdf-0.26
   (package
+    (inherit rust-lopdf-0.29)
     (name "rust-lopdf")
     (version "0.26.0")
     (source
@@ -36603,7 +37887,6 @@ image together with its neighboring pixels.")
           (string-append name "-" version ".tar.gz"))
         (sha256
          (base32 "1wqnmibs8qzi6pr3ig4h3sg6bfkkgyv4ngdng81x069725r056ml"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
@@ -36618,12 +37901,7 @@ image together with its neighboring pixels.")
         ("rust-nom" ,rust-nom-6)
         ("rust-pom" ,rust-pom-3)
         ("rust-rayon" ,rust-rayon-1)
-        ("rust-time" ,rust-time-0.2))))
-    (home-page "https://github.com/J-F-Liu/lopdf")
-    (synopsis "Rust library for PDF document manipulation")
-    (description
-     "This package provides a Rust library for PDF document manipulation.")
-    (license license:expat)))
+        ("rust-time" ,rust-time-0.2))))))
 
 (define-public rust-lru-0.7
   (package
@@ -37125,6 +38403,33 @@ algorithms.  It supports CBC block cipher mode, PKCS5 padding and 64, 128,
 192 or 256-bits key length.")
     (license license:asl2.0)))
 
+(define-public rust-magic-string-0.3
+  (package
+    (name "rust-magic-string")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "magic-string" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "062fjfvq17qm8ymqzq4y6wk7a3fmxqq9ysg40yrcrxs3ik73703c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-napi" ,rust-napi-2)
+        ("rust-napi-derive" ,rust-napi-derive-2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-vlq" ,rust-vlq-0.5))))
+    (home-page "https://github.com/h-a-n-a/magic-string-rs")
+    (synopsis "MagicString port driven by Rust and N-API")
+    (description
+     "This package provides a MagicString port driven by Rust and N-API.")
+    (license license:expat)))
+
 (define-public rust-maildir-0.5
   (package
     (name "rust-maildir")
@@ -37607,22 +38912,25 @@ testing of matrixcompare.")
 (define-public rust-matrixmultiply-0.3
   (package
     (name "rust-matrixmultiply")
-    (version "0.3.1")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "matrixmultiply" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0hdpsvw28in1m9c5h8a7abzxv70rq8l5hg5h8k6sxpyrfsvib2js"))))
+        (base32 "1whgrp8ph7904aslqx87h9qm0ks4pxdj2nysffmrhiys6v7w2x3m"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-num-cpus" ,rust-num-cpus-1)
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-rawpointer" ,rust-rawpointer-0.2)
-        ("rust-thread-tree" ,rust-thread-tree-0.3))))
+        ("rust-thread-tree" ,rust-thread-tree-0.3))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-itertools" ,rust-itertools-0.8))))
     (home-page "https://github.com/bluss/matrixmultiply/")
     (synopsis "General matrix multiplication for f32 and f64 matrices")
     (description "General matrix multiplication for f32 and f64 matrices.
@@ -38054,17 +39362,17 @@ file IO.")
        #:cargo-development-inputs
        (("rust-tempdir" ,rust-tempdir-0.3))))))
 
-(define-public rust-memmap2-0.5
+(define-public rust-memmap2-0.7
   (package
     (name "rust-memmap2")
-    (version "0.5.10")
+    (version "0.7.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "memmap2" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "09xk415fxyl4a9pgby4im1v2gqlb5lixpm99dczkk30718na9yl3"))))
+        (base32 "1il82b0mw304jlwvl0m89aa8bj5dgmm3vbb0jg8lqlrk0p98i4zl"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -38079,6 +39387,26 @@ file IO.")
      "This package provides a Rust API for memory-mapped file IO.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-memmap2-0.5
+  (package
+    (inherit rust-memmap2-0.7)
+    (name "rust-memmap2")
+    (version "0.5.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "memmap2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "09xk415fxyl4a9pgby4im1v2gqlb5lixpm99dczkk30718na9yl3"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
+       #:cargo-development-inputs
+       (("rust-owning-ref" ,rust-owning-ref-0.4)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-memmap2-0.3
   (package
     (inherit rust-memmap2-0.5)
@@ -38313,6 +39641,12 @@ for Rust structs.")
        (sha256
         (base32 "01wxhi7mqmp34l540wcfb24hb13vcbps4wlynas66bnsfra0g790"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://sr.ht/~ireas/merge-rs")
     (synopsis "Derive macro for the merge crate")
     (description "This crate provides a derive macro for the
@@ -38335,7 +39669,13 @@ for Rust structs.")
     (arguments
      `(#:cargo-inputs
        (("rust-merge-derive" ,rust-merge-derive-0.1)
-        ("rust-num-traits" ,rust-num-traits-0.2))))
+        ("rust-num-traits" ,rust-num-traits-0.2))
+       #:cargo-development-inputs
+       (("rust-envy" ,rust-envy-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://sr.ht/~ireas/merge-rs")
     (synopsis "Rust trait for objects that can be merged")
     (description "This package provides a merge trait that can be used
@@ -38667,7 +40007,7 @@ embedded migrations.")
 (define-public rust-mimalloc-0.1
   (package
     (name "rust-mimalloc")
-    (version "0.1.20")
+    (version "0.1.39")
     (source
      (origin
        (method url-fetch)
@@ -38675,7 +40015,7 @@ embedded migrations.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0x74b6jv6pxfl6bh44bnch6ajm3l5z3zq8w8mqlscbq8d77rnx80"))))
+         "176w9gf5qxs07kd2q39f0k25rzmp4kyx5r13wc8sk052bqmr40gs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -38686,6 +40026,74 @@ embedded migrations.")
 drop-in allocator.")
     (license license:expat)))
 
+(define-public rust-mimalloc-rust-0.1
+  (package
+    (name "rust-mimalloc-rust")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mimalloc-rust" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wj4hkspsmlgm6lh5bf2blzalgjcc356bpkh4k5vcnyvvzwhvhxw"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (substitute* "Cargo.toml"
+                   (("1\\.7\\.3-source") "1.7.2"))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Test suite is flakey.
+       #:cargo-inputs
+       (("rust-cty" ,rust-cty-0.2)
+        ("rust-mimalloc-rust-sys" ,rust-mimalloc-rust-sys-1))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))
+    (inputs
+     (list mimalloc))
+    (home-page "https://github.com/lemonhx/mimalloc-rust")
+    (synopsis "Binding for mimalloc in rust")
+    (description "This package provides a binding for mimalloc in rust.")
+    (license license:expat)))
+
+(define-public rust-mimalloc-rust-sys-1
+  (package
+    (name "rust-mimalloc-rust-sys")
+    (version "1.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mimalloc-rust-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "144m1va3dmbr6c5nj1aqnnfrp0fc4yyqn10n25w7ksvsrhnz7xwn"))
+       (snippet
+        #~(begin
+            (use-modules (guix build utils))
+            (delete-file-recursively "c_src")
+            ;; Inspired by Debian's patch for bzip2-sys.
+            (substitute* "Cargo.toml.orig"
+              (("cc = .*") "pkg-config = \"0.3\"\n"))
+            (copy-file "Cargo.toml.orig" "Cargo.toml")
+            (delete-file "build.rs")
+            (with-output-to-file "build.rs"
+              (lambda _
+                (format #t "fn main() {~@
+                        println!(\"cargo:rustc-link-lib=mimalloc\");~@
+                        }~%")))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cty" ,rust-cty-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (inputs
+     (list mimalloc))
+    (home-page "https://docs.rs/mimalloc-rust-sys/1.7.2")
+    (synopsis "@code{mimalloc_rust} hand written sys binding")
+    (description
+     "This package provides @code{mimalloc_rust} hand written sys bindings.")
+    (license license:expat)))
+
 (define-public rust-mime-0.3
   (package
     (name "rust-mime")
@@ -38881,16 +40289,17 @@ efficient round-trip float parsing. Minimal-lexical implements a correct, fast
 float parser.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-miniz-oxide-0.6
+(define-public rust-miniz-oxide-0.7
   (package
     (name "rust-miniz-oxide")
-    (version "0.6.4")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "miniz-oxide" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32 "08j82769wkgbzfpg0k2qa744w3sg79vx1vsmjw88p1yy5rc15qpj"))))
+    (version "0.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "miniz-oxide" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ivl3rbbdm53bzscrd01g60l46lz5krl270487d8lhjvwl5hx0g7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -38907,18 +40316,37 @@ float parser.")
 streaming API for miniz_oxide.")
     (license (list license:expat license:zlib license:asl2.0))))
 
+(define-public rust-miniz-oxide-0.6
+  (package
+    (inherit rust-miniz-oxide-0.7)
+    (name "rust-miniz-oxide")
+    (version "0.6.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "miniz-oxide" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1yp8z6yll5ypz1ldmgnv7zi0r78kbvmqmn2mii77jzmk5069axdj"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-adler" ,rust-adler-1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-simd-adler32" ,rust-simd-adler32-0.3))))))
+
 (define-public rust-miniz-oxide-0.5
   (package
     (inherit rust-miniz-oxide-0.6)
     (name "rust-miniz-oxide")
-    (version "0.5.3")
+    (version "0.5.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "miniz_oxide" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1k1wfxb35v129mhqy14yqhrj3wvknafrwygiq7zvi0m5iml7ap3g"))))
+        (base32 "0d2xcypr8s0skd81dhlrylas1j794qyz74snm11jc8kmy6l0nncn"))))
     (arguments
      `(#:cargo-inputs
        (("rust-adler" ,rust-adler-1)
@@ -38931,17 +40359,17 @@ streaming API for miniz_oxide.")
   (package
     (inherit rust-miniz-oxide-0.5)
     (name "rust-miniz-oxide")
-    (version "0.4.3")
+    (version "0.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "miniz_oxide" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17d1xp29v5xgh4vahxld14w1c1hgh38qmxpv7i18wy096gn2cb8g"))))
+        (base32 "0jsfv00hl5rmx1nijn59sr9jmjd4rjnjhh4kdjy8d187iklih9d9"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-adler" ,rust-adler-0.2)
+       (("rust-adler" ,rust-adler-1)
         ("rust-autocfg" ,rust-autocfg-1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
@@ -38951,7 +40379,7 @@ streaming API for miniz_oxide.")
   (package
     (inherit rust-miniz-oxide-0.4)
     (name "rust-miniz-oxide")
-    (version "0.3.6")
+    (version "0.3.7")
     (source
       (origin
         (method url-fetch)
@@ -38959,7 +40387,7 @@ streaming API for miniz_oxide.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "198n4hfpq0qcxf275l6fpzh7b9cl7ck2xs6pjgpds74bazv9yrxa"))))
+          "0dblrhgbm0wa8jjl8cjp81akaj36yna92df4z1h9b26n3spal7br"))))
     (arguments
      `(#:cargo-inputs (("rust-adler32" ,rust-adler32-1))))))
 
@@ -38989,23 +40417,23 @@ streaming API for miniz_oxide.")
 (define-public rust-mio-0.8
   (package
     (name "rust-mio")
-    (version "0.8.6")
+    (version "0.8.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "mio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ygx5chq81k3vk2bx722xwcwf2qydmm337jsnijgzd7mxx39m7av"))))
+        (base32 "1lhrdgcmcy8f0qy1n7357q0aprfkm5gld5mjcrp209pwsdf7cylj"))))
     (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-libc" ,rust-libc-0.2)
              ("rust-log" ,rust-log-0.4)
              ("rust-wasi" ,rust-wasi-0.11)
-             ("rust-windows-sys" ,rust-windows-sys-0.45))
+             ("rust-windows-sys" ,rust-windows-sys-0.48))
            #:cargo-development-inputs
-           `(("rust-env-logger" ,rust-env-logger-0.8)
+           `(("rust-env-logger" ,rust-env-logger-0.9)
              ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/tokio-rs/mio")
     (synopsis "Lightweight non-blocking IO")
@@ -39069,6 +40497,35 @@ possible over the OS abstractions.")
         ("rust-env-logger" ,rust-env-logger-0.4)
         ("rust-tempdir" ,rust-tempdir-0.3))))))
 
+(define-public rust-mio-aio-0.7
+  (package
+    (name "rust-mio-aio")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mio-aio" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07y7wnkd4xvj48fyxgnfm9jqjldgqfd39k3ydfmaqc76mw36pagq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t ; no variant named `SigevKevent` found for enum `SigevNotify`
+       #:cargo-inputs
+       (("rust-mio" ,rust-mio-0.8)
+        ("rust-nix" ,rust-nix-0.24))
+       #:cargo-development-inputs
+       (("rust-assert-impl" ,rust-assert-impl-0.1)
+        ("rust-log" ,rust-log-0.3)
+        ("rust-mio" ,rust-mio-0.8)
+        ("rust-nix" ,rust-nix-0.24)
+        ("rust-sysctl" ,rust-sysctl-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/asomers/mio-aio")
+    (synopsis "POSIX AIO bindings for mio")
+    (description "This package provides POSIX AIO bindings for mio.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-mio-anonymous-pipes-0.2
   (package
     (name "rust-mio-anonymous-pipes")
@@ -39705,8 +41162,74 @@ quick compile time, and minimal dependencies.")
     (description "Run NASM during your Cargo build.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-nalgebra-0.32
+  (package
+    (name "rust-nalgebra")
+    (version "0.32.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nalgebra" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ahwmg15v2qschc1y64hg5r2hdp7m0izv11zx0lkyhn2ijqxjzih"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;#:features '("debug" "compare" "rand" "macros")
+       #:cargo-test-flags
+         ;; Feature list as requested by the test suite.
+       '("--release" "--features" "debug,compare,rand,macros")
+       #:cargo-inputs
+       (("rust-alga" ,rust-alga-0.9)
+        ("rust-approx" ,rust-approx-0.5)
+        ("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-cust-core" ,rust-cust-core-0.1)
+        ("rust-glam" ,rust-glam-0.24)
+        ("rust-glam" ,rust-glam-0.23)
+        ("rust-glam" ,rust-glam-0.22)
+        ("rust-glam" ,rust-glam-0.21)
+        ("rust-glam" ,rust-glam-0.20)
+        ("rust-glam" ,rust-glam-0.19)
+        ("rust-glam" ,rust-glam-0.18)
+        ("rust-glam" ,rust-glam-0.17)
+        ("rust-glam" ,rust-glam-0.16)
+        ("rust-glam" ,rust-glam-0.15)
+        ("rust-glam" ,rust-glam-0.14)
+        ("rust-matrixcompare-core" ,rust-matrixcompare-core-0.1)
+        ("rust-matrixmultiply" ,rust-matrixmultiply-0.3)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-nalgebra-macros" ,rust-nalgebra-macros-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-num-rational" ,rust-num-rational-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-distr" ,rust-rand-distr-0.4)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-simba" ,rust-simba-0.8)
+        ("rust-typenum" ,rust-typenum-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-matrixcompare" ,rust-matrixcompare-0.3)
+        ("rust-rand-isaac" ,rust-rand-isaac-0.3)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://nalgebra.org")
+    (synopsis "Linear algebra library")
+    (description
+     "This package provides a general-purpose linear algebra library with
+transformations and statically-sized or dynamically-sized matrices.")
+    (license license:bsd-3)))
+
 (define-public rust-nalgebra-0.29
   (package
+    (inherit rust-nalgebra-0.32)
     (name "rust-nalgebra")
     (version "0.29.0")
     (source
@@ -39717,7 +41240,6 @@ quick compile time, and minimal dependencies.")
         (sha256
           (base32 "1zri11vkrbk3ayvy8xqcdvvyjvfcbl5a18x8z82racnn11zfn1nm"))
        (modules '((guix build utils)))))
-    (build-system cargo-build-system)
     (arguments
       `(#:tests? #f       ;TODO: how to enable required features?
         #:cargo-inputs
@@ -39753,13 +41275,7 @@ quick compile time, and minimal dependencies.")
          ("rust-matrixcompare" ,rust-matrixcompare-0.3)
          ("rust-rand-isaac" ,rust-rand-isaac-0.3)
          ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
-         ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://nalgebra.org")
-    (synopsis "Linear algebra library")
-    (description
-     "This package provides a general-purpose linear algebra library with
-transformations and statically-sized or dynamically-sized matrices.")
-    (license license:bsd-3)))
+         ("rust-serde-json" ,rust-serde-json-1))))))
 
 (define-public rust-nalgebra-0.27
   (package
@@ -39943,8 +41459,35 @@ statically-sized or dynamically-sized matrices.")
        (("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
         ("rust-serde-json" ,rust-serde-json-1))))))
 
+(define-public rust-nalgebra-macros-0.2
+  (package
+    (name "rust-nalgebra-macros")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nalgebra-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "166rzbzi1hcyjfvwxmrdimrcmflvxxifjfkqxxkdjfnhcznilxli"))))
+    (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))
+       #:cargo-development-inputs
+       (("rust-nalgebra" ,rust-nalgebra-0.32)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://nalgebra.org")
+    (synopsis "Procedural macros for nalgebra")
+    (description "This package provides procedural macros for the nalgebra
+linear algebra library.")
+    (license license:asl2.0)))
+
 (define-public rust-nalgebra-macros-0.1
   (package
+    (inherit rust-nalgebra-macros-0.2)
     (name "rust-nalgebra-macros")
     (version "0.1.0")
     (source
@@ -39960,7 +41503,6 @@ statically-sized or dynamically-sized matrices.")
            (substitute* "Cargo.toml"
              ;; The resolver feature is not supported by our versions of Cargo.
              (("resolver = \"2\".*") ""))))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -39968,15 +41510,41 @@ statically-sized or dynamically-sized matrices.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
-       (("rust-nalgebra" ,rust-nalgebra-0.26))))
-    (home-page "https://nalgebra.org")
-    (synopsis "Procedural macros for nalgebra")
-    (description "This package provides procedural macros for the nalgebra
-linear algebra library.")
-    (license license:asl2.0)))
+       (("rust-nalgebra" ,rust-nalgebra-0.26))))))
+
+(define-public rust-napi-2
+  (package
+    (name "rust-napi")
+    (version "2.13.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1h1sbblg638h1pnhvf2yxy0lzk8hy9dwx5mswc296500p69kq1px"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-bitflags" ,rust-bitflags-2)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-ctor" ,rust-ctor-0.2)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-napi-derive" ,rust-napi-derive-2)
+        ("rust-napi-sys" ,rust-napi-sys-2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/napi-rs/napi-rs")
+    (synopsis "N-API bindings")
+    (description "This package provides N-API bindings.")
+    (license license:expat)))
 
 (define-public rust-napi-0.5
   (package
+    (inherit rust-napi-2)
     (name "rust-napi")
     (version "0.5.1")
     (source
@@ -39987,9 +41555,9 @@ linear algebra library.")
        (sha256
         (base32
          "0mp0di7zv1r9gn3r3pmqnyy6q94akd9d6bl1p7m76nm9hgj9rw56"))))
-    (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; Wants node for napi-build-0.2 and napi-sys-0.4
+       #:cargo-inputs
        (("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-futures" ,rust-futures-0.3)
         ("rust-napi-sys" ,rust-napi-sys-0.4)
@@ -39998,14 +41566,35 @@ linear algebra library.")
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-tokio" ,rust-tokio-0.2))
        #:cargo-development-inputs
-       (("rust-napi-build" ,rust-napi-build-0.2))))
+       (("rust-napi-build" ,rust-napi-build-0.2))))))
+
+(define-public rust-napi-build-1
+  (package
+    (name "rust-napi-build")
+    (version "1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi-build" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0asjspv0gkg6lgdz3d6gl9ab7hbc9z2hc51m637j6x3jfa8l3m7b"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (delete-file-recursively "src/libs")
+                 ;; Don't try to read the removed files.
+                 (substitute* "src/windows.rs"
+                   (("include_bytes.*")
+                    "unreachable!(),\n"))))))
+    (build-system cargo-build-system)
     (home-page "https://github.com/napi-rs/napi-rs")
-    (synopsis "N-API bindings")
-    (description "This package provides N-API bindings.")
+    (synopsis "N-API build support")
+    (description "This package provides N-API build support.")
     (license license:expat)))
 
 (define-public rust-napi-build-0.2
   (package
+    (inherit rust-napi-build-1)
     (name "rust-napi-build")
     (version "0.2.1")
     (source
@@ -40014,20 +41603,40 @@ linear algebra library.")
        (uri (crate-uri "napi-build" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1z02mlw1wa01fjpjnqns3f3vxacbg1jnk98hcg3pgwp5xy3zdyqq"))))
-    (build-system cargo-build-system)
+        (base32 "1z02mlw1wa01fjpjnqns3f3vxacbg1jnk98hcg3pgwp5xy3zdyqq"))))
     (arguments
      `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-reqwest" ,rust-reqwest-0.10))))
+        ("rust-reqwest" ,rust-reqwest-0.10))))))
+
+(define-public rust-napi-derive-2
+  (package
+    (name "rust-napi-derive")
+    (version "2.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rz3plhps1i1p5m02ffy97lcd3mzf8ihdkcgf2l9lm2dm27nl76s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-convert-case" ,rust-convert-case-0.6)
+        ("rust-napi-derive-backend" ,rust-napi-derive-backend-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/napi-rs/napi-rs")
-    (synopsis "N-API build support")
-    (description "This package provides N-API build support.")
+    (synopsis "N-API procedural macros")
+    (description "This package provides N-API procedural macros.")
     (license license:expat)))
 
 (define-public rust-napi-derive-0.5
   (package
+    (inherit rust-napi-derive-2)
     (name "rust-napi-derive")
     (version "0.5.1")
     (source
@@ -40038,19 +41647,60 @@ linear algebra library.")
        (sha256
         (base32
          "0kkgpzw4i6f0zkg80v9vhr7y5rg25q3kv67029i1gcgsrxlqx4zi"))))
-    (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))))))
+
+(define-public rust-napi-derive-backend-1
+  (package
+    (name "rust-napi-derive-backend")
+    (version "1.0.52")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi-derive-backend" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05wy00faa3bz2lqcrwnlr3l9hzwrw3qcapljiy26ml38j73cgfr0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-convert-case" ,rust-convert-case-0.6)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-semver" ,rust-semver-1)
         ("rust-syn" ,rust-syn-1))))
+    (home-page "https://napi.rs")
+    (synopsis "Codegen backend for napi procedural macro")
+    (description "Codegen backend for napi procedural macro.")
+    (license license:expat)))
+
+(define-public rust-napi-sys-2
+  (package
+    (name "rust-napi-sys")
+    (version "2.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "napi-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qxs0wxlax3nj3b1q1vgr5ihzp8c0d58vzm98x85gd9s5bsmwsqn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libloading" ,rust-libloading-0.7))))
     (home-page "https://github.com/napi-rs/napi-rs")
-    (synopsis "N-API procedural macros")
-    (description "This package provides N-API procedural macros.")
+    (synopsis "NodeJS N-API raw binding")
+    (description "This package provides a NodeJS N-API raw binding.")
     (license license:expat)))
 
 (define-public rust-napi-sys-0.4
   (package
+    (inherit rust-napi-sys-2)
     (name "rust-napi-sys")
     (version "0.4.7")
     (source
@@ -40061,13 +41711,13 @@ linear algebra library.")
        (sha256
         (base32
          "0cjirf6n4i2lw65iaww8d4hahv3cbfm5ka9hlansvnbfgzwadzq9"))))
-    (build-system cargo-build-system)
     (inputs
      (list openssl))
     (native-inputs
      (list pkg-config))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; Wants node.
+       #:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.55)
         ("rust-semver" ,rust-semver-0.10)
         ("rust-tar" ,rust-tar-0.4))
@@ -40075,11 +41725,7 @@ linear algebra library.")
        (("rust-flate2" ,rust-flate2-1)
         ("rust-glob" ,rust-glob-0.3)
         ("rust-regex" ,rust-regex-1)
-        ("rust-reqwest" ,rust-reqwest-0.10))))
-    (home-page "https://github.com/napi-rs/napi-rs")
-    (synopsis "NodeJS N-API raw binding")
-    (description "This package provides a NodeJS N-API raw binding.")
-    (license license:expat)))
+        ("rust-reqwest" ,rust-reqwest-0.10))))))
 
 (define-public rust-native-tls-0.2
   (package
@@ -41032,7 +42678,10 @@ applications written in Rust.  Its API is inspired by the popular
        (("rust-lazy_static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-nitrokey-sys" ,rust-nitrokey-sys-3)
-        ("rust-rand_core" ,rust-rand-core-0.5))))
+        ("rust-rand_core" ,rust-rand-core-0.5))
+       #:cargo-development-inputs
+       (("rust-nitrokey-test" ,rust-nitrokey-test-0.3)
+        ("rust-nitrokey-test-state" ,rust-nitrokey-test-state-0.1))))
     (home-page "https://git.sr.ht/~ireas/nitrokey-rs")
     (synopsis "Rust bindings to libnitrokey")
     (description
@@ -41043,7 +42692,7 @@ with Nitrokey devices.")
 (define-public rust-nitrokey-sys-3
   (package
     (name "rust-nitrokey-sys")
-    (version "3.6.0")
+    (version "3.7.0")
     (source
      (origin
        (method url-fetch)
@@ -41051,8 +42700,12 @@ with Nitrokey devices.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "08c3lnb8iqx000jd5rzvrdvv4ihjyw3x3s8q11dw56is0nmjyvws"))))
+         "0hcns32sclzf8xbdjg5iqndbn1b66l3j61zbgbl8ds8n6nind16q"))))
     (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-bindgen" ,rust-bindgen-0.55)
+         ("rust-cc" ,rust-cc-1))))
     (home-page "https://git.sr.ht/~ireas/nitrokey-sys-rs")
     (synopsis "Low-level Rust bindings for libnitrokey")
     (description
@@ -41074,7 +42727,8 @@ communication with Nitrokey devices.")
          "197j9r2s4ydzbqfydza6v31mgcsgd29jpidz4psqawjdm49f8lg6"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; Wants an older version of rust-nitrokey.
+       #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("quote" ,rust-quote-1)
         ("syn" ,rust-syn-1))))
@@ -41085,6 +42739,27 @@ communication with Nitrokey devices.")
 nitrokey crate and others using it.")
     (license license:gpl3+)))
 
+(define-public rust-nitrokey-test-0.3
+  (package
+    (inherit rust-nitrokey-test-0.5)
+    (name "rust-nitrokey-test")
+    (version "0.3.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nitrokey-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dzy0lfz2zwn7f1d126avig6risj78a4bvf3zdwjyldaxln0rnpk"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-nitrokey" ,rust-nitrokey-0.9)
+        ("rust-nitrokey-test-state" ,rust-nitrokey-test-state-0.1))))))
+
 (define-public rust-nitrokey-test-state-0.1
   (package
     (name "rust-nitrokey-test-state")
@@ -41159,21 +42834,30 @@ while still providing platform specific APIs.")
   (package
     (inherit rust-nix-0.26)
     (name "rust-nix")
-    (version "0.24.2")
+    (version "0.24.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nix" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1z35n1bhzslr7zawy2c0fl90jjy9l5b3lnsidls3908vfk0xnp0r"))))
+        (base32 "0sc0yzdl51b49bqd9l9cmimp1sw1hxb8iyv4d35ww6d7m5rfjlps"))))
     (arguments
-     (list #:skip-build? #t
+     (list #:tests? #f      ; Test suite hangs.
            #:cargo-inputs
            `(("rust-bitflags" ,rust-bitflags-1)
              ("rust-cfg-if" ,rust-cfg-if-1)
              ("rust-libc" ,rust-libc-0.2)
-             ("rust-memoffset" ,rust-memoffset-0.6))))))
+             ("rust-memoffset" ,rust-memoffset-0.6))
+           #:cargo-development-inputs
+           `(("rust-assert-impl" ,rust-assert-impl-0.1)
+             ("rust-caps" ,rust-caps-0.5)
+             ("rust-lazy-static" ,rust-lazy-static-1)
+             ("rust-parking-lot" ,rust-parking-lot-0.11)
+             ("rust-rand" ,rust-rand-0.8)
+             ("rust-semver" ,rust-semver-1)
+             ("rust-sysctl" ,rust-sysctl-0.1)
+             ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-nix-0.23
   (package
@@ -41957,6 +43641,26 @@ with all line endings.")
         ("rust-rustversion" ,rust-rustversion-1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-normpath-0.2
+  (package
+    (inherit rust-normpath-1)
+    (name "rust-normpath")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "normpath" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0y354v327vbcxap7ag88j81y4zifzhnjgxvn7l1s2d9cjb4si79a"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-notify-5
   (package
     (name "rust-notify")
@@ -42155,6 +43859,25 @@ enhances the built-in library with some useful features.")
        #:cargo-development-inputs
        (("rust-tokio" ,rust-tokio-1))))))
 
+(define-public rust-ntest-0.7
+  (package
+    (inherit rust-ntest-0.8)
+    (name "rust-ntest")
+    (version "0.7.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0i4xsvx52hmcnga2xbjl74hdylz4jy8bc2swcichlvw1di4lwm2w"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.7)
+        ("rust-ntest-test-cases" ,rust-ntest-test-cases-0.7)
+        ("rust-ntest-timeout" ,rust-ntest-timeout-0.7))
+       #:cargo-development-inputs (("rust-tokio" ,rust-tokio-1))))))
+
 (define-public rust-ntest-test-cases-0.9
   (package
     (name "rust-ntest-test-cases")
@@ -42195,6 +43918,19 @@ enhances the built-in library with some useful features.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
+(define-public rust-ntest-test-cases-0.7
+  (package
+    (inherit rust-ntest-test-cases-0.8)
+    (name "rust-ntest-test-cases")
+    (version "0.7.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest-test-cases" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1ghal2rb03cnj7ciqgdq0dvifdf8qp2hnmi9z1ip1j5b02s1xa4r"))))))
+
 (define-public rust-ntest-timeout-0.9
   (package
     (name "rust-ntest-timeout")
@@ -42239,6 +43975,26 @@ framework.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
+(define-public rust-ntest-timeout-0.7
+  (package
+    (inherit rust-ntest-timeout-0.8)
+    (name "rust-ntest-timeout")
+    (version "0.7.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest-timeout" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "08v3r6hggh43qabl887pkz88k6lg6hrc62mppxyabb0pw44v03di"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.7)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-ntest-proc-macro-helper-0.8
   (package
     (name "rust-ntest-proc-macro-helper")
@@ -42256,6 +44012,19 @@ framework.")
 macros used in ntest.")
     (license license:expat)))
 
+(define-public rust-ntest-proc-macro-helper-0.7
+  (package
+    (inherit rust-ntest-proc-macro-helper-0.8)
+    (name "rust-ntest-proc-macro-helper")
+    (version "0.7.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ntest-proc-macro-helper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0lkyfx97aynbm7cnhzyc9cr0rpq1xzng1hwmzizbf1a6855y6llg"))))))
+
 (define-public rust-ntex-bytes-0.1
   (package
     (name "rust-ntex-bytes")
@@ -43743,7 +45512,7 @@ be assigned to at most once and provide direct access to the stored
 contents.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-oorandom-11.1
+(define-public rust-oorandom-11
   (package
     (name "rust-oorandom")
     (version "11.1.3")
@@ -43844,20 +45613,21 @@ the system.")
 (define-public rust-opener-0.5
   (package
     (name "rust-opener")
-    (version "0.5.0")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "opener" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0lkrn4fv1h4m8gmp7ll6x7vjvb6kls2ngwa5cgsh2ix5fb6yp8sf"))))
+        (base32 "01ghahdn64lw4whj0p70vmzivrdlmca2629gplalq99pirkiag19"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))))
+       (("rust-bstr" ,rust-bstr-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-version-sync" ,rust-version-sync-0.9))))
     (home-page "https://github.com/Seeker14491/opener")
     (synopsis "Open a file or link using the system default program")
     (description "This crate provides the ability to open a file or link with
@@ -43920,18 +45690,22 @@ crate.")
 (define-public rust-openssl-0.10
   (package
     (name "rust-openssl")
-    (version "0.10.52")
+    (version "0.10.57")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "openssl" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0mldyz9w6d5bf3004m7kyjry7944m0pkkifzbywgg06z0935gf01"))))
+                "0z0f8g84y0lvnbc60586ibjpf8r1q1dv672vfqan5d5bk7imxhms"))
+              (snippet
+               #~(begin (use-modules (guix build utils))
+                        (substitute* "Cargo.toml"
+                          ((".*boringssl.*") ""))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
+       (("rust-bitflags" ,rust-bitflags-2)
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-foreign-types" ,rust-foreign-types-0.3)
         ("rust-libc" ,rust-libc-0.2)
@@ -44030,22 +45804,29 @@ system for OpenSSL.")
 (define-public rust-openssl-sys-0.9
   (package
     (name "rust-openssl-sys")
-    (version "0.9.87")
+    (version "0.9.93")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "openssl-sys" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0znc0q7a2gi2pmkscv0d6wzpfd64mgmy3w4lmrvrv05jcj9ga5wf"))
-        (patches (search-patches "rust-openssl-sys-no-vendor.patch"))))
+         (base32 "078vnn4s18kj8m5sd7b684frhjnxjcjc9z7s7h4871s7q2j5ckfv"))
+        (snippet
+         #~(begin
+             (use-modules (guix build utils))
+             ;; Remove dependency on boringssl and vendor openssl source.
+             (substitute* "Cargo.toml.orig"
+               (("vendored = .*") "vendored = []\n")
+               ((".*bssl.*") "")
+               ((".*openssl-src.*") ""))
+             (copy-file "Cargo.toml.orig" "Cargo.toml")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ;; Build dependencies:
-        ("rust-bindgen" ,rust-bindgen-0.64)
+       (("rust-bindgen" ,rust-bindgen-0.64)
         ("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (native-inputs
@@ -44486,6 +46267,9 @@ easy and usable crypto while trying to minimize the use of unsafe code.")
        (sha256
         (base32
          "04yjs1hf88jjm17g8a2lr7ibxyyg460rzbgcw9f1yzihq833y8zv"))))
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
+                       ("rust-winapi" ,rust-winapi-0.3))))
     (native-inputs (list))))
 
 (define-public rust-os-pipe-0.8
@@ -44873,7 +46657,7 @@ signing/verification, and general purpose curve arithmetic support.")
 (define-public rust-packed-simd-0.3
   (package
     (name "rust-packed-simd")
-    (version "0.3.8")
+    (version "0.3.9")
     (source
      (origin
        (method url-fetch)
@@ -44882,7 +46666,7 @@ signing/verification, and general purpose curve arithmetic support.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "17xih19yr6izg1d065d2ax29axs7bmywnxa3qps0l6d3bd4nbybc"))
+         "0bck71ngyhx9icy7q3xzgmjxkylysxm6hgif5rqp2xc71jphi7qz"))
        (modules '((guix build utils)))
        (snippet
         '(begin (substitute* "Cargo.toml"
@@ -44890,11 +46674,12 @@ signing/verification, and general purpose curve arithmetic support.")
                    (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
+     ;; `#![feature]` may not be used on the stable release channel
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-core-arch" ,rust-core-arch-0.1)
-        ("rust-libm" ,rust-libm-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-sleef-sys" ,rust-sleef-sys-0.1))
        #:cargo-development-inputs
        (("rust-arrayvec" ,rust-arrayvec-0.5)
@@ -45008,22 +46793,22 @@ formatters with per-field documentation generated for each structure.
       "This package provides a library for padding strings at runtime.")
     (license license:expat)))
 
-(define-public rust-page-size-0.4
+(define-public rust-page-size-0.6
   (package
     (name "rust-page-size")
-    (version "0.4.2")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "page_size" version))
+       (uri (crate-uri "page-size" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1kgdv7f626jy4i2pq8czp4ppady4g4kqfa5ik4dah7mzzd4fbggf"))))
+        (base32 "1nj0rrwpvagagssljbm29ww1iyrrg15p1q4sk70r2cfi9qcv5m9h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-spin" ,rust-spin-0.5)
+        ("rust-spin" ,rust-spin-0.9)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/Elzair/page_size_rs")
     (synopsis "Retrieve the memory page size")
@@ -45032,6 +46817,24 @@ formatters with per-field documentation generated for each structure.
 memory page size.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-page-size-0.4
+  (package
+    (inherit rust-page-size-0.6)
+    (name "rust-page-size")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "page_size" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1kgdv7f626jy4i2pq8czp4ppady4g4kqfa5ik4dah7mzzd4fbggf"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-spin" ,rust-spin-0.5)
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-pager-0.16
   (package
     (name "rust-pager")
@@ -45458,14 +47261,14 @@ synchronization primitives.")
 (define-public rust-parking-lot-core-0.9
   (package
     (name "rust-parking-lot-core")
-    (version "0.9.7")
+    (version "0.9.8")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "parking_lot_core" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "08cm5gg3a4jmr683x9dgih8vj66yn772kjvc8y1m0flyz6wwnsch"))))
+                "0ixlak319bpzldq20yvyfqk0y1vi736zxbw101jvzjp7by30rw4k"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -45473,10 +47276,10 @@ synchronization primitives.")
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-petgraph" ,rust-petgraph-0.6)
-        ("rust-redox-syscall" ,rust-redox-syscall-0.2)
+        ("rust-redox-syscall" ,rust-redox-syscall-0.3)
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-thread-id" ,rust-thread-id-4)
-        ("rust-windows-sys" ,rust-windows-sys-0.45))))
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
     (home-page "https://github.com/Amanieu/parking_lot")
     (synopsis "API for creating custom synchronization primitives")
     (description "This package provides an advanced API for creating custom
@@ -45976,16 +47779,21 @@ Format (MCF).")
 (define-public rust-paste-1
   (package
     (name "rust-paste")
-    (version "1.0.4")
+    (version "1.0.14")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "paste" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1hfikh0bds8hqn371l2wf039mp6b5wrmwrwg96jcs6lkjm6mrmn5"))))
+        (base32 "0k7d54zz8zrz0623l3xhvws61z5q2wd3hkwim6gylk8212placfy"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:tests? #f      ; Can't compile rust-paste-test-suite
+       #:cargo-development-inputs
+       (("rust-paste-test-suite" ,rust-paste-test-suite-0.0.0)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/paste")
     (synopsis "Macros for all your token pasting needs")
     (description
@@ -46040,6 +47848,24 @@ Format (MCF).")
      "Implementation detail of the paste crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-paste-test-suite-0.0.0
+  (package
+    (name "rust-paste-test-suite")
+    (version "0.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "paste-test-suite" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0mllghv41sz978ymxym8nm6yh1qljshsbjk6iaycbk6zlw7gqagh"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t)) ; Not meant to be used individually.
+    (home-page "https://github.com/dtolnay/paste")
+    (synopsis "Test suite of the paste crate")
+    (description "Test suite of the paste crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-path-abs-0.5
   (package
     (name "rust-path-abs")
@@ -46317,11 +48143,12 @@ in pure Rust.")
      (origin
        (method url-fetch)
        (uri (crate-uri "pcap-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "18w9c8i5zjnazay86219w4789482ya617z35cw433h12wbgjaiqi"))))
+        (base32 "18w9c8i5zjnazay86219w4789482ya617z35cw433h12wbgjaiqi"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (delete-file-recursively "Lib")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -47817,28 +49644,30 @@ crate.")
 (define-public rust-pin-project-lite-0.2
   (package
     (name "rust-pin-project-lite")
-    (version "0.2.9")
+    (version "0.2.13")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pin-project-lite" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "05n1z851l356hpgqadw4ar64mjanaxq1qlwqsf2k05ziq8xax9z0"))
+        (base32 "0n0bwr5qxlf0mhn2xkl36sy55118s9qmvx2yl5f3ixkb007lbywa"))
        (modules '((guix build utils)))
        (snippet
-        '(substitute* "Cargo.toml"
-           (("\\[dev-dependencies.rustversion\\]" m)
-            (string-append "
-[dev-dependencies.macrotest]
-version = \"1\"
-" m))))))
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
        (("rust-macrotest" ,rust-macrotest-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
         ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
         ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-toml" ,rust-toml-0.5)
         ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/taiki-e/pin-project-lite")
     (synopsis "Lightweight version of pin-project")
@@ -48144,7 +49973,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.26")
+    (version "0.3.27")
     (source
      (origin
        (method url-fetch)
@@ -48152,20 +49981,19 @@ with additional support for PKCS#8v2 asymmetric key packages (RFC 5958).")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0q2i61dhqvawc51zfzl3jich57w0cjgfa894hn6ings7ffgsbjba"))))
+         "0r39ryh1magcq4cz5g9x88jllsnxnhcqr753islvyk4jp9h2h1r6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
        (("rust-lazy-static" ,rust-lazy-static-1))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'hardcode-pkg-config-loation
+         (add-after 'unpack 'hardcode-pkg-config-location
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/lib.rs"
                (("\"pkg-config\"")
                 (string-append "\"" (assoc-ref inputs "pkg-config")
-                               "/bin/pkg-config\"")))
-             #t)))))
+                               "/bin/pkg-config\""))))))))
     (native-inputs
      (list pkg-config))
     (home-page "https://github.com/rust-lang/pkg-config-rs")
@@ -48651,7 +50479,11 @@ library.")
        (uri (crate-uri "poly1305" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1pkf4jlriskq9rvz8y5fjj9dw42q6yg5djijlin4n6p1dd3yp2h4"))))
+        (base32 "1pkf4jlriskq9rvz8y5fjj9dw42q6yg5djijlin4n6p1dd3yp2h4"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("version = \">=1, <1\\.4\"") "version = \"^1\""))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -48983,29 +50815,30 @@ libpq.")
 dependency to expose a precomputed hash.")
     (license license:expat)))
 
-(define-public rust-predicates-2
+(define-public rust-predicates-3
   (package
     (name "rust-predicates")
-    (version "2.1.0")
+    (version "3.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "predicates" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "05d749i3z8cbsr0899fzr2ksn8drbci4harcq82vjsj5krlagrcm"))))
+        (base32 "182q0wiabllvbg0nzfkf8a6qkbk0ckrkmfbk7k5ijgrfbibjiz3d"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-test-flags
+       '("--release" "--"
+         "--skip=path::fc::PredicateFileContentExt::from_file_path")
        #:cargo-inputs
-       (("rust-concolor-control" ,rust-concolor-control-0.0.7)
+       (("rust-anstyle" ,rust-anstyle-1)
         ("rust-difflib" ,rust-difflib-0.4)
         ("rust-float-cmp" ,rust-float-cmp-0.9)
-        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-itertools" ,rust-itertools-0.11)
         ("rust-normalize-line-endings" ,rust-normalize-line-endings-0.3)
         ("rust-predicates-core" ,rust-predicates-core-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-yansi" ,rust-yansi-0.5))
+        ("rust-regex" ,rust-regex-1))
        #:cargo-development-inputs
        (("rust-predicates-tree" ,rust-predicates-tree-1))))
     (home-page "https://github.com/assert-rs/predicates-rs")
@@ -49015,6 +50848,34 @@ dependency to expose a precomputed hash.")
 functions.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-predicates-2
+  (package
+    (inherit rust-predicates-3)
+    (name "rust-predicates")
+    (version "2.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "predicates" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pdd8zgw8351bvk882zadyqghnxzkjlf946vkdb1hgkzqdihl8sr"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--"
+         "--skip=path::fc::PredicateFileContentExt::from_file_path")
+       #:cargo-inputs
+       (("rust-concolor" ,rust-concolor-0.0.11)
+        ("rust-difflib" ,rust-difflib-0.4)
+        ("rust-float-cmp" ,rust-float-cmp-0.9)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-normalize-line-endings" ,rust-normalize-line-endings-0.3)
+        ("rust-predicates-core" ,rust-predicates-core-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-yansi" ,rust-yansi-0.5))
+       #:cargo-development-inputs
+       (("rust-predicates-tree" ,rust-predicates-tree-1))))))
+
 (define-public rust-predicates-1
   (package
     (inherit rust-predicates-2)
@@ -49064,16 +50925,14 @@ functions.")
 (define-public rust-predicates-core-1
   (package
     (name "rust-predicates-core")
-    (version "1.0.0")
+    (version "1.0.6")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "predicates-core" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "0y3ingf2i4xx7r61f1a8wizs57j8hh32hylyjbw9ymcj7qx5q1q6"))))
+         (base32 "0x7ij95n63mhgkyrb7hly5ngm41mwfsassfvnjz7lbk10wk0755p"))))
     (build-system cargo-build-system)
     (home-page
      "https://github.com/assert-rs/predicates-rs/tree/master/predicates-core")
@@ -49100,21 +50959,21 @@ functions.")
 (define-public rust-predicates-tree-1
   (package
     (name "rust-predicates-tree")
-    (version "1.0.0")
+    (version "1.0.9")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "predicates-tree" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "090148qjilm2c722l873z7g31fhzj5j4qhd2xiv8mcqkj22w8qwf"))))
+         (base32 "1kyfq3r0s2vg94a9r59n7ar5gv66zvpa0s1fd6mm4l4czcas72rn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-predicates-core" ,rust-predicates-core-1)
-        ("rust-treeline" ,rust-treeline-0.1))))
+        ("rust-termtree" ,rust-termtree-0.4))
+       #:cargo-development-inputs
+       (("rust-predicates" ,rust-predicates-3))))
     (home-page
      "https://github.com/assert-rs/predicates-rs/tree/master/predicates-tree")
     (synopsis
@@ -49666,7 +51525,7 @@ in your code.")
 (define-public rust-proc-macro2-1
   (package
     (name "rust-proc-macro2")
-    (version "1.0.64")
+    (version "1.0.67")
     (source
      (origin
        (method url-fetch)
@@ -49674,7 +51533,7 @@ in your code.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1nm7qw54jn9n0g1ygkw4f63vj90m241yih6ph3g6zx7irdi3p03q"))))
+         "0a0k7adv0yswsgzsqkd7r6ng8rpcdyqrhra5v5ii531y3agkshrx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags '("--lib")
@@ -49708,10 +51567,9 @@ in terms of the upstream unstable API.")
     (arguments
      `(#:cargo-test-flags '("--lib")
        #:cargo-inputs
-       (("rust-unicode-ident" ,rust-unicode-ident-1))
+       (("rust-unicode-xid" ,rust-unicode-xid-0.2))
        #:cargo-development-inputs
-       (("rust-quote" ,rust-quote-1.0.10)
-        ("rust-rustversion" ,rust-rustversion-1))))))
+       (("rust-quote" ,rust-quote-1))))))
 
 (define-public rust-proc-macro2-0.4
   (package
@@ -49877,27 +51735,26 @@ property-based testing and fuzzing.")
 (define-public rust-proptest-1
   (package
     (name "rust-proptest")
-    (version "1.1.0")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "proptest" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0w5s3wwchd3i6m15lsbsk3r3y25d1gwn13m6a185ks8w06cbiw99"))))
+        (base32 "03n213yppl8lpw94cms2bb6rns3ahg78n6az9yvppc3wqz43l03w"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bit-set" ,rust-bit-set-0.5)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-bit-vec" ,rust-bit-vec-0.6)
+        ("rust-bitflags" ,rust-bitflags-2)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-quick-error" ,rust-quick-error-2)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-rand-chacha" ,rust-rand-chacha-0.3)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
-        ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.7)
         ("rust-rusty-fork" ,rust-rusty-fork-0.3)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-unarray" ,rust-unarray-0.1)
@@ -50617,14 +52474,14 @@ they were parsed from")
 (define-public rust-pyo3-build-config-0.19
   (package
     (name "rust-pyo3-build-config")
-    (version "0.19.1")
+    (version "0.19.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pyo3-build-config" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1c4n6dvv79p5mb558nz1cb0ifgxbhw9gjs0j1ff0l61w1d7v4kam"))))
+                "19bb7aqyvr4kmh8b2lnrmcv9251j8yxw7l7xyr77m3s3pk876v07"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -50701,14 +52558,14 @@ ecosystem.")
 (define-public rust-pyo3-ffi-0.19
   (package
     (name "rust-pyo3-ffi")
-    (version "0.19.1")
+    (version "0.19.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pyo3-ffi" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "193hg837vk0c9b4fxxx4bp2vjm4n4m0sx59ivba0lq78b63xwblj"))))
+                "1nc4696k03ydyiy1f69l3ywknavjzxzag2mscrh2bgkywx1fwg75"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -50786,14 +52643,14 @@ extension to python.")
 (define-public rust-pyo3-macros-backend-0.19
   (package
     (name "rust-pyo3-macros-backend")
-    (version "0.19.1")
+    (version "0.19.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pyo3-macros-backend" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "12zs1vx0h4hainb0lpnw8knd9i9l0g2rdzdnrmb1bnv0n75qrdz0"))))
+                "0dlm4pg29hjmlqx15gcy9cmnabvc8ycy60hcvjg8hm62flhw2zcl"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -50867,14 +52724,14 @@ extension to python.")
 (define-public rust-pyo3-macros-0.19
   (package
     (name "rust-pyo3-macros")
-    (version "0.19.1")
+    (version "0.19.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pyo3-macros" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "18n57jpi3292jhzmg5bjr1343zl93gmvxz21m1j5jdfxl73awp4a"))))
+                "1lggr5pnpmdj0cznlhw7ykm1qka3wlymwzfxqql6a4vyb6clrsyz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -50967,14 +52824,14 @@ extension to python.")
 (define-public rust-pyo3-0.19
   (package
     (name "rust-pyo3")
-    (version "0.19.1")
+    (version "0.19.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pyo3" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0nca4p22jxwcg5dvg907j9m9618bvi8lmb20vvy4nsrhbzh8mf7z"))))
+                "0f1aqx947mzsrk05zdm9w2702lj5k9s97y9w9lxwkp2avk7sd0g6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -50982,8 +52839,8 @@ extension to python.")
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-eyre" ,rust-eyre-0.6)
-        ("rust-hashbrown" ,rust-hashbrown-0.12)
-        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.14)
+        ("rust-indexmap" ,rust-indexmap-2)
         ("rust-indoc" ,rust-indoc-1)
         ("rust-inventory" ,rust-inventory-0.3)
         ("rust-libc" ,rust-libc-0.2)
@@ -51000,7 +52857,6 @@ extension to python.")
        #:cargo-development-inputs
        (("rust-assert-approx-eq" ,rust-assert-approx-eq-1)
         ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-criterion" ,rust-criterion-0.3)
         ("rust-proptest" ,rust-proptest-0.10)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-rust-decimal" ,rust-rust-decimal-1)
@@ -51822,6 +53678,7 @@ and Petrick's method, an algorithm to automatically minimize boolean expressions
         ("rust-tracing-futures" ,rust-tracing-futures-0.2)
         ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
         ("rust-url" ,rust-url-2))))
+    (native-inputs (list perl))
     (home-page "https://github.com/quinn-rs/quinn")
     (synopsis "Versatile QUIC transport protocol implementation")
     (description "Versatile QUIC transport protocol implementation")
@@ -51859,6 +53716,8 @@ and Petrick's method, an algorithm to automatically minimize boolean expressions
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rcgen" ,rust-rcgen-0.8)
         ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (native-inputs
+     (list perl))
     (home-page "https://github.com/quinn-rs/quinn")
     (synopsis "State machine for the QUIC transport protocol")
     (description "State machine for the QUIC transport protocol")
@@ -51893,14 +53752,14 @@ transport protocol in Rust.")
 (define-public rust-quote-1
   (package
     (name "rust-quote")
-    (version "1.0.29")
+    (version "1.0.33")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "quote" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "019ij5fwp56ydww6zr46dhmzsf078qkdq9vz6mw1cri7mgl1ac2p"))))
+                "1biw54hbbr12wdwjac55z1m2x2rylciw83qnjn564a3096jgqrsj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -53163,22 +55022,21 @@ accessors.")
 (define-public rust-rayon-1
   (package
     (name "rust-rayon")
-    (version "1.6.1")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1dsr0yyfgdsg8ggh37kq678mfa5j3js6p16ksb7knazhml9s5cvd"))))
+        (base32 "1cfdnvchf7j4cpha5jkcrrsr61li9i9lp5ak7xdq6d3pvc1xn9ww"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-either" ,rust-either-1)
         ("rust-rayon-core" ,rust-rayon-core-1))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-rand" ,rust-rand-0.8)
+       (("rust-rand" ,rust-rand-0.8)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.3))))
     (home-page "https://github.com/rayon-rs/rayon")
     (synopsis "Simple work-stealing parallelism for Rust")
@@ -53238,24 +55096,20 @@ Rust.")
 (define-public rust-rayon-core-1
   (package
     (name "rust-rayon-core")
-    (version "1.10.1")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rayon-core" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lvavqk42lmll47q008j8y6nw54f3sfvcjlbaa26iaq0bnpi1i6a"))))
+        (base32 "1vaq0q71yfvcwlmia0iqf6ixj2fibjcf2xjy92n1m1izv1mgpqsw"))))
     (build-system cargo-build-system)
     (arguments
-     ;; One of the tests attempts to overflow the stack, but the compiler has
-     ;; since gotten smarter and the test became defective.
-     `(#:tests? #f
+     `(#:tests? #f  ; `Sender<usize>` cannot be shared between threads safely
        #: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))
+       (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.8)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8))
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-rand" ,rust-rand-0.8)
@@ -53341,8 +55195,27 @@ Rust.")
         ("rust-webpki" ,rust-webpki-0.22)
         ("rust-x509-parser" ,rust-x509-parser-0.12))))))
 
+(define-public rust-rctree-0.5
+  (package
+    (name "rust-rctree")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rctree" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kvzahkwriawhjjb08ai7rfi77px7rpx5h83hjcx6dccyxzf4hiv"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RazrFalcon/rctree")
+    (synopsis "DOM-like tree implemented using reference counting")
+    (description "This package provides a @code{DOM-like} tree implemented using
+reference counting.")
+    (license license:expat)))
+
 (define-public rust-rctree-0.4
   (package
+    (inherit rust-rctree-0.5)
     (name "rust-rctree")
     (version "0.4.0")
     (source
@@ -53352,13 +55225,7 @@ Rust.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1s92472lniqn2c0b5ln8ssl014x0raiyzkk0hagrvsd6far2iq4s"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/RazrFalcon/rctree")
-    (synopsis "DOM-like tree implemented using reference counting")
-    (description "This package provides a @code{DOM-like} tree implemented using
-reference counting.")
-    (license license:expat)))
+          "1s92472lniqn2c0b5ln8ssl014x0raiyzkk0hagrvsd6far2iq4s"))))))
 
 (define-public rust-rdrand-0.4
   (package
@@ -53664,7 +55531,12 @@ initial value.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0av43xxjlinfqklb67rpj217cmaxfjsf8151gs0hbs4hnr5664ck"))))))
+         "0av43xxjlinfqklb67rpj217cmaxfjsf8151gs0hbs4hnr5664ck"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-ref-cast-test-suite-0.0.0
   (package
@@ -54161,6 +56033,57 @@ Rust.")
     (description "File reopening utility.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-repr-offset-0.2
+  (package
+    (name "rust-repr-offset")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "repr-offset" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1skj3cy77j7vwslnjjzgladq61z6jjvwlw89kp0zz7fjbdsp047v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; tests must be run with the "testing" feature
+       #:cargo-inputs
+       (("rust-repr-offset-derive" ,rust-repr-offset-derive-0.2)
+        ("rust-tstr" ,rust-tstr-0.2))
+       #:cargo-development-inputs
+       (("rust-repr-offset-derive" ,rust-repr-offset-derive-0.2))))
+    (home-page "https://github.com/rodrimati1992/repr_offset_crates/")
+    (synopsis "Offsets of fields for types with a stable layout")
+    (description "Offsets of fields for types with a stable layout.")
+    (license license:zlib)))
+
+(define-public rust-repr-offset-derive-0.2
+  (package
+    (name "rust-repr-offset-derive")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "repr-offset-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rwkbf12vmgi5v1llmgiirn0yaaiyw821rd7fc9fhpbkdxz95yh9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; tests must be run with the "testing" feature
+       #:cargo-inputs
+       (("rust-as-derive-utils" ,rust-as-derive-utils-0.8)
+        ("rust-core-extensions" ,rust-core-extensions-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/rodrimati1992/repr_offset_crates/")
+    (synopsis
+     "For deriving the offsets of fields for types with a stable layout")
+    (description
+     "For deriving the offsets of fields for types with a stable layout.")
+    (license license:zlib)))
+
 (define-public rust-reqwest-0.11
   (package
     (name "rust-reqwest")
@@ -54385,15 +56308,14 @@ Rust.")
 (define-public rust-retain-mut-0.1
   (package
     (name "rust-retain-mut")
-    (version "0.1.1")
+    (version "0.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "retain_mut" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0cgmm1q7sr31r9wk7syh53ipgqpl37jzsvahdhmwrsi6mmcdc1g0"))))
+        (base32 "1c0jfxzba0mcw8q4z7dnc4ypwzxgqkdggngb55hazvwvg3az32a3"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/upsuper/retain_mut")
     (synopsis "Mutable borrow for the retain predicate")
@@ -54542,7 +56464,8 @@ Digital Signature Algorithm} (ECDSA).")
              (lambda _
                 (format #t "")))))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; TODO: Fix build
+       #:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-spin" ,rust-spin-0.5)
@@ -54587,7 +56510,8 @@ Digital Signature Algorithm} (ECDSA).")
              (lambda _
                 (format #t "")))))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; TODO: Fix build
+       #:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-untrusted" ,rust-untrusted-0.6)
@@ -54635,7 +56559,10 @@ Digital Signature Algorithm} (ECDSA).")
        (uri (crate-uri "riscv" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1fla10m2qkcf7zqw91rrribpdaavkv6qbbzjz9q2n09igbfwq1v9"))))
+        (base32 "1fla10m2qkcf7zqw91rrribpdaavkv6qbbzjz9q2n09igbfwq1v9"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (delete-file-recursively "bin")))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -56794,17 +58721,22 @@ rustc compiler.")
 (define-public rust-rustfix-0.6
   (package
     (name "rust-rustfix")
-    (version "0.6.0")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rustfix" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0apkjxv3z70vhnyz2kpwsivvndk6qk7kkp0rf7sg8pk7q1gy02vg"))))
+        (base32 "10b4qlvfwljp7yss8afj0lnn8vqj78n93n9vfmkq9616kqyqblpc"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Cut the dependency chain here
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/rust-lang/rustfix")
     (synopsis "Automatically apply the suggestions made by rustc")
     (description "Automatically apply the suggestions made by rustc.")
@@ -56859,8 +58791,67 @@ rustc compiler.")
         `(("rust-failure" ,rust-failure-0.1)
           ,@(alist-delete "rust-anyhow" cargo-inputs)))))))
 
+(define-public rust-rustix-0.38
+  (package
+    (name "rust-rustix")
+    (version "0.38.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustix" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0cg5jsfx8lf5npjf2v5ac8fca5443hq8iqqlg2gg1yc8pl6dmyfj"))
+       (snippet
+               #~(begin
+                   (use-modules (guix build utils))
+                   (for-each delete-file (find-files "." "\\.a$"))
+                   (delete-file "Cargo.toml")
+                   (substitute* "Cargo.toml.orig"
+                     ;; Depend unconditionally on the cc crate
+                     (("(cc = .*), optional = true.*" _ cc)
+                      (string-append cc " }\n"))
+                     ;; Disable using the linux_raw backend
+                     (("not\\(rustic_use_libc\\)") "miri"))
+                   (substitute* "build.rs"
+                     ;; Always use the 'feature = "cc"' path
+                     (("not\\(feature = \"cc\"\\)") "feature = \"foobar\"")
+                     (("#\\[cfg\\(feature = \"cc\"\\)\\]" all)
+                      (string-append "//" all)))
+                   (copy-file "Cargo.toml.orig" "Cargo.toml")))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-2)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-errno" ,rust-errno-0.3)
+        ("rust-itoa" ,rust-itoa-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-linux-raw-sys" ,rust-linux-raw-sys-0.4)
+        ("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.48))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-ctor" ,rust-ctor-0.2)
+        ("rust-errno" ,rust-errno-0.3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.9)
+        ("rust-serial-test" ,rust-serial-test-2)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("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))))
+
 (define-public rust-rustix-0.37
   (package
+    (inherit rust-rustix-0.38)
     (name "rust-rustix")
     (version "0.37.19")
     (source (origin
@@ -56869,8 +58860,24 @@ rustc compiler.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0gb12rp992bh2h5msqcbpdsx6h1gslsb0zpp5hdnyxj2hnfp5y5c"))))
-    (build-system cargo-build-system)
+                "0gb12rp992bh2h5msqcbpdsx6h1gslsb0zpp5hdnyxj2hnfp5y5c"))
+              (snippet
+               #~(begin
+                   (use-modules (guix build utils))
+                   (for-each delete-file (find-files "." "\\.a$"))
+                   (delete-file "Cargo.toml")
+                   (substitute* "Cargo.toml.orig"
+                     ;; Depend unconditionally on the cc crate
+                     (("(cc = .*), optional = true.*" _ cc)
+                      (string-append cc " }\n"))
+                     ;; Disable using the linux_raw backend
+                     (("not\\(rustic_use_libc\\)") "miri"))
+                   (substitute* "build.rs"
+                     ;; Always use the 'feature = "cc"' path
+                     (("not\\(feature = \"cc\"\\)") "feature = \"foobar\"")
+                     (("#\\[cfg\\(feature = \"cc\"\\)\\]" all)
+                      (string-append "//" all)))
+                   (copy-file "Cargo.toml.orig" "Cargo.toml")))))
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -56894,13 +58901,7 @@ rustc compiler.")
         ("rust-libc" ,rust-libc-0.2)
         ("rust-memoffset" ,rust-memoffset-0.8)
         ("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-rustix-0.36
   (package
@@ -56908,6 +58909,7 @@ rustc compiler.")
     (name "rust-rustix")
     (version "0.36.13")
     (source (origin
+              (inherit (package-source rust-rustix-0.37))
               (method url-fetch)
               (uri (crate-uri "rustix" version))
               (file-name (string-append name "-" version ".tar.gz"))
@@ -56945,6 +58947,7 @@ rustc compiler.")
     (name "rust-rustix")
     (version "0.35.13")
     (source (origin
+              (inherit (package-source rust-rustix-0.36))
               (method url-fetch)
               (uri (crate-uri "rustix" version))
               (file-name (string-append name "-" version ".tar.gz"))
@@ -57159,7 +59162,8 @@ rustc compiler.")
          (base32
           "0vh93fhqfbn4ysw4xzkpkpqdz36xixz4mhs1qllgldfq5iay6wgj"))))
     (arguments
-     `(#:tests? #f ;; 1/111 tests fail (test file not found)
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.14
+       #:tests? #f ;; 1/111 tests fail (test file not found)
        #:cargo-inputs
        (("rust-base64" ,rust-base64-0.10)
         ("rust-log" ,rust-log-0.4)
@@ -57304,7 +59308,8 @@ native certificate store.")
        (("rust-ring" ,rust-ring-0.16)
         ("rust-untrusted" ,rust-untrusted-0.7)
         ("rust-webpki" ,rust-webpki-0.21)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.20))))))
+        ("rust-webpki-roots" ,rust-webpki-roots-0.20))))
+    (native-inputs (list perl))))
 
 (define-public rust-rustls-pemfile-1
   (package
@@ -57997,7 +60002,7 @@ in pure Rust.")
         ("rust-indexmap" ,rust-indexmap-1.7)
         ("rust-lock-api" ,rust-lock-api-0.4)
         ("rust-log" ,rust-log-0.4)
-        ("rust-oorandom" ,rust-oorandom-11.1)
+        ("rust-oorandom" ,rust-oorandom-11)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-salsa-macros" ,rust-salsa-macros-0.17)
@@ -58549,16 +60554,14 @@ for browser-grade parsing and querying.")
 (define-public rust-scratch-1
   (package
     (name "rust-scratch")
-    (version "1.0.0")
+    (version "1.0.7")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "scratch" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "0sff4rvfalp0ip98pl3xa32n7lhzcr4zqn8fgamaalbb64v4a4by"))))
+         (base32 "0lk160986gamss2rxi746nj747xx7gg8r2hfskrr9fccqc8prkx3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -58854,6 +60857,7 @@ Pwrite traits from the scroll crate.")
      `(#:cargo-inputs
        (("rust-ring" ,rust-ring-0.16)
         ("rust-untrusted" ,rust-untrusted-0.7))))
+    (native-inputs (list perl))
     (home-page "https://github.com/ctz/sct.rs")
     (synopsis "Certificate transparency SCT verification library")
     (description "Certificate transparency SCT verification library.")
@@ -58893,7 +60897,8 @@ Pwrite traits from the scroll crate.")
          (base32
           "1fb9ym5bwswx01yyggn7v2vfryih4vnqpp4r4ssv3qaqpn7xynig"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.14
+       #:cargo-inputs
        (("rust-ring" ,rust-ring-0.14)
         ("rust-untrusted" ,rust-untrusted-0.6))
        #:phases
@@ -59368,7 +61373,8 @@ macOS and iOS.")
         (base32
          "07zv0szz2kfy1hn251h0qsq0q9i1zia768d8vzril1g6xarj7mcj"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t ; MacOS specific
+       #:cargo-inputs
        (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.6)
         ("rust-libc" ,rust-libc-0.2))))))
 
@@ -59391,8 +61397,40 @@ macOS and iOS.")
        (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
         ("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-selectors-0.24
+  (package
+    (name "rust-selectors")
+    (version "0.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "selectors" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05il06smqbhf7p18fawm5fd0pmdkysvmyih455lh17cnh20mfdqc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cssparser" ,rust-cssparser-0.29)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.8)
+        ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
+        ("rust-servo-arc" ,rust-servo-arc-0.2)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-to-shmem" ,rust-to-shmem-0.0.0)
+        ("rust-to-shmem-derive" ,rust-to-shmem-derive-0.0.0))))
+    (home-page "https://github.com/servo/servo")
+    (synopsis "CSS Selectors matching for Rust")
+    (description "This package provides CSS Selectors matching for Rust.")
+    (license license:mpl2.0)))
+
 (define-public rust-selectors-0.23
   (package
+    (inherit rust-selectors-0.24)
     (name "rust-selectors")
     (version "0.23.0")
     (source
@@ -59403,7 +61441,6 @@ macOS and iOS.")
         (sha256
          (base32
           "17w7slv2bkksvbq6pggx3db23vh1g022hxv06smilwmyhv38gspx"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -59415,11 +61452,7 @@ macOS and iOS.")
         ("rust-phf-codegen" ,rust-phf-codegen-0.8)
         ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
         ("rust-servo-arc" ,rust-servo-arc-0.1)
-        ("rust-smallvec" ,rust-smallvec-1))))
-    (home-page "https://github.com/servo/servo")
-    (synopsis "CSS Selectors matching for Rust")
-    (description "This package provides CSS Selectors matching for Rust.")
-    (license license:mpl2.0)))
+        ("rust-smallvec" ,rust-smallvec-1))))))
 
 (define-public rust-selectors-0.22
   (package
@@ -59790,7 +61823,7 @@ fragment of code.")
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-    (version "1.0.171")
+    (version "1.0.188")
     (source
      (origin
        (method url-fetch)
@@ -59798,13 +61831,12 @@ fragment of code.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1a9lvibgi42mhmgafp747mvshsq6ybx6rzcjqh398rfp9wg7vqih"))))
+         "17jlqzfhimsk8w37ifjwnm86nwjzawlbgwmwc7nhwdwslv5hz7ng"))))
     (build-system cargo-build-system)
     (arguments
-     ;; XXX: three test failures, e.g.:
-     ;; error: cannot find derive macro `Deserialize` in this scope
-     `(#:tests? #false
-       #:cargo-inputs
+     `(#:cargo-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1))
+       #:cargo-development-inputs
        (("rust-serde-derive" ,rust-serde-derive-1))))
     (home-page "https://serde.rs")
     (synopsis "Generic serialization/deserialization framework")
@@ -60164,7 +62196,7 @@ TOML/JSON/MessagePack strings and serializable values.")
 (define-public rust-serde-derive-1
   (package
     (name "rust-serde-derive")
-    (version "1.0.171")
+    (version "1.0.188")
     (source
      (origin
        (method url-fetch)
@@ -60172,7 +62204,7 @@ TOML/JSON/MessagePack strings and serializable values.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "10j6s97fk7fgjiqhhrx6a44rqxr7v3w985i3avx4d36i7dh9961q"))))
+         "1wjaclvsfxgqnnnykllvb5gffsxynk66x6h4c1ds6anq8b37mjjf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -60269,14 +62301,14 @@ data.  This crate provides a wrapper that works with any existing Serde
 (define-public rust-serde-json-1
   (package
     (name "rust-serde-json")
-    (version "1.0.102")
+    (version "1.0.107")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-json" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1vfzj76zdn8yh5l08yzr6lf95whic3vrlkh6nq4266s8bncjl1mm"))))
+        (base32 "0r8cyb8nh3afb15yfscp1h8sdjfv6pnnwg14kcp8igfqwgk0qhkb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -60438,28 +62470,53 @@ using nested parameters, similar to those used by @code{qs} for Node, and
 commonly used by Ruby on Rails via Rack.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-regex-1
+  (package
+    (name "rust-serde-regex")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-regex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pxsnxb8c198szghk1hvzvhva36w2q5zs70hqkmdf5d89qd6y4x8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/tailhook/serde-regex")
+    (synopsis "Serde wrapper that (de)serializes regex as strings")
+    (description
+     "This package provides a serde wrapper that (de)serializes regex as strings.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-repr-0.1
   (package
     (name "rust-serde-repr")
-    (version "0.1.10")
+    (version "0.1.16")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde_repr" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0knbzc87nlrfnm1jh3zmx77hxflnzk0xl8xcv7jvn3m2fkxcjpls"))))
+        (base32 "005x2q9x6cdqp312mjhggbzd6vkg8r0abcg0biz0z9dkmpgy29c7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1.0.34)
-        ("rust-quote" ,rust-quote-1.0.10)
-        ("rust-syn" ,rust-syn-1))
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-2))
        #:cargo-development-inputs
        (("rust-rustversion" ,rust-rustversion-1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1.0.73)
-        ("rust-trybuild" ,rust-trybuild-1.0.19))))
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/serde-repr")
     (synopsis "Serialize and deserialize C-like enum as underlying repr")
     (description
@@ -60764,6 +62821,35 @@ for later processing.")
         ("rust-indoc" ,rust-indoc-1)
         ("rust-serde-derive" ,rust-serde-derive-1))))))
 
+(define-public rust-serde-wasm-bindgen-0.3
+  (package
+    (name "rust-serde-wasm-bindgen")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-wasm-bindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1xzh1a3rhapirlca4rbvh6bycphxg5yjmdwjsqij3hl6wpl6b0v1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-js-sys" ,rust-js-sys-0.3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
+       #:cargo-development-inputs
+       (("rust-maplit" ,rust-maplit-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-bytes" ,rust-serde-bytes-0.11)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+    (home-page "https://github.com/cloudflare/serde-wasm-bindgen")
+    (synopsis "Native Serde adapter for wasm-bindgen")
+    (description "Native Serde adapter for wasm-bindgen.")
+    (license license:expat)))
+
 (define-public rust-serdect-0.2
   (package
     (name "rust-serdect")
@@ -60798,8 +62884,66 @@ for later processing.")
 for data that potentially contains secrets (e.g. cryptographic keys).")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-serial-test-2
+  (package
+    (name "rust-serial-test")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0b9v0csv9wxl1gcjq99plwimxbmhgr6kzbwqyb457qh3d22xsmhf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dashmap" ,rust-dashmap-5)
+        ("rust-document-features" ,rust-document-features-0.2)
+        ("rust-fslock" ,rust-fslock-0.2)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-serial-test-derive" ,rust-serial-test-derive-2))
+       #:cargo-development-inputs
+       (("rust-itertools" ,rust-itertools-0.10)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/palfrey/serial_test")
+    (synopsis "Allows for the creation of serialised Rust tests")
+    (description
+     "This package allows for the creation of serialised Rust tests.")
+    (license license:expat)))
+
+(define-public rust-serial-test-1
+  (package
+    (inherit rust-serial-test-2)
+    (name "rust-serial-test")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04864v5ain4nan2k5l32sr3bxpg0sfxxs2iki3xxcq78g9s3132k"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dashmap" ,rust-dashmap-5)
+        ("rust-document-features" ,rust-document-features-0.2)
+        ("rust-fslock" ,rust-fslock-0.2)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-serial-test-derive" ,rust-serial-test-derive-1))
+       #:cargo-development-inputs
+       (("rust-itertools" ,rust-itertools-0.10)
+        ("rust-tokio" ,rust-tokio-1))))))
+
 (define-public rust-serial-test-0.6
   (package
+    (inherit rust-serial-test-1)
     (name "rust-serial-test")
     (version "0.6.0")
     (source
@@ -60810,19 +62954,13 @@ for data that potentially contains secrets (e.g. cryptographic keys).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "05gcah6s133r44y4z5qskx7prs1vjlzgv06h4l2xb8gp30fw9g75"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-document-features" ,rust-document-features-0.2)
         ("rust-fslock" ,rust-fslock-0.2)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
-        ("rust-serial-test-derive" ,rust-serial-test-derive-0.6))))
-    (home-page "https://github.com/palfrey/serial_test")
-    (synopsis "Allows for the creation of serialised Rust tests")
-    (description
-     "This package allows for the creation of serialised Rust tests.")
-    (license license:expat)))
+        ("rust-serial-test-derive" ,rust-serial-test-derive-0.6))))))
 
 (define-public rust-serial-test-0.5
   (package
@@ -60861,8 +62999,54 @@ for data that potentially contains secrets (e.g. cryptographic keys).")
      `(#:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1))))))
 
+(define-public rust-serial-test-derive-2
+  (package
+    (name "rust-serial-test-derive")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial-test-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13zvd5ds76hhjn3z0axc05n15lzpxpz77jcykic8q5knhlbjklci"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.10))))
+    (home-page "https://github.com/palfrey/serial_test")
+    (synopsis "Helper crate for serial_test")
+    (description
+     "This package is an helper crate for @code{rust-serial-test}.")
+    (license license:expat)))
+
+(define-public rust-serial-test-derive-1
+  (package
+    (inherit rust-serial-test-derive-2)
+    (name "rust-serial-test-derive")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serial-test-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0scscldvlz3an9v0spcizaqp5wa2y4w15bk4ink8jpgq2pgq76h7"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.9))))))
+
 (define-public rust-serial-test-derive-0.6
   (package
+    (inherit rust-serial-test-derive-1)
     (name "rust-serial-test-derive")
     (version "0.6.0")
     (source
@@ -60872,7 +63056,6 @@ for data that potentially contains secrets (e.g. cryptographic keys).")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1s6aj2bs0rr8hnralx16bvbqlbrihmii7cyplggk5yv0gp6vr098"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro-error" ,rust-proc-macro-error-1)
@@ -60882,12 +63065,7 @@ for data that potentially contains secrets (e.g. cryptographic keys).")
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
        (("rust-env-logger" ,rust-env-logger-0.7)
-        ("rust-trybuild" ,rust-trybuild-1))))
-    (home-page "https://github.com/palfrey/serial_test")
-    (synopsis "Helper crate for serial_test")
-    (description
-     "This package is an helper crate for @code{rust-serial-test}.")
-    (license license:expat)))
+        ("rust-trybuild" ,rust-trybuild-1))))))
 
 (define-public rust-serial-test-derive-0.5
   (package
@@ -60928,8 +63106,33 @@ for data that potentially contains secrets (e.g. cryptographic keys).")
        (("rust-quote" ,rust-quote-0.6)
         ("rust-syn" ,rust-syn-0.15))))))
 
+(define-public rust-servo-arc-0.2
+  (package
+    (name "rust-servo-arc")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "servo-arc" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0hgp453zvrj7ry501jhxlcph0hc42gc26zyfwn8ys3yziwps8anm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nodrop" ,rust-nodrop-0.1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
+    (home-page "https://github.com/servo/servo")
+    (synopsis "Fork of std::sync::Arc with some extra functionality")
+    (description
+     "This package provides a fork of @code{std::sync::Arc} with some extra
+functionality and without weak references.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-servo-arc-0.1
   (package
+    (inherit rust-servo-arc-0.2)
     (name "rust-servo-arc")
     (version "0.1.1")
     (source
@@ -60941,18 +63144,11 @@ for data that potentially contains secrets (e.g. cryptographic keys).")
         (sha256
          (base32
           "0cjljr9znwahry6p95xvd3p4pmy24wlf6gbfidnmglg002w3i0nr"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-nodrop" ,rust-nodrop-0.1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
-    (home-page "https://github.com/servo/servo")
-    (synopsis "Fork of std::sync::Arc with some extra functionality")
-    (description
-     "This package provides a fork of @code{std::sync::Arc} with some extra
-functionality and without weak references.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))))
 
 (define-public rust-serial-test-derive-0.4
   (package
@@ -61937,8 +64133,45 @@ for additional details.")
         ("rust-syn" ,rust-syn-1)
         ("rust-synstructure" ,rust-synstructure-0.12))))))
 
+(define-public rust-simba-0.8
+  (package
+    (name "rust-simba")
+    (version "0.8.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "simba" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bnf7ainywmaz2z67ss1q0bjwccf80c50c50r6hlpay69z4hf586"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-approx" ,rust-approx-0.5)
+        ("rust-cordic" ,rust-cordic-0.1)
+        ("rust-cuda-std" ,rust-cuda-std-0.2)
+        ("rust-cust-core" ,rust-cust-core-0.1)
+        ("rust-decimal" ,rust-decimal-2)
+        ("rust-fixed" ,rust-fixed-1)
+        ("rust-libm" ,rust-libm-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
+        ("rust-paste" ,rust-paste-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-wide" ,rust-wide-0.7))))
+    (home-page "https://github.com/dimforge/simba")
+    (synopsis "SIMD algebra for Rust")
+    (description "This package provides a set of mathematical traits to
+facilitate the use of SIMD-based @dfn{Array of Struct of Array} (AoSoA) storage
+pattern in Rust.")
+    (license license:asl2.0)))
+
 (define-public rust-simba-0.6
   (package
+    (inherit rust-simba-0.8)
     (name "rust-simba")
     (version "0.6.0")
     (source
@@ -61949,7 +64182,6 @@ for additional details.")
         (sha256
          (base32
           "0px0nncs3ki86pjcldz40mhvraywh7y9jypfcqqdcihs287q9dzh"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-approx" ,rust-approx-0.5)
@@ -61963,13 +64195,7 @@ for additional details.")
         ("rust-paste" ,rust-paste-1)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-serde" ,rust-serde-1)
-        ("rust-wide" ,rust-wide-0.7))))
-    (home-page "https://github.com/dimforge/simba")
-    (synopsis "SIMD algebra for Rust")
-    (description "This package provides a set of mathematical traits to
-facilitate the use of SIMD-based @dfn{Array of Struct of Array} (AoSoA) storage
-pattern in Rust.")
-    (license license:bsd-3)))
+        ("rust-wide" ,rust-wide-0.7))))))
 
 (define-public rust-simba-0.5
   (package
@@ -62140,16 +64366,16 @@ implementation in Rust.")
 (define-public rust-simdutf8-0.1
   (package
     (name "rust-simdutf8")
-    (version "0.1.3")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "simdutf8" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nama0xqzbl8x72fqd8nhgvwjhg2vqj0gkv1la8gm0n6wwbdlw69"))))
+        (base32 "0fi6zvnldaw7g726wnm9vvpv4s89s5jsk7fgp3rg2l99amw64zzj"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments `(#:tests? #f))
     (home-page "https://github.com/rusticstuff/simdutf8")
     (synopsis "SIMD-accelerated UTF-8 validation")
     (description
@@ -62977,16 +65203,14 @@ inline storage.")
 (define-public rust-smallvec-1
   (package
     (name "rust-smallvec")
-    (version "1.10.0")
+    (version "1.11.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "smallvec" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1q2k15fzxgwjpcdv3f323w24rbbfyv711ayz85ila12lg7zbw1x5"))))
+        (base32 "0nmx8aw3v4jglqdcjv4hhn10d6g52c4bhjlzwf952885is04lawl"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -63516,8 +65740,32 @@ It is also flexible enough to build your own test harness like @code{trycmd}.")
 benchmarking.")
     (license license:bsd-3)))
 
+(define-public rust-socket2-0.5
+  (package
+    (name "rust-socket2")
+    (version "0.5.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "socket2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17lqx8w2b3nysrkdbdz8y7fkikz5v77c052q57lxwajmxchfhca0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
+    (home-page "https://github.com/rust-lang/socket2")
+    (synopsis "Networking sockets in Rust")
+    (description
+     "This package provides utilities for handling networking sockets with a
+maximal amount of configuration possible intended.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-socket2-0.4
   (package
+    (inherit rust-socket2-0.5)
     (name "rust-socket2")
     (version "0.4.7")
     (source
@@ -63527,18 +65775,10 @@ benchmarking.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32 "1gaf57dc16s1lfyv388w9vdl9qay15xds78jcwakml9kj3dx5qh2"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-libc" ,rust-libc-0.2)
-             ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/rust-lang/socket2")
-    (synopsis "Networking sockets in Rust")
-    (description
-     "This package provides utilities for handling networking sockets with a
-maximal amount of configuration possible intended.")
-    (license (list license:asl2.0
-                   license:expat))))
+             ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-socket2-0.3
   (package
@@ -63591,42 +65831,32 @@ maximal amount of configuration possible intended.")
 (define-public rust-sourcemap-6
   (package
     (name "rust-sourcemap")
-    (version "6.0.1")
+    (version "6.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "sourcemap" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1sv1rxc6d2rfvd5xrqzqq0i2y0z1q7sqj3wm9krxbggcccj1y0vf"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Enable unstable features
-           (substitute* "src/lib.rs"
-             (("//! This library" all)
-              (string-append "#![feature(inner_deref)]" "\n" all)))
-           #t))))
+        (base32 "145xyp6qaai2gd5p92bkg7yzrm4n5mqx1y111vsnqmywlxfgdjz4"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-base64" ,rust-base64-0.11)
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             "--skip=types::tests::test_adjust_mappings_injection")
+       #:cargo-inputs
+       (("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-debugid" ,rust-debugid-0.8)
         ("rust-if-chain" ,rust-if-chain-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-regex" ,rust-regex-1)
+        ("rust-rustc-version" ,rust-rustc-version-0.2)
         ("rust-scroll" ,rust-scroll-0.10)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-unicode-id" ,rust-unicode-id-0.3)
         ("rust-url" ,rust-url-2))
        #:cargo-development-inputs
-       (("rust-rustc-version" ,rust-rustc-version-0.2))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'enable-unstable-features
-           (lambda _
-             (setenv "RUSTC_BOOTSTRAP" "1")
-             #t)))))
+       (("rust-magic-string" ,rust-magic-string-0.3)
+        ("rust-proptest" ,rust-proptest-1))))
     (home-page "https://github.com/getsentry/rust-sourcemap")
     (synopsis "Basic sourcemap handling for Rust")
     (description "This package provides basic sourcemap handling for Rust.")
@@ -63736,18 +65966,21 @@ maximal amount of configuration possible intended.")
 (define-public rust-spin-0.9
   (package
     (name "rust-spin")
-    (version "0.9.2")
+    (version "0.9.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "spin" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1rch0my17z66fam7hbynvrcs6jk63b08jv4s04mhdksv1jz584ji"))))
+        (base32 "0rvam5r0p3a6qhc18scqpvpgb3ckzyqxpgdfyjnghh8ja7byi039"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-lock-api" ,rust-lock-api-0.4))))
+       (("rust-lock-api" ,rust-lock-api-0.4)
+        ("rust-portable-atomic" ,rust-portable-atomic-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4))))
     (home-page "https://github.com/mvdnes/spin-rs")
     (synopsis "Synchronization primitives based on spinning")
     (description "This crate provides synchronization primitives based on
@@ -64243,7 +66476,7 @@ deeply recursive algorithms that may accidentally blow the stack.")
          "1zr8zy3kzryaggz3k0j4135m3zbd31pyqmja8cyj8yp07mpzn4z1"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-development-inputs
+     `(#:cargo-inputs
        (("rust-version-check" ,rust-version-check-0.9))))
     (home-page "https://github.com/jhpratt/standback")
     (synopsis "New standard library, old compiler")
@@ -65395,7 +67628,11 @@ struct.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1mvfv1l8vp3y402fkl2wcl34hi7gmr4bqha13dfz2xf3kjzwvhhn"))))
+          "1mvfv1l8vp3y402fkl2wcl34hi7gmr4bqha13dfz2xf3kjzwvhhn"))
+        (snippet
+         #~(begin (use-modules (guix build utils))
+                  (substitute* "Cargo.toml"
+                    ((".*lints.*") ""))))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
@@ -66203,14 +68440,14 @@ interface")
 (define-public rust-syn-2
   (package
     (name "rust-syn")
-    (version "2.0.25")
+    (version "2.0.37")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "syn" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1qjswb3cifay6x9l0qjpm9c42ikacpxybr9ny4npw9kl1j6grqqm"))))
+                "1s42ypidkj410dfc4ir7bni0r114k822j395rf342rfd0lnfy0vk"))))
     (build-system cargo-build-system)
     (arguments
      ;; Tests fail to compile
@@ -66941,7 +69178,9 @@ processors, disks, components and networks.")
        (uri (crate-uri "system-deps" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "02g750rlhh7ynqa3p4a3qm7jrkjp3d0jlzrl29z225ch9hf5m951"))))
+        (base32 "02g750rlhh7ynqa3p4a3qm7jrkjp3d0jlzrl29z225ch9hf5m951"))
+       (snippet
+        #~(begin (delete-file "src/tests/lib/libteststatic.a")))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;source is missing some test files
@@ -67972,22 +70211,22 @@ deleting all contents when it's dropped.")
 (define-public rust-tempfile-3
   (package
     (name "rust-tempfile")
-    (version "3.5.0")
+    (version "3.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tempfile" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "163rp254r3x7i5hisagrpxid2166pq94jvk511dpkmc1yf2fryxr"))))
+        (base32 "1vsl2193w3gpx3mwj36fwx3v6q2qyvmzrdn6m8fgfsjkrkrx556b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-fastrand" ,rust-fastrand-2)
         ("rust-redox-syscall" ,rust-redox-syscall-0.3)
-        ("rust-rustix" ,rust-rustix-0.37)
-        ("rust-windows-sys" ,rust-windows-sys-0.45))
+        ("rust-rustix" ,rust-rustix-0.38)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page "https://stebalien.com/projects/tempfile-rs")
@@ -68516,6 +70755,23 @@ bindings are a small wrapper around the raw C functions, which converts integer
 return values to @code{std::io::Result} to indicate success or failure.")
     (license license:expat)))
 
+(define-public rust-termtree-0.4
+  (package
+    (name "rust-termtree")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "termtree" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xkal5l2r3r9p9j90x35qy4npbdwxz4gskvbijs6msymaangas9k"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/rust-cli/termtree")
+    (synopsis "Visualize tree-like data on the command-line")
+    (description "Visualize tree-like data on the command-line.")
+    (license license:expat)))
+
 (define-public rust-test-assembler-0.1
   (package
     (name "rust-test-assembler")
@@ -68606,23 +70862,32 @@ into mod, giving clear and readable test results.")
   (package
     (inherit rust-test-case-2)
     (name "rust-test-case")
-    (version "1.0.0")
+    (version "1.2.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "test-case" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1j33njgyr4cjhil14va909sg8s6ahzpgcmiaigdg7g22ica6950r"))))
+        (base32 "0siwpm8g40g5gcvwcn6g4iq0bdhm6lb3dq6wcspfhhsb814g1rg9"))))
     (arguments
-     `(#:tests? #false               ;XXX: a single test fails, cannot skip it
+     `(#:cargo-test-flags
+       '("--release" "--"
+         ;; Not all files included.
+         "--skip=acceptance::async_tests"
+         "--skip=acceptance::hamcrest_assertions"
+         "--skip=acceptance::basic"
+         "--skip=acceptance::allow_result_check"
+         "--skip=acceptance::return_check")
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1)
         ("rust-version-check" ,rust-version-check-0.9))
        #:cargo-development-inputs
-       (("rust-insta" ,rust-insta-0.12)
+       (("rust-indexmap" ,rust-indexmap-1.7)
+        ("rust-insta" ,rust-insta-0.16)
+        ("rust-itertools" ,rust-itertools-0.10)
         ("rust-lazy-static" ,rust-lazy-static-1))))))
 
 (define-public rust-test-case-core-3
@@ -69994,6 +72259,44 @@ to a style defined by John Gruber for post titles on his website ``Daring
 Fireball''.")
     (license license:expat)))
 
+(define-public rust-to-shmem-0.0.0
+  (package
+    (name "rust-to-shmem")
+    (version "0.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "to-shmem" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "12k69c7zknzmza1mkqpmd86cialbsvazz7zr4hscm0dnfzy2bvmi"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/servo/servo")
+    (synopsis
+     "Trait for cloning data into a shared memory buffer (dummy package)")
+    (description
+     "Trait for cloning data into a shared memory buffer (dummy package).")
+    (license license:mpl2.0)))
+
+(define-public rust-to-shmem-derive-0.0.0
+  (package
+    (name "rust-to-shmem-derive")
+    (version "0.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "to-shmem-derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z4zc81p0i5fpkil2v2jq54nmilasvr0v25q7jbv6w0nrpl5qw2b"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/servo/servo")
+    (synopsis
+     "Trait for cloning data into a shared memory buffer (dummy package)")
+    (description
+     "Trait for cloning data into a shared memory buffer (dummy package).")
+    (license license:mpl2.0)))
+
 (define-public rust-tobj-3
   (package
     (name "rust-tobj")
@@ -70038,31 +72341,45 @@ tinyobjloader.")
 (define-public rust-tokio-1
   (package
     (name "rust-tokio")
-    (version "1.26.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tokio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0r3gnz0zh669q9jm7xh8dz7irbnxjddbbrfflp42jyn2qc0is803"))))
+        (base32 "1yck1349q23l22bgxcbqd3wkaffw2vmkf7z26m3wgmkcxmvn1v8p"))))
     (build-system cargo-build-system)
     (arguments
-     (list #:skip-build? #t
+     (list #:tests? #f  ; unresolved imports `crate::runtime::task`
            #:cargo-inputs
-           `(("rust-autocfg" ,rust-autocfg-1)
+           `(("rust-backtrace" ,rust-backtrace-0.3)
              ("rust-bytes" ,rust-bytes-1)
              ("rust-libc" ,rust-libc-0.2)
-             ("rust-memchr" ,rust-memchr-2)
              ("rust-mio" ,rust-mio-0.8)
              ("rust-num-cpus" ,rust-num-cpus-1)
              ("rust-parking-lot" ,rust-parking-lot-0.12)
              ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
              ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
-             ("rust-socket2" ,rust-socket2-0.4)
-             ("rust-tokio-macros" ,rust-tokio-macros-1)
+             ("rust-socket2" ,rust-socket2-0.5)
+             ("rust-tokio-macros" ,rust-tokio-macros-2)
              ("rust-tracing" ,rust-tracing-0.1)
-             ("rust-windows-sys" ,rust-windows-sys-0.45))))
+             ("rust-windows-sys" ,rust-windows-sys-0.48))
+           #:cargo-development-inputs
+           `(("rust-async-stream" ,rust-async-stream-0.3)
+             ("rust-futures" ,rust-futures-0.3)
+             ("rust-libc" ,rust-libc-0.2)
+             ("rust-loom" ,rust-loom-0.7)
+             ("rust-mio-aio" ,rust-mio-aio-0.7)
+             ("rust-mockall" ,rust-mockall-0.11)
+             ("rust-nix" ,rust-nix-0.26)
+             ("rust-rand" ,rust-rand-0.8)
+             ("rust-socket2" ,rust-socket2-0.5)
+             ("rust-tempfile" ,rust-tempfile-3)
+             ("rust-tokio-stream" ,rust-tokio-stream-0.1)
+             ("rust-tokio-test" ,rust-tokio-test-0.4)
+             ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
+             ("rust-windows-sys" ,rust-windows-sys-0.48))))
     (home-page "https://tokio.rs")
     (synopsis "Event-driven, non-blocking I/O platform")
     (description
@@ -70157,7 +72474,11 @@ writing asynchronous I/O backed applications.")
        (uri (crate-uri "tokio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xhaadfmm6m37f79xv5020gc3np9wqza3bq95ymp522qpfsw02as"))))
+        (base32 "1xhaadfmm6m37f79xv5020gc3np9wqza3bq95ymp522qpfsw02as"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (substitute* "Cargo.toml"
+                   (("features = \\[\"tokio\"\\]") ""))))))
     (arguments
      `(#:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.4)
@@ -70256,7 +72577,11 @@ writing asynchronous I/O backed applications.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0wbgg59mxfvrhzv97y56nh3gmnmw3jj9dhgkmvz27410jjxzpvxf"))))
+         "0wbgg59mxfvrhzv97y56nh3gmnmw3jj9dhgkmvz27410jjxzpvxf"))
+       (snippet
+        #~(begin (use-modules (guix build utils))
+                 (substitute* "Cargo.toml"
+                   (("features = \\[\"tokio\"\\]") ""))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -70489,30 +72814,51 @@ futures efficiently")
 operations.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-tokio-macros-1
+(define-public rust-tokio-macros-2
   (package
     (name "rust-tokio-macros")
-    (version "1.7.0")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tokio-macros" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "1ds34qsfvgf63cjgdx3gr4pl7i76fifyar15ksbillcc8hpzfmxm"))))
+        (base32 "0pk7y9dfanab886iaqwcbri39jkw33kgl7y07v0kg1pp8prdq2v3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-test-flags '("--release" "--lib")
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
+        ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-1))))
     (home-page "https://tokio.rs")
     (synopsis "Tokio's proc macros")
     (description "This package provides Tokio's proc macros.")
     (license license:expat)))
 
+(define-public rust-tokio-macros-1
+  (package
+    (inherit rust-tokio-macros-2)
+    (name "rust-tokio-macros")
+    (version "1.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tokio-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ds34qsfvgf63cjgdx3gr4pl7i76fifyar15ksbillcc8hpzfmxm"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-tokio-macros-0.3
   (package
     (inherit rust-tokio-macros-1)
@@ -71004,7 +73350,8 @@ Rustls.")
           "1jd63sl177sxacnksaxhazzmamwds98xk3niprh2qib75a1rk8cm"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.14
+       #:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-iovec" ,rust-iovec-0.1)
@@ -72143,21 +74490,20 @@ One-Time Password library.")
 (define-public rust-tower-0.4
   (package
     (name "rust-tower")
-    (version "0.4.10")
+    (version "0.4.13")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tower" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "001wx4iiyhmiih9f93szjsfdm5mzlr0n093bhqf178azzw7m03n0"))))
+        (base32 "073wncyqav4sak1p755hf6vl66njgfc1z1g1di9rxx3cvvh9pymq"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-hdrhistogram" ,rust-hdrhistogram-6)
+        ("rust-hdrhistogram" ,rust-hdrhistogram-7)
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-pin-project" ,rust-pin-project-1)
         ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
@@ -72165,10 +74511,21 @@ One-Time Password library.")
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio" ,rust-tokio-1)
         ("rust-tokio-stream" ,rust-tokio-stream-0.1)
-        ("rust-tokio-util" ,rust-tokio-util-0.6)
+        ("rust-tokio-util" ,rust-tokio-util-0.7)
         ("rust-tower-layer" ,rust-tower-layer-0.3)
         ("rust-tower-service" ,rust-tower-service-0.3)
-        ("rust-tracing" ,rust-tracing-0.1))))
+        ("rust-tracing" ,rust-tracing-0.1))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-hdrhistogram" ,rust-hdrhistogram-7)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-stream" ,rust-tokio-stream-0.1)
+        ("rust-tokio-test" ,rust-tokio-test-0.4)
+        ("rust-tower-test" ,rust-tower-test-0.4)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
     (home-page "https://github.com/tower-rs/tower")
     (synopsis "Library for building clients and servers")
     (description
@@ -72179,18 +74536,19 @@ robust clients and servers.")
 (define-public rust-tower-layer-0.3
   (package
     (name "rust-tower-layer")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tower-layer" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0qiskpgz6zzy3a894vyr9yzq0i7q142rciggc3wv1rizdm3cjfrl"))))
+        (base32 "1l7i17k9vlssrdg4s3b0ia5jjkmmxsvv8s9y9ih0jfi8ssz8s362"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-tower-service" ,rust-tower-service-0.3))))
+       (("rust-tower" ,rust-tower-0.4)
+        ("rust-tower-service" ,rust-tower-service-0.3))))
     (home-page "https://github.com/tower-rs/tower")
     (synopsis "Easy composition between @code{Service}s")
     (description "This package decorates a @code{Service} to allow easy
@@ -72200,7 +74558,7 @@ composition between @code{Service}s.")
 (define-public rust-tower-service-0.3
   (package
     (name "rust-tower-service")
-    (version "0.3.0")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
@@ -72208,19 +74566,51 @@ composition between @code{Service}s.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0q4q53w82w1wd71x7vbspg2l3jicb6al2w1qdwxmnjrz8jzvd1z9"))))
+         "0lmfzmmvid2yp2l36mbavhmqgsvzqf7r2wiwz73ml4xmwaf1rg5n"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-http" ,rust-http-0.1))))
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-http" ,rust-http-0.2)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tower-layer" ,rust-tower-layer-0.3))))
     (home-page "https://github.com/tower-rs/tower")
     (synopsis "Asynchronous, request / response based, client or server")
     (description "This package provides a trait representing an asynchronous,
 request/response based, client or server.")
     (license license:expat)))
 
+(define-public rust-tower-test-0.4
+  (package
+    (name "rust-tower-test")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tower-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19zgjwzr9216yg1ayrnsly06lqdv96m2z1xq0bmf9fgazxrnfm54"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-pin-project" ,rust-pin-project-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-test" ,rust-tokio-test-0.4)
+        ("rust-tower-layer" ,rust-tower-layer-0.3)
+        ("rust-tower-service" ,rust-tower-service-0.3))
+       #:cargo-development-inputs
+       (("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/tower-rs/tower")
+    (synopsis "Utilities for writing client and server @code{Service} tests")
+    (description "This package provides utilities for writing client and
+server @code{Service} tests.")
+    (license license:expat)))
+
 (define-public rust-tower-test-0.3
   (package
+    (inherit rust-tower-test-0.4)
     (name "rust-tower-test")
     (version "0.3.0")
     (source
@@ -72231,7 +74621,6 @@ request/response based, client or server.")
        (sha256
         (base32
          "1j2k07g3z8ascq7r30bmw3b75v8lhd63mhfl60y59a74q71bp94v"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-futures-util" ,rust-futures-util-0.3)
@@ -72241,12 +74630,7 @@ request/response based, client or server.")
         ("rust-tower-layer" ,rust-tower-layer-0.3)
         ("rust-tower-service" ,rust-tower-service-0.3))
        #:cargo-development-inputs
-       (("rust-tokio" ,rust-tokio-0.2))))
-    (home-page "https://github.com/tower-rs/tower")
-    (synopsis "Utilities for writing client and server @code{Service} tests")
-    (description "This package provides utilities for writing client and
-server @code{Service} tests.")
-    (license license:expat)))
+       (("rust-tokio" ,rust-tokio-0.2))))))
 
 (define-public rust-tower-util-0.3
   (package
@@ -72911,7 +75295,8 @@ the Trust-DNS client to use DNS over HTTPS.")
         ("rust-webpki-roots" ,rust-webpki-roots-0.19))
        #:cargo-development-inputs
        (("rust-env-logger" ,rust-env-logger-0.7)
-        ("rust-futures" ,rust-futures-0.3))))))
+        ("rust-futures" ,rust-futures-0.3))))
+    (native-inputs (list perl))))
 
 (define-public rust-trust-dns-https-0.18
   (package
@@ -72961,7 +75346,8 @@ the Trust-DNS client to use DNS over HTTPS.")
         (base32 "14ps1fxngm8d3ynp9jf86zrqbyzjzh62v5grwrqb1q0xhbz98vv1"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #false                  ;network unreachable
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.14
+       #:tests? #false                  ;network unreachable
        #:cargo-inputs
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-data-encoding" ,rust-data-encoding-2)
@@ -73700,7 +76086,8 @@ the Trust-DNS client to use rustls for TLS.")
     (inputs
      (list openssl))
     (arguments
-     `(#:cargo-test-flags
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.14
+       #:cargo-test-flags
        '("--release" "--" "--skip=tests::test_tls_client_stream_ipv4")
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
@@ -73873,6 +76260,51 @@ and run them to verify the results, taking inspiration from @code{trybuild} and
         ("rust-snapbox" ,rust-snapbox-0.4)
         ("rust-toml-edit" ,rust-toml-edit-0.14))))))
 
+(define-public rust-tstr-0.2
+  (package
+    (name "rust-tstr")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tstr" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zidpsrn9b4i55cz832myxi2gw3qq6imbd7kxq7yq389f54jd8yc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             "--skip=macros::ts"
+             "--skip=macros::alias")
+       #:cargo-inputs
+       (("rust-tstr-proc-macros" ,rust-tstr-proc-macros-0.2))))
+    (home-page "https://github.com/rodrimati1992/tstr_crates/")
+    (synopsis "Type-level strings")
+    (description "Type-level strings")
+    (license license:zlib)))
+
+(define-public rust-tstr-proc-macros-0.2
+  (package
+    (name "rust-tstr-proc-macros")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tstr-proc-macros" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0yklq0k0s3c4y0k5f0qm13lw7nvz5z97x3yhmyw1if0cdc3250g7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/rodrimati1992/tstr_crates/")
+    (synopsis "Implementation detail of tstr")
+    (description "Implementation detail of tstr.")
+    (license license:zlib)))
+
 (define-public rust-ttf-parser-0.19
   (package
     (name "rust-ttf-parser")
@@ -74898,17 +77330,39 @@ Unicode and Internationalization Crates (UNIC) project.")
 membership for characters in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-unicode-id-0.3
+  (package
+    (name "rust-unicode-id")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-id" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0gq8mvi7cf4a13r9djb6xcf16jm58kic30kv36856s99cgwdxdmi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://github.com/Boshen/unicode-id")
+    (synopsis
+     "Determine whether characters have the ID_Start or ID_Continue properties")
+    (description
+     "Determine whether characters have the ID_Start or ID_Continue properties
+according to Unicode Standard Annex #31.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unicode-ident-1
   (package
     (name "rust-unicode-ident")
-    (version "1.0.8")
+    (version "1.0.12")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "unicode-ident" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1x4v4v95fv9gn5zbpm23sa9awjvmclap1wh1lmikmw9rna3llip5"))))
+                "0jzf1znfpb2gx8nr8mvmyqs1crnv79l57nxnbiszc7xf7ynbjm1k"))))
     (build-system cargo-build-system)
     ;; Most development inputs are competing implementations
     ;; for benchmarks.
@@ -74977,15 +77431,14 @@ described in Unicode Standard Annex #15.")
 (define-public rust-unicode-segmentation-1
   (package
     (name "rust-unicode-segmentation")
-    (version "1.8.0")
+    (version "1.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "unicode-segmentation" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nrqfgxkh00wb5dhl0874z20789i2yjimp6ndgh4ay4yjjd895c8"))))
+        (base32 "0dky2hm5k51xy11hc3nk85p533rvghd462b6i0c532b7hl4j9mhx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -75001,7 +77454,7 @@ boundaries according to Unicode Standard Annex #29 rules.")
 (define-public rust-unicode-width-0.1
   (package
     (name "rust-unicode-width")
-    (version "0.1.10")
+    (version "0.1.11")
     (source
       (origin
         (method url-fetch)
@@ -75009,7 +77462,7 @@ boundaries according to Unicode Standard Annex #29 rules.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "12vc3wv0qwg8rzcgb9bhaf5119dlmd6lmkhbfy1zfls6n7jx3vf0"))))
+          "11ds4ydhg8g7l06rlmh712q41qsrd0j0h00n1jm74kww3kqk65z5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -75230,6 +77683,21 @@ clear display in the output.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-unreachable-0.1
+  (package
+    (inherit rust-unreachable-1)
+    (name "rust-unreachable")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unreachable" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "14gzpm329nrfgjvxf6zh77sp7plxakcnsq8p8xk9474fn7fyaahz"))))
+    (arguments
+     `(#:cargo-inputs (("rust-void" ,rust-void-1))))))
+
 (define-public rust-unsafe-any-0.4
   (package
     (name "rust-unsafe-any")
@@ -75406,7 +77874,7 @@ comparable to calling @code{unwrap_err()}.")
 (define-public rust-url-2
   (package
     (name "rust-url")
-    (version "2.4.0")
+    (version "2.4.1")
     (source
      (origin
        (method url-fetch)
@@ -75415,7 +77883,7 @@ comparable to calling @code{unwrap_err()}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1jw89ack5ldvajpzsvhq9sy12y2xqa2x0cbin62hl80r3s1zggsh"))))
+         "1rbsx1nvz5ardf0x815639z1bxbbgjjjhj0mmnfaqzr5327m6fql"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -75425,8 +77893,7 @@ comparable to calling @code{unwrap_err()}.")
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-bencher" ,rust-bencher-0.1)
-        ("rust-debugger-test" ,rust-debugger-test-0.1)
-        ("rust-debugger-test-parser" ,rust-debugger-test-parser-0.1)
+        ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/servo/rust-url")
     (synopsis "URL library for Rust, based on the WHATWG URL Standard")
@@ -75609,15 +78076,17 @@ Unix users and groups.")
 (define-public rust-utf8-width-0.1
   (package
     (name "rust-utf8-width")
-    (version "0.1.4")
+    (version "0.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "utf8-width" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ylf5mvzck81iszchxyqmhwimkcdqv7jhazvd454g911cchsqwch"))))
+        (base32 "18fbr6bbkfprs0hb2pdz3ckfb6i1gm0j0x7ka3fhvbyd5m2ck42i"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-bencher" ,rust-bencher-0.1))))
     (home-page "https://magiclen.org/utf8-width")
     (synopsis "Determine the width of a UTF-8 character")
     (description
@@ -75985,7 +78454,16 @@ write operations.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc"))))
+          "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc"))
+        (snippet
+         #~(begin (use-modules (guix build utils))
+                  (for-each delete-file-recursively
+                            '("test-data/normalized/installed/arm64-ios"
+                              "test-data/normalized/installed/x64-osx"
+                              "test-data/normalized/installed/x64-windows"
+                              "test-data/normalized/installed/x64-windows-static"
+                              "test-data/normalized/installed/x86-windows"
+                              "test-data/no-status/installed/x64-windows"))))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Tests want mysql, harfbuzz, graphite2.
@@ -76065,6 +78543,36 @@ write operations.")
 has at least 1 element.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-vek-0.15
+  (package
+    (name "rust-vek")
+    (version "0.15.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "vek" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05xxxv4mmm587l4bj0hcclpmk3yz35ggmnhcigy4gg7rc8k8i1c0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-approx" ,rust-approx-0.5)
+        ("rust-az" ,rust-az-1)
+        ("rust-bytemuck" ,rust-bytemuck-1)
+        ("rust-image" ,rust-image-0.23)
+        ("rust-mint" ,rust-mint-0.5)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rustc-version" ,rust-rustc-version-0.4)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/yoanlcq/vek")
+    (synopsis "Generic 2D-3D math swiss army knife for game engines")
+    (description
+     "This package provides a generic 2D-3D math swiss army knife for game
+engines, with SIMD support and focus on convenience.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-vergen-3
   (package
     (name "rust-vergen")
@@ -76249,6 +78757,25 @@ updated when the crate version changes.")
         ("rust-toml" ,rust-toml-0.4)
         ("rust-url" ,rust-url-1))))))
 
+(define-public rust-vlq-0.5
+  (package
+    (name "rust-vlq")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "vlq" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zygijgl47gasi0zx34ak1jq2n4qmk0cx2zpn13shba157npxpb5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-quickcheck" ,rust-quickcheck-0.5))))
+    (home-page "https://github.com/tromey/vlq")
+    (synopsis "Sourcemap-style VLQ encoder and decoder")
+    (description "Sourcemap-style VLQ encoder and decoder.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-void-1
   (package
     (name "rust-void")
@@ -76695,7 +79222,7 @@ result.")
 (define-public rust-wasm-bindgen-0.2
   (package
     (name "rust-wasm-bindgen")
-    (version "0.2.84")
+    (version "0.2.87")
     (source
      (origin
        (method url-fetch)
@@ -76703,12 +79230,12 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0fx5gh0b4n6znfa3blz92wn1k4bbiysyq9m95s7rn3gk46ydry1i"))
+        (base32 "0hm3k42gcnrps2jh339h186scx1radqy1w7v1zwb333dncmaf1kp"))
        (modules '((guix build utils)))
        (snippet
-        '(begin
-           (substitute* "Cargo.toml"
-             (("=0\\.3\\.34") "^0.3.34"))))))
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -76734,7 +79261,7 @@ result.")
 (define-public rust-wasm-bindgen-backend-0.2
   (package
     (name "rust-wasm-bindgen-backend")
-    (version "0.2.84")
+    (version "0.2.87")
     (source
      (origin
        (method url-fetch)
@@ -76742,7 +79269,7 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ffc0wb293ha56i66f830x7f8aa2xql69a21lrasy1ncbgyr1klm"))))
+        (base32 "1gcsh3bjxhw3cirmin45107pcsnn0ymhkxg6bxg65s8hqp9vdwjy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -76762,7 +79289,7 @@ result.")
 (define-public rust-wasm-bindgen-futures-0.4
   (package
     (name "rust-wasm-bindgen-futures")
-    (version "0.4.34")
+    (version "0.4.37")
     (source
      (origin
        (method url-fetch)
@@ -76770,7 +79297,7 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0m0lnnnhs9ni4dn9vz74prsjz8bdcf8dvnznd5ljch5s279f06gj"))))
+        (base32 "00zagjk39g4jjjnvfh35s7w6s0p6sy88i5c7y421z7vga4hvqbf0"))))
     (build-system cargo-build-system)
     (arguments
       `(#:cargo-inputs
@@ -76819,7 +79346,7 @@ result.")
 (define-public rust-wasm-bindgen-macro-0.2
   (package
     (name "rust-wasm-bindgen-macro")
-    (version "0.2.84")
+    (version "0.2.87")
     (source
      (origin
        (method url-fetch)
@@ -76827,7 +79354,7 @@ result.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1idlq28awqhq8rclb22rn5xix82w9a4rgy11vkapzhzd1dygf8ac"))))
+        (base32 "07cg0b6zkcxa1yg1n10h62paid59s9zr8yss214bv8w2b7jrbr6y"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; 'Async blocks are unstable'
@@ -76850,7 +79377,7 @@ dependency.")
 (define-public rust-wasm-bindgen-macro-support-0.2
   (package
     (name "rust-wasm-bindgen-macro-support")
-    (version "0.2.84")
+    (version "0.2.87")
     (source
      (origin
        (method url-fetch)
@@ -76858,7 +79385,7 @@ dependency.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xm56lpi0rihh8ny7x085dgs3jdm47spgqflb98wghyadwq83zra"))))
+        (base32 "0yqc46pr6mlgb9bsnfdnd50qvsqnrz8g5243fnaz0rb7lhc1ns2l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -76877,14 +79404,14 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-shared-0.2
   (package
     (name "rust-wasm-bindgen-shared")
-    (version "0.2.84")
+    (version "0.2.87")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "wasm-bindgen-shared" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0pcvk1c97r1pprzfaxxn359r0wqg5bm33ylbwgjh8f4cwbvzwih0"))))
+         (base32 "18bmjwvfyhvlq49nzw6mgiyx4ys350vps4cmx5gvzckh91dd0sna"))))
     (build-system cargo-build-system)
     (home-page "https://rustwasm.github.io/wasm-bindgen/")
     (synopsis "Shared support between wasm-bindgen and wasm-bindgen cli")
@@ -76896,7 +79423,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-test-0.3
   (package
     (name "rust-wasm-bindgen-test")
-    (version "0.3.34")
+    (version "0.3.37")
     (source
      (origin
        (method url-fetch)
@@ -76904,16 +79431,17 @@ attribute that is not in the shared backend crate.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "02x3agz7jn517fbbvnhncajvanr0w055jhinzf49w87vz706zcvd"))
+        (base32 "0w86d3ykwxfh495c4a98pj3b39wwgpfffy4ys2k86kx9gqm30vkf"))
        (modules '((guix build utils)))
        (snippet
-        '(begin
-           (substitute* "Cargo.toml"
-             (("=0\\.3\\.34") "^0.3.34"))))))
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-console-error-panic-hook" ,rust-console-error-panic-hook-0.1)
+        ("rust-gg-alloc" ,rust-gg-alloc-1)
         ("rust-js-sys" ,rust-js-sys-0.3)
         ("rust-scoped-tls" ,rust-scoped-tls-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
@@ -77001,7 +79529,7 @@ attribute that is not in the shared backend crate.")
 (define-public rust-wasm-bindgen-test-macro-0.3
   (package
     (name "rust-wasm-bindgen-test-macro")
-    (version "0.3.34")
+    (version "0.3.37")
     (source
      (origin
        (method url-fetch)
@@ -77009,12 +79537,15 @@ attribute that is not in the shared backend crate.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1s9vnkrmmq5fiv0j0ifvbs7q5ffgxwbg1r0zcryp3cdkwsd7ad07"))))
+        (base32 "0xd5245xixdhj33nf6xbzg85vrmjv5vhw0hf2gnk0sc3ikfr7fgc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f          ; could not find `wasm_bindgen_test`
+       #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
-        ("rust-quote" ,rust-quote-1))))
+        ("rust-quote" ,rust-quote-1))
+       #:cargo-development-inputs
+       (("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/rustwasm/wasm-bindgen")
     (synopsis "Internal testing macro for wasm-bindgen")
     (description
@@ -77204,7 +79735,7 @@ applications.")
 (define-public rust-web-sys-0.3
   (package
     (name "rust-web-sys")
-    (version "0.3.61")
+    (version "0.3.64")
     (source
      (origin
        (method url-fetch)
@@ -77212,7 +79743,7 @@ applications.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "15qbbdbhyz02srvm01p0cvlh0pvmbbin9hislp0yx8rvnbs9jfz3"))))
+        (base32 "16r4fww3l99kxhb66hka3kxkmhhgzhnqkzdf0ay6l2i2ikpwp1cv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -77338,7 +79869,8 @@ Verification.")
          (base32
           "10nhyxlqsa4caxlxrijm5h79rdg6ld8hqy78ldjnnfhaj3biqzjg"))))
     (arguments
-     `(#:tests? #f  ; tests fail to build "missing file tests/ed25519/ee.der"
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.14
+       #:tests? #f  ; tests fail to build "missing file tests/ed25519/ee.der"
        #:cargo-inputs
        (("rust-ring" ,rust-ring-0.14)
         ("rust-untrusted" ,rust-untrusted-0.6))
@@ -77370,7 +79902,8 @@ Verification.")
         (base32 "0zx1v8afa4ig97dyqfrnlj5i7pib6dnfw88qn2iiqhfq2rrrdmqp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.13
+       #:cargo-inputs
        (("rust-ring" ,rust-ring-0.13)
         ("rust-untrusted" ,rust-untrusted-0.6))
        #:cargo-development-inputs
@@ -77540,7 +80073,8 @@ with webpki.")
          (base32
           "03ny02mwqdgd2ff23k03kbwr2rrcaymxhp7jcjjikfh340hs83y1"))))
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t     ; TODO: Fix building rust-ring-0.14
+       #:cargo-inputs
        (("rust-untrusted" ,rust-untrusted-0.6)
         ("rust-webpki" ,rust-webpki-0.19))))))
 
@@ -79655,19 +82189,18 @@ extended attributes.")
 (define-public rust-xdg-2
   (package
     (name "rust-xdg")
-    (version "2.5.0")
+    (version "2.5.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "xdg" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1vkzfsy3n85qnn1076h9111jg3h7k9r99jqi8nnrq3kmbbdrg1b8"))))
+        (base32 "0im5nzmywxjgm2pmb48k0cc9hkalarz57f1d9d0x4lvb6cj76fr1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-home" ,rust-home-0.5)
-        ("rust-serde" ,rust-serde-1))
+       (("rust-serde" ,rust-serde-1))
        #:phases
        (modify-phases %standard-phases
          (add-before 'check 'pre-check
@@ -80083,16 +82616,17 @@ Read/Write streams as well as low-level in-memory encoding and decoding.")
 (define-public rust-yansi-0.5
   (package
     (name "rust-yansi")
-    (version "0.5.0")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "yansi" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0wdx8syhc61lphmgw5cw1vq73isi4szjqriz1k07z19r3r59ziwz"))))
+        (base32 "1v4qljgzh73knr7291cgwrf56zrvhmpn837n5n5pypzq1kciq109"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:cargo-development-inputs (("rust-serial-test" ,rust-serial-test-0.6))))
     (home-page "https://github.com/SergioBenitez/yansi")
     (synopsis "Simple ANSI terminal color painting library")
     (description
@@ -80142,17 +82676,17 @@ library.")
        #:cargo-development-inputs
        (("rust-num-traits" ,rust-num-traits-0.2))))))
 
-(define-public rust-yeslogic-fontconfig-sys-3
+(define-public rust-yeslogic-fontconfig-sys-4
   (package
     (name "rust-yeslogic-fontconfig-sys")
-    (version "3.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "yeslogic-fontconfig-sys" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "11n3126s717rjqxhf5js3hc0qq8qv7jbicbiyszyp5yk6s8ddfzj"))))
+    (version "4.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "yeslogic-fontconfig-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wsgzlvgknvkjw3m02nvp3x47ccmvfri13mwqzssxgmw5g9pyrgc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -80171,6 +82705,25 @@ library.")
 for locating fonts.")
     (license license:expat)))
 
+(define-public rust-yeslogic-fontconfig-sys-3
+  (package
+    (inherit rust-yeslogic-fontconfig-sys-4)
+    (name "rust-yeslogic-fontconfig-sys")
+    (version "3.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "yeslogic-fontconfig-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11n3126s717rjqxhf5js3hc0qq8qv7jbicbiyszyp5yk6s8ddfzj"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-const-cstr" ,rust-const-cstr-0.3)
+        ("rust-dlib" ,rust-dlib-0.5)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
+
 (define-public rust-yeslogic-fontconfig-sys-2
   (package
     (inherit rust-yeslogic-fontconfig-sys-3)
@@ -80600,7 +83153,7 @@ implementation that works everywhere, even WASM!")
   (package
     (inherit rust-zstd-0.11)
     (name "rust-zstd")
-    (version "0.9.3+zstd.1.5.2")
+    (version "0.9.2+zstd.1.5.1")
     (source
      (origin
        (method url-fetch)
@@ -80609,7 +83162,7 @@ implementation that works everywhere, even WASM!")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "15dsisk3g9ncbxzb6miwav35p2v98az6clh5qdab5jxn05l9qzrp"))
+         "0m5aik2jy2w1g68i4isa0c3gq9a7avq9abgjfjbc6f60yqdym413"))
        (modules '((guix build utils)))
        (snippet
         '(begin (substitute* "Cargo.toml"
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 67ced6ff4b..c7145bcb0c 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2020, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018, 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
@@ -258,22 +258,20 @@ OpenBSD tool of the same name.")
 (define-public rust-minisign
   (package
     (name "rust-minisign")
-    (version "0.5.20")
+    (version "0.7.5")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "minisign" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32
-          "0xmcvh2snravghaar8igc6b9r3s1snnmf9qam9l3zyhm4987767y"))))
+         (base32 "1lmp83bxdg53c4n35fbwr3rkh6178y75fwsn25hf1kn62f2gbdnj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-getrandom" ,rust-getrandom-0.1)
-        ("rust-rpassword" ,rust-rpassword-4)
-        ("rust-scrypt" ,rust-scrypt-0.3))))
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-rpassword" ,rust-rpassword-7)
+        ("rust-scrypt" ,rust-scrypt-0.11))))
     (home-page "https://github.com/jedisct1/rust-minisign")
     (synopsis "Crate to sign files and verify signatures")
     (description
@@ -1554,36 +1552,37 @@ SHA-3, and BLAKE2.")
 (define-public rust-blake3-1
   (package
     (name "rust-blake3")
-    (version "1.0.0")
-    ;; The crate does not include the reference_impl directory.
+    (version "1.5.0")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/BLAKE3-team/BLAKE3")
-             (commit version)))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (crate-uri "blake3" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "09xi7rjyi5hgxyfpias485x5argwqygvfl9sggiw221qjdfxpbdn"))))
+        (base32 "11ysh12zcqq6xkjxh5cbrmnwzalprm3z552i5ff7wm5za9hz0c82"))))
     (build-system cargo-build-system)
     (arguments
      (list
+      #:tests? #f       ; use of undeclared crate or module `reference_impl`
       #:cargo-inputs
       `(("rust-arrayref" ,rust-arrayref-0.3)
         ("rust-arrayvec" ,rust-arrayvec-0.7)
         ("rust-cc" ,rust-cc-1)
         ("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-constant-time-eq" ,rust-constant-time-eq-0.1)
-        ("rust-crypto-mac" ,rust-crypto-mac-0.11)
-        ("rust-digest" ,rust-digest-0.9)
-        ("rust-rayon" ,rust-rayon-1))
+        ("rust-constant-time-eq" ,rust-constant-time-eq-0.3)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-memmap2" ,rust-memmap2-0.7)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-zeroize" ,rust-zeroize-1))
       #:cargo-development-inputs
-      `(("rust-cc" ,rust-cc-1)
-        ("rust-hex" ,rust-hex-0.4)
-        ("rust-page-size" ,rust-page-size-0.4)
+      `(("rust-hex" ,rust-hex-0.4)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-page-size" ,rust-page-size-0.6)
         ("rust-rand" ,rust-rand-0.8)
-        ("rust-rand-chacha" ,rust-rand-chacha-0.3))))
+        ("rust-rand-chacha" ,rust-rand-chacha-0.3)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/BLAKE3-team/BLAKE3")
     (synopsis "BLAKE3 hash function Rust implementation")
     (description "This crate provides the official Rust implementation of the
@@ -1596,16 +1595,14 @@ SHA-3, and BLAKE2.")
 (define-public b3sum
   (package
     (name "b3sum")
-    ;; Version 1 requires Rust >= 1.51.
-    ;; <https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.0.0>
-    (version "0.3.8")
+    (version "1.5.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "b3sum" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "0h3fz16q5lk6mg7r8kjkjrq5hd4injngn5m7pswjbf2pyzjmg4b4"))))
+         (base32 "05k0vn7gpbvjr925vjc5yzvhiyrmkw9pqmch5fr4ir7s8wiaq2fm"))))
     (build-system cargo-build-system)
     (arguments
       `(;; Install the source so that Cargo.toml is installed, because that is
@@ -1625,10 +1622,10 @@ SHA-3, and BLAKE2.")
                 (install-file "README.md" doc)))))
         #:cargo-inputs
         (("rust-anyhow" ,rust-anyhow-1)
-         ("rust-blake3" ,rust-blake3-0.3)
-         ("rust-clap" ,rust-clap-2)
+         ("rust-blake3" ,rust-blake3-1)
+         ("rust-clap" ,rust-clap-4)
          ("rust-hex" ,rust-hex-0.4)
-         ("rust-memmap" ,rust-memmap-0.7)
+         ("rust-memmap2" ,rust-memmap2-0.7)
          ("rust-rayon" ,rust-rayon-1)
          ("rust-wild" ,rust-wild-2))
         #:cargo-development-inputs
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 57519a284b..2ffe8dfef2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3500,7 +3500,7 @@ for dealing with different structured file formats.")
 (define-public librsvg
   (package
     (name "librsvg")
-    (version "2.54.5")
+    (version "2.56.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/librsvg/"
@@ -3508,10 +3508,7 @@ for dealing with different structured file formats.")
                                   "librsvg-" version ".tar.xz"))
               (sha256
                (base32
-                "0vmfgihhf35bxn7giqiskgsflr0zxp6xyy9aynhiyk9j8l7ij0sg"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin (delete-file-recursively "vendor")))))
+                "1xa0cxdvc6vis5ssh1i0vi2rwgcx3bll6k5i135qyd2ra77zv1za"))))
     (build-system cargo-build-system)
     (outputs '("out" "doc" "debug"))
     (arguments
@@ -3522,55 +3519,61 @@ for dealing with different structured file formats.")
         (guix build utils)
         ((guix build gnu-build-system) #:prefix gnu:))
       #:cargo-inputs
-      `(("rust-byteorder" ,rust-byteorder-1)
-        ("rust-cairo-rs" ,rust-cairo-rs-0.15)
+      `(("rust-anyhow" ,rust-anyhow-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.17)
         ("rust-cast" ,rust-cast-0.3)
         ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-cssparser" ,rust-cssparser-0.28)
-        ("rust-data-url" ,rust-data-url-0.1)
-        ("rust-encoding" ,rust-encoding-0.2)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-cssparser" ,rust-cssparser-0.29)
+        ("rust-data-url" ,rust-data-url-0.2)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-float-cmp" ,rust-float-cmp-0.9)
-        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.15)
-        ("rust-gio" ,rust-gio-0.15)
-        ("rust-glib" ,rust-glib-0.15)
+        ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.17)
+        ("rust-gio" ,rust-gio-0.17)
+        ("rust-glib" ,rust-glib-0.17)
         ("rust-itertools" ,rust-itertools-0.10)
         ("rust-language-tags" ,rust-language-tags-0.3)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-locale-config" ,rust-locale-config-0.3)
-        ("rust-markup5ever" ,rust-markup5ever-0.10)
-        ("rust-nalgebra" ,rust-nalgebra-0.29)
+        ("rust-markup5ever" ,rust-markup5ever-0.11)
+        ("rust-nalgebra" ,rust-nalgebra-0.32)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-pango" ,rust-pango-0.15)
-        ("rust-pangocairo" ,rust-pangocairo-0.15)
+        ("rust-pango" ,rust-pango-0.17)
+        ("rust-pangocairo" ,rust-pangocairo-0.17)
         ("rust-rayon" ,rust-rayon-1)
-        ("rust-rctree" ,rust-rctree-0.4)
-        ("rust-rgb" ,rust-rgb-0.8)
+        ("rust-rctree" ,rust-rctree-0.5)
         ("rust-regex" ,rust-regex-1)
-        ("rust-selectors" ,rust-selectors-0.23)
+        ("rust-rgb" ,rust-rgb-0.8)
+        ("rust-selectors" ,rust-selectors-0.24)
         ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-system-deps" ,rust-system-deps-6)
+        ("rust-thiserror" ,rust-thiserror-1)
         ("rust-tinyvec" ,rust-tinyvec-1)
         ("rust-url" ,rust-url-2)
-        ("rust-xml5ever" ,rust-xml5ever-0.16))
+        ("rust-xml5ever" ,rust-xml5ever-0.17))
       #:cargo-development-inputs
       `(("rust-anyhow" ,rust-anyhow-1)
         ("rust-assert-cmd" ,rust-assert-cmd-2)
-        ("rust-cairo-rs" ,rust-cairo-rs-0.15)
+        ("rust-cairo-rs" ,rust-cairo-rs-0.17)
+        ("rust-cast" ,rust-cast-0.3)
         ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-criterion" ,rust-criterion-0.3)
-        ("rust-glib" ,rust-glib-0.15)
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-glib" ,rust-glib-0.17)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-lopdf" ,rust-lopdf-0.26)
+        ("rust-lopdf" ,rust-lopdf-0.29)
         ("rust-matches" ,rust-matches-0.1)
+        ("rust-pango" ,rust-pango-0.17)
+        ("rust-pangocairo" ,rust-pangocairo-0.17)
         ("rust-png" ,rust-png-0.17)
         ("rust-predicates" ,rust-predicates-2)
         ("rust-proptest" ,rust-proptest-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-test-generator" ,rust-test-generator-0.3)
-        ("rust-yeslogic-fontconfig-sys" ,rust-yeslogic-fontconfig-sys-2))
+        ("rust-yeslogic-fontconfig-sys" ,rust-yeslogic-fontconfig-sys-4))
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'patch-gdk-pixbuf-thumbnailer
@@ -3594,12 +3597,9 @@ for dealing with different structured file formats.")
               ;; Increase reftest tolerance a bit to account for different
               ;; harfbuzz, pango, etc.
               (setenv "RSVG_TEST_TOLERANCE" "20")
-              ;; These two tests even fail after loosening the tolerance.
-              (for-each delete-file
-                        '("tests/fixtures/reftests/bugs/730-font-scaling.svg"
-                          "tests/fixtures/reftests/bugs/730-font-scaling-ref.png"
-                          "tests/fixtures/reftests/svg1.1/text-text-03-b.svg"
-                          "tests/fixtures/reftests/svg1.1/text-text-03-b-ref.png"))))
+              ;; This test fails even after loosening the tolerance.
+              (substitute* "tests/src/reference.rs"
+                ((".*svg1_1_text_align_03_b_svg.*") ""))))
           (add-before 'configure 'pre-configure
             (lambda* (#:key outputs #:allow-other-keys)
               (substitute* "gdk-pixbuf-loader/Makefile.in"
diff --git a/gnu/packages/patches/rust-1.70-fix-rustix-build.patch b/gnu/packages/patches/rust-1.70-fix-rustix-build.patch
new file mode 100644
index 0000000000..d72a8fb07a
--- /dev/null
+++ b/gnu/packages/patches/rust-1.70-fix-rustix-build.patch
@@ -0,0 +1,21 @@
+@@ -0,0 +1,20 @@
+--- a/vendor/fd-lock/Cargo.toml        2023-05-31 14:44:48.000000000 -0700
++++ b/vendor/fd-lock/Cargo.toml        2023-07-14 21:19:34.637702319 -0700
+@@ -45,7 +45,7 @@
+
+ [target."cfg(unix)".dependencies.rustix]
+ version = "0.37.0"
+-features = ["fs"]
++features = ["fs", "cc"]
+
+ [target."cfg(windows)".dependencies.windows-sys]
+ version = "0.45.0"
+--- a/src/bootstrap/Cargo.lock 2023-07-11 20:32:40.000000000 -0700
++++ b/src/bootstrap/Cargo.lock 2023-07-14 22:41:53.269284713 -0700
+@@ -618,6 +618,7 @@
+ dependencies = [
+  "bitflags",
++ "cc",
+  "errno",
+  "io-lifetimes",
+  "libc",
diff --git a/gnu/packages/patches/rust-openssl-sys-no-vendor.patch b/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
deleted file mode 100644
index 5872d4cf22..0000000000
--- a/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- openssl-sys-0.9.84/Cargo.toml.orig	2023-04-03 09:10:11.979197979 -0400
-+++ openssl-sys-0.9.84/Cargo.toml	2023-04-03 12:07:30.285315609 -0400
-@@ -31,10 +31,6 @@
- [package.metadata.pkg-config]
- openssl = "1.0.1"
- 
--[dependencies.bssl-sys]
--version = "0.1.0"
--optional = true
--
- [dependencies.libc]
- version = "0.2"
- 
-@@ -46,16 +42,12 @@
- [build-dependencies.cc]
- version = "1.0"
- 
--[build-dependencies.openssl-src]
--version = "111"
--optional = true
--
- [build-dependencies.pkg-config]
- version = "0.3.9"
- 
- [features]
--unstable_boringssl = ["bssl-sys"]
--vendored = ["openssl-src"]
-+unstable_boringssl = []
-+vendored = []
- 
- [target."cfg(target_env = \"msvc\")".build-dependencies.vcpkg]
- version = "0.2.8"
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 79c323663a..b787d6207f 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -486,15 +486,16 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography-vectors
   (package
     (name "python-cryptography-vectors")
-    (version "40.0.2")
+    (version "41.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography_vectors" version))
        (sha256
         (base32
-         "16hcprw919f2rl3jipsy2996bnsz170inway3lishqi30xwqf6x8"))))
-    (build-system python-build-system)
+         "17m1azxfc3w0390jp9mkx1v0k3xfv4v1lrgch4hvbbm77s0z42j4"))))
+    (build-system pyproject-build-system)
+    (arguments (list #:tests? #f))  ; No tests included.
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
     (description
@@ -505,14 +506,14 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography
   (package
     (name "python-cryptography")
-    (version "40.0.2")
+    (version "41.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography" version))
        (sha256
         (base32
-         "16awbsm13vdksm98dybwvmpy2y1l636bq7g0s93scksrp0r0sg63"))))
+         "06pm952pr6f31pzwh5fb68zryqyss0hg9cbggxm15z15844w7svz"))))
     (build-system pyproject-build-system)
     (arguments
      (list
@@ -567,6 +568,9 @@ ciphers, message digests and key derivation functions.")
                   (guix build utils)
                   (srfi srfi-1)
                   (ice-9 match))
+      #:install-source? #f
+      ;; As seen in noxfile.py
+      #:cargo-test-flags ''("--release" "--no-default-features")
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'chdir
@@ -584,26 +588,21 @@ ciphers, message digests and key derivation functions.")
               (apply (assoc-ref %standard-phases 'configure)
                      (append args
                              (list #:inputs (alist-delete "source" inputs))))))
-          (replace 'check
-            (lambda* (#:key tests? #:allow-other-keys)
-              (when tests?
-                ;; As seen in tox.ini
-                (invoke "cargo" "test" "--no-default-features"))))
           (add-after 'install 'install-shared-library
             (lambda _
               (install-file "target/release/libcryptography_rust.so"
                             (string-append #$output "/lib")))))
       #:cargo-inputs
-      `(("rust-asn1-0.13" ,rust-asn1-0.13)
+      `(("rust-asn1" ,rust-asn1-0.15)
         ("rust-cc" ,rust-cc-1)
-        ("rust-chrono-0.4" ,rust-chrono-0.4)
-        ("rust-foreign-types-shared-0.1" ,rust-foreign-types-shared-0.1)
-        ("rust-once-cell-1" ,rust-once-cell-1)
-        ("rust-openssl-0.10" ,rust-openssl-0.10)
-        ("rust-openssl-sys-0.9" ,rust-openssl-sys-0.9)
-        ("rust-ouroboros-0.15" ,rust-ouroboros-0.15)
-        ("rust-pem-1" ,rust-pem-1)
-        ("rust-pyo3-0.15" ,rust-pyo3-0.15))))
+        ("rust-foreign-types" ,rust-foreign-types-0.3)
+        ("rust-foreign-types-shared" ,rust-foreign-types-shared-0.1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+        ("rust-ouroboros" ,rust-ouroboros-0.15)
+        ("rust-pem" ,rust-pem-1)
+        ("rust-pyo3" ,rust-pyo3-0.18))))
     (native-inputs (list pkg-config python python-cffi))
     ;; XXX: Adding rust-openssl-sys-0.9 is needed because #:cargo-inputs
     ;; doesn't honor propagated-inputs.
@@ -614,14 +613,14 @@ ciphers, message digests and key derivation functions.")
 (define-public python-pyopenssl
   (package
     (name "python-pyopenssl")
-    (version "23.1.1")
+    (version "23.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyOpenSSL" version))
        (sha256
         (base32
-         "1dxhip610zw1j2bz35g1w1h7vh374g0bnzn4nsqj65n6pswrh544"))))
+         "1b4bkcpzhmablf592g21rq3l8apbhklp6wcwlvgfflm4algr6vr7"))))
     (build-system python-build-system)
     (arguments
      (list
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0aac9a7228..29ac11df95 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -246,6 +246,7 @@
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages regex)
+  #:use-module (gnu packages rust-apps)
   #:use-module (gnu packages scanner)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages search)
@@ -3056,13 +3057,13 @@ help formatter.")
 (define-public python-orjson
   (package
     (name "python-orjson")
-    (version "3.8.8")
+    (version "3.9.7")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "orjson" version))
               (sha256
                (base32
-                "1nn617pzn8smjkf7j593ybq16qfnj53bla52qjwzzrms4fjxg5n0"))))
+                "0hh1j7akxgx1nvsnwx1p4f4h4pkgr7v9aqr99l2pwbwfyyc93qw5"))))
     (build-system cargo-build-system)
     (arguments
      (list
@@ -3073,47 +3074,10 @@ help formatter.")
                   (guix build utils))
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'install 'prepare-python-module
-            (lambda _
-              ;; We don't use maturin.
-              (delete-file "pyproject.toml")
-              (call-with-output-file "pyproject.toml"
-                (lambda (port)
-                  (format port "\
-[build-system]
-build-backend = 'setuptools.build_meta'
-requires = ['setuptools']
-")))
-              (call-with-output-file "setup.cfg"
-                (lambda (port)
-                  (format port "\
-[metadata]
-name = orjson
-version = ~a
-
-[options]
-packages = find:
-
-[options.packages.find]
-exclude =
-  src
-  integration
-  test
-  Cargo.toml
-" #$version)))))
           (add-after 'prepare-python-module 'build-python-module
             (assoc-ref py:%standard-phases 'build))
           (add-after 'build-python-module 'install-python-module
-            (assoc-ref py:%standard-phases 'install))
-          (add-after 'install-python-module 'install-python-library
-            (lambda _
-              (let ((site (string-append #$output "/lib/python"
-                                         #$(version-major+minor
-                                            (package-version python))
-                                         "/site-packages")))
-                (mkdir-p site)
-                (copy-file "target/release/liborjson.so"
-                           (string-append site "/orjson.so"))))))
+            (assoc-ref py:%standard-phases 'install)))
       #:cargo-inputs
       `(("rust-ahash" ,rust-ahash-0.8)
         ("rust-arrayvec" ,rust-arrayvec-0.7)
@@ -3126,17 +3090,20 @@ exclude =
         ("rust-itoa" ,rust-itoa-1)
         ("rust-itoap" ,rust-itoap-1)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-pyo3-ffi" ,rust-pyo3-ffi-0.18)
+        ("rust-pyo3-ffi" ,rust-pyo3-ffi-0.19)
         ("rust-ryu" ,rust-ryu-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-simdutf8" ,rust-simdutf8-0.1)
-        ("rust-smallvec" ,rust-smallvec-1))
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.19)
+        ("rust-version-check" ,rust-version-check-0.9))
       #:install-source? #false))
+    (inputs
+     (list maturin))
     (native-inputs
-     (list python-wrapper
-           python-pypa-build
-           python-wheel))
+     (list python-wrapper))
     (home-page "https://github.com/ijl/orjson")
     (synopsis "Python JSON library supporting dataclasses, datetimes, and numpy")
     (description "Orjson is a fast, correct JSON library for Python.  It
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index ee86907e95..d1a5da66d9 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1084,7 +1084,7 @@ touchscreen devices.")
 (define-public rust-swc
   (package
     (name "rust-swc")
-    (version "1.2.24")
+    (version "1.2.124")
     (source
      (origin
        (method git-fetch)
@@ -1094,81 +1094,125 @@ touchscreen devices.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1w9al035x0gmard80vqvah8sy8szs6bnd1ynnyssiiylzg7vhyyv"))))
+         "1cb65vl437sy7shflsazi2k4sz53v3r85dj8rb32ny1j6njczj4h"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* (find-files "." "^Cargo\\.toml$")
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-ansi-term" ,rust-ansi-term-0.12)
-        ("rust-base64" ,rust-base64-0.12)
+     `(#:install-source? #f
+       #:cargo-build-flags
+       '("--release" "-p" "swc_cli")
+       #:cargo-test-flags
+       '("--release" "-p" "swc_cli")
+       #:cargo-inputs
+       (("rust-abi-stable" ,rust-abi-stable-0.10)
+        ("rust-ahash" ,rust-ahash-0.7)
+        ("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-arrayvec" ,rust-arrayvec-0.5)
+        ("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-auto-impl" ,rust-auto-impl-0.5)
+        ("rust-auto-impl" ,rust-auto-impl-0.4)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-bincode" ,rust-bincode-1)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-browserslist-rs" ,rust-browserslist-rs-0.6)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-console-error-panic-hook" ,rust-console-error-panic-hook-0.1)
+        ("rust-copyless" ,rust-copyless-0.1)
         ("rust-crc" ,rust-crc-1)
         ("rust-darling" ,rust-darling-0.10)
-        ("rust-dashmap" ,rust-dashmap-3)
+        ("rust-dashmap" ,rust-dashmap-4)
+        ("rust-debug-unreachable" ,rust-debug-unreachable-0.1)
+        ("rust-difference" ,rust-difference-2)
         ("rust-either" ,rust-either-1)
-        ("rust-fxhash" ,rust-fxhash-0.2)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-inflector" ,rust-inflector-0.11)
         ("rust-is-macro" ,rust-is-macro-0.1)
-        ("rust-jemallocator" ,rust-jemallocator-0.3)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-mimalloc" ,rust-mimalloc-0.1)
-        ("rust-napi" ,rust-napi-0.5)
-        ("rust-napi-build" ,rust-napi-build-0.2)
-        ("rust-napi-derive" ,rust-napi-derive-0.5)
+        ("rust-lexical" ,rust-lexical-5)
+        ("rust-libloading" ,rust-libloading-0.7)
+        ("rust-lru" ,rust-lru-0.7)
+        ("rust-mimalloc-rust" ,rust-mimalloc-rust-0.1)
+        ("rust-napi" ,rust-napi-2)
+        ("rust-napi-build" ,rust-napi-build-1)
+        ("rust-napi-derive" ,rust-napi-derive-2)
         ("rust-nom" ,rust-nom-5)
+        ("rust-normpath" ,rust-normpath-0.2)
+        ("rust-num-bigint" ,rust-num-bigint-0.2)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-ordered-float" ,rust-ordered-float-1)
+        ("rust-ordered-float" ,rust-ordered-float-2)
+        ("rust-owning-ref" ,rust-owning-ref-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-parking-lot" ,rust-parking-lot-0.7)
+        ("rust-parking-lot-core" ,rust-parking-lot-core-0.8)
         ("rust-path-clean" ,rust-path-clean-0.1)
+        ("rust-paw" ,rust-paw-1)
         ("rust-petgraph" ,rust-petgraph-0.5)
         ("rust-phf" ,rust-phf-0.8)
+        ("rust-pmutil" ,rust-pmutil-0.5)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-rayon" ,rust-rayon-1)
         ("rust-radix-fmt" ,rust-radix-fmt-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-relative-path" ,rust-relative-path-1)
         ("rust-retain-mut" ,rust-retain-mut-0.1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-scoped-tls" ,rust-scoped-tls-1)
+        ("rust-semver" ,rust-semver-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-regex" ,rust-serde-regex-1)
+        ("rust-sha-1" ,rust-sha-1-0.9)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-sourcemap" ,rust-sourcemap-6)
         ("rust-st-map" ,rust-st-map-0.1)
         ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5)
+        ("rust-structopt" ,rust-structopt-0.3)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
+        ("rust-typed-arena" ,rust-typed-arena-2)
         ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4))
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-wasm-bindgen-futures" ,rust-wasm-bindgen-futures-0.4)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-unicode-xid" ,rust-unicode-xid-0.2)
+        ("rust-url" ,rust-url-2))
        #:cargo-development-inputs
-       (("rust-anyhow" ,rust-anyhow-1)
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-dashmap" ,rust-dashmap-4)
         ("rust-env-logger" ,rust-env-logger-0.7)
-        ("rust-num-bigint" ,rust-num-bigint-0.2)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-ntest" ,rust-ntest-0.7)
+        ("rust-path-clean" ,rust-path-clean-0.1)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
         ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
-        ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.3)
+        ("rust-reqwest" ,rust-reqwest-0.11)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha-1" ,rust-sha-1-0.9)
         ("rust-sourcemap" ,rust-sourcemap-6)
-        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5)
-        ("rust-tempfile" ,rust-tempfile-3))
-       #:tests? #f ;; tests env_query_chrome_71 and project_env fail
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-url" ,rust-url-2)
+        ("rust-walkdir" ,rust-walkdir-2))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'enable-unstable-features
-           (lambda _
-             (setenv "RUSTC_BOOTSTRAP" "1")
-             (substitute* "ecmascript/jsdoc/src/lib.rs"
-               (("pub use self" all)
-                (string-append "#![feature(non_exhaustive)]\n" all)))
-             (substitute* "ecmascript/parser/src/lib.rs"
-               (("//! es2019" all)
-                (string-append "#![feature(non_exhaustive)]
-#![feature(mem_take)]
-#![feature(proc_macro_hygiene)]
-" all)))
-             (substitute* "ecmascript/transforms/src/lib.rs"
-               (("#!\\[cfg_attr" all)
-                (string-append "#![feature(mem_take)]\n" all)))
-             #t))
-         (add-after 'enable-unstable-features 'patch-build-failures
-           (lambda _
-             (chmod ".cargo/config" 420)
-             (substitute* "ecmascript/transforms/macros/src/lib.rs"
-               (("use proc_macro::")
-                "extern crate proc_macro;\nuse proc_macro::"))
-             (substitute* "common/src/errors/emitter.rs"
-               (("        #\\[cfg\\(feature = \"tty-emitter\"\\)\\]\n") ""))
-             #t)))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "target/release/swc" bin)))))))
     (home-page "https://swc.rs/")
     (synopsis "Typescript/javascript compiler")
     (description "@code{rust-swc} is a typescript/javascript compiler.  It
@@ -1911,7 +1955,7 @@ background agent taking care of maintaining the necessary state.")
        (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-derive-arbitrary" ,rust-derive-arbitrary-1)
         ("rust-expect-test" ,rust-expect-test-1)
-        ("rust-oorandom" ,rust-oorandom-11.1)
+        ("rust-oorandom" ,rust-oorandom-11)
         ("rust-quote" ,rust-quote-1.0.10)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-tracing" ,rust-tracing-0.1)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 38db41549a..5d81655423 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2022 Jim Newsome <jnewsome@torproject.org>
 ;;; Copyright © 2022 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2023 Fries <fries1234@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -706,6 +707,92 @@ safety and thread safety guarantees.")
   (rust-bootstrapped-package
    rust-1.67 "1.68.2" "15ifyd5jj8rd979dkakp887hgmhndr68pqaqvd2hqkfdywirqcwk"))
 
+(define rust-1.69
+  (let ((base-rust
+          (rust-bootstrapped-package
+            rust-1.68 "1.69.0"
+            "03zn7kx5bi5mdfsqfccj4h8gd6abm7spj0kjsfxwlv5dcwc9f1gv")))
+    (package
+      (inherit base-rust)
+      (source
+        (origin
+          (inherit (package-source base-rust))
+          (snippet
+           '(begin
+              (for-each delete-file-recursively
+                        '("src/llvm-project"
+                          "vendor/tikv-jemalloc-sys/jemalloc"))
+              ;; Also remove the bundled (mostly Windows) libraries.
+              (for-each delete-file
+                        (find-files "vendor" "\\.(a|dll|exe|lib)$")))))))))
+
+(define rust-1.70
+  (let ((base-rust
+         (rust-bootstrapped-package
+          rust-1.69 "1.70.0"
+                      "0z6j7d0ni0rmfznv0w3mrf882m11kyh51g2bxkj40l3s1c0axgxj")))
+   (package
+     (inherit base-rust)
+     (source
+      (origin
+        (inherit (package-source base-rust))
+        ;; Rust 1.70 adds the rustix library which depends on the vendored
+        ;; fd-lock crate.  The fd-lock crate uses Outline assembly which expects
+        ;; a precompiled static library.  Enabling the "cc" feature tells the
+        ;; build.rs script to compile the assembly files instead of searching
+        ;; for a precompiled library.
+        (patches (search-patches "rust-1.70-fix-rustix-build.patch")))))))
+
+(define rust-1.71
+  (let ((base-rust
+          (rust-bootstrapped-package
+           rust-1.70 "1.71.1" "0bj79syjap1kgpg9pc0r4jxc0zkxwm6phjf3digsfafms580vabg")))
+    (package
+      (inherit base-rust)
+      (arguments
+       (substitute-keyword-arguments (package-arguments base-rust)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (replace 'patch-cargo-checksums
+               (lambda _
+                 (substitute* (cons* "Cargo.lock"
+                                     "src/bootstrap/Cargo.lock"
+                                     (find-files "src/tools" "Cargo.lock"))
+                   (("(checksum = )\".*\"" all name)
+                    (string-append name "\"" ,%cargo-reference-hash "\"")))
+                 (generate-all-checksums "vendor"))))))))))
+
+(define rust-1.72
+  (let ((base-rust
+          (rust-bootstrapped-package
+           rust-1.71 "1.72.1" "15gqd1jzhnc16a7gjmav4x1v83jjbzyjh1gvcdfvpkajd9gq8j3z")))
+    (package
+      (inherit base-rust)
+      (source
+        (origin
+          (inherit (package-source base-rust))
+          (snippet
+           '(begin
+              (for-each delete-file-recursively
+                        '("src/llvm-project"
+                          "vendor/tikv-jemalloc-sys/jemalloc"))
+              ;; Remove vendored dynamically linked libraries.
+              ;; find . -not -type d -executable -exec file {} \+ | grep ELF
+              ;; Also remove the bundled (mostly Windows) libraries.
+              (for-each delete-file
+                        (find-files "vendor" "\\.(a|dll|exe|lib)$"))
+              ;; Adjust rustc_driver to explicitly use rustix with libc backend.
+              (substitute* "compiler/rustc_driver/Cargo.toml"
+                (("rustix = \"=0.37.11\"")
+                 (string-append "rustix = { version = \"=0.37.11\","
+                                " features = [\"use-libc\"] }"))))))))))
+
+(define (make-ignore-test-list strs)
+  "Function to make creating a list to ignore tests a bit easier."
+  (map (lambda (str)
+    `((,str) (string-append "#[ignore]\n" ,str)))
+    strs))
+
 ;;; Note: Only the latest version of Rust is supported and tested.  The
 ;;; intermediate rusts are built for bootstrapping purposes and should not
 ;;; be relied upon.  This is to ease maintenance and reduce the time
@@ -714,10 +801,10 @@ safety and thread safety guarantees.")
 ;;; Here we take the latest included Rust, make it public, and re-enable tests
 ;;; and extra components such as rustfmt.
 (define-public rust
-  (let ((base-rust rust-1.68))
+  (let ((base-rust rust-1.70))
     (package
       (inherit base-rust)
-      (outputs (cons "rustfmt" (package-outputs base-rust)))
+      (outputs (cons* "rust-src" "tools" (package-outputs base-rust)))
       (arguments
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:tests? _ #f)
@@ -738,52 +825,36 @@ safety and thread safety guarantees.")
                  (substitute* "src/tools/compiletest/src/runtest.rs"
                    (("\"-nx\".as_ref\\(\\), ")
                     ""))))
-             (add-after 'unpack 'patch-cargo-env-shebang
-               (lambda _
-                 (substitute* '("src/tools/cargo/tests/testsuite/build.rs"
-                                "src/tools/cargo/tests/testsuite/fix.rs")
-                   ;; The cargo *_wrapper tests set RUSTC.*WRAPPER environment
-                   ;; variable which points to /usr/bin/env.  Since it's not a
-                   ;; shebang, it needs to be manually patched.
-                   (("/usr/bin/env")
-                    (which "env")))))
              (add-after 'unpack 'disable-tests-requiring-git
                (lambda _
-                 (substitute* "src/tools/cargo/tests/testsuite/new.rs"
-                   (("fn author_prefers_cargo")
-                    "#[ignore]\nfn author_prefers_cargo")
-                   (("fn finds_author_git")
-                    "#[ignore]\nfn finds_author_git")
-                   (("fn finds_local_author_git")
-                    "#[ignore]\nfn finds_local_author_git"))))
+                 (substitute* "src/tools/cargo/tests/testsuite/git.rs"
+                   ,@(make-ignore-test-list
+                      '("fn fetch_downloads_with_git2_first_")))))
              (add-after 'unpack 'disable-tests-requiring-mercurial
                (lambda _
-                 (substitute*
-                   "src/tools/cargo/tests/testsuite/init/simple_hg_ignore_exists/mod.rs"
-                   (("fn simple_hg_ignore_exists")
-                    "#[ignore]\nfn simple_hg_ignore_exists"))
-                 (substitute*
-                   "src/tools/cargo/tests/testsuite/init/mercurial_autodetect/mod.rs"
-                   (("fn mercurial_autodetect")
-                    "#[ignore]\nfn mercurial_autodetect"))))
+                 (with-directory-excursion "src/tools/cargo/tests/testsuite/init"
+                   (substitute* '("mercurial_autodetect/mod.rs"
+                                  "simple_hg_ignore_exists/mod.rs")
+                     ,@(make-ignore-test-list
+                        '("fn case"))))))
              (add-after 'unpack 'disable-tests-broken-on-aarch64
                (lambda _
                  (with-directory-excursion "src/tools/cargo/tests/testsuite/"
                    (substitute* "build_script_extra_link_arg.rs"
-                     (("^fn build_script_extra_link_arg_bin_single" m)
-                      (string-append "#[ignore]\n" m)))
+                     ,@(make-ignore-test-list
+                        '("fn build_script_extra_link_arg_bin_single")))
                    (substitute* "build_script.rs"
-                     (("^fn env_test" m)
-                      (string-append "#[ignore]\n" m)))
+                     ,@(make-ignore-test-list
+                        '("fn env_test")))
                    (substitute* "collisions.rs"
-                     (("^fn collision_doc_profile_split" m)
-                      (string-append "#[ignore]\n" m)))
+                     ,@(make-ignore-test-list
+                        '("fn collision_doc_profile_split")))
                    (substitute* "concurrent.rs"
-                     (("^fn no_deadlock_with_git_dependencies" m)
-                      (string-append "#[ignore]\n" m)))
+                     ,@(make-ignore-test-list
+                        '("fn no_deadlock_with_git_dependencies")))
                    (substitute* "features2.rs"
-                     (("^fn dep_with_optional_host_deps_activated" m)
-                      (string-append "#[ignore]\n" m))))))
+                     ,@(make-ignore-test-list
+                        '("fn dep_with_optional_host_deps_activated"))))))
              (add-after 'unpack 'patch-command-exec-tests
                ;; This test suite includes some tests that the stdlib's
                ;; `Command` execution properly handles in situations where
@@ -791,16 +862,14 @@ safety and thread safety guarantees.")
                ;; since we don't have `echo` available at its usual FHS
                ;; location.
                (lambda _
-                 (substitute* (match (find-files "." "^command-exec.rs$")
-                                ((file) file))
+                 (substitute* "tests/ui/command/command-exec.rs"
                    (("Command::new\\(\"echo\"\\)")
                     (format #f "Command::new(~s)" (which "echo"))))))
              (add-after 'unpack 'patch-command-uid-gid-test
                (lambda _
-                 (substitute* (match (find-files "." "^command-uid-gid.rs$")
-                                ((file) file))
-                   (("/bin/sh")
-                    (which "sh")))))
+                 (substitute* "tests/ui/command/command-uid-gid.rs"
+                   (("/bin/sh") (which "sh"))
+                   (("/bin/ls") (which "ls")))))
              (add-after 'unpack 'skip-shebang-tests
                ;; This test make sure that the parser behaves properly when a
                ;; source file starts with a shebang. Unfortunately, the
@@ -812,26 +881,29 @@ safety and thread safety guarantees.")
              (add-after 'unpack 'patch-process-tests
                (lambda* (#:key inputs #:allow-other-keys)
                  (let ((bash (assoc-ref inputs "bash")))
-                   (substitute* "library/std/src/process/tests.rs"
-                     (("\"/bin/sh\"")
-                      (string-append "\"" bash "/bin/sh\"")))
-                   ;; The three tests which are known to fail upstream on QEMU
-                   ;; emulation on aarch64 and riscv64 also fail on x86_64 in Guix's
-                   ;; build system. Skip them on all builds.
-                   (substitute* "library/std/src/sys/unix/process/process_common/tests.rs"
-                     (("target_arch = \"arm\",") "target_os = \"linux\",")))))
+                   (with-directory-excursion "library/std/src"
+                     (substitute* "process/tests.rs"
+                       (("\"/bin/sh\"")
+                        (string-append "\"" bash "/bin/sh\"")))
+                     ;; The three tests which are known to fail upstream on QEMU
+                     ;; emulation on aarch64 and riscv64 also fail on x86_64 in
+                     ;; Guix's build system.  Skip them on all builds.
+                     (substitute* "sys/unix/process/process_common/tests.rs"
+                       ;; We can't use make-ignore-test-list because we will get
+                       ;; build errors due to the double [ignore] block.
+                       (("target_arch = \"arm\"" arm)
+                        (string-append "target_os = \"linux\",\n"
+                                       "        " arm)))))))
              (add-after 'unpack 'disable-interrupt-tests
                (lambda _
                  ;; This test hangs in the build container; disable it.
-                 (substitute* (match (find-files "." "^freshness.rs$")
-                                ((file) file))
-                   (("fn linking_interrupted")
-                    "#[ignore]\nfn linking_interrupted"))
+                 (substitute* "src/tools/cargo/tests/testsuite/freshness.rs"
+                   ,@(make-ignore-test-list
+                      '("fn linking_interrupted")))
                  ;; Likewise for the ctrl_c_kills_everyone test.
-                 (substitute* (match (find-files "." "^death.rs$")
-                                ((file) file))
-                   (("fn ctrl_c_kills_everyone")
-                    "#[ignore]\nfn ctrl_c_kills_everyone"))))
+                 (substitute* "src/tools/cargo/tests/testsuite/death.rs"
+                   ,@(make-ignore-test-list
+                      '("fn ctrl_c_kills_everyone")))))
              (add-after 'unpack 'adjust-rpath-values
                ;; This adds %output:out to rpath, allowing us to install utilities in
                ;; different outputs while reusing the shared libraries.
@@ -851,18 +923,20 @@ safety and thread safety guarantees.")
                       (string-append all
                                      "gdb = \"" gdb "/bin/gdb\"\n"))))))
              (replace 'build
-               ;; Phase overridden to also build rustfmt.
+               ;; Phase overridden to also build more tools.
                (lambda* (#:key parallel-build? #:allow-other-keys)
                  (let ((job-spec (string-append
                                   "-j" (if parallel-build?
                                            (number->string (parallel-job-count))
                                            "1"))))
                    (invoke "./x.py" job-spec "build"
-                           "library/std" ;rustc
+                           "library/std"    ;rustc
                            "src/tools/cargo"
+                           "src/tools/clippy"
+                           "src/tools/rust-analyzer"
                            "src/tools/rustfmt"))))
              (replace 'check
-               ;; Phase overridden to also test rustfmt.
+               ;; Phase overridden to also test more tools.
                (lambda* (#:key tests? parallel-build? #:allow-other-keys)
                  (when tests?
                    (let ((job-spec (string-append
@@ -872,9 +946,11 @@ safety and thread safety guarantees.")
                      (invoke "./x.py" job-spec "test" "-vv"
                              "library/std"
                              "src/tools/cargo"
+                             "src/tools/clippy"
+                             "src/tools/rust-analyzer"
                              "src/tools/rustfmt")))))
              (replace 'install
-               ;; Phase overridden to also install rustfmt.
+               ;; Phase overridden to also install more tools.
                (lambda* (#:key outputs #:allow-other-keys)
                  (invoke "./x.py" "install")
                  (substitute* "config.toml"
@@ -883,10 +959,26 @@ safety and thread safety guarantees.")
                     (format #f "prefix = ~s" (assoc-ref outputs "cargo"))))
                  (invoke "./x.py" "install" "cargo")
                  (substitute* "config.toml"
-                   ;; Adjust the prefix to the 'rustfmt' output.
+                   ;; Adjust the prefix to the 'tools' output.
                    (("prefix = \"[^\"]*\"")
-                    (format #f "prefix = ~s" (assoc-ref outputs "rustfmt"))))
-                 (invoke "./x.py" "install" "rustfmt")))))))
+                    (format #f "prefix = ~s" (assoc-ref outputs "tools"))))
+                 (invoke "./x.py" "install" "clippy")
+                 (invoke "./x.py" "install" "rust-analyzer")
+                 (invoke "./x.py" "install" "rustfmt")))
+             (add-after 'install 'install-rust-src
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "rust-src"))
+                       (dest "/lib/rustlib/src/rust"))
+                   (mkdir-p (string-append out dest))
+                   (copy-recursively "library" (string-append out dest "/library"))
+                   (copy-recursively "src" (string-append out dest "/src")))))
+             (add-after 'install-rust-src 'wrap-rust-analyzer
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (wrap-program (string-append (assoc-ref outputs "tools")
+                                              "/bin/rust-analyzer")
+                   `("RUST_SRC_PATH" ":" =
+                     (,(string-append (assoc-ref outputs "rust-src")
+                                      "/lib/rustlib/src/rust/library"))))))))))
       ;; Add test inputs.
       (native-inputs (cons* `("gdb" ,gdb/pinned)
                             `("procps" ,procps)
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index ac00d396b5..5a9d5ed480 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -224,14 +224,14 @@ cards.")
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.32")
+    (version "2.33")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
-        (base32 "1rp67fqsnsknlhlq75vgdjg9rggx8j7wbmixvps967m2f92m2qsv"))))
+        (base32 "1yilrfa8h63x24mcl8a6a17fsaa12imhl337br7g2dw3c1g0v78p"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -252,7 +252,6 @@ cards.")
      `(#:modules ((guix build cargo-build-system)
                   (guix build utils)
                   ((guix build gnu-build-system) #:prefix gnu:))
-       #:vendor-dir "vendor"
        #:install-source? #f
        #:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
@@ -261,7 +260,7 @@ cards.")
         ("rust-curl-sys" ,rust-curl-sys-0.4)
         ("rust-cxx" ,rust-cxx-1)
         ("rust-cxx-build" ,rust-cxx-build-1)
-        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-fastrand" ,rust-fastrand-2)
         ("rust-gettext-rs" ,rust-gettext-rs-0.7)
         ("rust-lexopt" ,rust-lexopt-0.3)
         ("rust-libc" ,rust-libc-0.2)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index bb6ce0cbf1..b4dd7c27ae 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -5341,16 +5341,19 @@ result in several formats:
 (define-public rav1e
   (package
     (name "rav1e")
-    (version "0.6.3")
+    (version "0.6.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rav1e" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0if94sfviy5cwljlnsy0f470ixfs090k54g416kcc0qd9w4rhy17"))))
+        (base32 "1h9fhmamb7mh3cv86y1qja9qb7r6w2jv3p8ydngvsyjy59lq7hqn"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("\"= ?([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -5368,8 +5371,8 @@ result in several formats:
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-clap" ,rust-clap-4)
         ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-clap-lex" ,rust-clap-lex-0.3)
         ("rust-console" ,rust-console-0.15)
-        ("rust-const-fn-assert" ,rust-const-fn-assert-0.1)
         ("rust-crossbeam" ,rust-crossbeam-0.8)
         ("rust-dav1d-sys" ,rust-dav1d-sys-0.7)
         ("rust-fern" ,rust-fern-0.6)
@@ -5403,12 +5406,16 @@ result in several formats:
         ("rust-toml" ,rust-toml-0.5)
         ("rust-v-frame" ,rust-v-frame-0.3)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
-        ("rust-y4m" ,rust-y4m-0.7))
+        ("rust-winnow" ,rust-winnow-0.4)
+        ("rust-y4m" ,rust-y4m-0.8))
        #:cargo-development-inputs
        (("rust-assert-cmd" ,rust-assert-cmd-2)
         ("rust-criterion" ,rust-criterion-0.4)
         ("rust-interpolate-name" ,rust-interpolate-name-0.2)
         ("rust-nom" ,rust-nom-7)
+        ("rust-predicates" ,rust-predicates-2)
+        ("rust-predicates-core" ,rust-predicates-core-1)
+        ("rust-predicates-tree" ,rust-predicates-tree-1)
         ("rust-pretty-assertions" ,rust-pretty-assertions-1)
         ("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
@@ -5424,7 +5431,7 @@ result in several formats:
                        (string-append "--prefix=" out)))))
          (add-after 'install 'delete-static-library
            (lambda* (#:key outputs #:allow-other-keys)
-             ;; Delete 80 MiB (!) static library.
+             ;; Delete 93 MiB (!) static library.
              (delete-file (string-append (assoc-ref outputs "out")
                                          "/lib/librav1e.a")))))))
     (native-inputs